deepseek-harness/packages/session
_Kerman 1201ecc828 fix(session-projection-cache): store checkpoints on a per-record storage domain
Restore the storage-domain medium the file-root design replaced: the cache
opens the session_projcache domain (per-record layout — one document per
session under the json backend root) and checkpoint writes land through
the domain's write chain. Reads and writes now share ONE coherent state:
cachedSnapshot reads synchronously from the domain's in-memory tables,
and every write is durability-first-then-memory, so a read can never go
around the write chain to the medium. The hand-rolled write chains,
in-flight tracking, per-session file paths, owner-only file modes, and
the sqlite no-path special case are gone; Config.root is removed and the
domain's version stamp makes a checkpointRecord bump discard stale
sessions per record instead of rejecting the whole medium. The async
ripple of the old file read is reverted: api-proxy's listing column and
subagent's cold identity read go back to synchronous cachedSnapshot.
2026-08-20 13:47:47 +08:00
..
session-checkpoint-policy release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-persistence release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-persistence-jsonl release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-persistence-sqlite release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-projection refactor(session-projection): checkpoint every projection unit uniformly 2026-08-19 16:55:10 +08:00
session-projection-cache fix(session-projection-cache): store checkpoints on a per-record storage domain 2026-08-20 13:47:47 +08:00
session-stats refactor(session-projection): separate state from client views 2026-08-19 13:11:05 +08:00
session-telemetry release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-telemetry-otel release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-title refactor(session-projection): separate state from client views 2026-08-19 13:11:05 +08:00
session-title-all-prompts-llm release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-title-first-prompt-llm release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
session-title-llm release(dsh): 0.1.0-rc.7 2026-08-17 18:47:02 +08:00
README.i18n.yaml refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
README.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
README.zh.md refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00

session/ — durable session data plane

English | 中文

The durable family around core/session's live in-memory service: the persistence seam with its storage backends and checkpoint policy, the projection seam that serves whole log-derived values, log-backed titles, and outbound session telemetry. All product packages. session-query/ remains a sibling group: the read/tool surface is consumed independently of persistence internals.

Persistence

Durable session persistence, semantic checkpoint policy, and the shipped storage backends.

Package Role ctx key
session-persistence/ Defines the persistence service and shared write coordination ctx.sessionPersistence
session-checkpoint-policy/ Applies semantic durability checkpoints wraps ctx.llm and ctx.tools
session-persistence-jsonl/ Persists sessions in JSONL files registers on ctx.sessionPersistence
session-persistence-sqlite/ Persists sessions in SQLite registers on ctx.sessionPersistence

The session-persistence decision records the persistence design.

Projection

Serves current, log-derived per-session state to client carriers.

Package Role ctx key
session-projection/ Defines and drives session projection units ctx.sessionProjections
session-projection-cache/ Persists and restores projection checkpoints ctx.sessionProjectionCache
session-stats/ Serves whole-log conversation counts and wall times (sessionStats unit) registers on ctx.sessionProjections

Titles

Derives durable session titles from the session log, with an optional model-backed provider.

Package Role ctx key
session-title/ Owns title state, fallback behavior, provider registration, and refresh ctx.sessionTitle
session-title-llm/ Provides shared model-backed title generation —
session-title-first-prompt-llm/ Titles a session from its first eligible human message registers on ctx.sessionTitle
session-title-all-prompts-llm/ Titles a session from all eligible human messages registers on ctx.sessionTitle

Deployments may register one model-backed provider; the service retains a deterministic fallback when none is present.

SessionTelemetryBackend

Projects session activity into outbound telemetry and delegates delivery to a configured reporting backend. The telemetry decision records the reporting boundary; the mode decision records immediate, feedback-gated, and disabled delivery.

Package Role
session-telemetry/ Defines capture, redaction, projection, and live or on-demand backend delivery.
session-telemetry-otel/ Delivers telemetry through OpenTelemetry logs in FULL, FEEDBACK_ONLY, or DISABLED mode.

The subsystem references: persistence.md, session-projection.md, session-title.md, and session-telemetry.md. Only one title provider may register at a time; the demo spine mounts the fallback service and leaves both model providers out of default composition.