Files
deepseek-harness/packages/storage
_Kerman 3f4c5f0563 fix(session-projection-cache): address review — atomic-write reuse, sqlite no-path, ordering and drain
- Write through @deepseek-ai/dsh-atomic-write with { mode: 0o600,
  dirMode: 0o700 } instead of exporting a second atomic-write primitive
  from dsh-storage-json; the session tree stays owner-only like the jsonl
  backend's own directories.
- Serialize atomic replacements per cache path so an older cut can never
  overwrite a newer one; track in-flight writes and drain them on
  disposal so a late flush cannot land after teardown.
- Detect the absent per-session directory before the checkpoint cut and
  durability flush: sqlite-style backends no-op the write entirely.
- Cold-read write-back path and identity both come from the stored log
  header (tail.meta), so a stale caller header cannot mint an orphan
  cache file.
- Add no-path coverage (write no-op, cachedSnapshot undefined, cold
  fallback to the full-log rung) and a concurrent-write ordering test;
  the package now holds 100% statement/branch/function/line coverage.
- Sync README.md/zh (inject list, coldSnapshot signature, per-session
  file read wording), package description, the Agent Note alternatives,
  and the superseded proposed/implemented notes (EN/ZH); add the
  concurrent-checkpoint Known Limitation.
2026-08-19 21:40:12 +08:00
..
2026-08-17 18:47:02 +08:00
2026-08-17 18:47:02 +08:00
2026-08-17 18:47:02 +08:00

storage/ — non-session storage family

English | 中文

This family persists application data other than session event logs through named backends and typed data forms.

Package Role ctx key
storage/ Connects registered backends with typed data forms ctx.storage
storage-json/ Stores data in JSON files registers backend json
storage-sqlite/ Stores data in SQLite registers backend sqlite
storage-domain/ Provides validated domain-record storage ctx.storageDomain

Consumers use a data form rather than accessing a backend directly. The domain storage decision records the family design.

The subsystem reference — the backend contract, StorageForms, DomainSpec/Domain, domain/changed — is docs/subsystems/storage.md.