ci / vet-and-test (pull_request) Successful in 42s
Why: the product conversation path had zero mid-turn durability (llm_direct ran without Session — intents, recovery pairing, and side-effect replay semantics never applied). Transcript-as-authority would have frozen the assembled prefix, so the journal is wired in JournalOnly mode: recovery runs against the transcript, the context stays on the ctxasm pipeline, and recovered outcomes inject as a system note. Evidence: go test -count=1 ./... green; TestDirectRunPairsAfterKillSeed (crash-window transcript gets the crashInterrupted pair, run proceeds) and TestDirectRunSeedsStoreHistoryOnce (history appears exactly once in every request, never enters the journal); the forged-marker and harness suites pass unchanged. Impact: conversation runs now journal tool intents and recover them on the next run; no transparent resume (sealed interrupted stays; the user keeps chatting). Opening the transcript fails soft (falls back to the old no-session behavior). Refs: Agent-Native#31, Agent-Squad#35, N3 plan WP2