Every surface that persists or lists sessions resolves one directory under the Harness home, so history is shared across working directories instead of scattered per project.
2.0 KiB
dsh-paths
English | 中文
Shared filesystem path helpers for DeepSeek Harness user data.
DSH home
resolveDshHome() resolves the single-root DeepSeek Harness home. Precedence, highest first: an explicit configured path, $DSH_HOME, then ~/.dsh. The harness keeps all user data under one root.
dshHomeDisplay() names an active root symbolically for user-facing paths: ~/.dsh for the default home, $DSH_HOME for any configured home. It never leaks an absolute machine path.
DSH_HOME_DIR_NAME owns the default user-data directory name: .dsh.
defaultDshHome() returns the default DeepSeek Harness home by joining the operating-system home directory with .dsh, using Node's platform path rules.
expandHomePath() expands ~, ~/..., and Windows-style ~\... prefixes against the operating-system home directory. It leaves non-tilde paths and ~user/... untouched.
Session store
resolveSessionsRoot() resolves the shared session-store root under the Harness home, by the same precedence as resolveDshHome(). SESSIONS_DIR_NAME owns its directory name: sessions. Every surface that persists sessions resolves this one directory, so history is shared across working directories instead of scattered per project; a persistence backend may still partition inside it. Two surfaces resolving different roots would silently split one user's history into disjoint stores, which is why the location is owned here rather than joined per caller.
This package is intentionally small and harness-dep-free so product packages can share user-data path conventions without depending on one another.
Known Limitations and Deferred Work
- Expansion is deliberately narrow — only bare
~,~/..., and~\...use the current operating-system home; named-user forms such as~alice/..., environment variables, and shell expressions remain unchanged. - Helpers do not touch the filesystem — callers still own directory creation, existence checks, permissions, and trust policy for the resulting path.