mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-22 18:35:21 -06:00
32f056f011
* refactor(agents): persist directive facts at the assistant write boundary Assistant final text is now stripped of inline delivery directives once, at the SessionManager append boundary, with the parsed facts persisted as a typed openclawDelivery field on the assistant message (openclawDeliveryMirror precedent, inside event_json — no schema change). Live session state is replaced with the persisted canonical bytes so same-run continuations and next-turn store rebuilds never diverge (prompt-cache invariant). Delivery and restart recovery consume the stored facts instead of re-parsing persisted text; pre-upgrade in-flight messages without facts intentionally get no text-parse fallback (commented tradeoff at the read site). Directive parsing is now code-region aware, so markers quoted in inline code or fences neither parse nor strip — fixes the empty-code-pill display bug. The undocumented reaction marker DSL ([[react:]], [[react_to_current:]]) is deleted; structured message-tool reactions remain the canonical path. Stale assertion-safety baseline entry removed with the parser. Production net -10, tests net +38. Focused suites: 9,068 passed; pre-fix regressions fail for the intended reasons. Codex autoreview clean. * fix(agents): satisfy directive persistence gates * fix(config): drop unused directive export * fix(agents): preserve indented directive examples