baxian 1.2.15 → 1.2.17

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.
@@ -143,6 +143,9 @@ export declare class AgentManager {
143
143
  protected compactIdlePollMs: number;
144
144
  protected manualCompactWaitMs: number;
145
145
  protected clearContextWaitMs: number;
146
+ protected runtimeLivenessProbeMs: number;
147
+ protected cleanComposerWaitMs: number;
148
+ protected cancelInterruptGuardWaitMs: number;
146
149
  protected postMergeFetchTimeoutMs: number;
147
150
  protected postMergeBranchTimeoutMs: number;
148
151
  private manualReviewInFlight;
@@ -213,6 +216,9 @@ export declare class AgentManager {
213
216
  }>;
214
217
  private resolvePaneId;
215
218
  private interruptPaneAndWaitReady;
219
+ private paneHasLiveTurn;
220
+ private paneRunsRuntime;
221
+ private paneReachedReplReady;
216
222
  private markPaneCancelClearing;
217
223
  private clearPaneContext;
218
224
  failTaskForDispatchError(taskId: string, phase: string, agentId: string, err: DispatchTerminalError): Promise<void>;
@@ -382,6 +388,7 @@ export declare class AgentManager {
382
388
  private deleteLocalBranchInRepo;
383
389
  private runPostMergeCompaction;
384
390
  private acquireCompactGuard;
391
+ private acquireCompactGuardWithin;
385
392
  private tryAcquireCompactGuard;
386
393
  private runPostMergeCompactionSteps;
387
394
  private sendPostMergeSlashCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agent/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agent/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,iBAAiB,EAEjB,UAAU,EACV,aAAa,EACb,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACX,MAAM,oBAAoB,CAAC;AAW5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAgBjD,OAAO,EAAE,SAAS,EAAwB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAML,KAAK,uBAAuB,EAE7B,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,IAAI,CAAC;IACT,cAAc,EAAE,OAAO,CAAC;IAKxB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,OAAO,EAAE;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;QAIxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;gBAVe,OAAO,EAAE;QACvB,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;QAIxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,EACD,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,MAAM,sBAAsB,GAC9B,qBAAqB,GACrB,aAAa,GACb,aAAa,GACb,kBAAkB,GAClB,yBAAyB,GACzB,oBAAoB,CAAC;AAEzB,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;gBADlF,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAKrF;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,MAAM,EAAE,sBAAsB;aAE9B,WAAW,EAAE,OAAO;gBAFpB,MAAM,EAAE,sBAAsB,EAC9C,OAAO,EAAE,MAAM,EACC,WAAW,GAAE,OAAe;CAK/C;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAGjE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAmB7D;AAMD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,aAAa,CAAC;IACtD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EACzB,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,KAAK,EAAE,cAAc,KAClB,SAAS,CAAC;IACf,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB,CAAC,EAAE;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAKD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAiBD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE7F;AAmDD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GACtC,OAAO,CAKT;AAeD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAC/B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,aAAa,CAAC;IAChE,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAClE,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC;IACpC,SAAS,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IACpD,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC7C,SAAS,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAClD,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC9C,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAAkB;IAClD,SAAS,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAG1C,SAAS,CAAC,2BAA2B,SAAS;IAE9C,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,UAAU,CAAmD;IACrE,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAiD;IAC5E,OAAO,CAAC,mBAAmB,CAAsC;IACjE,SAAS,CAAC,yBAAyB,SAAU;IAC7C,SAAS,CAAC,iBAAiB,SAAc;IACzC,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,mBAAmB,SAAS;IACtC,SAAS,CAAC,kBAAkB,SAAU;IAGtC,SAAS,CAAC,sBAAsB,SAAO;IAEvC,SAAS,CAAC,mBAAmB,SAAS;IAItC,SAAS,CAAC,0BAA0B,SAA2C;IAC/E,SAAS,CAAC,uBAAuB,SAAU;IAC3C,SAAS,CAAC,wBAAwB,SAAU;IAE5C,OAAO,CAAC,oBAAoB,CAAqB;IAIjD,OAAO,CAAC,oBAAoB,CAAqB;IAGjD,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;gBAEhC,IAAI,EAAE,gBAAgB;IAqClC,OAAO,CAAC,YAAY;IAMpB,cAAc,IAAI,WAAW,GAAG,SAAS;IAKzC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU;IAOlD,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAQ5C,OAAO,CAAC,eAAe;IASvB,kBAAkB,IAAI,eAAe;IAWrC,OAAO,CAAC,oBAAoB,CAA6B;IAEnD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAU7D,QAAQ;YAWR,WAAW;IASzB,aAAa,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAQ5C,SAAS,IAAI,YAAY;IAIzB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS;IAOlF,gBAAgB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IAQ5D,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIvD,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAItC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YA+E7E,mBAAmB;IA8BjC,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,oBAAoB;YAad,eAAe;YA0Bf,kBAAkB;YA0BlB,uBAAuB;YAOvB,eAAe;YAcf,qBAAqB;YAsBrB,wBAAwB;YAOxB,sBAAsB;YAKtB,iBAAiB;YAcjB,uBAAuB;IAoD/B,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAmFlE,iBAAiB;YA+EjB,mBAAmB;IAmC3B,8BAA8B,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE;QAAE,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAA;KAAO,GACjD,OAAO,CAAC,OAAO,CAAC;IAsGb,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAelE,qBAAqB;IAwHnC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAc5C,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;YAK7B,oBAAoB;IA2DlC,OAAO,CAAC,KAAK;YAcC,qBAAqB;IA0J7B,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAsCb,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,SAAS,GAAG,MAAM,EACxB,IAAI,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GACrG,OAAO,CAAC,OAAO,CAAC;IAwGb,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BrD,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAO,GACnF,OAAO,CAAC,IAAI,CAAC;YA0DF,wBAAwB;IAoBhC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC;YAiM7E,aAAa;YAeb,yBAAyB;YA2DzB,eAAe;YA6Bf,eAAe;YAef,oBAAoB;YAsBpB,sBAAsB;YAoBtB,gBAAgB;IAkDxB,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,IAAI,CAAC;IAmEV,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3C,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAqCvD,uBAAuB,CAC3B,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;YA2BF,qBAAqB;IAiB7B,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDrD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IAiBtD,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoElE,8BAA8B,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GACtE,MAAM;IA+CT,UAAU,IAAI,KAAK,CAAC,WAAW,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAIxD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIzD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAW1D,OAAO,CAAC,0BAA0B;IAkB5B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIlD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIjE,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAI/E,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,GACA,OAAO,CAAC,IAAI,CAAC;IAiBV,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,mCAAmC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpF,gCAAgC,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BjD,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2E1C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAoC9D,WAAW;IAUnB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B/C,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAe1D,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAoBxE,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAI3D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAKnF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK/E,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE;QAAE,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE,EACnC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAClB,SAAS,EACP,aAAa,GACb,UAAU,GACV,OAAO,GACP,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,OAAO,GACP,YAAY,GACZ,YAAY,GACZ,QAAQ,CACX,CAAC,GACD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IA6B7B,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpF,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;YAQT,aAAa;IAW3B,OAAO,CAAC,cAAc;YAMR,kBAAkB;IAOhC,YAAY,IAAI,cAAc;YAIhB,sBAAsB;IAkD9B,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAexB,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC3C,GACA,OAAO,CAAC,SAAS,CAAC;IAyKf,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC3C,EACD,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,OAAO,CAAC,SAAS,CAAC;YA2BP,uBAAuB;IAmGrC,sFAAsF;IAChF,yBAAyB,CAC7B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;YA2Cd,gBAAgB;IA6DxB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIlC,iBAAiB;YAgBjB,gBAAgB;YAqBhB,qBAAqB;YA6BrB,qBAAqB;IAS7B,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;QAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;KAAE,CAAC;IAmHnF,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;QACJ,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAI1B,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC;QACtC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;KACvB,GACL,OAAO,CAAC,OAAO,CAAC;YA+TL,iBAAiB;YAgDjB,sBAAsB;YAqEtB,qBAAqB;YAmBrB,qBAAqB;IA0B7B,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GACxE,OAAO,CAAC,OAAO,CAAC;IAIb,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,OAAO,CAAC;YA8LL,4BAA4B;YAqD5B,2BAA2B;YAY3B,oBAAoB;IAQ5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyMxB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiEvD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAiN9C,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,IAAI,CAAC;IAgCV,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAuOtD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YA2J5C,4BAA4B;IA+E1C,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,6BAA6B;IA+BrC,OAAO,CAAC,8BAA8B;IAyBhC,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,EAC3D,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAO,GACpC,OAAO,CAAC,OAAO,CAAC;YAML,6CAA6C;IAuBrD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA0C7C,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GACzE,OAAO,CAAC,SAAS,CAAC;IAsCf,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB9D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA+HpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgChD,wBAAwB,CAC5B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,IAAI,CAAC;YA6CF,qBAAqB;YAerB,oBAAoB;YAoCpB,uBAAuB;YA2CvB,sBAAsB;YAmBtB,mBAAmB;YAMnB,yBAAyB;IASvC,OAAO,CAAC,sBAAsB;YAMhB,2BAA2B;YA8D3B,yBAAyB;YAkCzB,+BAA+B;IAS7C,OAAO,CAAC,kCAAkC;YAQ5B,sBAAsB;IAmCpC,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO5C,OAAO,CAAC,oBAAoB;YAcd,uBAAuB;YAiCvB,2BAA2B;IAgBnC,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;IAcV,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,GAC1D,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAavC,yBAAyB,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,MAAM,EAAE,UAAU,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/G,OAAO,CAAC,IAAI,CAAC;IAqBV,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAwHhE,wBAAwB,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QACJ,KAAK,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,0FAA0F;QAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,+EAA+E;QAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GACA,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAgOtB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAkJvF,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAgFjF,qBAAqB;IA+B7B,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAO,GACrC,OAAO,CAAC,IAAI,CAAC;IA0CV,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;YAwE5C,iBAAiB;YAkBjB,mBAAmB;YAsBnB,gBAAgB;IAaxB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtD,OAAO,CAAC,cAAc,CAAuC;cAE7C,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAsD9D"}
@@ -8,7 +8,7 @@ import { PostApproveStore } from '../state/post-approve-store.js';
8
8
  import { SkillRegistry } from '../skill/registry.js';
9
9
  import { createRunner, LocalRunner, shellQuote, resolveAgentHost, hostGroupKey } from './runner.js';
10
10
  import { imageFilename, agentHostPath, writeImageToHost } from './image-input.js';
11
- import { TmuxManager, ReplNotReadyError, detectStartupDialog, detectRuntimeMenu, runtimeBusyCheck, hasRuntimeReadyView, hasReplProcTitle, } from './tmux.js';
11
+ import { TmuxManager, ReplNotReadyError, detectStartupDialog, detectRuntimeMenu, runtimeBusyCheck, hasRuntimeReadyView, hasReplProcTitle, hasOscTitleWorking, } from './tmux.js';
12
12
  import { WorktreeManager } from './worktree.js';
13
13
  import { RepoStore, createRepoStoreCache } from './repo-store.js';
14
14
  import { PhaseSignalWatcher } from './phase-signal-watcher.js';
@@ -76,6 +76,8 @@ const DEFAULT_DISPATCH_ACK_TIMEOUT_MS = 30_000;
76
76
  const DEFAULT_DISPATCH_SETTLE_TIMEOUT_MS = 3_000;
77
77
  // Dev-facing deliverable phases that weave the task's uploaded image paths into the prompt.
78
78
  const IMAGE_DISPATCH_PHASES = new Set(['develop', 'code', 'fix', 'server-feedback']);
79
+ // Pane grabs taken to decide live-turn vs static composer; (N-1) * runtimeLivenessProbeMs must exceed 1s.
80
+ const RUNTIME_LIVENESS_SAMPLES = 3;
79
81
  export function canDispatchWithBinding(binding) {
80
82
  return !binding?.taskId && !binding?.creationToken && binding?.status !== 'awaiting_human';
81
83
  }
@@ -98,6 +100,26 @@ const UNCLEARED_PANE_PHASES = new Set(['cancel-clearing', 'cancel-clear-failed']
98
100
  // session. Only cancel's own confirmed-/clear release (fromCancelCleanup) frees one automatically; the
99
101
  // operator recovers via Resume (cancel-interrupt-failed only, after verifying) or DELETE (any).
100
102
  const CANCEL_CLEANUP_HOLD_PHASES = new Set([...UNCLEARED_PANE_PHASES, 'cancel-interrupt-failed']);
103
+ // The cancel flow owns a binding in a cancel-cleanup hold: NO dispatch-failure cleanup may wipe it or
104
+ // overwrite it (else cancel's Phase 2 /clear is skipped and an un-cleared pane is reused). Every binding-wipe
105
+ // path must check this — releaseAgentForTask, rollbackFailedDispatch, startSession cleanup, markAwaitingHuman.
106
+ function isCancelCleanupHold(binding) {
107
+ return binding?.awaitingPhase != null && CANCEL_CLEANUP_HOLD_PHASES.has(binding.awaitingPhase);
108
+ }
109
+ // Cancel-cleanup phases escalate monotonically — a more-locked phase must never be downgraded. cancel-clear-failed
110
+ // (DELETE-only: /clear unconfirmed) outranks cancel-interrupt-failed (Resume-able) and the transient cancel-clearing,
111
+ // so a re-entrant terminal cleanup can't soften "un-cleared, DELETE-only" into a hold Resume would reuse.
112
+ const CANCEL_CLEANUP_PHASE_RANK = {
113
+ 'cancel-clearing': 1,
114
+ 'cancel-interrupt-failed': 2,
115
+ 'cancel-clear-failed': 3,
116
+ };
117
+ function cancelPhaseRank(phase) {
118
+ return phase ? (CANCEL_CLEANUP_PHASE_RANK[phase] ?? 0) : 0;
119
+ }
120
+ function cancelPhaseDowngrades(prev, next) {
121
+ return cancelPhaseRank(next) < cancelPhaseRank(prev);
122
+ }
101
123
  // A prompt line still holding the typed `/clear` (e.g. `❯ /clear`, `› /clear`) = the Enter was swallowed,
102
124
  // so /clear was never submitted. After a real submission /clear wipes the screen and the composer is empty.
103
125
  const CLEAR_PENDING_IN_COMPOSER_RE = /(?:^|\n)[ \t]*[❯>›→][ \t]*\/clear\b/;
@@ -151,6 +173,15 @@ export class AgentManager {
151
173
  compactIdlePollMs = 2_000;
152
174
  manualCompactWaitMs = 5_000;
153
175
  clearContextWaitMs = 30_000;
176
+ // Gap between liveness grabs in interruptPaneAndWaitReady; (SAMPLES-1)*this must exceed 1s + margin so a
177
+ // per-second elapsed-counter tick is always captured (700 * 2 = 1.4s).
178
+ runtimeLivenessProbeMs = 700;
179
+ // How long the post-C-c verify polls for the pane to reach a clean/empty composer before holding.
180
+ cleanComposerWaitMs = 5_000;
181
+ // How long cancel waits for an in-flight dispatch to release the pane mutex before holding (set in the
182
+ // constructor from the actual dispatchAckTimeoutMs). On timeout the pane is classified DELETE-only, not
183
+ // Resume-able, so a longer non-dispatch holder can't leave an un-cleared pane reusable.
184
+ cancelInterruptGuardWaitMs = DEFAULT_DISPATCH_ACK_TIMEOUT_MS + 5_000;
154
185
  postMergeFetchTimeoutMs = 60_000;
155
186
  postMergeBranchTimeoutMs = 10_000;
156
187
  // taskIds with in-flight manual review — second concurrent POST gets 409.
@@ -187,6 +218,9 @@ export class AgentManager {
187
218
  this.reviewStore = deps.reviewStore;
188
219
  this.dispatchAckTimeoutMs = deps.dispatchAckTimeoutMs ?? DEFAULT_DISPATCH_ACK_TIMEOUT_MS;
189
220
  this.dispatchSettleTimeoutMs = deps.dispatchSettleTimeoutMs ?? DEFAULT_DISPATCH_SETTLE_TIMEOUT_MS;
221
+ // Track the ACTUAL ack timeout (a dispatch holds the pane mutex through waitSubmitAck), not a hardcoded
222
+ // default — else an overridden dispatchAckTimeoutMs would let cancel give up before the dispatch releases.
223
+ this.cancelInterruptGuardWaitMs = this.dispatchAckTimeoutMs + 5_000;
190
224
  this.agentIndex = buildAgentIndex(config);
191
225
  this.platformRunner = deps.platformRunner ?? new LocalRunner();
192
226
  this.imageStagingRoot = deps.imageStagingRoot ?? join(tmpdir(), 'baxian-task-images');
@@ -1219,9 +1253,7 @@ export class AgentManager {
1219
1253
  // allowAwaitingHuman caller (startup false-start, review/max-rounds handlers, a terminal-task escape)
1220
1254
  // could reassign the un-cleared/maybe-running pane before cancel confirms /clear. (Operator recovery
1221
1255
  // via resumeAgent / DELETE doesn't go through this path.)
1222
- if (state.awaitingPhase != null
1223
- && CANCEL_CLEANUP_HOLD_PHASES.has(state.awaitingPhase)
1224
- && !opts.fromCancelCleanup) {
1256
+ if (isCancelCleanupHold(state) && !opts.fromCancelCleanup) {
1225
1257
  console.warn(`[AgentManager] releaseAgentForTask: agent ${agentId} ${state.awaitingPhase} (cancel-cleanup hold); refusing auto-release`);
1226
1258
  return false;
1227
1259
  }
@@ -1345,6 +1377,15 @@ export class AgentManager {
1345
1377
  if (actualTask !== expectedTask)
1346
1378
  return AGENT_STORE_NOOP;
1347
1379
  }
1380
+ // A cancel-cleanup hold is owned by the cancel flow: a generic dispatch-failure hold must not overwrite
1381
+ // it, and even a cancel-cleanup phase must not DOWNGRADE it (cancel-clear-failed is DELETE-only — softening
1382
+ // it to cancel-clearing/cancel-interrupt-failed would let Resume reuse an un-cleared pane).
1383
+ if (isCancelCleanupHold(existing)) {
1384
+ if (!CANCEL_CLEANUP_HOLD_PHASES.has(phase))
1385
+ return AGENT_STORE_NOOP;
1386
+ if (cancelPhaseDowngrades(existing.awaitingPhase, phase))
1387
+ return AGENT_STORE_NOOP;
1388
+ }
1348
1389
  projectId = existing.projectId;
1349
1390
  taskId = existing.taskId;
1350
1391
  wrote = true;
@@ -1559,25 +1600,116 @@ export class AgentManager {
1559
1600
  return null;
1560
1601
  }
1561
1602
  }
1562
- // ESC (not Ctrl-C) is the interrupt key both runtimes advertise; returns whether the pane reached idle.
1603
+ // ESC can't clear un-submitted composer text (pane never reaches ready); Ctrl-C does. Under the pane mutex
1604
+ // (no key interleave with a concurrent dispatch), C-c'd only while still the runtime and not mid-turn.
1563
1605
  async interruptPaneAndWaitReady(state, cfg) {
1564
1606
  const paneId = await this.resolvePaneId(state, cfg);
1565
1607
  if (!paneId)
1566
1608
  return false;
1567
1609
  const tmux = new TmuxManager(this.createRunnerFor(cfg));
1610
+ const runtime = agentRuntimeKindFor(cfg);
1611
+ // An in-flight dispatch holds the mutex during its paste/ack; it releases once it sees the now-terminal task,
1612
+ // so wait briefly rather than dropping a cancel-during-paste straight to manual hold.
1613
+ if (!(await this.acquireCompactGuardWithin(cfg.id, this.cancelInterruptGuardWaitMs))) {
1614
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: ${cfg.id} pane mutex still busy after wait; holding (un-cleared)`);
1615
+ // A longer-running holder (post-merge compaction, a slow image write) kept the mutex: cancel never
1616
+ // verified the pane, so classify it un-cleared/DELETE-only. The monotonic phase guard then blocks the
1617
+ // caller from softening it to a Resume-able cancel-interrupt-failed and reusing an un-cleared pane.
1618
+ await this.markAwaitingHuman(cfg.id, 'cancel-clear-failed', 'Cancel could not acquire the pane mutex to interrupt/clear (a dispatch/compact/upload held it); the ' +
1619
+ 'pane state is unverified and may still hold the cancelled session. DELETE the agent to discard it.', { expectedTaskId: state.taskId });
1620
+ return false;
1621
+ }
1568
1622
  try {
1569
- await tmux.sendKeysToPane(paneId, 'Escape');
1570
- await new Promise(r => setTimeout(r, 200));
1623
+ try {
1624
+ await tmux.sendKeysToPane(paneId, 'Escape');
1625
+ await new Promise(r => setTimeout(r, 200));
1626
+ }
1627
+ catch (err) {
1628
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: send Escape failed for pane ${paneId}:`, err);
1629
+ return false;
1630
+ }
1631
+ if (await this.paneReachedReplReady(tmux, paneId, runtime, 10_000))
1632
+ return true;
1633
+ // Ctrl-C can only restore a runtime prompt: if the pane crashed back to a shell or a human took it
1634
+ // over, it would hit their session instead — hold for a human.
1635
+ if (!(await this.paneRunsRuntime(tmux, paneId, runtime)))
1636
+ return false;
1637
+ if (await this.paneHasLiveTurn(tmux, paneId, runtime)) {
1638
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: pane ${paneId} still running a turn after ESC; holding`);
1639
+ return false;
1640
+ }
1641
+ // Re-confirm: the runtime could have crashed to a shell during the ~1.4s liveness window; C-c must not
1642
+ // land in a foreign session.
1643
+ if (!(await this.paneRunsRuntime(tmux, paneId, runtime)))
1644
+ return false;
1645
+ try {
1646
+ await tmux.sendKeysToPane(paneId, 'C-c');
1647
+ await new Promise(r => setTimeout(r, 200));
1648
+ }
1649
+ catch (err) {
1650
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: send C-c (composer clear) failed for pane ${paneId}:`, err);
1651
+ return false;
1652
+ }
1653
+ // Verify the OUTCOME via the canonical readiness check, not a guessed pre-state.
1654
+ return this.paneReachedReplReady(tmux, paneId, runtime, this.cleanComposerWaitMs);
1655
+ }
1656
+ finally {
1657
+ this.compactInFlight.delete(cfg.id);
1658
+ }
1659
+ }
1660
+ // Liveness = change across samples (pollution-immune): a static screen AND a static title are inert; only a
1661
+ // repaint or an advancing OSC braille title is a live turn. (A stale working-shaped title doesn't change.)
1662
+ async paneHasLiveTurn(tmux, paneId, runtime) {
1663
+ let first;
1664
+ let firstTitle;
1665
+ try {
1666
+ first = await tmux.capturePaneById(paneId, { ansi: false, scrollback: 0 });
1667
+ firstTitle = await tmux.readPaneTitle(paneId);
1668
+ }
1669
+ catch (err) {
1670
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: liveness capture failed for pane ${paneId}:`, err);
1671
+ return true;
1672
+ }
1673
+ for (let i = 1; i < RUNTIME_LIVENESS_SAMPLES; i++) {
1674
+ await new Promise(r => setTimeout(r, this.runtimeLivenessProbeMs));
1675
+ let frame;
1676
+ let title;
1677
+ try {
1678
+ frame = await tmux.capturePaneById(paneId, { ansi: false, scrollback: 0 });
1679
+ title = await tmux.readPaneTitle(paneId);
1680
+ }
1681
+ catch (err) {
1682
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: liveness re-capture failed for pane ${paneId}:`, err);
1683
+ return true;
1684
+ }
1685
+ if (title !== firstTitle && hasOscTitleWorking(title))
1686
+ return true; // advancing spinner → live, even over a ready-looking frame
1687
+ if (hasRuntimeReadyView(frame, runtime))
1688
+ return false; // visible idle overrides only a STATIC (stale) working title
1689
+ if (frame !== first)
1690
+ return true;
1691
+ }
1692
+ return false;
1693
+ }
1694
+ // Ctrl-C must only hit the runtime: confirm the pane's process is still codex/claude, else hold for a human.
1695
+ async paneRunsRuntime(tmux, paneId, runtime) {
1696
+ let proc;
1697
+ try {
1698
+ proc = await tmux.displayMessage(paneId, '#{pane_current_command}');
1571
1699
  }
1572
1700
  catch (err) {
1573
- console.warn(`[AgentManager] interruptPaneAndWaitReady: send Escape failed for pane ${paneId}:`, err);
1701
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: proc-title read failed for pane ${paneId}:`, err);
1574
1702
  return false;
1575
1703
  }
1704
+ if (!hasReplProcTitle(proc, runtime)) {
1705
+ console.warn(`[AgentManager] interruptPaneAndWaitReady: pane ${paneId} not running ${runtime} (got ${proc.trim()}); holding`);
1706
+ return false;
1707
+ }
1708
+ return true;
1709
+ }
1710
+ async paneReachedReplReady(tmux, paneId, runtime, timeoutMs) {
1576
1711
  try {
1577
- await tmux.waitReplReady(paneId, agentRuntimeKindFor(cfg), {
1578
- timeoutMs: 10_000,
1579
- scrollback: 0,
1580
- });
1712
+ await tmux.waitReplReady(paneId, runtime, { timeoutMs, scrollback: 0 });
1581
1713
  return true;
1582
1714
  }
1583
1715
  catch (err) {
@@ -1594,6 +1726,10 @@ export class AgentManager {
1594
1726
  await this.agentStore.update(agentId, (latest) => {
1595
1727
  if (!latest || latest.taskId !== taskId)
1596
1728
  return AGENT_STORE_NOOP;
1729
+ // Don't downgrade a more-locked hold (e.g. cancel-clear-failed, DELETE-only) back to the transient
1730
+ // cancel-clearing: a re-entrant terminal cleanup must not soften the un-cleared protection.
1731
+ if (cancelPhaseDowngrades(latest.awaitingPhase, 'cancel-clearing'))
1732
+ return AGENT_STORE_NOOP;
1597
1733
  return {
1598
1734
  ...latest,
1599
1735
  status: 'awaiting_human',
@@ -1633,9 +1769,13 @@ export class AgentManager {
1633
1769
  resendIntervalMs: this.compactIdlePollMs,
1634
1770
  });
1635
1771
  await this.waitForReplPromptReady(tmux, paneId, runtime, this.clearContextWaitMs);
1636
- // Positively confirm the composer is empty: a ready anchor alone can sit above a composer that still
1637
- // holds the typed /clear (e.g. acceptComposerChange returned on an unrelated redraw). If /clear is
1638
- // still parked there, it was never submitted — treat as unconfirmed so the caller holds the pane.
1772
+ // A rejected /clear ("…is disabled while a task is in progress.") returns to a bare prompt that now reads
1773
+ // ready — but the context was NOT cleared, so hold the pane instead of releasing it.
1774
+ if (await this.hasRuntimeSlashCommandRejection(tmux, paneId, '/clear')) {
1775
+ console.warn(`[AgentManager] clearPaneContext: /clear rejected (task still in progress) for ${cfg.id}; unconfirmed`);
1776
+ return false;
1777
+ }
1778
+ // /clear still parked in the composer → its Enter was swallowed, never submitted → unconfirmed.
1639
1779
  const afterClear = await tmux.capturePaneById(paneId, { ansi: false, scrollback: 0 });
1640
1780
  if (CLEAR_PENDING_IN_COMPOSER_RE.test(afterClear)) {
1641
1781
  console.warn(`[AgentManager] clearPaneContext: /clear still in composer for ${cfg.id}; unconfirmed`);
@@ -2353,6 +2493,14 @@ export class AgentManager {
2353
2493
  `skipping agent cleanup — agent already reassigned`);
2354
2494
  return;
2355
2495
  }
2496
+ // Cancel may have taken over (markPaneCancelClearing keeps taskId, flips to a cancel-cleanup hold). This
2497
+ // rollback would clear taskId + release the lock, making cancel's Phase 1 skip interrupt + /clear and leave
2498
+ // an un-cleared pane bound to nothing — leave the binding/lock to the cancel owner.
2499
+ if (isCancelCleanupHold(existing)) {
2500
+ console.warn(`[AgentManager] rollback: agent ${agentId} held by cancel cleanup (${existing?.awaitingPhase}); ` +
2501
+ `leaving binding to the owner`);
2502
+ return;
2503
+ }
2356
2504
  const projectId = existing?.projectId ?? this.getAgentConfig(agentId)?.projectId;
2357
2505
  if (!projectId) {
2358
2506
  console.error(`[AgentManager] CRITICAL: cannot resolve projectId for agent ${agentId} during rollback; deleting agent state.`);
@@ -2671,9 +2819,29 @@ export class AgentManager {
2671
2819
  throw new ApiError(409, `Agent ${agentId} compact or upload in progress; retry shortly`);
2672
2820
  }
2673
2821
  try {
2822
+ // Refuse to paste into a pane cancel is tearing down. Re-check BOTH before and after the (slow) host
2823
+ // write: cancel keeps taskId while flipping the hold, and it can land during writeImageToHost.
2824
+ const assertUploadStillValid = async () => {
2825
+ const held = await this.agentStore.get(agentId);
2826
+ if (!held || held.paneId !== paneId) {
2827
+ throw new ApiError(409, `Agent ${agentId} session changed while uploading; image paste aborted`);
2828
+ }
2829
+ const boundTask = held.taskId ? await this.taskStore.get(held.taskId) : null;
2830
+ if (boundTask && TERMINAL_STATUSES.includes(boundTask.status)) {
2831
+ throw new ApiError(409, `Agent ${agentId} task ${held.taskId} is terminal; image upload refused`);
2832
+ }
2833
+ // taskStore.get yielded the loop — re-read the cancel hold LAST so a hold that landed during that await
2834
+ // (e.g. while the slow host write was running) is caught before the paste.
2835
+ const fresh = await this.agentStore.get(agentId);
2836
+ if (!fresh || fresh.paneId !== paneId || isCancelCleanupHold(fresh)) {
2837
+ throw new ApiError(409, `Agent ${agentId} is being cancelled (${fresh?.awaitingPhase}); image upload refused`);
2838
+ }
2839
+ };
2840
+ await assertUploadStillValid();
2674
2841
  const runner = this.createRunnerFor(cfg);
2675
2842
  const path = agentHostPath(agentId, imageFilename(ext));
2676
2843
  await writeImageToHost(runner, path, bytes);
2844
+ await assertUploadStillValid();
2677
2845
  const tmux = new TmuxManager(runner);
2678
2846
  await tmux.injectPrompt(paneId, `${path} `, agentId);
2679
2847
  return { path };
@@ -3111,23 +3279,40 @@ export class AgentManager {
3111
3279
  const now = new Date().toISOString();
3112
3280
  let agentMarkedRunning = false;
3113
3281
  try {
3114
- await this.agentStore.update(agentId, (existing) => ({
3115
- id: agentId,
3116
- projectId: agent.projectId,
3117
- paneId,
3118
- taskId,
3119
- worktreePath,
3120
- repoPath: workdir,
3121
- startedAt: now,
3122
- // Mark this dispatch as mid-bootstrap until the prompt is ack'd — recover() rolls back only a task
3123
- // it can positively see was never delivered, so a crash here doesn't leave it silently stuck.
3124
- bootstrappingTaskId: taskId,
3125
- updatedAt: now,
3126
- ...(existing?.creationToken !== undefined ? { creationToken: existing.creationToken } : {}),
3127
- ...(reuseInjectedSkills
3128
- ? { injectedSkills: { taskId, paneId, skills: reuseInjectedSkills } }
3129
- : {}),
3130
- }));
3282
+ let cancelHoldWon = false;
3283
+ await this.agentStore.update(agentId, (existing) => {
3284
+ // This fresh rebuild would drop awaitingPhase: if cancel raced a hold in, overwriting it skips /clear.
3285
+ if (isCancelCleanupHold(existing)) {
3286
+ cancelHoldWon = true;
3287
+ return AGENT_STORE_NOOP;
3288
+ }
3289
+ return {
3290
+ id: agentId,
3291
+ projectId: agent.projectId,
3292
+ paneId,
3293
+ taskId,
3294
+ worktreePath,
3295
+ repoPath: workdir,
3296
+ startedAt: now,
3297
+ // Mark this dispatch as mid-bootstrap until the prompt is ack'd — recover() rolls back only a task
3298
+ // it can positively see was never delivered, so a crash here doesn't leave it silently stuck.
3299
+ bootstrappingTaskId: taskId,
3300
+ updatedAt: now,
3301
+ ...(existing?.creationToken !== undefined ? { creationToken: existing.creationToken } : {}),
3302
+ ...(reuseInjectedSkills
3303
+ ? { injectedSkills: { taskId, paneId, skills: reuseInjectedSkills } }
3304
+ : {}),
3305
+ };
3306
+ });
3307
+ if (cancelHoldWon) {
3308
+ console.warn(`[AgentManager] startSession[${phase}]: agent ${agentId} entered a cancel-cleanup hold during dispatch; ` +
3309
+ `aborting so cancel can finish interrupt + /clear`);
3310
+ try {
3311
+ await worktree.removeWithBranch(workdir, worktreePath, customBranch);
3312
+ }
3313
+ catch { }
3314
+ return false;
3315
+ }
3131
3316
  agentMarkedRunning = true;
3132
3317
  const ack = await this.injectAndAwaitAck(tmux, paneId, prompt, agentId, agent.runtime);
3133
3318
  // Prompt delivered → clear the mid-bootstrap marker IMMEDIATELY, before the slower persist/emit/watch
@@ -3184,6 +3369,14 @@ export class AgentManager {
3184
3369
  `(taskId=${agentNow?.taskId}, expected ${taskId}); skipping`);
3185
3370
  return AGENT_STORE_NOOP;
3186
3371
  }
3372
+ // Cancel may have taken over the binding while we waited for the pane mutex: markPaneCancelClearing
3373
+ // keeps taskId but flips it to a cancel-cleanup hold. Tearing it down here would drop that hold and
3374
+ // make cancel's Phase 2 skip /clear, reusing an un-cleared pane — leave it to the cancel owner.
3375
+ if (isCancelCleanupHold(agentNow)) {
3376
+ console.warn(`[AgentManager] startSession cleanup agentStore: agent ${agentId} held by cancel cleanup ` +
3377
+ `(${agentNow.awaitingPhase}); leaving binding to the owner`);
3378
+ return AGENT_STORE_NOOP;
3379
+ }
3187
3380
  released = true;
3188
3381
  void err;
3189
3382
  return {
@@ -3220,6 +3413,24 @@ export class AgentManager {
3220
3413
  if (!now || now.paneId !== before.paneId || now.taskId !== before.taskId) {
3221
3414
  throw new Error(`dispatch aborted: agent ${agentId} binding changed while waiting for pane mutex`);
3222
3415
  }
3416
+ // Refuse to inject a cancelled task's prompt into a pane cancel is about to /clear — else this
3417
+ // dispatch wins the mutex in cancel's interrupt→/clear gap and clearPaneContext fails to re-acquire
3418
+ // it, stranding the agent at cancel-clear-failed. Cancel persists the agent hold
3419
+ // (markPaneCancelClearing, keeps taskId) BEFORE flipping the task terminal, so check the hold too —
3420
+ // a task-status-only check would slip through the window between the two writes.
3421
+ if (isCancelCleanupHold(now)) {
3422
+ throw new Error(`dispatch aborted: agent ${agentId} taken over by cancel (${now.awaitingPhase}) while waiting for pane mutex`);
3423
+ }
3424
+ const boundTask = now.taskId ? await this.taskStore.get(now.taskId) : null;
3425
+ if (boundTask && TERMINAL_STATUSES.includes(boundTask.status)) {
3426
+ throw new Error(`dispatch aborted: task ${now.taskId} for agent ${agentId} went terminal while waiting for pane mutex`);
3427
+ }
3428
+ // taskStore.get yielded the loop — re-read right before the paste so a cancel hold that landed during
3429
+ // that await can't slip an injection into a pane cancel has taken over.
3430
+ const fresh = await this.agentStore.get(agentId);
3431
+ if (!fresh || fresh.paneId !== before.paneId || fresh.taskId !== before.taskId || isCancelCleanupHold(fresh)) {
3432
+ throw new Error(`dispatch aborted: agent ${agentId} taken over by cancel before paste`);
3433
+ }
3223
3434
  }
3224
3435
  return await this.injectAndAwaitAckSteps(tmux, paneId, prompt, agentId, runtime);
3225
3436
  }
@@ -3615,7 +3826,7 @@ export class AgentManager {
3615
3826
  // A cancel-cleanup hold must NOT be auto-released on restart (it would reuse the cancelled,
3616
3827
  // un-cleared/maybe-running pane). cancel-interrupt-failed has shouldReleaseHeldBinding=true (it's
3617
3828
  // operator-Resume recoverable), so exclude the whole cancel-cleanup set here explicitly.
3618
- const cancelHold = state.awaitingPhase != null && CANCEL_CLEANUP_HOLD_PHASES.has(state.awaitingPhase);
3829
+ const cancelHold = isCancelCleanupHold(state);
3619
3830
  const shouldReleaseBinding = shouldReleaseHeldBinding(state, boundTask) && !cancelHold;
3620
3831
  // 释放 binding 时同步清 worktree(与 resumeAgent 一致)——否则跨重启恢复后
3621
3832
  // worktreePath 在下面 update 中被丢弃,磁盘上的 worktree 永远无人回收。
@@ -4913,6 +5124,15 @@ export class AgentManager {
4913
5124
  await new Promise(r => setTimeout(r, this.compactIdlePollMs));
4914
5125
  }
4915
5126
  }
5127
+ async acquireCompactGuardWithin(agentId, timeoutMs) {
5128
+ const deadline = Date.now() + timeoutMs;
5129
+ while (!this.tryAcquireCompactGuard(agentId)) {
5130
+ if (Date.now() >= deadline)
5131
+ return false;
5132
+ await new Promise(r => setTimeout(r, this.compactIdlePollMs));
5133
+ }
5134
+ return true;
5135
+ }
4916
5136
  tryAcquireCompactGuard(agentId) {
4917
5137
  if (this.compactInFlight.has(agentId))
4918
5138
  return false;
@@ -4925,6 +5145,7 @@ export class AgentManager {
4925
5145
  return !!s && s.taskId === originalTaskId && s.paneId === paneId;
4926
5146
  };
4927
5147
  let attempts = 0;
5148
+ let cleared = false;
4928
5149
  while (attempts < 2) {
4929
5150
  attempts++;
4930
5151
  try {
@@ -4938,8 +5159,22 @@ export class AgentManager {
4938
5159
  if (!await bindingStillOurs())
4939
5160
  return;
4940
5161
  await tmux.injectPrompt(paneId, prompt, agentId);
5162
+ // Resend a swallowed first Enter (bracketed-paste TUI quirk); settle so baseline holds the paste.
5163
+ const baseline = await tmux.captureSettledSnapshot(paneId, { timeoutMs: this.dispatchSettleTimeoutMs });
4941
5164
  await tmux.sendEnter(paneId);
4942
- await new Promise(r => setTimeout(r, this.compactIdlePollMs));
5165
+ try {
5166
+ await tmux.waitSubmitAck(paneId, baseline, runtime, {
5167
+ timeoutMs: this.dispatchAckTimeoutMs,
5168
+ resend: () => tmux.sendEnter(paneId),
5169
+ resendIntervalMs: this.dispatchAckResendIntervalMs,
5170
+ });
5171
+ }
5172
+ catch (ackErr) {
5173
+ // Only a genuine ack timeout is best-effort; other (infra) errors must reach the outer retry.
5174
+ if (!(ackErr instanceof Error && /runtime ack timeout/.test(ackErr.message)))
5175
+ throw ackErr;
5176
+ console.warn(`[AgentManager] post-merge notification ack timeout (${agentId}, pane ${paneId}):`, ackErr);
5177
+ }
4943
5178
  await this.waitForReplPromptReady(tmux, paneId, runtime, this.compactIdleWaitMs);
4944
5179
  if (!await bindingStillOurs())
4945
5180
  return;
@@ -4947,6 +5182,7 @@ export class AgentManager {
4947
5182
  if (!await this.sendPostMergeSlashCommand(tmux, paneId, agentId, runtime, command, bindingStillOurs)) {
4948
5183
  return;
4949
5184
  }
5185
+ cleared = true;
4950
5186
  break;
4951
5187
  }
4952
5188
  catch (err) {
@@ -4954,6 +5190,9 @@ export class AgentManager {
4954
5190
  console.warn(`[AgentManager] runPostMergeCompaction(${agentId}) attempt ${attempts} failed (${label}):`, err);
4955
5191
  }
4956
5192
  }
5193
+ // Give-up: clear the injected-but-unsubmitted notification; hold (don't release) if it can't be cleared.
5194
+ if (!cleared && !await this.clearComposerForReuse(tmux, paneId, agentId))
5195
+ return;
4957
5196
  await this.releasePostMergeAgent(agentId, originalTaskId);
4958
5197
  }
4959
5198
  async sendPostMergeSlashCommand(tmux, paneId, agentId, runtime, command, bindingStillOurs) {
@@ -5683,9 +5922,27 @@ export class AgentManager {
5683
5922
  if (opts.expectedTaskId !== undefined && state?.taskId !== opts.expectedTaskId) {
5684
5923
  throw new Error(`injectTextToAgent: agent ${agentId} no longer bound to ${opts.expectedTaskId}`);
5685
5924
  }
5925
+ // Same cancel race as the prompt dispatch: cancel persists the agent hold (keeps taskId) before the
5926
+ // task flips terminal, and this responder can win the mutex in cancel's interrupt→/clear gap. Refuse to
5927
+ // inject into a pane cancel is tearing down — by the hold AND by terminal task status.
5928
+ if (isCancelCleanupHold(state)) {
5929
+ throw new Error(`injectTextToAgent: agent ${agentId} taken over by cancel (${state?.awaitingPhase}); refusing injection`);
5930
+ }
5931
+ const boundTask = state?.taskId ? await this.taskStore.get(state.taskId) : null;
5932
+ if (boundTask && TERMINAL_STATUSES.includes(boundTask.status)) {
5933
+ throw new Error(`injectTextToAgent: task ${state?.taskId} for agent ${agentId} is terminal; refusing injection`);
5934
+ }
5686
5935
  const paneId = state?.paneId;
5687
5936
  if (!paneId)
5688
5937
  throw new Error(`injectTextToAgent: agent ${agentId} has no live pane`);
5938
+ // taskStore.get yielded the loop — re-read right before the paste so a cancel hold that landed during
5939
+ // that await can't slip text into a pane cancel has taken over.
5940
+ const fresh = await this.agentStore.get(agentId);
5941
+ if (!fresh || fresh.paneId !== paneId
5942
+ || (opts.expectedTaskId !== undefined && fresh.taskId !== opts.expectedTaskId)
5943
+ || isCancelCleanupHold(fresh)) {
5944
+ throw new Error(`injectTextToAgent: agent ${agentId} taken over by cancel before paste`);
5945
+ }
5689
5946
  const tmux = new TmuxManager(this.createRunnerFor(cfg));
5690
5947
  await tmux.injectPrompt(paneId, text, agentId);
5691
5948
  await tmux.sendEnter(paneId);