@xiaoqiong0v0/opencode-ssh-tool 0.6.12 → 0.6.14

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.
package/dist/server.js CHANGED
@@ -8,7 +8,7 @@ import { fileURLToPath } from "node:url";
8
8
  import { WebSocketServer, WebSocket } from "ws";
9
9
  import { listAllSessions, removeSessionState } from "./session-store.js";
10
10
  import { tr } from "./i18n.js";
11
- import { PTY_COLS, PTY_ROWS, HEARTBEAT_INTERVAL_MS, HEARTBEAT_TIMEOUT_MS, HEARTBEAT_CLIENT_TIMEOUT_MS } from "./constants.js";
11
+ import { PTY_COLS, PTY_ROWS, HEARTBEAT_INTERVAL_MS, HEARTBEAT_TIMEOUT_MS, HEARTBEAT_CLIENT_TIMEOUT_MS, STATUS_PUSH_DEBOUNCE_MS, STATUS_PUSH_FALLBACK_MS, ORPHAN_STATE_GRACE_MS, ORPHAN_STATE_MIN_AGE_MS, } from "./constants.js";
12
12
  import log, { infoDedup } from "./log.js";
13
13
  const PAGE_KEYS = [
14
14
  "web_title",
@@ -34,7 +34,6 @@ const JS_I18N_KEYS = {
34
34
  inputDisconnected: "web_input_disconnected",
35
35
  inputOffline: "web_input_offline",
36
36
  };
37
- const STATUS_PUSH_MS = 2000;
38
37
  const sessionKey = (sid, name) => `${sid}:${name}`;
39
38
  /**
40
39
  * 会话键(`sid:name`)转日志显示形式(`sid/name`):与终端侧 `[busy]`/`[run]` 行同一写法,
@@ -50,8 +49,33 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
50
49
  let actualPort = port;
51
50
  const webDir = join(dirname(fileURLToPath(import.meta.url)), "web");
52
51
  const pageTemplate = readTemplate(webDir);
52
+ /** 服务启动时刻(孤儿状态文件清理的启动宽限基准,见 ORPHAN_STATE_GRACE_MS) */
53
+ const serverStartedAt = Date.now();
54
+ /**
55
+ * 本服务是否绑定在固定端口(port>0)。
56
+ * port=0 表示每个 opencode 实例各自起一个随机端口服务,本服务只能看见连到自己的 agent,
57
+ * "无已连 agent 认领"无法区分孤儿与**别的实例正在使用的活会话**,故磁盘孤儿清理不安全(见 sweepOrphanStateFiles)。
58
+ */
59
+ const isFixedPortServer = port !== 0;
53
60
  const agents = new Map();
54
61
  const agentBySession = new Map();
62
+ /** 当前是否存在 agent 连接(边沿状态,供 notifyAgentPresence 去重) */
63
+ let agentPresent = false;
64
+ /** "存在 agent 连接"边沿的订阅者(server-entry 用于事件驱动空闲关闭) */
65
+ const presenceListeners = [];
66
+ /** 在 agents 集合发生"空 ↔ 非空"翻转时通知订阅者(无翻转则不发) */
67
+ const notifyAgentPresence = () => {
68
+ const present = agents.size > 0;
69
+ if (present === agentPresent)
70
+ return;
71
+ agentPresent = present;
72
+ for (const cb of presenceListeners) {
73
+ try {
74
+ cb(present);
75
+ }
76
+ catch { /* 订阅回调异常不影响服务 */ }
77
+ }
78
+ };
55
79
  const streamBuf = new Map();
56
80
  const rawBuf = new Map();
57
81
  const cmdCount = new Map();
@@ -61,7 +85,7 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
61
85
  const busyState = new Map();
62
86
  /**
63
87
  * 各 key 是否已处于"无 agent 连接且命令未完成"的 fallback 状态(仅用于日志:**边沿触发**)。
64
- * buildSessions 每 2s(/state 轮询)被调用一次,故用 per-key 上一轮状态做**幂等**判定:
88
+ * buildSessions 由状态事件驱动(及低频兜底)被调用,故用 per-key 上一轮状态做**幂等**判定:
65
89
  * 仅在进入该状态(首转 fallback)与离开该状态(agent 重连 / 命令收尾)各记一行,稳定期间不记。
66
90
  */
67
91
  const fallbackState = new Set();
@@ -137,12 +161,46 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
137
161
  claimed.add(k);
138
162
  return claimed;
139
163
  };
