mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-30 04:40:37 +00:00
Store each session's projection_cache.json under the cache's own root tree
(<root>/<session-id>/projection_cache.json, wired to dshHomePath('projections')
in the base bundle) instead of beside the session log via
sessionPersistence.locate(). The cache owns its directory layout, keys
directories by the code-generated session id, and never consults the
persistence layer; the service now injects only sessionProjections and
sessions.
Drop the coldSnapshot method and its readFrom-tail fold ladder: every cold
consumer refolds from the log itself, so the cache only serves the listing
read (cachedSnapshot, one async file read per session) and the write side.
Fail-soft durability, per-path write serialization, in-flight drain, and
atomic 0600 writes are unchanged; the chain cleanup now observes its own
rejection so a failed write cannot surface as an unhandled error.
dsh-session-persistence leaves peer/dev dependencies and the tsconfig
reference; dsh-atomic-write moves to peerDependencies. Config gains a
required root.
extensions/ — the agent modifies its own runtime
English | 中文
Model-facing tools over the live cordis runtime the agent itself runs inside: inspect the loaded plugins and service API, define and run model-written dynamic packages, and retract them again — plus the restricted repository Plugin runtime. Both browser-half packages live here rather than under packages/client/ because they are halves of this subsystem's dual-half packages; the host aggregate excludes them so each face keeps its own compiler program. Design home: the toolset Agent Note.
| Package | Role | ctx key |
|---|---|---|
tool-cordis/ |
Model-facing runtime inspection and dynamic-package tools | registers on ctx.tools |
cordis-host-runner/ |
Definition registry, the node:vm sandbox for host halves, and the request-run round trip |
provides ctx.dynamicCordisRunner |
cordis-client-runner/ |
Browser half of a dual-half package: evaluates the definition into a live browser plugin and answers the run request | client face; provides the browser ctx.dynamicCordisRunner |
ui-cordis/ |
Browser surfaces: the frame-wide panel that operates every definition, and the read-only define card | client face; registers slots |