Add JournalOnly sessions and persist one-time history seeds (N3 WP2) #31

Merged
weichen merged 1 commits from feature/n3-journal-session-wp2 into main 2026-10-07 15:23:25 +00:00
Owner

Why: the product conversation path needs the intent journal and recovery pairing, but transcript-as-authority would freeze the assembled system prefix (memory/plans/injections go stale). JournalOnly keeps the session journal-only: recovery runs against it, context always comes from History, recovered outcomes inject as a system note. The one-time History seed was memory-only (lost from run two in authority mode) and now persists outside JournalOnly mode.

Evidence: GOWORK=off go vet + go test -count=1 ./... green; TestJournalOnlyRecoversWithoutTranscriptAuthority; persistedProjection honors JournalOnly; default (false) semantics byte-identical (all existing tests unchanged).

Impact: opt-in only; no default behavior change.

Refs: Agent-System-Documents#43 (N3 plan WP2)

Why: the product conversation path needs the intent journal and recovery pairing, but transcript-as-authority would freeze the assembled system prefix (memory/plans/injections go stale). JournalOnly keeps the session journal-only: recovery runs against it, context always comes from History, recovered outcomes inject as a system note. The one-time History seed was memory-only (lost from run two in authority mode) and now persists outside JournalOnly mode. Evidence: GOWORK=off go vet + go test -count=1 ./... green; TestJournalOnlyRecoversWithoutTranscriptAuthority; persistedProjection honors JournalOnly; default (false) semantics byte-identical (all existing tests unchanged). Impact: opt-in only; no default behavior change. Refs: Agent-System-Documents#43 (N3 plan WP2)
weichen added 1 commit 2026-10-07 15:22:02 +00:00
Add JournalOnly sessions and persist one-time history seeds (N3 WP2)
ci / vet-and-test (pull_request) Successful in 50s
ci / docker-checkout-hostgateway (pull_request) Successful in 0s
e2be33f008
Why: the product conversation path needs the intent journal and
recovery pairing, but making the transcript the authoritative context
would freeze the assembled system prefix (memory/plans/injections go
stale). JournalOnly keeps the session as journal-only: recovery runs
against it, the context always comes from History, and the recovered
outcomes are injected as a system note. Separately, the one-time
History seed was memory-only and silently lost from the second run on
(authority mode); it is now persisted except in JournalOnly mode.
Evidence: GOWORK=off go vet + go test -count=1 ./... green;
TestJournalOnlyRecoversWithoutTranscriptAuthority (journal gets the
replayed pair exactly once, history never enters the journal, the
recovery note precedes the new user message, seeds stay out);
persistedProjection honors JournalOnly; all pre-existing durable and
harness tests pass unchanged (default semantics untouched).
Impact: new opt-in Config.JournalOnly; default (false) behavior is
byte-identical.
Refs: Agent-System-Documents#43 (N3 plan WP2)
weichen merged commit 79e1a8fa85 into main 2026-10-07 15:23:25 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-Native#31