164
+ /**
165
+ * 清理"无任何已连 agent 认领"的**磁盘状态文件**:
166
+ * 正常关闭会调 removeSessionState 删文件,残留即属主进程异常退出(或进程退出兜底未清理)留下的孤儿;
167
+ * 其 connected=true/busy=true 不会自愈——旧实现只在 2s 轮询里读,故会长期误报"在线/忙",
168
+ * 还会让 server-entry 的"无连接空闲自动关闭"永不触发。只删状态文件,**不动 history 目录**(离线历史仍可查看)。
169
+ * 保守优先:
170
+ * - **仅固定端口(port>0)服务执行**:port=0 时每实例各起一个服务(默认 config),本服务的"未认领"无法
171
+ * 区分孤儿与别的实例正在使用的活会话;且状态文件 updatedAt 不随空闲刷新,"陈旧"判据同样区分不了
172
+ * → 直接跳过,宁可不清理也不删活数据(内存运行态回收在 cleanupOrphanRuntime 内照常执行,不受影响);
173
+ * - 无 agent 代表(agents.size===0)时跳过——没有可信的"当前认领"视图,不判断;
174
+ * - 服务启动不足 ORPHAN_STATE_GRACE_MS 时跳过——给存量 agent 重连、注册的窗口,防误删活进程文件;
175
+ * - 仅清理 updatedAt 早于 ORPHAN_STATE_MIN_AGE_MS 的文件——避免误删刚写入、agent 尚未注册的文件。
176
+ * @param claimed 所有已连 agent 认领的会话键并集
177
+ */
178
+ const sweepOrphanStateFiles = (claimed) => {
179
+ if (!isFixedPortServer)
180
+ return;
181
+ if (agents.size === 0)
182
+ return;
183
+ if (Date.now() - serverStartedAt < ORPHAN_STATE_GRACE_MS)
184
+ return;
185
+ const now = Date.now();
186
+ const stale = listAllSessions(dir).filter((s) => {
187
+ if (claimed.has(sessionKey(s.sessionID, s.name)))
188
+ return false;
189
+ return now - (s.updatedAt ?? 0) > ORPHAN_STATE_MIN_AGE_MS;
190
+ });
191
+ if (!stale.length)
192
+ return;
193
+ for (const s of stale)
194
+ removeSessionState(dir, s.sessionID, s.name);
195
+ infoDedup(`orphan-state:${stale.map((s) => sessionKey(s.sessionID, s.name)).sort().join(",")}`, `清理无 agent 认领的孤儿状态文件 ${stale.length} 个: ${stale.map((s) => keyTag(sessionKey(s.sessionID, s.name))).join(", ")}`);
196
+ };
140
197
  /**
141
198
  * 清理"无任何已连 agent 认领"的终端运行态(僵尸条目):
142
199
  * agent 断开后其运行态(streamBuf 的 done=false / rawBuf / 排队保持等)若无人接管会永久滞留,
143
200
  * 导致 busy 恒为 ⏳、[fallback] 长期存在、离线终端仍被当成"运行中"。
144
201
  * 多实例安全:只回收**所有已连 agent 都没认领**的 key——任一实例注册时都可安全回收孤儿;
145
202
  * 仍被本实例或其它实例认领的条目一律不动。history 落盘历史**不删**(仅供离线查看)。
203
+ * 同时(同一注册时机)清理无人认领的**状态文件**(见 sweepOrphanStateFiles),不留孤儿文件。
146
204
  */
