Settings: consolidation, written down (v0.21.269) - #72
Merged
Conversation
The memory twin of Recall, and the largest single section: 50 keys across the extraction pipeline (extraction → relevance filter → contradiction → correction → combined) and the background work behind it (procedural distillation, reflex/salient cores, entity linking, promotion, four job intervals). **152 of 208 settings documented.** Thresholds get their measured meaning rather than an adjective: - `fact_confidence_threshold` is explained against the calibration it filters — extraction scores a fact ~0.95 if you stated it, 0.85 if strongly implied, 0.70 if reasonably inferred, 0.50 if hedged — which turns "0.7" from a number into "keeps inferences, drops guesses". - `semantic_duplicate_threshold` says what actually merges at 0.92 (near-verbatim repeats) versus below 0.85 (facts that differ in ways that matter). - `contradiction_similarity_threshold` explains why it is *lower* than the duplicate bar: contradicting facts often share little vocabulary — "she moved to Munich" and "lives in Berlin" conflict without sounding alike. - `entity_linking_similarity_threshold` states the property that makes it safe to move: everything in its band is logged, never auto-merged. The always-on cores get the point that distinguishes them from recall: they are maintained, not searched, which is the only way a rule about how you like work done applies when nothing in your message would have retrieved it — and the cost is prompt tokens on every turn, forever. **Prerequisite, shipped with it: memory keys can now declare a screen.** The `KeySpec.ui_section` override that fixed four config mis-sections had no effect on the memory store — `_apply_spec` only ever used the value its caller derived from recall/consolidation membership. Both stores behave the same now, which immediately moved `extraction_system_prompt` and `relevance_filter_prompt` to the Feature Prompts screen that actually edits them. Seven mis-sections found across five slices. `_keys_for` in the coverage test collapsed to one manifest-derived branch that serves both stores, so adding a section stays a one-line change. Assisted-by: Opus 5
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Wave 3.5 — the memory twin of Recall and the largest single section. 50 keys. 152 of 208 settings now documented.
Thresholds get their measured meaning
The recurring failure of settings docs is describing a number with an adjective. These say what actually changes:
fact_confidence_thresholdis explained against the calibration it filters — extraction scores a fact ~0.95 if you stated it outright, 0.85 if strongly implied, 0.70 if reasonably inferred, 0.50 if hedged. That turns "0.7" from a number into "keeps inferences, drops guesses", and makes raising it to 0.85 a decision you can reason about.semantic_duplicate_thresholdsays what merges at 0.92 (near-verbatim repeats) versus below 0.85 (facts that differ in ways that matter).contradiction_similarity_thresholdexplains why it is lower than the duplicate bar: contradicting facts often share little vocabulary — "she moved to Munich" and "lives in Berlin" conflict without sounding alike.entity_linking_similarity_thresholdstates the property that makes it safe to move at all: everything in its band is logged, never auto-merged.The always-on cores get the distinction that separates them from recall: they are maintained, not searched. That is the only way a rule about how you like work done applies when nothing in your message would have retrieved it — and the cost is prompt tokens on every turn, permanently.
Contradiction detection's three layers are described cheapest-first, so it's clear why the LLM cost is far below what a per-fact check would suggest — most facts never reach layer three.
Prerequisite, shipped with it
Memory keys could not declare a screen. The
KeySpec.ui_sectionoverride that fixed four config mis-sections had no effect on the memory store:_apply_speconly ever used the value its caller derived from recall/consolidation membership. Both stores behave identically now.That immediately moved
extraction_system_promptandrelevance_filter_promptonto the Feature Prompts screen that actually edits them (FeaturePromptsSection.tsx:123,132). Seven mis-sections across five slices._keys_forin the coverage test collapsed to a single manifest-derived branch serving both stores, so adding a section remains a one-line change.Also
All 29 panel controls manifest-bound. The seven nested
.setting-rows are deliberate — those wrappers group a model picker with its role chip, and I verified the nesting is two flex columns with matching gaps rather than a layout defect. The panel's three maintenance actions (force consolidate, reset conversations, clear stuck jobs) are operations, not settings, and correctly carry no binding.Verification
task test:sterile1243 OKtscclean;ruff check api/clean; pyright baseline 0task docs:checkgreen, zero warnings; production build OKfeature-prompts.Assisted-by: Opus 5