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.
- package/dist/agent/manager.d.ts +7 -0
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +291 -34
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/pane-streamer.d.ts.map +1 -1
- package/dist/agent/pane-streamer.js +1 -3
- package/dist/agent/pane-streamer.js.map +1 -1
- package/dist/agent/tmux.d.ts +1 -0
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +12 -5
- package/dist/agent/tmux.js.map +1 -1
- package/dist/web/assets/index-BgUL3TNI.css +1 -0
- package/dist/web/assets/index-CMT0Apmv.js +4 -0
- package/dist/web/index.html +2 -2
- package/package.json +3 -2
- package/dist/web/assets/index-BffCQxGl.js +0 -4
- package/dist/web/assets/index-C-2iqzvs.css +0 -1
package/dist/agent/manager.d.ts
CHANGED
|
@@ -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":"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"}
|
package/dist/agent/manager.js
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
-
|
|
1570
|
-
|
|
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:
|
|
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,
|
|
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
|
-
//
|
|
1637
|
-
//
|
|
1638
|
-
|
|
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
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
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 =
|
|
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
|
-
|
|
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);
|