aicodeman 1.5.1 → 1.6.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.
- package/README.md +48 -12
- package/README.zh-CN.md +68 -12
- package/dist/remote-hosts.d.ts +61 -1
- package/dist/remote-hosts.d.ts.map +1 -1
- package/dist/remote-hosts.js +142 -0
- package/dist/remote-hosts.js.map +1 -1
- package/dist/remote-reconnect.d.ts +129 -0
- package/dist/remote-reconnect.d.ts.map +1 -0
- package/dist/remote-reconnect.js +119 -0
- package/dist/remote-reconnect.js.map +1 -0
- package/dist/services/unified-session-service.d.ts +13 -1
- package/dist/services/unified-session-service.d.ts.map +1 -1
- package/dist/services/unified-session-service.js +88 -3
- package/dist/services/unified-session-service.js.map +1 -1
- package/dist/session-order.d.ts +40 -0
- package/dist/session-order.d.ts.map +1 -0
- package/dist/session-order.js +67 -0
- package/dist/session-order.js.map +1 -0
- package/dist/session.d.ts +39 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +87 -19
- package/dist/session.js.map +1 -1
- package/dist/state-store.d.ts +12 -0
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js +33 -0
- package/dist/state-store.js.map +1 -1
- package/dist/tmux-manager.d.ts +66 -0
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +226 -2
- package/dist/tmux-manager.js.map +1 -1
- package/dist/types/app-state.d.ts +2 -0
- package/dist/types/app-state.d.ts.map +1 -1
- package/dist/types/app-state.js.map +1 -1
- package/dist/types/session.d.ts +42 -0
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js.map +1 -1
- package/dist/web/public/admin-ui.js +303 -6
- package/dist/web/public/admin-ui.js.br +0 -0
- package/dist/web/public/admin-ui.js.gz +0 -0
- package/dist/web/public/api-client.c9b1cddc.js.gz +0 -0
- package/dist/web/public/app.9367fd20.js +38 -0
- package/dist/web/public/app.9367fd20.js.br +0 -0
- package/dist/web/public/app.9367fd20.js.gz +0 -0
- package/dist/web/public/{constants.ad3a8031.js → constants.21a0a83e.js} +9 -0
- package/dist/web/public/constants.21a0a83e.js.br +0 -0
- package/dist/web/public/{constants.ad3a8031.js.gz → constants.21a0a83e.js.gz} +0 -0
- package/dist/web/public/cron-ui.js.gz +0 -0
- package/dist/web/public/image-input.ee16ad88.js.gz +0 -0
- package/dist/web/public/index.html +34 -11
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/input-cjk.63794d0b.js.gz +0 -0
- package/dist/web/public/keyboard-accessory.3f91acef.js.gz +0 -0
- package/dist/web/public/mobile-handlers.b5a667ef.js.gz +0 -0
- package/dist/web/public/mobile.6a53092b.css +1 -0
- package/dist/web/public/mobile.6a53092b.css.br +0 -0
- package/dist/web/public/mobile.6a53092b.css.gz +0 -0
- package/dist/web/public/notification-manager.ca9dc40d.js.gz +0 -0
- package/dist/web/public/orchestrator-panel.js.gz +0 -0
- package/dist/web/public/{panels-ui.3c9b0465.js → panels-ui.58582d4c.js} +2 -2
- package/dist/web/public/panels-ui.58582d4c.js.br +0 -0
- package/dist/web/public/panels-ui.58582d4c.js.gz +0 -0
- package/dist/web/public/ralph-panel.6de2d0f8.js.gz +0 -0
- package/dist/web/public/ralph-wizard.13a1831e.js.gz +0 -0
- package/dist/web/public/respawn-ui.2d249da9.js.gz +0 -0
- package/dist/web/public/sanitize-html.bc7078d6.js.gz +0 -0
- package/dist/web/public/{session-ui.e5d4f9b5.js → session-ui.0cf86dd4.js} +30 -22
- package/dist/web/public/session-ui.0cf86dd4.js.br +0 -0
- package/dist/web/public/session-ui.0cf86dd4.js.gz +0 -0
- package/dist/web/public/{settings-ui.29214cf1.js → settings-ui.bc5f4792.js} +2 -2
- package/dist/web/public/settings-ui.bc5f4792.js.br +0 -0
- package/dist/web/public/settings-ui.bc5f4792.js.gz +0 -0
- package/dist/web/public/styles.e9dc275f.css +1 -0
- package/dist/web/public/styles.e9dc275f.css.br +0 -0
- package/dist/web/public/styles.e9dc275f.css.gz +0 -0
- package/dist/web/public/subagent-windows.69b60c35.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/terminal-ui.9ea677e9.js +3 -0
- package/dist/web/public/terminal-ui.9ea677e9.js.br +0 -0
- package/dist/web/public/terminal-ui.9ea677e9.js.gz +0 -0
- package/dist/web/public/ultracode-panel.js.gz +0 -0
- package/dist/web/public/ultracode-windows.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/dompurify.min.js.gz +0 -0
- package/dist/web/public/vendor/marked.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-serialize.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.137ad9f0.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.085e9e73.js.gz +0 -0
- package/dist/web/routes/admin-routes.d.ts +2 -0
- package/dist/web/routes/admin-routes.d.ts.map +1 -1
- package/dist/web/routes/admin-routes.js +91 -2
- package/dist/web/routes/admin-routes.js.map +1 -1
- package/dist/web/routes/case-routes.d.ts.map +1 -1
- package/dist/web/routes/case-routes.js +19 -1
- package/dist/web/routes/case-routes.js.map +1 -1
- package/dist/web/routes/session-routes.d.ts.map +1 -1
- package/dist/web/routes/session-routes.js +140 -3
- package/dist/web/routes/session-routes.js.map +1 -1
- package/dist/web/schemas.d.ts +13 -0
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +31 -0
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +9 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +57 -1
- package/dist/web/server.js.map +1 -1
- package/dist/web/sse-events.d.ts +15 -0
- package/dist/web/sse-events.d.ts.map +1 -1
- package/dist/web/sse-events.js +18 -0
- package/dist/web/sse-events.js.map +1 -1
- package/package.json +1 -1
- package/dist/web/public/app.1ccca158.js +0 -38
- package/dist/web/public/app.1ccca158.js.br +0 -0
- package/dist/web/public/app.1ccca158.js.gz +0 -0
- package/dist/web/public/constants.ad3a8031.js.br +0 -0
- package/dist/web/public/mobile.597136a6.css +0 -1
- package/dist/web/public/mobile.597136a6.css.br +0 -0
- package/dist/web/public/mobile.597136a6.css.gz +0 -0
- package/dist/web/public/panels-ui.3c9b0465.js.br +0 -0
- package/dist/web/public/panels-ui.3c9b0465.js.gz +0 -0
- package/dist/web/public/session-ui.e5d4f9b5.js.br +0 -0
- package/dist/web/public/session-ui.e5d4f9b5.js.gz +0 -0
- package/dist/web/public/settings-ui.29214cf1.js.br +0 -0
- package/dist/web/public/settings-ui.29214cf1.js.gz +0 -0
- package/dist/web/public/styles.9e6cdb9d.css +0 -1
- package/dist/web/public/styles.9e6cdb9d.css.br +0 -0
- package/dist/web/public/styles.9e6cdb9d.css.gz +0 -0
- package/dist/web/public/terminal-ui.efda6083.js +0 -3
- package/dist/web/public/terminal-ui.efda6083.js.br +0 -0
- package/dist/web/public/terminal-ui.efda6083.js.gz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,EACL,QAAQ,EAER,iBAAiB,EAEjB,WAAW,EAEX,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AA+BpB,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAA6B;IAGvD,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,kBAAkB,CAAkB;IAG5C,OAAO,CAAC,aAAa,CAA8B;gBAEvC,QAAQ,CAAC,EAAE,MAAM;IA8B7B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,IAAI;IAoBZ;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,EACL,QAAQ,EAER,iBAAiB,EAEjB,WAAW,EAEX,UAAU,EACV,eAAe,EAChB,MAAM,YAAY,CAAC;AA+BpB,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,kBAAkB,CAA6B;IAGvD,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,kBAAkB,CAAkB;IAG5C,OAAO,CAAC,aAAa,CAA8B;gBAEvC,QAAQ,CAAC,EAAE,MAAM;IA8B7B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,IAAI;IAoBZ;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,cAAc;YAsBR,YAAY;IA4D1B;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAiDf;;;OAGG;IACH,iBAAiB,IAAI,OAAO;IAmB5B;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAM3B,iEAAiE;IACjE,KAAK,IAAI,IAAI;IAIb,iDAAiD;IACjD,QAAQ,IAAI,QAAQ;IAIpB,sDAAsD;IACtD,WAAW;IAIX,2DAA2D;IAC3D,UAAU,CAAC,EAAE,EAAE,MAAM;IAIrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAM5D,6DAA6D;IAC7D,aAAa,CAAC,EAAE,EAAE,MAAM;IAOxB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ;IAYrE;;;;OAIG;IACH,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG;QACnD,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C;IAyBD,gDAAgD;IAChD,QAAQ;IAIR,wDAAwD;IACxD,OAAO,CAAC,EAAE,EAAE,MAAM;IAIlB,uDAAuD;IACvD,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAKnD,0DAA0D;IAC1D,UAAU,CAAC,EAAE,EAAE,MAAM;IAKrB,oCAAoC;IACpC,iBAAiB;IAIjB,8EAA8E;IAC9E,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAO3D,yEAAyE;IACzE,oBAAoB;IAIpB,qFAAqF;IACrF,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAUjF,+DAA+D;IAC/D,sBAAsB;IAOtB,kDAAkD;IAClD,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAC;IAKhE,2DAA2D;IAC3D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,iBAAiB,EAAE,OAAO,GAAG,IAAI;IAIhE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,iBAAiB,EAAE,OAAO,GAAG,IAAI;IAMpE,6DAA6D;IAC7D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,sDAAsD;IACtD,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;IAKtE,+EAA+E;IAC/E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,iBAAiB,EAAE,UAAU,GAAG,IAAI;IAM1E,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKlC,6CAA6C;IAC7C,SAAS;IAIT,2EAA2E;IAC3E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAK7C,+EAA+E;IAC/E,eAAe,IAAI,MAAM,EAAE;IAI3B,iGAAiG;IACjG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAKtC,gEAAgE;IAChE,KAAK,IAAI,IAAI;IAYb,8DAA8D;IAC9D,cAAc,IAAI,WAAW;IAO7B;;;OAGG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAsB/E,qDAAqD;IACrD,wBAAwB,IAAI,IAAI;IAOhC;;;OAGG;IACH,iBAAiB,CACf,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAClG;QACD,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,mBAAmB,EAAE,MAAM,CAAC;KAC7B;IAyBD,4CAA4C;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAE/C;;OAEG;IACH,aAAa,IAAI,UAAU;IAU3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,eAAe,CAA0B;IACjD,OAAO,CAAC,gBAAgB,CAAc;IAEtC;;;;;;OAMG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAqDrF;;;;OAIG;IACH,aAAa,CAAC,IAAI,GAAE,MAAW,GAAG,eAAe,EAAE;IAOnD,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsC1B,+DAA+D;IAC/D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAI1D,oEAAoE;IACpE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKhE;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;IAW3F,uEAAuE;IACvE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOzC,mDAAmD;IACnD,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAInD,8EAA8E;IAC9E,QAAQ,IAAI,IAAI;CAwBjB;AAKD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAKtD"}
|
package/dist/state-store.js
CHANGED
|
@@ -250,6 +250,9 @@ export class StateStore {
|
|
|
250
250
|
if (this.state.cronJobRuns) {
|
|
251
251
|
parts.push(`"cronJobRuns":${JSON.stringify(this.state.cronJobRuns)}`);
|
|
252
252
|
}
|
|
253
|
+
if (this.state.sessionOrder) {
|
|
254
|
+
parts.push(`"sessionOrder":${JSON.stringify(this.state.sessionOrder)}`);
|
|
255
|
+
}
|
|
253
256
|
return `{${parts.join(',')}}`;
|
|
254
257
|
}
|
|
255
258
|
serializeState() {
|
|
@@ -440,6 +443,25 @@ export class StateStore {
|
|
|
440
443
|
this.dirtySessions.delete(id);
|
|
441
444
|
this.save();
|
|
442
445
|
}
|
|
446
|
+
/**
|
|
447
|
+
* COD-142: Remove a session's persisted record on kill UNLESS it is pinned.
|
|
448
|
+
* A pinned session is demoted to a lightweight `stopped` record (pin retained)
|
|
449
|
+
* so it stays visible in the session-manager pinned group and survives restart.
|
|
450
|
+
* Unpinned sessions are fully removed (unchanged behavior).
|
|
451
|
+
* @returns 'preserved' if demoted to stopped+pinned, 'removed' if deleted, 'absent' if no record existed.
|
|
452
|
+
*/
|
|
453
|
+
demoteOrRemoveSession(id) {
|
|
454
|
+
const existing = this.state.sessions[id];
|
|
455
|
+
if (!existing)
|
|
456
|
+
return 'absent';
|
|
457
|
+
if (existing.pinned === true) {
|
|
458
|
+
// Demote in place: keep identity/resume fields + pin, mark stopped, clear live runtime.
|
|
459
|
+
this.setSession(id, { ...existing, status: 'stopped', pid: null });
|
|
460
|
+
return 'preserved';
|
|
461
|
+
}
|
|
462
|
+
this.removeSession(id);
|
|
463
|
+
return 'removed';
|
|
464
|
+
}
|
|
443
465
|
/**
|
|
444
466
|
* Cleans up stale sessions from state that don't have corresponding active sessions.
|
|
445
467
|
* @param activeSessionIds - Set of currently active session IDs
|
|
@@ -450,6 +472,8 @@ export class StateStore {
|
|
|
450
472
|
const cleaned = [];
|
|
451
473
|
for (const sessionId of allSessionIds) {
|
|
452
474
|
if (!activeSessionIds.has(sessionId)) {
|
|
475
|
+
if (this.state.sessions[sessionId]?.pinned === true)
|
|
476
|
+
continue; // COD-142: pinned records persist even with no live session
|
|
453
477
|
const name = this.state.sessions[sessionId]?.name;
|
|
454
478
|
cleaned.push({ id: sessionId, name });
|
|
455
479
|
delete this.state.sessions[sessionId];
|
|
@@ -565,6 +589,15 @@ export class StateStore {
|
|
|
565
589
|
this.state.config = { ...this.state.config, ...config };
|
|
566
590
|
this.save();
|
|
567
591
|
}
|
|
592
|
+
/** Returns the global tab order (ordered sessionIds), [] if unset. COD-131. */
|
|
593
|
+
getSessionOrder() {
|
|
594
|
+
return this.state.sessionOrder ?? [];
|
|
595
|
+
}
|
|
596
|
+
/** Persists the global tab order (ordered sessionIds) and triggers a debounced save. COD-131. */
|
|
597
|
+
setSessionOrder(order) {
|
|
598
|
+
this.state.sessionOrder = order;
|
|
599
|
+
this.save();
|
|
600
|
+
}
|
|
568
601
|
/** Resets all state to initial values and saves immediately. */
|
|
569
602
|
reset() {
|
|
570
603
|
this.state = createInitialState();
|
package/dist/state-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"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"}
|
package/dist/tmux-manager.d.ts
CHANGED
|
@@ -213,6 +213,27 @@ export declare function buildDockerRemoveCommand(docker: SessionDocker): string;
|
|
|
213
213
|
* launch path (createSession/respawnPane no-op under VITEST).
|
|
214
214
|
*/
|
|
215
215
|
export declare function resolveDockerLaunchOptions(mode: SessionMode, docker: SessionDocker, sessionId: string, resumeSessionId?: string): DockerLaunchOptions;
|
|
216
|
+
/**
|
|
217
|
+
* COD-105 — build the SSH command that ATTACHES to an EXISTING `codeman-*` tmux
|
|
218
|
+
* session on the remote host (one this Codeman didn't create — discovered via
|
|
219
|
+
* `listRemoteCodemanSessions`). Sibling of `buildRemoteLaunchCommand`.
|
|
220
|
+
*
|
|
221
|
+
* Emits:
|
|
222
|
+
* ssh -o BatchMode=yes -t [<COD-107 connection opts>] user@host \
|
|
223
|
+
* 'tmux -L codeman attach -t <session>'
|
|
224
|
+
*
|
|
225
|
+
* - `attach` (NOT `new-session -A`) so we only join an existing session; the
|
|
226
|
+
* remote session keeps running independent of us, which is exactly why the
|
|
227
|
+
* resulting Codeman session is NON-OWNED (see `SessionRemote.owned`): closing
|
|
228
|
+
* the local tab must detach, never `kill-session` the remote.
|
|
229
|
+
* - The remote session name is shell-escaped so a value with metachars stays a
|
|
230
|
+
* single token inside the quoted tmux invocation.
|
|
231
|
+
* - COD-107 — connection options (`-p`, `-i`, `-J`, SOCKS `-o ProxyCommand`,
|
|
232
|
+
* arbitrary `-o`) come from the shared `buildSshConnectionArgs`, so attach
|
|
233
|
+
* connects identically to launch / discovery / the prereq probe. `-t` sits
|
|
234
|
+
* right after `ssh -o BatchMode=yes` (a PTY is required for interactive tmux).
|
|
235
|
+
*/
|
|
236
|
+
export declare function buildRemoteAttachCommand(remote: SessionRemote, remoteSessionName: string): string;
|
|
216
237
|
/**
|
|
217
238
|
* Manages tmux sessions that wrap Claude CLI or shell processes.
|
|
218
239
|
*
|
|
@@ -240,6 +261,15 @@ export declare class TmuxManager extends EventEmitter implements TerminalMultipl
|
|
|
240
261
|
private mouseSyncInterval;
|
|
241
262
|
/** Track last-known pane count per session to avoid unnecessary tmux set-option calls */
|
|
242
263
|
private lastPaneCount;
|
|
264
|
+
/** Periodic watcher that re-establishes dropped remote sessions. */
|
|
265
|
+
private remoteReconnectInterval;
|
|
266
|
+
/** Per-session backoff/attempt bookkeeping (sessionId → state). */
|
|
267
|
+
private reconnectState;
|
|
268
|
+
/**
|
|
269
|
+
* Sessions excluded from auto-reconnect because they are being intentionally
|
|
270
|
+
* torn down (killed/detached/stopping). A guarded session is NEVER revived.
|
|
271
|
+
*/
|
|
272
|
+
private reconnectGuard;
|
|
243
273
|
private trueColorConfigured;
|
|
244
274
|
constructor();
|
|
245
275
|
/** The dedicated tmux socket all Codeman sessions live on (see {@link TerminalMultiplexer.muxSocket}). */
|
|
@@ -349,6 +379,42 @@ export declare class TmuxManager extends EventEmitter implements TerminalMultipl
|
|
|
349
379
|
*/
|
|
350
380
|
startMouseModeSync(intervalMs?: number): void;
|
|
351
381
|
stopMouseModeSync(): void;
|
|
382
|
+
/**
|
|
383
|
+
* Start the remote-reconnect watcher (COD-108). Each tick, for every tracked
|
|
384
|
+
* session with `session.remote` whose local pane is DEAD, not intentionally
|
|
385
|
+
* guarded, and within its backoff budget, emit `remoteSessionDropped` so the
|
|
386
|
+
* session owner reattaches (re-running the idempotent remote command rejoins
|
|
387
|
+
* the durable remote tmux session). After the attempt cap, emit
|
|
388
|
+
* `remoteReconnectExhausted` once and go quiet.
|
|
389
|
+
*
|
|
390
|
+
* No-op tick body under `IS_TEST_MODE` (mirrors `startMouseModeSync`): tests
|
|
391
|
+
* drive the logic deterministically via {@link runRemoteReconnectTick}.
|
|
392
|
+
*/
|
|
393
|
+
startRemoteReconnectWatcher(intervalMs?: number): void;
|
|
394
|
+
stopRemoteReconnectWatcher(): void;
|
|
395
|
+
/**
|
|
396
|
+
* Run ONE watcher tick. Extracted (and given an injected `now`/`enabled`) so
|
|
397
|
+
* the reconnect logic is deterministically testable even though the live
|
|
398
|
+
* `setInterval` body no-ops under test mode. For each remote session it
|
|
399
|
+
* applies the pure {@link decideReconnect} decision and translates the result
|
|
400
|
+
* into events + backoff/state transitions. Public for tests + the watcher.
|
|
401
|
+
*/
|
|
402
|
+
runRemoteReconnectTick(now: number, enabled: boolean): void;
|
|
403
|
+
/**
|
|
404
|
+
* Tell the watcher a reattach attempt for `sessionId` finished. On success,
|
|
405
|
+
* reset the backoff so the session is healthy again; on failure, just clear
|
|
406
|
+
* the in-flight flag so the next due tick can retry under the existing
|
|
407
|
+
* backoff schedule. Called by the session owner after `respawnPane`.
|
|
408
|
+
*/
|
|
409
|
+
noteRemoteReconnect(sessionId: string, success: boolean): void;
|
|
410
|
+
/**
|
|
411
|
+
* Exclude a session from auto-reconnect (intentional teardown). Adds it to the
|
|
412
|
+
* guard set and drops any backoff state so a closed/killed tab — especially a
|
|
413
|
+
* non-owned remote DETACH — is never auto-revived. Idempotent.
|
|
414
|
+
*/
|
|
415
|
+
guardRemoteReconnect(sessionId: string): void;
|
|
416
|
+
/** Clear all per-session reconnect + guard state (e.g. when a session is removed). */
|
|
417
|
+
clearRemoteReconnectState(sessionId: string): void;
|
|
352
418
|
destroy(): void;
|
|
353
419
|
registerSession(session: MuxSession): void;
|
|
354
420
|
setAttached(sessionId: string, attached: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,OAAO,EACL,YAAY,EACZ,sBAAsB,EAGtB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAEnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EASL,KAAK,mBAAmB,EAExB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tmux-manager.d.ts","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/tmux-manager.js
CHANGED
|
@@ -34,6 +34,7 @@ import { buildEffortCliArgs } from './session-cli-builder.js';
|
|
|
34
34
|
import { buildSshConnectionArgs, defaultRemoteCommandForMode, remoteSshTarget } from './remote-hosts.js';
|
|
35
35
|
import { buildDockerBaseArgs, buildDockerCreateArgs, containerApiUrl, CONTAINER_HOME, defaultDockerCommandForMode, hostGatewayAlias, resolveDockerClaudeArtifacts, resolveDockerCredentialArtifacts, } from './docker-hosts.js';
|
|
36
36
|
import { wrapWithNice, SAFE_PATH_PATTERN, findClaudeDir, resolveOpenCodeDir, resolveCodexDir, resolveGeminiDir, } from './utils/index.js';
|
|
37
|
+
import { decideReconnect, advanceBackoff, freshReconnectState, resetReconnectState, } from './remote-reconnect.js';
|
|
37
38
|
// ============================================================================
|
|
38
39
|
// Timing Constants
|
|
39
40
|
// ============================================================================
|
|
@@ -57,6 +58,8 @@ const TMUX_KILL_WAIT_MS = 200;
|
|
|
57
58
|
const GRACEFUL_SHUTDOWN_WAIT_MS = 100;
|
|
58
59
|
/** Default stats collection interval (2 seconds) */
|
|
59
60
|
const DEFAULT_STATS_INTERVAL_MS = 2000;
|
|
61
|
+
/** Default remote-reconnect watcher poll interval (5 seconds) — COD-108 */
|
|
62
|
+
const DEFAULT_REMOTE_RECONNECT_INTERVAL_MS = 5000;
|
|
60
63
|
/** Stable cwd for tmux server/pane launch; actual session cwd is reached inside the pane. */
|
|
61
64
|
const TMUX_LAUNCH_CWD = '/tmp';
|
|
62
65
|
/** Claude Code native macOS recommendation for avoiding low nofile startup failures. */
|
|
@@ -77,6 +80,20 @@ export const CLAUDE_CODE_NOFILE_LIMIT = 2147483646;
|
|
|
77
80
|
const IS_TEST_MODE = !!process.env.VITEST;
|
|
78
81
|
/** Path to persisted mux session metadata */
|
|
79
82
|
const MUX_SESSIONS_FILE = dataPath('mux-sessions.json');
|
|
83
|
+
/**
|
|
84
|
+
* COD-108 kill-switch: `remoteAutoReconnect` app setting (default ON). Read at
|
|
85
|
+
* call time (like headroom routing) so a settings change takes effect without a
|
|
86
|
+
* restart. Absent/non-boolean ⇒ true (feature on).
|
|
87
|
+
*/
|
|
88
|
+
function isRemoteAutoReconnectEnabled() {
|
|
89
|
+
try {
|
|
90
|
+
const s = JSON.parse(readFileSync(dataPath('settings.json'), 'utf8'));
|
|
91
|
+
return typeof s.remoteAutoReconnect === 'boolean' ? s.remoteAutoReconnect : true;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
80
97
|
/** Regex to validate tmux session names (only allow safe characters) */
|
|
81
98
|
const SAFE_MUX_NAME_PATTERN = /^codeman-[a-f0-9-]+$/;
|
|
82
99
|
/** Legacy pattern for pre-rename sessions (claudeman- prefix) */
|
|
@@ -687,6 +704,13 @@ export function buildRemoteLaunchCommand(options) {
|
|
|
687
704
|
`set -t ${remoteName} mouse off`,
|
|
688
705
|
`set -t ${remoteName} prefix C-q`,
|
|
689
706
|
'set -s escape-time 0',
|
|
707
|
+
// COD-106 — shared/collaborative sessions: tmux defaults to sizing a window
|
|
708
|
+
// to the SMALLEST attached client, so two Codemans at different viewports
|
|
709
|
+
// would fight (clamp to the smaller). `window-size latest` sizes to the
|
|
710
|
+
// most-recently-active client instead, so concurrent clients coexist.
|
|
711
|
+
// Per-session scoped (`set -t <name>`, matching #145's hardening) so a shared
|
|
712
|
+
// remote tmux server's other sessions keep their own sizing behavior.
|
|
713
|
+
`set -t ${remoteName} window-size latest`,
|
|
690
714
|
].join(' \\; ');
|
|
691
715
|
// ssh runs its trailing args through the remote login shell, so the entire
|
|
692
716
|
// tmux invocation is passed as one shell-quoted argument.
|
|
@@ -959,6 +983,48 @@ export function resolveDockerLaunchOptions(mode, docker, sessionId, resumeSessio
|
|
|
959
983
|
: [];
|
|
960
984
|
return { mode, docker, sessionId, resumeSessionId, createContext, execEnv, execEnvNames, seedCopies };
|
|
961
985
|
}
|
|
986
|
+
/**
|
|
987
|
+
* COD-105 — build the SSH command that ATTACHES to an EXISTING `codeman-*` tmux
|
|
988
|
+
* session on the remote host (one this Codeman didn't create — discovered via
|
|
989
|
+
* `listRemoteCodemanSessions`). Sibling of `buildRemoteLaunchCommand`.
|
|
990
|
+
*
|
|
991
|
+
* Emits:
|
|
992
|
+
* ssh -o BatchMode=yes -t [<COD-107 connection opts>] user@host \
|
|
993
|
+
* 'tmux -L codeman attach -t <session>'
|
|
994
|
+
*
|
|
995
|
+
* - `attach` (NOT `new-session -A`) so we only join an existing session; the
|
|
996
|
+
* remote session keeps running independent of us, which is exactly why the
|
|
997
|
+
* resulting Codeman session is NON-OWNED (see `SessionRemote.owned`): closing
|
|
998
|
+
* the local tab must detach, never `kill-session` the remote.
|
|
999
|
+
* - The remote session name is shell-escaped so a value with metachars stays a
|
|
1000
|
+
* single token inside the quoted tmux invocation.
|
|
1001
|
+
* - COD-107 — connection options (`-p`, `-i`, `-J`, SOCKS `-o ProxyCommand`,
|
|
1002
|
+
* arbitrary `-o`) come from the shared `buildSshConnectionArgs`, so attach
|
|
1003
|
+
* connects identically to launch / discovery / the prereq probe. `-t` sits
|
|
1004
|
+
* right after `ssh -o BatchMode=yes` (a PTY is required for interactive tmux).
|
|
1005
|
+
*/
|
|
1006
|
+
export function buildRemoteAttachCommand(remote, remoteSessionName) {
|
|
1007
|
+
const tmuxInvocation = `tmux -L codeman attach -t ${shellescape(remoteSessionName)}`;
|
|
1008
|
+
const [ssh, batchMode, ...connectionArgs] = buildSshConnectionArgs(remote);
|
|
1009
|
+
const sshParts = [ssh, batchMode, '-t', ...connectionArgs, remoteSshTarget(remote), shellescape(tmuxInvocation)];
|
|
1010
|
+
return sshParts.join(' ');
|
|
1011
|
+
}
|
|
1012
|
+
/**
|
|
1013
|
+
* COD-105 — choose the right remote ssh command for a session's ownership:
|
|
1014
|
+
* - NON-owned (`remote.owned === false`): ATTACH to a discovered remote tmux
|
|
1015
|
+
* session by its EXISTING name (`remote.remoteSessionName`, falling back to
|
|
1016
|
+
* this session's deterministic name). We only join — never create.
|
|
1017
|
+
* - owned (default): LAUNCH/attach-or-create via `buildRemoteLaunchCommand`
|
|
1018
|
+
* (COD-104), which we then own and may explicitly kill.
|
|
1019
|
+
*/
|
|
1020
|
+
function buildRemoteSessionCommand(options) {
|
|
1021
|
+
const { remote, sessionId } = options;
|
|
1022
|
+
if (remote.owned === false) {
|
|
1023
|
+
const target = remote.remoteSessionName || remoteTmuxSessionName(sessionId);
|
|
1024
|
+
return buildRemoteAttachCommand(remote, target);
|
|
1025
|
+
}
|
|
1026
|
+
return buildRemoteLaunchCommand(options);
|
|
1027
|
+
}
|
|
962
1028
|
/**
|
|
963
1029
|
* Set sensitive environment variables on a tmux session via setenv.
|
|
964
1030
|
* These are inherited by panes but not visible in ps output or tmux history.
|
|
@@ -1112,6 +1178,16 @@ export class TmuxManager extends EventEmitter {
|
|
|
1112
1178
|
mouseSyncInterval = null;
|
|
1113
1179
|
/** Track last-known pane count per session to avoid unnecessary tmux set-option calls */
|
|
1114
1180
|
lastPaneCount = new Map();
|
|
1181
|
+
// ── COD-108 remote-reconnect watcher state ────────────────────────────────
|
|
1182
|
+
/** Periodic watcher that re-establishes dropped remote sessions. */
|
|
1183
|
+
remoteReconnectInterval = null;
|
|
1184
|
+
/** Per-session backoff/attempt bookkeeping (sessionId → state). */
|
|
1185
|
+
reconnectState = new Map();
|
|
1186
|
+
/**
|
|
1187
|
+
* Sessions excluded from auto-reconnect because they are being intentionally
|
|
1188
|
+
* torn down (killed/detached/stopping). A guarded session is NEVER revived.
|
|
1189
|
+
*/
|
|
1190
|
+
reconnectGuard = new Set();
|
|
1115
1191
|
trueColorConfigured = false;
|
|
1116
1192
|
constructor() {
|
|
1117
1193
|
super();
|
|
@@ -1396,7 +1472,7 @@ export class TmuxManager extends EventEmitter {
|
|
|
1396
1472
|
const fullCmd = docker
|
|
1397
1473
|
? buildDockerLaunchCommand(resolveDockerLaunchOptions(mode, docker, sessionId, resumeSessionId))
|
|
1398
1474
|
: remote
|
|
1399
|
-
?
|
|
1475
|
+
? buildRemoteSessionCommand({ mode, remote, sessionId, claudeMode, allowedTools })
|
|
1400
1476
|
: localFullCmd;
|
|
1401
1477
|
// Create tmux session in three steps to handle cold-start (no server running)
|
|
1402
1478
|
// and avoid the race where the command exits before remain-on-exit is set:
|
|
@@ -1615,7 +1691,7 @@ export class TmuxManager extends EventEmitter {
|
|
|
1615
1691
|
const fullCmd = docker
|
|
1616
1692
|
? buildDockerLaunchCommand(resolveDockerLaunchOptions(mode, docker, sessionId, resumeSessionId))
|
|
1617
1693
|
: remote
|
|
1618
|
-
?
|
|
1694
|
+
? buildRemoteSessionCommand({ mode, remote, sessionId, claudeMode, allowedTools })
|
|
1619
1695
|
: localFullCmd;
|
|
1620
1696
|
try {
|
|
1621
1697
|
// For OpenCode: set sensitive env vars via tmux setenv before respawn
|
|
@@ -1724,9 +1800,15 @@ export class TmuxManager extends EventEmitter {
|
|
|
1724
1800
|
if (!session) {
|
|
1725
1801
|
return false;
|
|
1726
1802
|
}
|
|
1803
|
+
// COD-108: an intentional kill/detach must NEVER be auto-revived by the
|
|
1804
|
+
// remote-reconnect watcher. Guard BEFORE any teardown so a tick that fires
|
|
1805
|
+
// mid-kill (especially the non-owned DETACH early-return below, where the
|
|
1806
|
+
// dead local pane would otherwise look reconnectable) sees the guard.
|
|
1807
|
+
this.guardRemoteReconnect(sessionId);
|
|
1727
1808
|
// TEST MODE: Remove from memory only — NEVER touch real tmux sessions
|
|
1728
1809
|
if (IS_TEST_MODE) {
|
|
1729
1810
|
this.sessions.delete(sessionId);
|
|
1811
|
+
this.clearRemoteReconnectState(sessionId);
|
|
1730
1812
|
this.emit('sessionKilled', { sessionId });
|
|
1731
1813
|
return true;
|
|
1732
1814
|
}
|
|
@@ -1736,6 +1818,40 @@ export class TmuxManager extends EventEmitter {
|
|
|
1736
1818
|
console.error(`[TmuxManager] BLOCKED: Refusing to kill own tmux session: ${session.muxName}`);
|
|
1737
1819
|
return false;
|
|
1738
1820
|
}
|
|
1821
|
+
// COD-105 — DETACH-NOT-KILL for NON-owned remote sessions.
|
|
1822
|
+
//
|
|
1823
|
+
// When this session was created by ATTACHING a remote tmux session another
|
|
1824
|
+
// Codeman owns (`remote.owned === false`), closing the tab must NOT propagate
|
|
1825
|
+
// a remote `tmux kill-session` — that would nuke work the remote's own
|
|
1826
|
+
// Codeman (or another instance) still relies on. We tear down ONLY the LOCAL
|
|
1827
|
+
// pane that holds the ssh client: killing the local ssh sends SIGHUP to its
|
|
1828
|
+
// remote `tmux attach`, which DETACHES (the durable remote session survives).
|
|
1829
|
+
//
|
|
1830
|
+
// This early return is the structural guarantee: no code below this point
|
|
1831
|
+
// (now or in future for owned sessions) can ever issue a remote kill-session
|
|
1832
|
+
// for a non-owned session. The only `kill-session` we run is on OUR LOCAL
|
|
1833
|
+
// socket (`this.tmux()` = `tmux -L codeman` on THIS host), which kills the
|
|
1834
|
+
// local pane — it does NOT reach the REMOTE socket.
|
|
1835
|
+
if (session.remote && session.remote.owned === false) {
|
|
1836
|
+
console.log(`[TmuxManager] DETACH (non-owned remote): tearing down local pane only for ${session.muxName}`);
|
|
1837
|
+
if (isValidMuxName(session.muxName)) {
|
|
1838
|
+
try {
|
|
1839
|
+
// Local socket only — detaches the remote session by killing the local ssh pane.
|
|
1840
|
+
execSync(`${this.tmux()} kill-session -t "${session.muxName}" 2>/dev/null`, {
|
|
1841
|
+
timeout: EXEC_TIMEOUT_MS,
|
|
1842
|
+
});
|
|
1843
|
+
}
|
|
1844
|
+
catch {
|
|
1845
|
+
// Local pane may already be gone.
|
|
1846
|
+
}
|
|
1847
|
+
}
|
|
1848
|
+
this.lastPaneCount.delete(session.muxName);
|
|
1849
|
+
this.sessions.delete(sessionId);
|
|
1850
|
+
this.clearRemoteReconnectState(sessionId);
|
|
1851
|
+
this.saveSessions();
|
|
1852
|
+
this.emit('sessionKilled', { sessionId });
|
|
1853
|
+
return true;
|
|
1854
|
+
}
|
|
1739
1855
|
// Get current PID (may have changed)
|
|
1740
1856
|
const currentPid = this.getPanePid(session.muxName) || session.pid;
|
|
1741
1857
|
console.log(`[TmuxManager] Killing session ${session.muxName} (PID ${currentPid})`);
|
|
@@ -1834,6 +1950,7 @@ export class TmuxManager extends EventEmitter {
|
|
|
1834
1950
|
}
|
|
1835
1951
|
this.lastPaneCount.delete(session.muxName);
|
|
1836
1952
|
this.sessions.delete(sessionId);
|
|
1953
|
+
this.clearRemoteReconnectState(sessionId);
|
|
1837
1954
|
this.saveSessions();
|
|
1838
1955
|
this.emit('sessionKilled', { sessionId });
|
|
1839
1956
|
return true;
|
|
@@ -1895,6 +2012,7 @@ export class TmuxManager extends EventEmitter {
|
|
|
1895
2012
|
else {
|
|
1896
2013
|
dead.push(sessionId);
|
|
1897
2014
|
this.sessions.delete(sessionId);
|
|
2015
|
+
this.clearRemoteReconnectState(sessionId);
|
|
1898
2016
|
this.emit('sessionDied', { sessionId });
|
|
1899
2017
|
}
|
|
1900
2018
|
}
|
|
@@ -2131,9 +2249,115 @@ export class TmuxManager extends EventEmitter {
|
|
|
2131
2249
|
}
|
|
2132
2250
|
this.lastPaneCount.clear();
|
|
2133
2251
|
}
|
|
2252
|
+
// ── COD-108 remote-session auto-reconnect watcher ─────────────────────────
|
|
2253
|
+
/**
|
|
2254
|
+
* Start the remote-reconnect watcher (COD-108). Each tick, for every tracked
|
|
2255
|
+
* session with `session.remote` whose local pane is DEAD, not intentionally
|
|
2256
|
+
* guarded, and within its backoff budget, emit `remoteSessionDropped` so the
|
|
2257
|
+
* session owner reattaches (re-running the idempotent remote command rejoins
|
|
2258
|
+
* the durable remote tmux session). After the attempt cap, emit
|
|
2259
|
+
* `remoteReconnectExhausted` once and go quiet.
|
|
2260
|
+
*
|
|
2261
|
+
* No-op tick body under `IS_TEST_MODE` (mirrors `startMouseModeSync`): tests
|
|
2262
|
+
* drive the logic deterministically via {@link runRemoteReconnectTick}.
|
|
2263
|
+
*/
|
|
2264
|
+
startRemoteReconnectWatcher(intervalMs = DEFAULT_REMOTE_RECONNECT_INTERVAL_MS) {
|
|
2265
|
+
if (this.remoteReconnectInterval) {
|
|
2266
|
+
clearInterval(this.remoteReconnectInterval);
|
|
2267
|
+
}
|
|
2268
|
+
this.remoteReconnectInterval = setInterval(() => {
|
|
2269
|
+
if (IS_TEST_MODE)
|
|
2270
|
+
return;
|
|
2271
|
+
try {
|
|
2272
|
+
this.runRemoteReconnectTick(Date.now(), isRemoteAutoReconnectEnabled());
|
|
2273
|
+
}
|
|
2274
|
+
catch (err) {
|
|
2275
|
+
console.error('[TmuxManager] Remote reconnect watcher error:', err);
|
|
2276
|
+
}
|
|
2277
|
+
}, intervalMs);
|
|
2278
|
+
}
|
|
2279
|
+
stopRemoteReconnectWatcher() {
|
|
2280
|
+
if (this.remoteReconnectInterval) {
|
|
2281
|
+
clearInterval(this.remoteReconnectInterval);
|
|
2282
|
+
this.remoteReconnectInterval = null;
|
|
2283
|
+
}
|
|
2284
|
+
}
|
|
2285
|
+
/**
|
|
2286
|
+
* Run ONE watcher tick. Extracted (and given an injected `now`/`enabled`) so
|
|
2287
|
+
* the reconnect logic is deterministically testable even though the live
|
|
2288
|
+
* `setInterval` body no-ops under test mode. For each remote session it
|
|
2289
|
+
* applies the pure {@link decideReconnect} decision and translates the result
|
|
2290
|
+
* into events + backoff/state transitions. Public for tests + the watcher.
|
|
2291
|
+
*/
|
|
2292
|
+
runRemoteReconnectTick(now, enabled) {
|
|
2293
|
+
for (const session of this.sessions.values()) {
|
|
2294
|
+
if (!session.remote)
|
|
2295
|
+
continue;
|
|
2296
|
+
const sessionId = session.sessionId;
|
|
2297
|
+
const state = this.reconnectState.get(sessionId);
|
|
2298
|
+
const action = decideReconnect({
|
|
2299
|
+
session: {
|
|
2300
|
+
sessionId,
|
|
2301
|
+
isRemote: true,
|
|
2302
|
+
paneDead: this.isPaneDead(session.muxName),
|
|
2303
|
+
},
|
|
2304
|
+
state,
|
|
2305
|
+
guarded: this.reconnectGuard.has(sessionId),
|
|
2306
|
+
enabled,
|
|
2307
|
+
now,
|
|
2308
|
+
});
|
|
2309
|
+
if (action.kind === 'emit') {
|
|
2310
|
+
const base = state ?? freshReconnectState();
|
|
2311
|
+
// Mark in-flight + advance backoff BEFORE emitting so a re-entrant tick
|
|
2312
|
+
// (or a synchronous listener) can never stack a second reconnect.
|
|
2313
|
+
this.reconnectState.set(sessionId, { ...advanceBackoff(base, now), inFlight: true });
|
|
2314
|
+
this.emit('remoteSessionDropped', { sessionId, attempt: action.attempt });
|
|
2315
|
+
}
|
|
2316
|
+
else if (action.kind === 'exhaust') {
|
|
2317
|
+
const base = state ?? freshReconnectState();
|
|
2318
|
+
if (!base.exhaustedEmitted) {
|
|
2319
|
+
this.reconnectState.set(sessionId, { ...base, exhausted: true, exhaustedEmitted: true });
|
|
2320
|
+
this.emit('remoteReconnectExhausted', { sessionId });
|
|
2321
|
+
}
|
|
2322
|
+
}
|
|
2323
|
+
// 'skip' → nothing to do.
|
|
2324
|
+
}
|
|
2325
|
+
}
|
|
2326
|
+
/**
|
|
2327
|
+
* Tell the watcher a reattach attempt for `sessionId` finished. On success,
|
|
2328
|
+
* reset the backoff so the session is healthy again; on failure, just clear
|
|
2329
|
+
* the in-flight flag so the next due tick can retry under the existing
|
|
2330
|
+
* backoff schedule. Called by the session owner after `respawnPane`.
|
|
2331
|
+
*/
|
|
2332
|
+
noteRemoteReconnect(sessionId, success) {
|
|
2333
|
+
if (success) {
|
|
2334
|
+
this.reconnectState.set(sessionId, resetReconnectState());
|
|
2335
|
+
return;
|
|
2336
|
+
}
|
|
2337
|
+
const state = this.reconnectState.get(sessionId);
|
|
2338
|
+
if (state)
|
|
2339
|
+
this.reconnectState.set(sessionId, { ...state, inFlight: false });
|
|
2340
|
+
}
|
|
2341
|
+
/**
|
|
2342
|
+
* Exclude a session from auto-reconnect (intentional teardown). Adds it to the
|
|
2343
|
+
* guard set and drops any backoff state so a closed/killed tab — especially a
|
|
2344
|
+
* non-owned remote DETACH — is never auto-revived. Idempotent.
|
|
2345
|
+
*/
|
|
2346
|
+
guardRemoteReconnect(sessionId) {
|
|
2347
|
+
this.reconnectGuard.add(sessionId);
|
|
2348
|
+
this.reconnectState.delete(sessionId);
|
|
2349
|
+
}
|
|
2350
|
+
/** Clear all per-session reconnect + guard state (e.g. when a session is removed). */
|
|
2351
|
+
clearRemoteReconnectState(sessionId) {
|
|
2352
|
+
this.reconnectState.delete(sessionId);
|
|
2353
|
+
this.reconnectGuard.delete(sessionId);
|
|
2354
|
+
}
|
|
2134
2355
|
destroy() {
|
|
2135
2356
|
this.stopStatsCollection();
|
|
2136
2357
|
this.stopMouseModeSync();
|
|
2358
|
+
this.stopRemoteReconnectWatcher();
|
|
2359
|
+
this.reconnectState.clear();
|
|
2360
|
+
this.reconnectGuard.clear();
|
|
2137
2361
|
}
|
|
2138
2362
|
registerSession(session) {
|
|
2139
2363
|
this.sessions.set(session.sessionId, session);
|