Skip to content

Settings: the last 32, the tier sweep, and the gate that keeps it (v0.21.271) - #74

Merged
QR-Madness merged 2 commits into
masterfrom
feat/settings-close-out
Aug 8, 2026
Merged

Settings: the last 32, the tier sweep, and the gate that keeps it (v0.21.271)#74
QR-Madness merged 2 commits into
masterfrom
feat/settings-close-out

Conversation

@QR-Madness

Copy link
Copy Markdown
Owner

Closes the settings campaign. All 210 writable settings are documented, and the standard is now enforced rather than remembered.

The tail — 32 keys

Model Providers, Model Limits, Model Roles, Prompt Enhancement, Feature Prompts, and the settings no screen renders.

Written to say what each key is for, not to restate its name: the LM Studio timeout is generous because local generation is slow, not because someone was careless; context_limits.models is the escape hatch for the single most damaging catalog error — a model whose real window is read as small, which surfaces as an agent that forgets within a few messages.

The gate is inverted — the point of the whole campaign

Coverage began as an allowlist of refit sections. That held what was written, but a new setting could ship undocumented forever without tripping anything.

SettingsHelpTest now asserts the inverse: every writable key carries the full five-field write-up. The only way past is UNDOCUMENTED_ALLOWLIST, which a separate test asserts is empty — so adding an exception is a visible, deliberate act with its own failing test rather than something that quietly makes the coverage test pass again.

I verified it bites by deleting an authored entry:

AssertionError: ['config:alloy.chain_of_command — no help at all'] != []

A gate that can't fail isn't a gate.

The tier sweep

Depth is the declared tier, rendered from the manifest. The three ad-hoc dialects are gone. The last one labelled "Experimental" over two switches that ship on and are declared essential — which is precisely what writing a judgement into markup costs: the label outlives the judgement.

Two more declarations corrected

  • preferences.default_model is set on Model Roles, not nowhere — the eighth mis-section this cadence has found.
  • The five llm_settings.* sampling defaults claimed the Model Limits screen while having no control anywhere. They're config-only now, and their help says so. A manifest pointing at a screen that doesn't show the setting is the exact lie this campaign existed to remove.

Binding the gap the walk exposed

Walking every screen showed three field-kit sections the write-up had documented but never wired: Prompt Enhancement, Feature Prompts (through PromptField's new binding), and the two LM Studio limits. Bound. 150 anchors across 13 screens.

Model Providers (12 keys) and Model Roles (4) stay docs-first — bespoke card and role surfaces rather than field-kit sections. Their help reaches the generated reference but not a popover beside the control. That's the one remaining gap between "documented" and "explains itself where you are", and it's in the backlog rather than glossed.

Verification

  • Backend suite 1247 OK; task test:sterile 1247 OK
  • Client 499 tests; tsc clean; ruff check api/ clean; pyright baseline 0
  • task docs:check green, zero warnings; production build OK
  • Live: manifest reports 210/210 fully documented, zero gaps. Walked all 21 screens — 150 anchors, no horizontal overflow, zero console errors.

ADR-17 gains three properties: the inverted gate, tier-as-declaration, and the undeclared-root report from v0.21.270.

Assisted-by: Opus 5

…it (v0.21.271)

Closes the settings campaign. **All 210 writable settings are documented**, and
the standard is now enforced rather than remembered.

The tail: Model Providers, Model Limits, Model Roles, Prompt Enhancement,
Feature Prompts, and the settings no screen renders. Provider help states what
each key is *for* rather than restating its name — the LM Studio timeout is
generous because local generation is slow, not because someone was careless;
`context_limits.models` is explained as the escape hatch for the single most
damaging catalog error, a real window read as small, which shows up as an agent
that forgets within a few messages.

**The gate is inverted.** Coverage began as an allowlist of refit sections,
which held what was written but let a *new* setting ship undocumented forever.
`SettingsHelpTest` now asserts the inverse: every writable key carries the full
five-field write-up, and the only way past is `UNDOCUMENTED_ALLOWLIST` — which a
separate test asserts is empty, so an exception cannot be added quietly.
Verified by deleting an entry and watching the suite name it.

**The tier sweep.** Depth is the declared `tier`, rendered from the manifest.
The three ad-hoc dialects are gone; the last one labelled "Experimental" over
two switches that ship on and are declared essential — which is what writing a
judgement into markup costs, since the label outlives the judgement.

Two more declarations corrected. `preferences.default_model` is set on Model
Roles, not nowhere — the eighth mis-section this cadence has found. And the five
`llm_settings.*` sampling defaults claimed the Model Limits screen while having
no control anywhere; they are config-only, and their help now says so, because
a manifest that points at a screen which does not show the setting is the exact
lie this campaign existed to remove.

Bound the field-kit sections the write-up had documented but not wired: Prompt
Enhancement, Feature Prompts (via PromptField's new binding), and the two LM
Studio limits. 150 anchors across 13 screens. Model Providers and Model Roles
stay docs-first — bespoke card and role surfaces, noted in the backlog as the
last gap between "documented" and "explains itself where you are".

ADR-17 gains three properties: the inverted gate, tier-as-declaration, and the
undeclared-root report from v0.21.270.

Assisted-by: Opus 5
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agentx-docs-site Ready Ready Preview Aug 8, 2026 3:02am

The generated reference labelled its per-screen leftover tables "not yet
written up". With every writable setting documented, all 123 remaining rows are
read-only plumbing — set in `.env` or the settings file, never through a
control — so the label promised work that will never happen in that form.

Says what they are instead. Caught by counting the rows at campaign close:
123 read-only, 0 writable.

Assisted-by: Opus 5
@QR-Madness
QR-Madness merged commit 6858e1f into master Aug 8, 2026
4 checks passed
@QR-Madness
QR-Madness deleted the feat/settings-close-out branch August 8, 2026 03:04
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