feat(paths): add resolveSessionsRoot as the one shared session-store root

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.
This commit is contained in:
Turtle
2026-07-28 22:19:13 +08:00
parent e10bf246fb
commit 42e3cceb64
5 changed files with 44 additions and 4 deletions
+11
View File
@@ -4,10 +4,12 @@ import { describe, expect, it } from 'vitest'
import {
DEFAULT_DSH_HOME_DISPLAY,
DSH_HOME_DIR_NAME,
SESSIONS_DIR_NAME,
defaultDshHome,
dshHomeDisplay,
expandHomePath,
resolveDshHome,
resolveSessionsRoot,
} from '@deepseek-ai/dsh-paths'
describe('dsh path helpers', () => {
@@ -38,6 +40,15 @@ describe('dsh path helpers', () => {
expect(resolveDshHome(undefined, { DSH_HOME: ' ' })).toBe(defaultDshHome())
})
it('resolves the session store under the home it was given, by the same precedence', () => {
expect(SESSIONS_DIR_NAME).toBe('sessions')
expect(resolveSessionsRoot('/tmp/explicit-dsh', { DSH_HOME: '~/env-dsh' }))
.toBe(join(resolve('/tmp/explicit-dsh'), 'sessions'))
expect(resolveSessionsRoot(undefined, { DSH_HOME: '~/env-dsh' }))
.toBe(join(homedir(), 'env-dsh', 'sessions'))
expect(resolveSessionsRoot(undefined, {})).toBe(join(defaultDshHome(), 'sessions'))
})
it('labels a resolved home by whether it is the default root', () => {
expect(dshHomeDisplay(resolve(defaultDshHome()))).toBe('~/.dsh')
expect(dshHomeDisplay('/some/other/root')).toBe('$DSH_HOME')