v1.20.19 β π Journal write restraint + level-routed injection + ReAct coherence
π The assistant's personal journal grows up
Refines the personal journal (amends ADR-079) against entries that were often useless or harmful β over-generalising a rule from a single short message, or enshrining a false "I have no access to your data" limitation that then made the assistant refuse to even try.
Highlights
- Restraint-first writing β default output is empty; an operational directive (L1) must be grounded in an explicit user signal you could quote and safe to obey blindly. Generic prohibitions forbid asserting a limit on the assistant's own capabilities/tools and generalising from a single surface feature.
L0becomes a capped, private release valve. - Level-routed injection β operational prompts now carry only L1/L2 directives;
L0(private feedstock) andL3(carried by the compiled portrait) are excluded by default viaJOURNAL_OPERATIONAL_INJECTION_EXCLUDE_LEVELS. Extraction and consolidation still see every level. - ReAct directive coherence β the autonomous reasoning loop now also receives L1/L2 directives (count-capped by
JOURNAL_REACT_CONTEXT_MAX_ENTRIES, injected in full so a directive is never cut mid-sentence), closing a cross-mode gap. - De-pressured consolidation β L2 synthesis only on genuine convergence ("zero L2 is the correct outcome when no convergence exists"); dedup guard against merging directives that prescribe different actions.
Notes
- No schema change, no migration.
- Tests: Ruff / Black / MyPy strict clean; 8414 backend unit tests green; i18n parity (6 languages) verified.
- See ADR-088 Β· CHANGELOG
π€ Generated with Claude Code