{% extends "mirrorwall/base.html" %} {% from "mirrorwall/components.html" import table %} {% block title %}Settings — PromptCadence{% endblock %} {% block content %}
Only what can change while the server runs. Everything else — the bind, the LoadCoach credential, the approval gates, the ceilings, the tool roots and the tiers — lives in config.toml or the environment and is refused here by name. A change is applied by the running worker at its next lease reap, and reaches every process sharing this database.
A key set in the environment beats a stored value (configuration standards §7): defaults → file → database → env → CLI. A stored value that cannot take effect is shown below as shadowed rather than quietly dropped.
{% if saved %}Saved. The running worker applies the change at its next lease reap.
{% endif %} {% if not may_change %}This session holds the read scope and not
admin, so the form is not shown. Looking at the effective configuration and changing
it are deliberately separate scopes.
Refused with FORBIDDEN naming the key when sent to PUT /api/v1/settings: exposure, egress, credentials, containment, retention and spend. The ceilings are among them deliberately — raising one is an approval with an approver on the record, never a form.