mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-11 04:00:38 +00:00
- 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.
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.