147
205
  const cleanupOrphanRuntime = () => {
148
206
  const claimed = claimedByAnyAgent();
@@ -156,8 +214,6 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
156
214
  for (const k of seqHold)
157
215
  if (!claimed.has(k) && !orphans.includes(k))
158
216
  orphans.push(k);
159
- if (!orphans.length)
160
- return;
161
217
  for (const k of orphans) {
162
218
  streamBuf.delete(k);
163
219
  rawBuf.delete(k);
@@ -166,7 +222,10 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
166
222
  busyState.delete(k);
167
223
  fallbackState.delete(k);
168
224
  }
169
- infoDedup(`orphan-runtime:${orphans.slice().sort().join(",")}`, `清理无 agent 认领的运行态 ${orphans.length} 个: ${orphans.map(keyTag).join(", ")}`);
225
+ if (orphans.length) {
226
+ infoDedup(`orphan-runtime:${orphans.slice().sort().join(",")}`, `清理无 agent 认领的运行态 ${orphans.length} 个: ${orphans.map(keyTag).join(", ")}`);
227
+ }
228
+ sweepOrphanStateFiles(claimed);
170
229
  };
171
230
  const buildSessions = () => {
172
231
  const states = listAllSessions(dir);
@@ -333,6 +392,49 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
333
392
  const sep = key.indexOf(":");
334
393
  return [key.slice(0, sep), key.slice(sep + 1)];
335
394
  };
395
+ /**
396
+ * 注册时的运行态对账(修复"断线丢 cmdDone → server 内存僵尸 busy"):
397
+ * agent 注册时上报"本进程认领的全部终端"(register.sessions)与"其中真正在运行命令的子集"(register.running)。
398
+ * 对**本 agent 认领、但不在运行子集内**的终端,把 server 仍标记 done=false 的残留流收尾
399
+ * (置 done、广播 diff done、busy 归 false)——这正是"命令在 agent 断线期间完成、cmdDone 发往已死 socket 而丢失"的僵尸。
400
+ * 只在对账可确定时收尾:register 未携带 running(旧 agent / agent 自身无法确定)时**不臆测**,
401
+ * 仅记一行"未能对账"后保持现状(宁可保留僵尸,也不误判在线命令已完成)。
402
+ * @param claimKeys 本 agent 本次认领的会话键集合
403
+ * @param runningRaw register 消息里的 running 字段(未知类型,需运行时校验)
404
+ */
405
+ const reconcileAgentRuntime = (claimKeys, runningRaw) => {
406
+ if (!Array.isArray(runningRaw)) {
407
+ log.info(`[reconcile] agent 注册未携带运行集合(未能对账),保持现状不臆测(认领 ${claimKeys.size} 个终端)`);
408
+ return;
409
+ }
410
+ const running = new Set();
411
+ for (const r of runningRaw) {
412
+ if (r && typeof r.sessionID === "string" && typeof r.name === "string")
413
+ running.add(sessionKey(r.sessionID, r.name));
414
+ }
415
+ let finalized = 0;
416
+ for (const k of claimKeys) {
417
+ if (running.has(k))
418
+ continue; // 确在运行:保留 busy(agent 紧随其后的 cmdStart 会补播命令文本)
419
+ const b = streamBuf.get(k);
420
+ if (b && !b.done) {
421
+ b.done = true;
422
+ b.endTs = b.endTs ?? Date.now();
423
+ logBusy(k, false, "register 对账(cmdDone 丢失)");
424
+ finalizeCommand(k);
425
+ finalized++;
426
+ continue;
427
+ }
428
+ if (seqHold.has(k)) {
429
+ // 排队保持也一并放开:其最后一条 cmdDone 同样可能随断线丢失,否则 busy 仍会被 hold 住
430
+ seqHold.delete(k);
431
+ logBusy(k, false, "register 对账(队列保持释放)");
432
+ finalized++;
433
+ }
434
+ }
435
+ if (finalized)
436
+ log.info(`[reconcile] agent 注册对账收尾 ${finalized} 个终端(认领但未运行,cmdDone 丢失)`);
437
+ };
336
438
  /** 广播 sessions(json 变化去重;busy 翻转必然变化) */
