fix(opencode): use cross-platform data directory (#10362)

* fix(opencode): use cross-platform data directory

* fix(opencode): honor in-memory database override

* fix(opencode): harden database discovery coverage

* test(opencode): reproduce Windows session discovery

---------

Co-authored-by: OrcaWin <alpha-eng@stably.ai>
Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
This commit is contained in:
余辉
2026-07-28 19:58:49 -07:00
committed by GitHub
co-authored by OrcaWin OrcaWin
parent c8dba6d72c
commit c6c6c71196
7 changed files with 237 additions and 30 deletions
@@ -0,0 +1,17 @@
import { homedir } from 'node:os'
import { join } from 'node:path'
export function resolveOpenCodeDataDirectory(
environment: NodeJS.ProcessEnv = process.env,
homeDirectory = homedir()
): string {
const xdgDataHome = environment.XDG_DATA_HOME?.trim()
return join(xdgDataHome || join(homeDirectory, '.local', 'share'), 'opencode')
}
export function resolveOpenCodeStorageDirectory(
environment: NodeJS.ProcessEnv = process.env,
homeDirectory = homedir()
): string {
return join(resolveOpenCodeDataDirectory(environment, homeDirectory), 'storage')
}