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.
Files changed (62) hide show
  1. package/dist/agent/detect/region.d.ts +1 -0
  2. package/dist/agent/detect/region.d.ts.map +1 -1
  3. package/dist/agent/detect/region.js +1 -1
  4. package/dist/agent/detect/region.js.map +1 -1
  5. package/dist/agent/manager.d.ts +12 -1
  6. package/dist/agent/manager.d.ts.map +1 -1
  7. package/dist/agent/manager.js +229 -41
  8. package/dist/agent/manager.js.map +1 -1
  9. package/dist/agent/preflight.d.ts +4 -1
  10. package/dist/agent/preflight.d.ts.map +1 -1
  11. package/dist/agent/preflight.js +12 -4
  12. package/dist/agent/preflight.js.map +1 -1
  13. package/dist/agent/review-transport.js +2 -2
  14. package/dist/agent/review-transport.js.map +1 -1
  15. package/dist/agent/tmux-install.d.ts +9 -0
  16. package/dist/agent/tmux-install.d.ts.map +1 -0
  17. package/dist/agent/tmux-install.js +149 -0
  18. package/dist/agent/tmux-install.js.map +1 -0
  19. package/dist/agent/tmux.d.ts +6 -0
  20. package/dist/agent/tmux.d.ts.map +1 -1
  21. package/dist/agent/tmux.js +107 -12
  22. package/dist/agent/tmux.js.map +1 -1
  23. package/dist/api/projects.d.ts.map +1 -1
  24. package/dist/api/projects.js +48 -5
  25. package/dist/api/projects.js.map +1 -1
  26. package/dist/api/tasks.d.ts.map +1 -1
  27. package/dist/api/tasks.js +11 -0
  28. package/dist/api/tasks.js.map +1 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +16 -2
  31. package/dist/cli.js.map +1 -1
  32. package/dist/config/normalizer.d.ts.map +1 -1
  33. package/dist/config/normalizer.js +6 -2
  34. package/dist/config/normalizer.js.map +1 -1
  35. package/dist/config/validator.d.ts.map +1 -1
  36. package/dist/config/validator.js +4 -0
  37. package/dist/config/validator.js.map +1 -1
  38. package/dist/event/handlers.d.ts.map +1 -1
  39. package/dist/event/handlers.js +42 -13
  40. package/dist/event/handlers.js.map +1 -1
  41. package/dist/event/server-handlers.d.ts.map +1 -1
  42. package/dist/event/server-handlers.js +35 -10
  43. package/dist/event/server-handlers.js.map +1 -1
  44. package/dist/shared/constants.d.ts.map +1 -1
  45. package/dist/shared/constants.js +1 -0
  46. package/dist/shared/constants.js.map +1 -1
  47. package/dist/shared/types.d.ts +9 -1
  48. package/dist/shared/types.d.ts.map +1 -1
  49. package/dist/shared/types.js.map +1 -1
  50. package/dist/state/agent-store.d.ts.map +1 -1
  51. package/dist/state/agent-store.js +6 -0
  52. package/dist/state/agent-store.js.map +1 -1
  53. package/dist/state/snapshot.js +1 -1
  54. package/dist/state/snapshot.js.map +1 -1
  55. package/dist/state/task-store.d.ts.map +1 -1
  56. package/dist/state/task-store.js +6 -0
  57. package/dist/state/task-store.js.map +1 -1
  58. package/dist/web/assets/index-CzC2-plm.js +9 -0
  59. package/dist/web/assets/{index-uVZrHlU5.css → index-zIzJ4kFn.css} +1 -1
  60. package/dist/web/index.html +2 -2
  61. package/package.json +1 -1
  62. package/dist/web/assets/index-CGuG6yF2.js +0 -8
@@ -2,5 +2,6 @@ export interface DetectionInput {
2
2
  screen: string;
3
3
  oscTitle: string;
4
4
  }
5
+ export declare function isHorizontalRule(line: string): boolean;
5
6
  export declare function extractRegion(input: DetectionInput, spec: string): string;
6
7
  //# sourceMappingURL=region.d.ts.map
@@ -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;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA8FzE"}
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,4 +1,4 @@
1
- function isHorizontalRule(line) {
1
+ export function isHorizontalRule(line) {
2
2
  const trimmed = line.trim();
3
3
  if (trimmed.length === 0)
4
4
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"region.js","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"region.js","sourceRoot":"","sources":["../../../src/agent/detect/region.ts"],"names":[],"mappings":"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"}
@@ -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): Promise<TaskState>;
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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"}
@@ -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
- await this.withTaskLock(async () => {
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
- const { armed } = await this.rotateAndSetupPhaseSignal(taskId, qaId, ['pr-approved', 'pr-changes-requested']);
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 this.rollbackDispatchReviewPhase1(taskId, taskStatusAtClaim, isTerminalAtClaim, snapshot);
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 this.rollbackDispatchReviewPhase1(taskId, taskStatusAtClaim, isTerminalAtClaim, snapshot);
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 this.rollbackDispatchReviewPhase1(taskId, taskStatusAtClaim, isTerminalAtClaim, snapshot);
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
- async rollbackDispatchReviewPhase1(taskId, originalStatus, isTerminalAtClaim, snapshot) {
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
- const next = {
4076
- ...fresh,
4077
- reviewRound: Math.max(0, fresh.reviewRound - 1),
4078
- qaAgentId: snapshot.qaAgentId,
4079
- signalToken: snapshot.signalToken,
4080
- reviewDispatchedAt: snapshot.reviewDispatchedAt,
4081
- updatedAt: new Date().toISOString(),
4082
- };
4083
- if (!isTerminalAtClaim) {
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
- if (originalStatus === 'approved') {
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: '',