Skip to content

Make organization settings navigable, self-saving, and plainly explained - #496

Merged
morgaesis merged 6 commits into
mainfrom
org-support-links
Aug 6, 2026
Merged

Make organization settings navigable, self-saving, and plainly explained#496
morgaesis merged 6 commits into
mainfrom
org-support-links

Conversation

@morgaesis

@morgaesis morgaesis commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

An admin toggled the merge gate, refreshed, and lost the change: the only save button sat below every section, far off screen. The same session showed the page assumes too much. Repository names and config artifacts were dead text, "not enforced" wore a warning icon even in deliberate advisory mode, and "App binding is not readable" explained nothing to someone who has not read the enforcement checker.

Low-risk controls now save on change: the merge gate and shared-configuration toggles save immediately with inline confirmation and an audit event, and the fallback texts save automatically after a pause, with YAML validation errors surfaced in place. Inference settings keep an explicit save inside their own section because they carry credentials. The organization .postil.yaml fallback gains structured controls for the common options (gate severity, outage behavior, content policy, thresholds, finding cap, ignored paths); the YAML text stays the single source of truth, so comments and uncovered keys survive round trips and the text field remains the escape hatch.

Installation health stops presenting expected states as problems. A repository that does not enforce the gate warns only when the merge gate is on, advisory mode is named in the summary, and the per-repository lines say plainly what GitHub does and does not tell Postil, including why classic branch protection cannot be verified and that a branch ruleset naming the Postil App can. Repository names and live config artifacts link to GitHub, and the page points to the documentation and hello@postil.dev for help.

Repository names on the dashboard and in installation health link to the
repository on GitHub, and live config artifacts link to the file they
describe on its source repository. The settings page closes with a
documentation link and the support address so an admin stuck on rollout
has a next step in context.
The settings page saved only through one button below every section, so a
toggled merge gate silently reverted when the page was left before
scrolling to it. The merge gate and shared-configuration toggles now save
on change with inline confirmation, the fallback texts save automatically
after a pause, and inference settings keep an explicit save inside their
own section because they carry credentials.

The organization .postil.yaml fallback gains structured controls for the
common options (gate severity, outage behavior, content policy, severity
and confidence thresholds, finding cap, ignored paths). The YAML text
stays the single source of truth: controls rewrite it through the
document API, so comments and uncovered keys survive, and the text field
remains the escape hatch.

Installation health stops presenting expected states as problems: a
repository that does not enforce the gate warns only when the merge gate
is on, advisory mode is named in the section summary, and the
per-repository detail lines and consequences drop App-binding jargon in
favor of plain statements of what GitHub does and does not tell Postil,
with the ruleset migration path explained where verification is
impossible.
Structured edits pass a scalar or unparseable document through unchanged
instead of throwing on stringify or replacing the text, and the controls
step aside for any document that is not a mapping.
The change detection that decides whether to record an audit event reads
the current value in the same transaction; locking the row keeps
concurrent toggles from misrecording events.
@morgaesis morgaesis changed the title Link organization surfaces to GitHub and support Make organization settings navigable, self-saving, and plainly explained Aug 5, 2026
Overlapping saves from rapid toggling could report or revert out of
order; a sequence guard drops superseded responses. The shared
configuration toggle also revalidates the dashboard, matching the gate
toggle.
An older in-flight save could land after a newer one and persist stale
text; saves now run in order and only the latest sends or reports.
@morgaesis
morgaesis merged commit 9207778 into main Aug 6, 2026
5 checks passed
@morgaesis
morgaesis deleted the org-support-links branch August 6, 2026 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant