Files
deepseek-harness/packages/session-persistence
kingwl 290e1acc45 policy: guard adoption baselines, resolve-time validation, and inherited-delta narration
Review fixes (ds-review-bot on #623):

- Persistence adoption compares the immutable policy baselines: onCreated's
  ownerless claim and adoptLivePrefix retain the STORED header, so a
  same-id live session with a conflicting baseline now rejects as a
  collision instead of appending under read-only and resuming under the
  stored danger-full-access.
- resolve() resolves the session override BEFORE applying an explicit
  approved mode: the one-shot grant no longer bypasses the unconditional
  durable-header validation.
- The approval narrator attributes positionally over the session's OWN
  events (past the seed boundary): a fork child whose baseline delta has
  no own override narrates 'inherited from the delegating session' instead
  of misattributing a stale seed-carried switch to the user or the
  operator.

Red-first: baseline-conflict adoption in the shared coordinator contract
(both backends), resolve-with-explicit-mode validation, and the fork-child
narration attribution case.
2026-07-26 23:56:41 +08:00
..
2026-07-26 05:06:39 +08:00
2026-07-26 05:06:39 +08:00

session-persistence/ — persistence capability family

English | 中文

The durable session-persistence seam and its storage backends. The interface package owns the abstract SessionPersistence service and the shared write coordinator; the backends are concrete implementations that register on ctx.sessionPersistence. All product packages.

Package Role ctx key
session-persistence/ Persistence seam + shared write coordinator ctx.sessionPersistence
session-checkpoint-policy/ Semantic durability barriers for agent requests and tool execution (wraps ctx.llm / ctx.tools, listens on agent events)
session-persistence-jsonl/ JSONL-sidecar persistence backend (registers ctx.sessionPersistence)
session-persistence-sqlite/ SQLite persistence backend (registers ctx.sessionPersistence)

The interface lives at session-persistence/session-persistence/; backends are flat siblings. A new storage backend joins here and registers on ctx.sessionPersistence. See session persistence.