337
439
  const pushSessions = () => {
338
440
  const payload = buildSessions();
@@ -346,7 +448,23 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
346
448
  send(client, { type: "sessions", ...payload });
347
449
  }
348
450
  };
349
- const statusTimer = setInterval(() => { pushSessions(); }, STATUS_PUSH_MS);
451
+ /** 状态推送合并定时器(事件驱动的去抖合并;null=空闲无待推) */
452
+ let statusPushTimer = null;
453
+ /**
454
+ * 请求一次状态推送(去抖合并):所有**状态变化事件**(cmdStart/cmdDone/exec/busy 翻转/连接变化/会话增删/客户端拉取)
455
+ * 调用它,窗口内多次只推一次全量最新状态。不变化时不推(pushSessions 内按 json 逐客户端去重)。
456
+ */
457
+ const requestStatusPush = () => {
458
+ if (statusPushTimer !== null)
459
+ return;
460
+ statusPushTimer = setTimeout(() => {
461
+ statusPushTimer = null;
462
+ pushSessions();
463
+ }, STATUS_PUSH_DEBOUNCE_MS);
464
+ };
465
+ // 兜底:事件驱动已覆盖服务端内存态的全部变化;此低频周期只兜底**带外变化**(其他进程写入状态文件
466
+ // 导致的新终端 / pending / 标题变化等,服务端无对应事件),保证这类变化最长 STATUS_PUSH_FALLBACK_MS 内可达前端。
467
+ const statusFallbackTimer = setInterval(() => { pushSessions(); }, STATUS_PUSH_FALLBACK_MS);
350
468
  /**
351
469
  * 应用层心跳(server 侧):每隔 HEARTBEAT_INTERVAL_MS 向每条连接下发 {type:"ping"},
352
470
  * 并在 HEARTBEAT_TIMEOUT_MS 内未收到 pong 时 terminate。server↔agent、server↔browser 两条 WS 共用:
@@ -401,19 +519,23 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
401
519
  for (const old of agents.get(ws) ?? [])
402
520
  agentBySession.delete(old);
403
521
  agents.set(ws, new Set());
522
+ const claimKeys = new Set();
404
523
  for (const s of sessions) {
405
524
  const k = sessionKey(s.sessionID, s.name);
406
525
  agents.get(ws).add(k);
407
526
  agentBySession.set(k, ws);
527
+ claimKeys.add(k);
408
528
  }
529
+ notifyAgentPresence();
409
530
  {
410
531
  // 记录 agent 上报的会话列表(批量实例注册同一列表时按内容去重),便于对齐 server 侧视角
411
532
  const keys = [...(agents.get(ws) ?? [])];
412
533
  infoDedup(`agent-register:${keys.slice().sort().join(",")}`, `agent 注册 ${keys.length} 个会话: ${keys.length ? keys.map(keyTag).join(", ") : "无"}`);
413
534
  }
414
- // 注册(含重连)后回收"无任何已连 agent 认领"的运行态:僵尸条目(agent 已消失仍 done=false)在此清干净
535
+ // 运行态对账:先按本 agent 上报的"运行子集"收尾断线丢 cmdDone 的僵尸 busy,再回收无人认领的运行态与状态文件
536
+ reconcileAgentRuntime(claimKeys, msg.running);
415
537
  cleanupOrphanRuntime();
416
- pushSessions();
538
+ requestStatusPush();
417
539
  return;
418
540
  }
419
541
  if (t === "cmdStart") {
@@ -439,7 +561,7 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
439
561
  c._txPos = 0;
440
562
  send(c, { type: "diff", sessionID: sid, name, event: "cmd", command, ts: streamBuf.get(k).ts });
441
563
  }
442
- pushSessions();
564
+ requestStatusPush();
443
565
  return;
444
566
  }
445
567
  if (t === "out") {
@@ -508,7 +630,7 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
508
630
  }
509
631
  logBusy(k, msg.more === true, msg.more === true ? "cmdDone(more 保持 busy)" : "cmdDone");
510
632
  finalizeCommand(k);
511
- pushSessions();
633
+ requestStatusPush();
512
634
  return;
513
635
  }
514
636
  if (t === "raw") {
@@ -545,6 +667,17 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
545
667
  return;
546
668
  }
547
669
  // ===== web 请求 =====
670
+ if (t === "list") {
671
+ // web 连接/重连后主动拉取一次会话列表(原依赖 2s 轮询被动收;改事件驱动后必须显式响应,
672
+ // 否则新开标签页要等兜底周期才有内容)。只回本连接,并按 json 去重。
673
+ const payload = buildSessions();
674
+ const json = JSON.stringify(payload);
675
+ if (json !== ws._lastSessionsJson) {
676
+ ws._lastSessionsJson = json;
677
+ send(ws, { type: "sessions", ...payload });
678
+ }
679
+ return;
680
+ }
548
681
  if (t === "subscribe") {
549
682
  const sid = typeof msg.sessionID === "string" ? msg.sessionID : "";
550
683
  const name = typeof msg.name === "string" ? msg.name : "";
@@ -639,7 +772,7 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
639
772
  const existing = streamBuf.get(k);
640
773
  streamBuf.set(k, { data: existing && existing.done ? "" : existing?.data ?? "", done: false, ts: Date.now(), command });
641
774
  logBusy(k, true, "exec");
642
- pushSessions();
775
+ requestStatusPush();
643
776
  send(agent, { type: "run-exec", reqId: `${sid}:${name}:${Date.now()}`, sessionID: sid, name, command });
644
777
  return;
645
778
  }
@@ -659,9 +792,17 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
659
792
  const name = typeof msg.name === "string" ? msg.name : "";
660
793
  if (!sid || !name)
661
794
  return;
662
- const agent = agentBySession.get(sessionKey(sid, name));
663
- if (agent)
664
- send(agent, { type: "run-delete", sessionID: sid, name });
795
+ const k = sessionKey(sid, name);
796
+ const agent = agentBySession.get(k);
797
+ // 归属校验:仅当本服务**已被该 key 的 agent 认领**(agentBySession 内有此 key,即 agents 集合含它)
798
+ // 时才允许删盘上状态文件与 history 目录。port:0 多实例下每实例各起一个服务,未认领的 key 极可能
799
+ // 属于**别的 opencode 实例正在使用的活会话**,无条件删会 rmSync 掉别人的历史目录
800
+ // (本模块唯一真·数据丢失路径)→ 未认领一律拒绝删除并留一行日志便于排查。
801
+ if (!agent) {
802
+ log.info(`Web 页删除终端 ${sid}/${name} 被拒:本服务未认领该终端(无 agent 归属),跳过删除以免误删他实例数据`);
803
+ return;
804
+ }
805
+ send(agent, { type: "run-delete", sessionID: sid, name });
665
806
  removeSessionState(dir, sid, name);
666
807
  // 删除该终端的 history 目录:buildSessions 会按 history 目录兜底列出离线历史终端,
667
808
  // 只删 state 文件不清目录会导致"删除后页面仍在"(残留被兜底扫描重新发现)
@@ -674,7 +815,7 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
674
815
  rawBuf.delete(sessionKey(sid, name));
675
816
  busyState.delete(sessionKey(sid, name));
676
817
  log.info(`Web 页删除终端 ${sid}/${name}`);
677
- pushSessions();
818
+ requestStatusPush();
678
819
  return;
679
820
  }
680
821
  });
@@ -691,6 +832,10 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
691
832
  agentBySession.delete(k);
692
833
  agents.delete(ws);
693
834
  infoDedup(`agent-disconnect:${keys.slice().sort().join(",")}`, `agent 断开(受影响终端: ${keys.length ? keys.map(keyTag).join(", ") : "无"})`);
835
+ // 连接变化是状态事件:立即推一次(原靠 2s 轮询,最坏 2s 才反映离线;改事件驱动后即时);
836
+ // 同时通知"agent 存在性"边沿(server-entry 据最后一个 agent 断开启动空闲计时)
837
+ notifyAgentPresence();
838
+ requestStatusPush();
694
839
  }
695
840
  });
696
841
  });
@@ -704,7 +849,24 @@ export function startServer(port, _getSessions, dir, lang = "en", _streamTickMs
704
849
  server,
705
850
  port: actualPort,
706
851
  url: `http://127.0.0.1:${actualPort}`,
707
- close: () => { clearInterval(statusTimer); clearInterval(heartbeatTimer); server.close(); wss.close(); },
852
+ close: () => {
853
+ if (statusPushTimer) {
854
+ clearTimeout(statusPushTimer);
855
+ statusPushTimer = null;
856
+ }
857
+ clearInterval(statusFallbackTimer);
858
+ clearInterval(heartbeatTimer);
859
+ server.close();
860
+ wss.close();
861
+ },
862
+ onAgentPresence: (cb) => {
863
+ presenceListeners.push(cb);
864
+ // 立即回报一次当前状态:订阅方(server-entry)据此决定是否已空闲(无 agent)
865
+ try {
866
+ cb(agents.size > 0);
867
+ }
868
+ catch { /* 订阅回调异常不影响服务 */ }
869
+ },
708
870
  });
