mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
Replace the single global session_projcache domain with a per-session cache file inside the session's own persistence directory, resolved through sessionPersistence.locate(meta) — the persistence backend owns the session-directory layout, the cache service keeps every checkpoint and cold-read responsibility. - cachedSnapshot(meta) becomes async (one file read per session); coldSnapshot takes the session header so it can locate the file, with the stored log header remaining the identity witness. - Backends without a per-session directory (sqlite) disable the durable cache: writes no-op and cold reads fall to the full-log rung. An obsolete global cache is never read — derived data refolds on first cold read (no migration). - writeAtomic is exported from dsh-storage-json as the shared atomic whole-file replace primitive; api-proxy listing and subagent cold reads await the now-async cachedSnapshot. - READMEs and a new Agent Note document the per-session medium.
host/ — web-GUI host half
English | 中文
The host side of the dsh web GUI: the API gateway every client shape shares, and the plain HTTP server it rides on. The browser side lives in client/; the composed application is apps/cli booting the dsh-base bundle serving apps/web. All product packages.
| Package | Role | ctx key |
|---|---|---|
apiproxy/ |
Shared host API gateway and wire contract | ctx.apiProxy |
webserver/ |
HTTP route carrier | ctx.webServer |
frontend-static/ |
SPA dist server on the webserver fallback seat | consumes ctx.webServer |
directory-picker/ |
Workspace-directory picking seam | ctx.directoryPicker |
directory-picker-native/ |
Native directory-picker backend and browser interaction | registers ctx.directoryPicker |
directory-picker-browse/ |
In-app directory-browser backend and interaction | registers ctx.directoryPicker |
directory-picker-auto/ |
Host-adaptive picker composition | mounts a backend |
plugin-inventory/ |
Read-only projection of current Loader entries | Remote pluginInventory/list |
apiproxy remains transport-independent; client/connection supplies the browser/HTTP carrier. Picker implementations replace one another behind the shared seam.
The subsystem references: web-server.md and workspace.md (the picker seam).