Settings: the last 32, the tier sweep, and the gate that keeps it (v0.21.271) - #74
Merged
Conversation
…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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.modelsis 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.
SettingsHelpTestnow asserts the inverse: every writable key carries the full five-field write-up. The only way past isUNDOCUMENTED_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:
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 declaredessential— which is precisely what writing a judgement into markup costs: the label outlives the judgement.Two more declarations corrected
preferences.default_modelis set on Model Roles, not nowhere — the eighth mis-section this cadence has found.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
task test:sterile1247 OKtscclean;ruff check api/clean; pyright baseline 0task docs:checkgreen, zero warnings; production build OKADR-17 gains three properties: the inverted gate, tier-as-declaration, and the undeclared-root report from v0.21.270.
Assisted-by: Opus 5