709
871
  });
710
872
  });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,20 @@ export interface SessionState {
18
18
  directory?: string;
19
19
  updatedAt: number;
20
20
  }
21
+ /**
22
+ * 原子写 JSON 文件:先在**同目录**写唯一命名的临时文件,fsync 落盘后再 `rename` 覆盖目标。
23
+ * 这样读方(server 聚合读状态文件、各实例读 server.json)**永远读不到半截内容**——
24
+ * 要么读到旧的完整内容,要么读到新的完整内容,消除"先 truncate 再写"造成的瞬时损坏
25
+ * (读方 try/catch 只能跳过损坏文件,表现为瞬时漏一条)。
26
+ * 失败时**不抛异常**(调用方不崩):清理临时文件、**保留旧文件**、记一行 warn 日志并返回 false。
27
+ * 取舍:Windows 下若目标正被其他进程以打开句柄持有,`rename` 可能瞬时 EPERM 而失败——
28
+ * 此时保留旧文件即安全(下次写会重试),故**不做**"先删除目标再 rename"的退化写法
29
+ * (那会引入文件短暂不存在的窗口,反而更差);目录 fsync 在 Windows 不可用,忽略即可。
30
+ * @param file 目标文件路径(其父目录须已存在,由调用方保证)
31
+ * @param data 待写入对象(JSON.stringify 默认形态,与原直写行为一致)
32
+ * @returns 是否写入成功(true=新内容已原子生效;false=失败并保留旧文件)
33
+ */
34
+ export declare function atomicWriteJson(file: string, data: unknown): boolean;
21
35
  /**
22
36
  * 写/更新某会话状态文件(进程内会话变化时调用)。
23
37
  * 状态文件是 server 拿不到 agent 实时流时 busy 的回退来源,故写入时记一行
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAMA,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,GAAG,IAAI,CAa/F;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ3F;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAcjF;AAED,oCAAoC;AACpC,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAoBjE"}
1
+ {"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../src/session-store.ts"],"names":[],"mappings":"AAMA,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAwBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,GAAG,IAAI,CAc/F;AAED,4BAA4B;AAC5B,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAQ3F;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAcjF;AAED,oCAAoC;AACpC,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAoBjE"}
@@ -1,6 +1,6 @@
1
1
  // 跨进程会话状态存储:各进程写状态文件到共享目录,web 服务聚合展示所有进程的会话
2
- import { mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
3
- import { join } from "node:path";
2
+ import { closeSync, fsyncSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
4
  import log from "./log.js";
5
5
  /** sessions 状态文件目录名 */
