mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
Static: the cache package.json files array matches the workspace constraint shape, the unused dsh-storage-json devDependency is dropped (tests run on the memory backend), and docs/module-graph.md is regenerated for the new package edge. Coverage: two unreachable branches deleted rather than tested — coldSnapshot's floor-0 tail reuse (a baseSeq-0 restore never throws and an unrelated record still carries a usable watermark) and flushSoft's non-mandatory clean-skip (throttle triggers only fire dirty). New tests close the real gaps: write() on a never-dirty session and the non-JSON unit-state rejection, plugin disposal clearing armed interval timers, cachedSnapshot's all-version-mismatched and cwd-identity arms, the zero-units empty-log cut, the coordinator seek-hook ladder (suffix / not-found / plain failure / abort-reason relay), and the superseded- retirement race proving forget()'s exact-entry guard.
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.