Motivation
DeepSeek Harness (DSH) now persists event-sourced sessions, but SkillOpt-Sleep has no DSH transcript source. The recently merged OpenCode source provides a useful precedent for adding a narrow, privacy-conscious harvester independently from an execution backend or plugin.
DSH is currently a developer preview (0.1.0-rc.5) and its session header is version 0, so this integration should be explicitly experimental and fail closed rather than claim forward compatibility.
Proposed MVP
- Add an explicit
--source dsh and --dsh-session-root; do not add DSH to auto discovery yet.
- Read sessions locally and read-only, accepting only the tested DSH schema/version.
- Keep root-session visible user/assistant text, short tool names, working directory, timestamps, and immutable session feedback records.
- Exclude reasoning/chunk events, tool arguments/results, file payloads, request/provider/account metadata, child sessions, and SkillOpt-created replay sessions.
- Normalize accepted sessions into the existing
SessionDigest contract and preserve the current redaction boundary.
- Add sanitized fixtures and tests for valid sessions, corruption, unknown versions, filtering, redaction, CLI/config routing, and documentation.
Design question
Would maintainers prefer the smallest direct importer for version-0 JSONL (with a documented policy for DSH's default zstd files), or a versioned sanitized export produced by a thin DSH plugin? Direct import is smaller and has no plugin prerequisite; an exporter is a more durable format boundary and can include DSH's separate message-feedback store.
Non-goals
- A DSH execution backend or tool-aware agentic replay
- A DSH UI/plugin bundle
- Automatic skill adoption
- Recovering message-level feedback from DSH's sidecar when using raw session logs
- Compatibility with unknown future DSH session versions
Acceptance criteria
- Harvesting is local, read-only, and requires no DSH model login or running daemon.
- Unknown or malformed schemas are skipped with a clear warning; no partial permissive parse.
since, project, limit, child-session, and replay-session filters have tests.
- Sensitive event payloads never enter
SessionDigest or fixtures.
- Existing harvest sources remain unchanged and the full test/documentation checks pass.
Motivation
DeepSeek Harness (DSH) now persists event-sourced sessions, but SkillOpt-Sleep has no DSH transcript source. The recently merged OpenCode source provides a useful precedent for adding a narrow, privacy-conscious harvester independently from an execution backend or plugin.
DSH is currently a developer preview (
0.1.0-rc.5) and its session header is version 0, so this integration should be explicitly experimental and fail closed rather than claim forward compatibility.Proposed MVP
--source dshand--dsh-session-root; do not add DSH toautodiscovery yet.SessionDigestcontract and preserve the current redaction boundary.Design question
Would maintainers prefer the smallest direct importer for version-0 JSONL (with a documented policy for DSH's default zstd files), or a versioned sanitized export produced by a thin DSH plugin? Direct import is smaller and has no plugin prerequisite; an exporter is a more durable format boundary and can include DSH's separate message-feedback store.
Non-goals
Acceptance criteria
since, project, limit, child-session, and replay-session filters have tests.SessionDigestor fixtures.