6
6
  const SESSIONS_DIR = "sessions";
@@ -14,6 +14,57 @@ function stateFile(sessionsDir, sessionID, name) {
14
14
  * 状态真正变化(busy/connected 翻转或写入原因不同)时照常记一行。
15
15
  */
16
16
  const lastStateLog = new Map();
17
+ /** 原子写临时文件序号:同进程同一毫秒内多次写也能得到唯一临时名 */
18
+ let tmpSeq = 0;
19
+ /**
20
+ * 原子写 JSON 文件:先在**同目录**写唯一命名的临时文件,fsync 落盘后再 `rename` 覆盖目标。
21
+ * 这样读方(server 聚合读状态文件、各实例读 server.json)**永远读不到半截内容**——
22
+ * 要么读到旧的完整内容,要么读到新的完整内容,消除"先 truncate 再写"造成的瞬时损坏
23
+ * (读方 try/catch 只能跳过损坏文件,表现为瞬时漏一条)。
24
+ * 失败时**不抛异常**(调用方不崩):清理临时文件、**保留旧文件**、记一行 warn 日志并返回 false。
25
+ * 取舍:Windows 下若目标正被其他进程以打开句柄持有,`rename` 可能瞬时 EPERM 而失败——
26
+ * 此时保留旧文件即安全(下次写会重试),故**不做**"先删除目标再 rename"的退化写法
27
+ * (那会引入文件短暂不存在的窗口,反而更差);目录 fsync 在 Windows 不可用,忽略即可。
28
+ * @param file 目标文件路径(其父目录须已存在,由调用方保证)
29
+ * @param data 待写入对象(JSON.stringify 默认形态,与原直写行为一致)
30
+ * @returns 是否写入成功(true=新内容已原子生效;false=失败并保留旧文件)
31
+ */
32
+ export function atomicWriteJson(file, data) {
33
+ const tmp = `${file}.${process.pid}.${Date.now()}.${tmpSeq++}.tmp`;
34
+ try {
35
+ const fd = openSync(tmp, "w");
36
+ try {
37
+ writeFileSync(fd, JSON.stringify(data), "utf8");
38
+ fsyncSync(fd);
39
+ }
40
+ finally {
41
+ closeSync(fd);
42
+ }
43
+ // 目录项 fsync:Unix 上保证 rename 结果持久化;Windows 打开目录/fsync 会 EPERM,catch 忽略
44
+ try {
45
+ const dfd = openSync(dirname(file), "r");
46
+ try {
47
+ fsyncSync(dfd);
48
+ }
49
+ finally {
50
+ closeSync(dfd);
51
+ }
52
+ }
53
+ catch {
54
+ /* 目录 fsync 在部分平台不可用(如 Windows),忽略 */
55
+ }
56
+ renameSync(tmp, file);
57
+ return true;
58
+ }
59
+ catch (e) {
60
+ try {
61
+ rmSync(tmp, { force: true });
62
+ }
63
+ catch { /* 临时文件清理失败忽略 */ }
64
+ log.warn(`[state] 原子写失败,保留旧文件 ${file}`, e instanceof Error ? e : String(e));
65
+ return false;
66
+ }
67
+ }
17
68
  /**
18
69
  * 写/更新某会话状态文件(进程内会话变化时调用)。
19
70
  * 状态文件是 server 拿不到 agent 实时流时 busy 的回退来源,故写入时记一行
@@ -28,7 +79,9 @@ export function writeSessionState(cacheRoot, state, reason = "sync") {
28
79
  const dir = join(cacheRoot, SESSIONS_DIR);
29
80
  mkdirSync(dir, { recursive: true });
30
81
  const file = stateFile(dir, state.sessionID, state.name);
31
- writeFileSync(file, JSON.stringify(state), "utf8");
82
+ // 原子写:失败时保留旧文件且不记"已写"日志(与原 catch 静默口径一致,避免日志与实况不符)
83
+ if (!atomicWriteJson(file, state))
84
+ return;
32
85
  const sig = `${state.busy}|${state.connected}|${reason}`;
33
86
  if (lastStateLog.get(file) === sig)
34
87
  return;