claude-opencode-viewer 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/server.js +12 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-opencode-viewer",
3
- "version": "2.4.0",
3
+ "version": "2.4.1",
4
4
  "description": "A unified terminal viewer for Claude Code and OpenCode with seamless switching",
5
5
  "type": "module",
6
6
  "main": "server.js",
package/server.js CHANGED
@@ -15,8 +15,11 @@ process.title = 'claude-opencode-viewer';
15
15
  const __dirname = dirname(fileURLToPath(import.meta.url));
16
16
  const PORT = 7008;
17
17
 
18
- // OpenCode 数据库路径
19
- const OPENCODE_DB_PATH = join(homedir(), '.local/share/opencode/opencode.db');
18
+ // OpenCode 数据库路径(支持环境变量覆盖,自动检测 /halo 环境)
19
+ const OPENCODE_DB_PATH = process.env.OPENCODE_DB_PATH || join(
20
+ existsSync('/halo') ? '/halo/.local/share' : (process.env.XDG_DATA_HOME || join(homedir(), '.local/share')),
21
+ 'opencode/opencode.db'
22
+ );
20
23
 
21
24
  const MAX_BUFFER = 200000;
22
25
 
@@ -119,12 +122,18 @@ async function spawnProcess(mode, sessionId = null) {
119
122
  }
120
123
  }
121
124
 
125
+ const spawnEnv = { ...process.env };
126
+ // 如果 /halo 存在,将 opencode 数据持久化到 NAS
127
+ if (mode === 'opencode' && existsSync('/halo')) {
128
+ spawnEnv.XDG_DATA_HOME = '/halo/.local/share';
129
+ }
130
+
122
131
  const proc = pty.spawn(command, args, {
123
132
  name: 'xterm-256color',
124
133
  cols: lastPtyCols,
125
134
  rows: lastPtyRows,
126
135
  cwd: process.cwd(),
127
- env: { ...process.env },
136
+ env: spawnEnv,
128
137
  });
129
138
 
130
139
  proc.onData((data) => {