baxian 1.2.36 → 1.2.38
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/detect/region.d.ts +1 -0
- package/dist/agent/detect/region.d.ts.map +1 -1
- package/dist/agent/detect/region.js +1 -1
- package/dist/agent/detect/region.js.map +1 -1
- package/dist/agent/manager.d.ts +12 -1
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +229 -41
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/preflight.d.ts +4 -1
- package/dist/agent/preflight.d.ts.map +1 -1
- package/dist/agent/preflight.js +12 -4
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/review-transport.js +2 -2
- package/dist/agent/review-transport.js.map +1 -1
- package/dist/agent/tmux-install.d.ts +9 -0
- package/dist/agent/tmux-install.d.ts.map +1 -0
- package/dist/agent/tmux-install.js +149 -0
- package/dist/agent/tmux-install.js.map +1 -0
- package/dist/agent/tmux.d.ts +6 -0
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +107 -12
- package/dist/agent/tmux.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +48 -5
- package/dist/api/projects.js.map +1 -1
- package/dist/api/tasks.d.ts.map +1 -1
- package/dist/api/tasks.js +11 -0
- package/dist/api/tasks.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/normalizer.d.ts.map +1 -1
- package/dist/config/normalizer.js +6 -2
- package/dist/config/normalizer.js.map +1 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +4 -0
- package/dist/config/validator.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +42 -13
- package/dist/event/handlers.js.map +1 -1
- package/dist/event/server-handlers.d.ts.map +1 -1
- package/dist/event/server-handlers.js +35 -10
- package/dist/event/server-handlers.js.map +1 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +9 -1
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/state/agent-store.d.ts.map +1 -1
- package/dist/state/agent-store.js +6 -0
- package/dist/state/agent-store.js.map +1 -1
- package/dist/state/snapshot.js +1 -1
- package/dist/state/snapshot.js.map +1 -1
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +6 -0
- package/dist/state/task-store.js.map +1 -1
- package/dist/web/assets/index-CzC2-plm.js +9 -0
- package/dist/web/assets/{index-uVZrHlU5.css → index-zIzJ4kFn.css} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/index-CGuG6yF2.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CActD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA8FzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"region.js","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"region.js","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"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"}
|
package/dist/agent/manager.d.ts
CHANGED
|
@@ -151,6 +151,7 @@ export declare class AgentManager {
|
|
|
151
151
|
protected postMergeBranchTimeoutMs: number;
|
|
152
152
|
private manualReviewInFlight;
|
|
153
153
|
private markCompleteInFlight;
|
|
154
|
+
private specVerdictInFlight;
|
|
154
155
|
private cancelCleanupInFlight;
|
|
155
156
|
private deletionInFlight;
|
|
156
157
|
private compactInFlight;
|
|
@@ -369,9 +370,14 @@ export declare class AgentManager {
|
|
|
369
370
|
description: string;
|
|
370
371
|
preferredAgentId: string;
|
|
371
372
|
}): Promise<void>;
|
|
372
|
-
dispatchReviewToQa(taskId: string
|
|
373
|
+
dispatchReviewToQa(taskId: string, opts?: {
|
|
374
|
+
fromStatus?: TaskStatus[];
|
|
375
|
+
bumpRound?: boolean;
|
|
376
|
+
expectSignalToken?: string;
|
|
377
|
+
}): Promise<TaskState>;
|
|
373
378
|
continueDevRound(taskId: string): Promise<TaskState>;
|
|
374
379
|
private rollbackDispatchReviewPhase1;
|
|
380
|
+
private tearDownWatcherIfTaskTerminal;
|
|
375
381
|
private devInitialSignalKinds;
|
|
376
382
|
private mapTaskStateToExpectedWatcher;
|
|
377
383
|
private mapServerTaskToExpectedWatcher;
|
|
@@ -417,6 +423,11 @@ export declare class AgentManager {
|
|
|
417
423
|
reviewHeadAnchorSha?: string;
|
|
418
424
|
reviewDispatchedAt?: string;
|
|
419
425
|
}): Promise<void>;
|
|
426
|
+
parkTaskAtSpecReady(taskId: string, opts?: {
|
|
427
|
+
specReviewRound?: number;
|
|
428
|
+
}): Promise<TaskState | null>;
|
|
429
|
+
submitSpecVerdict(taskId: string, verdict: 'approve' | 'request-changes', comments?: string): Promise<TaskState>;
|
|
430
|
+
private executeSpecVerdict;
|
|
420
431
|
transitionToCodePhase(taskId: string): Promise<TaskState | null>;
|
|
421
432
|
dispatchServerReviewToQa(taskId: string, opts: {
|
|
422
433
|
phase: TaskPhase;
|
|
@@ -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
|
@@ -2,13 +2,14 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { createSignalToken } from './phase-signal.js';
|
|
5
|
+
import { tmuxInstallHint } from './preflight.js';
|
|
5
6
|
import { BRANCH_PREFIX, isValidBranchName, PHASE_EXPECTED_STATUS, PHASE_REQUIRES_AGENT_BOUND_TO_TASK, TASK_TERMINAL_STATUSES as TERMINAL_STATUSES, TASK_ACTIVE_STATUS_SET as ACTIVE_TASK_STATUSES, isGitHubRepo, repoSlug, } from '../shared/index.js';
|
|
6
7
|
import { AGENT_STORE_NOOP } from '../state/agent-store.js';
|
|
7
8
|
import { PostApproveStore } from '../state/post-approve-store.js';
|
|
8
9
|
import { SkillRegistry } from '../skill/registry.js';
|
|
9
10
|
import { createRunner, LocalRunner, shellQuote, resolveAgentHost, hostGroupKey } from './runner.js';
|
|
10
11
|
import { imageFilename, agentHostPath, writeImageToHost } from './image-input.js';
|
|
11
|
-
import { TmuxManager, ReplNotReadyError, detectStartupDialog, detectRuntimeMenu, runtimeBusyCheck, hasRuntimeReadyView, hasReplProcTitle, hasOscTitleWorking, } from './tmux.js';
|
|
12
|
+
import { TmuxManager, ReplNotReadyError, detectStartupDialog, detectRuntimeMenu, runtimeBusyCheck, hasRuntimeReadyView, hasReplProcTitle, hasOscTitleWorking, hasOscTitleIdle, screenAllowsTitleIdle, } from './tmux.js';
|
|
12
13
|
import { WorktreeManager } from './worktree.js';
|
|
13
14
|
import { RepoStore, createRepoStoreCache } from './repo-store.js';
|
|
14
15
|
import { PhaseSignalWatcher } from './phase-signal-watcher.js';
|
|
@@ -140,6 +141,7 @@ export class AgentManager {
|
|
|
140
141
|
postMergeBranchTimeoutMs = 10_000;
|
|
141
142
|
manualReviewInFlight = new Set();
|
|
142
143
|
markCompleteInFlight = new Set();
|
|
144
|
+
specVerdictInFlight = new Set();
|
|
143
145
|
// 引用计数:cancelTask 与 startCreatedTaskSession 的清理段可合法并存(启动期 Stop),先完成者不得清掉后者的 guard。
|
|
144
146
|
cancelCleanupInFlight = new Map();
|
|
145
147
|
deletionInFlight = new Set();
|
|
@@ -308,7 +310,8 @@ export class AgentManager {
|
|
|
308
310
|
alive = await tmux.hasSession(agentId);
|
|
309
311
|
}
|
|
310
312
|
catch (err) {
|
|
311
|
-
throw new EnsureSessionError({ createdSession: false, agentId }, `tmux probe failed: ${err instanceof Error ? err.message : String(err)}`
|
|
313
|
+
throw new EnsureSessionError({ createdSession: false, agentId }, `tmux probe failed: ${err instanceof Error ? err.message : String(err)}; ` +
|
|
314
|
+
`if tmux is missing, ${tmuxInstallHint(agent.projectId)}`);
|
|
312
315
|
}
|
|
313
316
|
if (mode === 'create' && alive) {
|
|
314
317
|
throw new EnsureSessionError({ createdSession: false, agentId }, `tmux session "${agentId}" already exists on host; baxian only manages sessions ` +
|
|
@@ -1564,7 +1567,7 @@ export class AgentManager {
|
|
|
1564
1567
|
}
|
|
1565
1568
|
async paneReachedReplReady(tmux, paneId, runtime, timeoutMs) {
|
|
1566
1569
|
try {
|
|
1567
|
-
await tmux.waitReplReady(paneId, runtime, { timeoutMs, scrollback: 0 });
|
|
1570
|
+
await tmux.waitReplReady(paneId, runtime, { timeoutMs, scrollback: 0, titleIdleFastPath: true });
|
|
1568
1571
|
return true;
|
|
1569
1572
|
}
|
|
1570
1573
|
catch (err) {
|
|
@@ -1653,6 +1656,7 @@ export class AgentManager {
|
|
|
1653
1656
|
const out = [];
|
|
1654
1657
|
for (const t of tasks) {
|
|
1655
1658
|
const bound = t.agentId === agentId || t.qaAgentId === agentId;
|
|
1659
|
+
// spec-ready 不豁免:approve/打回都依赖 dev worktree,dev 丢失后停驻只是假活
|
|
1656
1660
|
if (t.status === 'ready' || t.status === 'merge-ready')
|
|
1657
1661
|
continue;
|
|
1658
1662
|
if (ACTIVE_TASK_STATUSES.has(t.status) && bound) {
|
|
@@ -3694,6 +3698,9 @@ export class AgentManager {
|
|
|
3694
3698
|
cleanupClaimed = true;
|
|
3695
3699
|
return task;
|
|
3696
3700
|
});
|
|
3701
|
+
// stop again post-write: a rollback may have re-armed between the pre-lock stop() and the cancelled write
|
|
3702
|
+
if (cleanupClaimed)
|
|
3703
|
+
this.phaseSignalWatcher?.stop(taskId);
|
|
3697
3704
|
let devStopConfirmed = false;
|
|
3698
3705
|
// 两阶段:先中断全部 pane 再释放任一 binding,避免 dev 先空闲、被派新任务时旧任务的 qa prompt 仍在跑。
|
|
3699
3706
|
try {
|
|
@@ -3812,7 +3819,7 @@ export class AgentManager {
|
|
|
3812
3819
|
`reduce task description or remove some skills from AGENT_PHASES[develop]`);
|
|
3813
3820
|
}
|
|
3814
3821
|
}
|
|
3815
|
-
async dispatchReviewToQa(taskId) {
|
|
3822
|
+
async dispatchReviewToQa(taskId, opts = {}) {
|
|
3816
3823
|
const claim = await this.withTaskLock(async () => {
|
|
3817
3824
|
if (this.manualReviewInFlight.has(taskId)) {
|
|
3818
3825
|
throw new ApiError(409, `Manual review already in progress for task ${taskId}`);
|
|
@@ -3823,6 +3830,12 @@ export class AgentManager {
|
|
|
3823
3830
|
const task = await this.taskStore.get(taskId);
|
|
3824
3831
|
if (!task)
|
|
3825
3832
|
throw new ApiError(404, `Task ${taskId} not found`);
|
|
3833
|
+
if (opts.fromStatus && !opts.fromStatus.includes(task.status)) {
|
|
3834
|
+
throw new ApiError(409, `Task ${taskId} status is ${task.status}; review dispatch requires ${opts.fromStatus.join('/')}`);
|
|
3835
|
+
}
|
|
3836
|
+
if (opts.expectSignalToken !== undefined && task.signalToken !== opts.expectSignalToken) {
|
|
3837
|
+
throw new ApiError(409, `Task ${taskId} review pass changed during redispatch (signalToken rotated); aborting`);
|
|
3838
|
+
}
|
|
3826
3839
|
if (task.reviewMode === 'server') {
|
|
3827
3840
|
throw new ApiError(409, `Task ${taskId} uses server review mode; Call review applies only to github-mode tasks`);
|
|
3828
3841
|
}
|
|
@@ -3890,6 +3903,17 @@ export class AgentManager {
|
|
|
3890
3903
|
reviewDispatchedAt: pre?.reviewDispatchedAt,
|
|
3891
3904
|
};
|
|
3892
3905
|
const isTerminalAtClaim = TERMINAL_STATUSES.includes(taskStatusAtClaim);
|
|
3906
|
+
const bumpRound = opts.bumpRound !== false;
|
|
3907
|
+
// 回滚在锁内判定 pass 是否已被并发接管并返回;仅未被接管时才释放本次 acquire 的 QA,
|
|
3908
|
+
// 否则会误清接管方 re-acquire 的同一 QA 绑定(同 task 同 agent,绕过 release 的 mismatch 保护)
|
|
3909
|
+
const abortDispatch = async (dispatchToken) => {
|
|
3910
|
+
const takenOver = await this.rollbackDispatchReviewPhase1(taskId, taskStatusAtClaim, isTerminalAtClaim, snapshot, bumpRound, dispatchToken);
|
|
3911
|
+
if (!takenOver)
|
|
3912
|
+
await this.releaseAgentForTask(qaId, taskId, 'idle').catch(() => undefined);
|
|
3913
|
+
if (devParked)
|
|
3914
|
+
await this.emitManualReviewDevParkedQaFailedIntervention(devAgentId, taskId);
|
|
3915
|
+
};
|
|
3916
|
+
let transitionToken;
|
|
3893
3917
|
if (!isTerminalAtClaim) {
|
|
3894
3918
|
const reviewAnchor = await this.fetchPrHeadSha(taskId).catch(() => undefined);
|
|
3895
3919
|
const preDispatched = await this.transitionTaskStatus(taskId, 'review', { fromStatus: [taskStatusAtClaim] }, {
|
|
@@ -3903,26 +3927,45 @@ export class AgentManager {
|
|
|
3903
3927
|
await this.emitManualReviewDevParkedQaFailedIntervention(devAgentId, taskId);
|
|
3904
3928
|
throw new ApiError(409, `Task ${taskId} status changed during dispatch; cannot enter review`);
|
|
3905
3929
|
}
|
|
3930
|
+
transitionToken = preDispatched.task.signalToken;
|
|
3906
3931
|
}
|
|
3907
|
-
|
|
3932
|
+
const armedToken = createSignalToken();
|
|
3933
|
+
// 合并锁段:复核本代 pass 未被并发接管(仍在 review 且持有 transition 写入的 token)
|
|
3934
|
+
// 与写 qaAgentId + 轮换 token 原子完成。withTaskLock 全局串行,接管方的 rotate 无法插在复核与写入之间
|
|
3935
|
+
const claim2 = await this.withTaskLock(async () => {
|
|
3908
3936
|
const fresh = await this.taskStore.get(taskId);
|
|
3909
3937
|
if (!fresh)
|
|
3910
|
-
return;
|
|
3938
|
+
return { ok: false, reason: 'gone' };
|
|
3939
|
+
if (!isTerminalAtClaim && (fresh.status !== 'review' || fresh.signalToken !== transitionToken)) {
|
|
3940
|
+
return { ok: false, reason: fresh.status !== 'review' ? `status=${fresh.status}` : 'pass superseded' };
|
|
3941
|
+
}
|
|
3911
3942
|
await this.taskStore.set({
|
|
3912
3943
|
...fresh,
|
|
3913
|
-
reviewRound: fresh.reviewRound + 1,
|
|
3944
|
+
reviewRound: bumpRound ? fresh.reviewRound + 1 : fresh.reviewRound,
|
|
3914
3945
|
qaAgentId: qaId,
|
|
3946
|
+
signalToken: armedToken,
|
|
3915
3947
|
updatedAt: new Date().toISOString(),
|
|
3916
3948
|
});
|
|
3949
|
+
return { ok: true };
|
|
3917
3950
|
});
|
|
3918
|
-
|
|
3951
|
+
if (!claim2.ok) {
|
|
3952
|
+
// 未写入 armedToken:task 仍持 transitionToken,或已被接管方 rotate/漂移 → 用 transitionToken 判 takeover
|
|
3953
|
+
await abortDispatch(transitionToken);
|
|
3954
|
+
throw new ApiError(409, `Task ${taskId} left its review pass during dispatch (${claim2.reason})`);
|
|
3955
|
+
}
|
|
3956
|
+
const armed = await this.setupPhaseSignalWatcher(taskId, qaId, ['pr-approved', 'pr-changes-requested'], armedToken);
|
|
3919
3957
|
if (!armed) {
|
|
3920
|
-
await
|
|
3921
|
-
await this.releaseAgentForTask(qaId, taskId, 'idle').catch(() => undefined);
|
|
3922
|
-
if (devParked)
|
|
3923
|
-
await this.emitManualReviewDevParkedQaFailedIntervention(devAgentId, taskId);
|
|
3958
|
+
await abortDispatch(armedToken);
|
|
3924
3959
|
throw new ApiError(500, `Failed to arm review verdict watcher for ${taskId}`);
|
|
3925
3960
|
}
|
|
3961
|
+
if (opts.fromStatus) {
|
|
3962
|
+
// arm 到 startSession 之间的漂移复核:status 漂移或 token 被插队 rotate 都放弃本次派发
|
|
3963
|
+
const preStart = await this.taskStore.get(taskId);
|
|
3964
|
+
if (!preStart || !opts.fromStatus.includes(preStart.status) || preStart.signalToken !== armedToken) {
|
|
3965
|
+
await abortDispatch(armedToken);
|
|
3966
|
+
throw new ApiError(409, `Task ${taskId} left ${opts.fromStatus.join('/')} during dispatch (now ${preStart?.status ?? 'gone'})`);
|
|
3967
|
+
}
|
|
3968
|
+
}
|
|
3926
3969
|
let started = false;
|
|
3927
3970
|
try {
|
|
3928
3971
|
started = await this.startSession(taskId, qaId, qaPhase, {
|
|
@@ -3936,20 +3979,12 @@ export class AgentManager {
|
|
|
3936
3979
|
else if (err instanceof EnsureSessionError && err.partial.handled) {
|
|
3937
3980
|
}
|
|
3938
3981
|
else {
|
|
3939
|
-
await
|
|
3940
|
-
await this.releaseAgentForTask(qaId, taskId, 'idle')
|
|
3941
|
-
.catch(() => undefined);
|
|
3942
|
-
if (devParked)
|
|
3943
|
-
await this.emitManualReviewDevParkedQaFailedIntervention(devAgentId, taskId);
|
|
3982
|
+
await abortDispatch(armedToken);
|
|
3944
3983
|
}
|
|
3945
3984
|
throw err;
|
|
3946
3985
|
}
|
|
3947
3986
|
if (!started) {
|
|
3948
|
-
await
|
|
3949
|
-
await this.releaseAgentForTask(qaId, taskId, 'idle')
|
|
3950
|
-
.catch(() => undefined);
|
|
3951
|
-
if (devParked)
|
|
3952
|
-
await this.emitManualReviewDevParkedQaFailedIntervention(devAgentId, taskId);
|
|
3987
|
+
await abortDispatch(armedToken);
|
|
3953
3988
|
throw new ApiError(500, `Failed to start QA review session for ${taskId}`);
|
|
3954
3989
|
}
|
|
3955
3990
|
const final = await this.taskStore.get(taskId);
|
|
@@ -4067,28 +4102,51 @@ export class AgentManager {
|
|
|
4067
4102
|
const fresh = await this.taskStore.get(taskId);
|
|
4068
4103
|
return fresh;
|
|
4069
4104
|
}
|
|
4070
|
-
|
|
4105
|
+
// 返回 qaTakenOverInReview:仍在 review 但 token 已换代 = 另一 dispatcher 已 release+acquire 同一 QA
|
|
4106
|
+
// (同 task 同 agent,releaseAgentForTask 的 mismatch 保护不设防),此时调用方不得再 release QA。
|
|
4107
|
+
// 判定在回滚同一锁段内基于 fresh 完成,是那一刻的权威结论——不受本函数随后恢复 snapshot token 的影响。
|
|
4108
|
+
async rollbackDispatchReviewPhase1(taskId, originalStatus, isTerminalAtClaim, snapshot, roundBumped, dispatchToken) {
|
|
4109
|
+
let qaTakenOverInReview = false;
|
|
4071
4110
|
await this.withTaskLock(async () => {
|
|
4072
4111
|
const fresh = await this.taskStore.get(taskId);
|
|
4073
4112
|
if (!fresh)
|
|
4074
4113
|
return;
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4114
|
+
// only a concurrent cancel/fail into terminal drops the write; a terminal-at-claim recheck still restores snapshot fields
|
|
4115
|
+
if (!isTerminalAtClaim && TERMINAL_STATUSES.includes(fresh.status))
|
|
4116
|
+
return;
|
|
4117
|
+
// transition 后的中间态恒为 review 且持有本次 dispatch 的 token;status 漂移(如 REQUEST_CHANGES→fixing)
|
|
4118
|
+
// 或 review 内 token 换代(push recheck 接管)都表示 pass 已归并发推进方所有,只撤本次 dispatch 的轮次残留
|
|
4119
|
+
const passTakenOver = dispatchToken !== undefined && fresh.signalToken !== dispatchToken;
|
|
4120
|
+
qaTakenOverInReview = !isTerminalAtClaim && fresh.status === 'review' && passTakenOver;
|
|
4121
|
+
const drifted = !isTerminalAtClaim && (fresh.status !== 'review' || passTakenOver);
|
|
4122
|
+
// 只在本次 dispatch 仍拥有该 pass(未 drift)且确实 bump 过时才撤回 +1;
|
|
4123
|
+
// drift 后 reviewRound 归接管方所有(它可能基于此再 bump),一律不减
|
|
4124
|
+
const rolledRound = (!drifted && roundBumped) ? Math.max(0, fresh.reviewRound - 1) : fresh.reviewRound;
|
|
4125
|
+
const next = drifted
|
|
4126
|
+
? { ...fresh, reviewRound: rolledRound, updatedAt: new Date().toISOString() }
|
|
4127
|
+
: {
|
|
4128
|
+
...fresh,
|
|
4129
|
+
reviewRound: rolledRound,
|
|
4130
|
+
qaAgentId: snapshot.qaAgentId,
|
|
4131
|
+
signalToken: snapshot.signalToken,
|
|
4132
|
+
reviewDispatchedAt: snapshot.reviewDispatchedAt,
|
|
4133
|
+
updatedAt: new Date().toISOString(),
|
|
4134
|
+
};
|
|
4135
|
+
if (!isTerminalAtClaim && !drifted) {
|
|
4084
4136
|
next.status = originalStatus;
|
|
4085
4137
|
next.reviewHeadAnchorSha = snapshot.reviewHeadAnchorSha;
|
|
4086
4138
|
}
|
|
4087
4139
|
await this.taskStore.set(next);
|
|
4088
4140
|
});
|
|
4089
4141
|
if (!this.phaseSignalWatcher)
|
|
4090
|
-
return;
|
|
4091
|
-
|
|
4142
|
+
return qaTakenOverInReview;
|
|
4143
|
+
// a terminal task keeps no watcher: tear down one this dispatch armed before failing, then skip re-arming
|
|
4144
|
+
const afterRollback = await this.taskStore.get(taskId);
|
|
4145
|
+
if (afterRollback && TERMINAL_STATUSES.includes(afterRollback.status)) {
|
|
4146
|
+
this.phaseSignalWatcher.stop(taskId);
|
|
4147
|
+
return qaTakenOverInReview;
|
|
4148
|
+
}
|
|
4149
|
+
if (afterRollback?.status === 'approved') {
|
|
4092
4150
|
const completion = await this.postApproveStore.get(taskId);
|
|
4093
4151
|
const task = await this.taskStore.get(taskId);
|
|
4094
4152
|
if (completion && task) {
|
|
@@ -4100,19 +4158,20 @@ export class AgentManager {
|
|
|
4100
4158
|
expectedKinds: 'pr-merge-ready',
|
|
4101
4159
|
token: completion.token,
|
|
4102
4160
|
});
|
|
4161
|
+
await this.tearDownWatcherIfTaskTerminal(taskId);
|
|
4103
4162
|
}
|
|
4104
4163
|
catch (err) {
|
|
4105
4164
|
console.warn(`[AgentManager] rollback: re-establish pr-merge-ready failed for task=${taskId}:`, err);
|
|
4106
4165
|
}
|
|
4107
|
-
return;
|
|
4166
|
+
return qaTakenOverInReview;
|
|
4108
4167
|
}
|
|
4109
4168
|
}
|
|
4110
4169
|
const restored = await this.taskStore.get(taskId);
|
|
4111
4170
|
if (!restored || !restored.signalToken)
|
|
4112
|
-
return;
|
|
4171
|
+
return qaTakenOverInReview;
|
|
4113
4172
|
const mapped = this.mapTaskStateToExpectedWatcher(restored);
|
|
4114
4173
|
if (!mapped)
|
|
4115
|
-
return;
|
|
4174
|
+
return qaTakenOverInReview;
|
|
4116
4175
|
try {
|
|
4117
4176
|
await this.phaseSignalWatcher.start({
|
|
4118
4177
|
taskId,
|
|
@@ -4121,10 +4180,19 @@ export class AgentManager {
|
|
|
4121
4180
|
expectedKinds: mapped.expectedKinds,
|
|
4122
4181
|
token: restored.signalToken,
|
|
4123
4182
|
});
|
|
4183
|
+
await this.tearDownWatcherIfTaskTerminal(taskId);
|
|
4124
4184
|
}
|
|
4125
4185
|
catch (err) {
|
|
4126
4186
|
console.warn(`[AgentManager] rollback: re-establish ${mapped.expectedKinds.join(',')} failed for task=${taskId}:`, err);
|
|
4127
4187
|
}
|
|
4188
|
+
return qaTakenOverInReview;
|
|
4189
|
+
}
|
|
4190
|
+
// a cancel between our start() and the terminal write leaves a watcher on a dead task; re-check and drop it
|
|
4191
|
+
async tearDownWatcherIfTaskTerminal(taskId) {
|
|
4192
|
+
const now = await this.taskStore.get(taskId);
|
|
4193
|
+
if (now && TERMINAL_STATUSES.includes(now.status)) {
|
|
4194
|
+
this.phaseSignalWatcher?.stop(taskId);
|
|
4195
|
+
}
|
|
4128
4196
|
}
|
|
4129
4197
|
devInitialSignalKinds(reviewMode) {
|
|
4130
4198
|
const mode = reviewMode ?? this.config.review.mode ?? 'github';
|
|
@@ -4638,6 +4706,7 @@ export class AgentManager {
|
|
|
4638
4706
|
await tmux.waitReplReady(paneId, runtime, {
|
|
4639
4707
|
timeoutMs,
|
|
4640
4708
|
intervalMs: this.compactIdlePollMs,
|
|
4709
|
+
titleIdleFastPath: true,
|
|
4641
4710
|
});
|
|
4642
4711
|
await new Promise(r => setTimeout(r, this.compactIdlePollMs));
|
|
4643
4712
|
while (true) {
|
|
@@ -4646,7 +4715,8 @@ export class AgentManager {
|
|
|
4646
4715
|
throw new Error(`waitForReplPromptReady: pane ${paneId} pane_current_command=${current.trim()} (not runtime, REPL may have exited)`);
|
|
4647
4716
|
}
|
|
4648
4717
|
const cap = await tmux.capturePaneById(paneId, { ansi: false, scrollback: 0 });
|
|
4649
|
-
const ready = hasRuntimeReadyView(cap, runtime)
|
|
4718
|
+
const ready = hasRuntimeReadyView(cap, runtime)
|
|
4719
|
+
|| (screenAllowsTitleIdle(cap, runtime) && hasOscTitleIdle(await tmux.readPaneTitle(paneId), runtime));
|
|
4650
4720
|
if (detectRuntimeMenu(cap) || (!ready && detectStartupDialog(cap, runtime))) {
|
|
4651
4721
|
throw new Error(`waitForReplPromptReady: pane ${paneId} shows menu/dialog, not a ready REPL prompt`);
|
|
4652
4722
|
}
|
|
@@ -4716,6 +4786,8 @@ export class AgentManager {
|
|
|
4716
4786
|
const fresh = await this.taskStore.get(taskId);
|
|
4717
4787
|
if (!fresh)
|
|
4718
4788
|
return;
|
|
4789
|
+
if (TERMINAL_STATUSES.includes(fresh.status))
|
|
4790
|
+
return;
|
|
4719
4791
|
await this.taskStore.set({
|
|
4720
4792
|
...fresh,
|
|
4721
4793
|
status: restore.status,
|
|
@@ -4731,9 +4803,125 @@ export class AgentManager {
|
|
|
4731
4803
|
const restored = await this.taskStore.get(taskId);
|
|
4732
4804
|
if (!restored?.signalToken)
|
|
4733
4805
|
return;
|
|
4806
|
+
if (TERMINAL_STATUSES.includes(restored.status))
|
|
4807
|
+
return;
|
|
4734
4808
|
const mapped = this.mapTaskStateToExpectedWatcher(restored);
|
|
4735
|
-
if (mapped)
|
|
4809
|
+
if (mapped) {
|
|
4736
4810
|
await this.setupPhaseSignal(taskId, mapped.agentId, mapped.expectedKinds);
|
|
4811
|
+
await this.tearDownWatcherIfTaskTerminal(taskId);
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
async parkTaskAtSpecReady(taskId, opts = {}) {
|
|
4815
|
+
const task = await this.taskStore.get(taskId);
|
|
4816
|
+
if (!task)
|
|
4817
|
+
return null;
|
|
4818
|
+
const transition = await this.transitionTaskStatus(taskId, 'spec-ready', { fromStatus: ['review', 'in_progress', 'fixing'] },
|
|
4819
|
+
// QA 在停驻期解绑,残留 qaAgentId 会让后续 approve/打回误发释放;复审经 findQaPartner 回绑
|
|
4820
|
+
{
|
|
4821
|
+
phase: 'spec',
|
|
4822
|
+
qaAgentId: undefined,
|
|
4823
|
+
...(opts.specReviewRound !== undefined ? { specReviewRound: opts.specReviewRound } : {}),
|
|
4824
|
+
});
|
|
4825
|
+
if (!transition)
|
|
4826
|
+
return null;
|
|
4827
|
+
this.stopPhaseSignalWatcher(taskId);
|
|
4828
|
+
if (task.agentId) {
|
|
4829
|
+
const devOk = await this.markAgentWaiting(task.agentId, taskId).catch(() => false);
|
|
4830
|
+
if (!devOk) {
|
|
4831
|
+
await this.safeEmit({
|
|
4832
|
+
id: '',
|
|
4833
|
+
type: 'human.intervention',
|
|
4834
|
+
timestamp: new Date().toISOString(),
|
|
4835
|
+
projectId: task.projectId,
|
|
4836
|
+
agentId: task.agentId,
|
|
4837
|
+
taskId,
|
|
4838
|
+
data: { phase: 'spec-ready-dev-park-failed', devAgentId: task.agentId },
|
|
4839
|
+
});
|
|
4840
|
+
}
|
|
4841
|
+
}
|
|
4842
|
+
if (task.qaAgentId) {
|
|
4843
|
+
const released = await this.releaseAgentForTask(task.qaAgentId, taskId, 'idle')
|
|
4844
|
+
.catch(() => false);
|
|
4845
|
+
if (!released) {
|
|
4846
|
+
await this.safeEmit({
|
|
4847
|
+
id: '',
|
|
4848
|
+
type: 'human.intervention',
|
|
4849
|
+
timestamp: new Date().toISOString(),
|
|
4850
|
+
projectId: task.projectId,
|
|
4851
|
+
agentId: task.qaAgentId,
|
|
4852
|
+
taskId,
|
|
4853
|
+
data: { phase: 'spec-ready-qa-release-failed', qaAgentId: task.qaAgentId },
|
|
4854
|
+
});
|
|
4855
|
+
}
|
|
4856
|
+
}
|
|
4857
|
+
return transition.task;
|
|
4858
|
+
}
|
|
4859
|
+
async submitSpecVerdict(taskId, verdict, comments) {
|
|
4860
|
+
const trimmed = comments?.trim();
|
|
4861
|
+
if (verdict === 'request-changes' && !trimmed) {
|
|
4862
|
+
throw new ApiError(400, 'comments is required for request-changes');
|
|
4863
|
+
}
|
|
4864
|
+
const task = await this.withTaskLock(async () => {
|
|
4865
|
+
const fresh = await this.taskStore.get(taskId);
|
|
4866
|
+
if (!fresh)
|
|
4867
|
+
throw new ApiError(404, `Task ${taskId} not found`);
|
|
4868
|
+
if (fresh.status !== 'spec-ready') {
|
|
4869
|
+
throw new ApiError(409, `Task ${taskId} is ${fresh.status}; spec verdict requires spec-ready`);
|
|
4870
|
+
}
|
|
4871
|
+
if (this.specVerdictInFlight.has(taskId)) {
|
|
4872
|
+
throw new ApiError(409, `Task ${taskId} spec verdict is already being processed`);
|
|
4873
|
+
}
|
|
4874
|
+
this.specVerdictInFlight.add(taskId);
|
|
4875
|
+
return fresh;
|
|
4876
|
+
});
|
|
4877
|
+
try {
|
|
4878
|
+
return await this.executeSpecVerdict(task, verdict, trimmed);
|
|
4879
|
+
}
|
|
4880
|
+
finally {
|
|
4881
|
+
this.specVerdictInFlight.delete(taskId);
|
|
4882
|
+
}
|
|
4883
|
+
}
|
|
4884
|
+
async executeSpecVerdict(task, verdict, trimmed) {
|
|
4885
|
+
const taskId = task.id;
|
|
4886
|
+
const store = this.getReviewStore();
|
|
4887
|
+
if (!store)
|
|
4888
|
+
throw new ApiError(500, 'Review store unavailable');
|
|
4889
|
+
const round = task.specReviewRound ?? 1;
|
|
4890
|
+
const at = new Date().toISOString();
|
|
4891
|
+
const roundData = await store.getRound(taskId, 'spec', round);
|
|
4892
|
+
// 停驻路径必然已存轮次;缺失时补一条空轮次,保证 userDecision 留痕与 fix 闭环
|
|
4893
|
+
const base = roundData ?? { round, phase: 'spec', content: '', startedAt: at };
|
|
4894
|
+
if (verdict === 'approve') {
|
|
4895
|
+
await store.putRound(taskId, 'spec', { ...base, userDecision: { verdict, at } });
|
|
4896
|
+
const result = await this.transitionToCodePhase(taskId);
|
|
4897
|
+
if (!result)
|
|
4898
|
+
throw new ApiError(500, `Failed to dispatch code phase for task ${taskId}`);
|
|
4899
|
+
return result;
|
|
4900
|
+
}
|
|
4901
|
+
// 打回消耗一轮修订;到达上限时拒绝而非派发注定进 max_rounds 的修订,让用户当场决策
|
|
4902
|
+
const cap = this.getConfig().review.rounds + (task.maxRoundsContinues ?? 0);
|
|
4903
|
+
if (round >= cap) {
|
|
4904
|
+
throw new ApiError(409, `Task ${taskId} has reached the spec review round cap (${cap}); `
|
|
4905
|
+
+ 'approve the spec, or cancel the task and retry with a refined description');
|
|
4906
|
+
}
|
|
4907
|
+
if (!trimmed)
|
|
4908
|
+
throw new ApiError(400, 'comments is required for request-changes');
|
|
4909
|
+
const priorFindings = base.findings?.findings ?? [];
|
|
4910
|
+
const nextUserId = `u-${priorFindings.filter(f => f.id.startsWith('u-')).length + 1}`;
|
|
4911
|
+
const mergedFindings = {
|
|
4912
|
+
round,
|
|
4913
|
+
verdict: 'request-changes',
|
|
4914
|
+
findings: [...priorFindings, { id: nextUserId, severity: 'major', message: trimmed }],
|
|
4915
|
+
};
|
|
4916
|
+
await store.putRound(taskId, 'spec', {
|
|
4917
|
+
...base,
|
|
4918
|
+
findings: mergedFindings,
|
|
4919
|
+
userDecision: { verdict, comments: trimmed, at },
|
|
4920
|
+
});
|
|
4921
|
+
const dispatched = await this.dispatchServerFixToDev(taskId, JSON.stringify(mergedFindings));
|
|
4922
|
+
if (!dispatched)
|
|
4923
|
+
throw new ApiError(500, `Failed to dispatch spec fix for task ${taskId}`);
|
|
4924
|
+
return dispatched;
|
|
4737
4925
|
}
|
|
4738
4926
|
async transitionToCodePhase(taskId) {
|
|
4739
4927
|
const task = await this.taskStore.get(taskId);
|
|
@@ -4743,7 +4931,7 @@ export class AgentManager {
|
|
|
4743
4931
|
if (!devAgentId)
|
|
4744
4932
|
return null;
|
|
4745
4933
|
const newToken = createSignalToken();
|
|
4746
|
-
const transition = await this.transitionTaskStatus(taskId, 'in_progress', { fromStatus: ['review', 'fixing', 'in_progress'] }, { phase: 'code', signalToken: newToken });
|
|
4934
|
+
const transition = await this.transitionTaskStatus(taskId, 'in_progress', { fromStatus: ['review', 'fixing', 'in_progress', 'spec-ready'] }, { phase: 'code', signalToken: newToken });
|
|
4747
4935
|
if (!transition)
|
|
4748
4936
|
return null;
|
|
4749
4937
|
this.stopPhaseSignalWatcher(taskId);
|
|
@@ -5063,7 +5251,7 @@ export class AgentManager {
|
|
|
5063
5251
|
return null;
|
|
5064
5252
|
}
|
|
5065
5253
|
}
|
|
5066
|
-
const transition = await this.transitionTaskStatus(taskId, 'fixing', { fromStatus: ['review', 'max_rounds'] }, { signalToken: newToken, fixDispatchedAt: new Date().toISOString() });
|
|
5254
|
+
const transition = await this.transitionTaskStatus(taskId, 'fixing', { fromStatus: ['review', 'max_rounds', 'spec-ready'] }, { signalToken: newToken, fixDispatchedAt: new Date().toISOString() });
|
|
5067
5255
|
if (!transition) {
|
|
5068
5256
|
await this.safeEmit({
|
|
5069
5257
|
id: '',
|