baxian 1.2.49 → 1.2.50

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.
@@ -0,0 +1,14 @@
1
+ import { type ExecResult } from './runner.js';
2
+ export interface LineageCandidate {
3
+ taskId: string;
4
+ branch: string;
5
+ }
6
+ export interface LineageViolation {
7
+ taskId: string;
8
+ branch: string;
9
+ sha: string;
10
+ }
11
+ type Exec = (cmd: string) => Promise<ExecResult>;
12
+ export declare function findForeignTaskTip(exec: Exec, worktree: string, baseSha: string, candidates: LineageCandidate[]): Promise<LineageViolation | null>;
13
+ export {};
14
+ //# sourceMappingURL=lineage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/agent/lineage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEjD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,gBAAgB,EAAE,GAC7B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA2ClC"}
@@ -0,0 +1,43 @@
1
+ import { shellQuote } from './runner.js';
2
+ export async function findForeignTaskTip(exec, worktree, baseSha, candidates) {
3
+ const revs = await exec(`git -C ${shellQuote(worktree)} rev-list ${shellQuote(`${baseSha}..HEAD`)}`);
4
+ if (revs.exitCode !== 0) {
5
+ throw new Error(`lineage rev-list failed in ${worktree}: ${revs.stderr.trim()}`);
6
+ }
7
+ const exclusive = new Set(revs.stdout.split('\n').filter(Boolean));
8
+ if (exclusive.size === 0)
9
+ return null;
10
+ for (const candidate of candidates) {
11
+ // Compare against the candidate's whole base..tip chain, not just its tip:
12
+ // after contaminating us the foreign branch may advance further, moving its
13
+ // tip out of our history while the shared commits remain embedded.
14
+ // Both refs are probed independently: the local branch may hold unpushed
15
+ // work the remote lacks, while a bare clone's local heads are frozen
16
+ // snapshots that fetch never updates — only refs/remotes/origin/* is fresh.
17
+ const refs = [
18
+ `refs/heads/${candidate.branch}`,
19
+ `refs/remotes/origin/${candidate.branch}`,
20
+ ];
21
+ for (const ref of refs) {
22
+ const foreign = await exec(`git -C ${shellQuote(worktree)} rev-list ${shellQuote(`${baseSha}..${ref}`)}`);
23
+ if (foreign.exitCode !== 0)
24
+ continue;
25
+ const sha = foreign.stdout
26
+ .split('\n')
27
+ .map(line => line.trim())
28
+ .find(line => line !== '' && exclusive.has(line));
29
+ if (!sha)
30
+ continue;
31
+ // Shared commits with a candidate that forked FROM this branch are this
32
+ // branch's own work carried downstream, not foreign work embedded here —
33
+ // the contamination victim must stay publishable. Diverged shapes
34
+ // (neither contains the other) stay flagged: ownership is undecidable.
35
+ const downstream = await exec(`git -C ${shellQuote(worktree)} merge-base --is-ancestor HEAD ${shellQuote(ref)}`);
36
+ if (downstream.exitCode === 0)
37
+ continue;
38
+ return { taskId: candidate.taskId, branch: candidate.branch, sha };
39
+ }
40
+ }
41
+ return null;
42
+ }
43
+ //# sourceMappingURL=lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/agent/lineage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,aAAa,CAAC;AAe1D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,QAAgB,EAChB,OAAe,EACf,UAA8B;IAE9B,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,UAAU,UAAU,CAAC,QAAQ,CAAC,aAAa,UAAU,CAAC,GAAG,OAAO,QAAQ,CAAC,EAAE,CAC5E,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,2EAA2E;QAC3E,4EAA4E;QAC5E,mEAAmE;QACnE,yEAAyE;QACzE,qEAAqE;QACrE,4EAA4E;QAC5E,MAAM,IAAI,GAAG;YACX,cAAc,SAAS,CAAC,MAAM,EAAE;YAChC,uBAAuB,SAAS,CAAC,MAAM,EAAE;SAC1C,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CACxB,UAAU,UAAU,CAAC,QAAQ,CAAC,aAAa,UAAU,CAAC,GAAG,OAAO,KAAK,GAAG,EAAE,CAAC,EAAE,CAC9E,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM;iBACvB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,wEAAwE;YACxE,yEAAyE;YACzE,kEAAkE;YAClE,uEAAuE;YACvE,MAAM,UAAU,GAAG,MAAM,IAAI,CAC3B,UAAU,UAAU,CAAC,QAAQ,CAAC,kCAAkC,UAAU,CAAC,GAAG,CAAC,EAAE,CAClF,CAAC;YACF,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACxC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -7,6 +7,7 @@ import type { EventBus } from '../event/bus.js';
7
7
  import type { ErrorRecordStore } from '../state/error-record-store.js';
8
8
  import { SkillRegistry } from '../skill/registry.js';
9
9
  import type { CommandRunner } from './runner.js';
10
+ import { type LineageViolation } from './lineage.js';
10
11
  import { RepoStore, type RepoStoreCache } from './repo-store.js';
11
12
  import type { PaneStreamerManager } from './pane-streamer-manager.js';
12
13
  import { PhaseSignalWatcher } from './phase-signal-watcher.js';
@@ -111,6 +112,10 @@ export interface ContinueSessionOpts {
111
112
  export interface MergePrOpts {
112
113
  matchHeadSha?: string;
113
114
  }
115
+ export interface ServerReviewDriver {
116
+ dispatchCodeReview(task: TaskState): Promise<boolean>;
117
+ dispatchSpecReview(task: TaskState): Promise<boolean>;
118
+ }
114
119
  export declare function canDispatchWithBinding(binding: AgentBindingFacts | null | undefined): boolean;
115
120
  export declare function shouldReleaseHeldBinding(state: AgentBindingFacts, boundTask: TaskState | null | undefined): boolean;
116
121
  export declare class AgentManager {
@@ -129,6 +134,7 @@ export declare class AgentManager {
129
134
  protected errorRecordStore?: ErrorRecordStore;
130
135
  protected reviewStore?: ReviewStore;
131
136
  private reviewTransportInstance?;
137
+ private serverReviewDriver?;
132
138
  protected dispatchAckTimeoutMs: number;
133
139
  protected dispatchSettleTimeoutMs: number;
134
140
  protected dispatchAckResendIntervalMs: number;
@@ -157,6 +163,7 @@ export declare class AgentManager {
157
163
  constructor(deps: AgentManagerDeps);
158
164
  private withTaskLock;
159
165
  getReviewStore(): ReviewStore | undefined;
166
+ setServerReviewDriver(driver: ServerReviewDriver): void;
160
167
  effectiveReviewMode(projectId: string): ReviewMode;
161
168
  resolveAfterDone(task: TaskState): AfterDone;
162
169
  private coerceAfterDone;
@@ -376,6 +383,7 @@ export declare class AgentManager {
376
383
  bumpRound?: boolean;
377
384
  expectSignalToken?: string;
378
385
  }): Promise<TaskState>;
386
+ private runManualServerReview;
379
387
  continueDevRound(taskId: string): Promise<TaskState>;
380
388
  private rollbackDispatchReviewPhase1;
381
389
  private tearDownWatcherIfTaskTerminal;
@@ -423,6 +431,15 @@ export declare class AgentManager {
423
431
  signalToken?: string;
424
432
  reviewHeadAnchorSha?: string;
425
433
  reviewDispatchedAt?: string;
434
+ }, opts?: {
435
+ expect?: {
436
+ status: TaskStatus;
437
+ signalToken?: string;
438
+ };
439
+ rearmSkipSnapshot?: boolean;
440
+ }): Promise<boolean>;
441
+ rearmPhaseSignalForCurrentPass(taskId: string, opts?: {
442
+ skipSnapshot?: boolean;
426
443
  }): Promise<void>;
427
444
  parkTaskAtSpecReady(taskId: string, opts?: {
428
445
  specReviewRound?: number;
@@ -445,6 +462,8 @@ export declare class AgentManager {
445
462
  reviewHeadAnchorSha?: string;
446
463
  }): Promise<TaskState | null>;
447
464
  dispatchServerFixToDev(taskId: string, findingsJson: string): Promise<TaskState | null>;
465
+ private projectRepoKey;
466
+ findLineageViolation(taskId: string, baseSha?: string): Promise<LineageViolation | null>;
448
467
  dispatchServerAfterDone(taskId: string, kind: 'branch' | 'pr'): Promise<TaskState | null>;
449
468
  private handleReadFileRequest;
450
469
  injectTextToAgent(agentId: string, text: string, opts?: {
@@ -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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"}
@@ -3,11 +3,12 @@ import { join } from 'node:path';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { createSignalToken } from './phase-signal.js';
5
5
  import { tmuxInstallHint } from './preflight.js';
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
+ 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, parseGitRemote, repoSlug, } from '../shared/index.js';
7
7
  import { AGENT_STORE_NOOP } from '../state/agent-store.js';
8
8
  import { PostApproveStore } from '../state/post-approve-store.js';
9
9
  import { SkillRegistry } from '../skill/registry.js';
10
10
  import { createRunner, LocalRunner, shellQuote, resolveAgentHost, hostGroupKey } from './runner.js';
11
+ import { findForeignTaskTip } from './lineage.js';
11
12
  import { imageFilename, agentHostPath, writeImageToHost } from './image-input.js';
12
13
  import { TmuxManager, ReplNotReadyError, detectStartupDialog, detectRuntimeMenu, runtimeBusyCheck, hasRuntimeReadyView, hasReplProcTitle, hasOscTitleWorking, hasOscTitleIdle, screenAllowsTitleIdle, } from './tmux.js';
13
14
  import { WorktreeManager } from './worktree.js';
@@ -74,6 +75,7 @@ function agentRuntimeKindFor(agent) {
74
75
  }
75
76
  const DEFAULT_DISPATCH_ACK_TIMEOUT_MS = 30_000;
76
77
  const DEFAULT_DISPATCH_SETTLE_TIMEOUT_MS = 3_000;
78
+ const MANUAL_SERVER_REVIEW_STATUSES = ['in_progress', 'review', 'fixing'];
77
79
  const IMAGE_DISPATCH_PHASES = new Set(['develop', 'code', 'fix', 'server-feedback']);
78
80
  const RUNTIME_LIVENESS_SAMPLES = 3;
79
81
  export function canDispatchWithBinding(binding) {
@@ -120,6 +122,7 @@ export class AgentManager {
120
122
  errorRecordStore;
121
123
  reviewStore;
122
124
  reviewTransportInstance;
125
+ serverReviewDriver;
123
126
  dispatchAckTimeoutMs;
124
127
  dispatchSettleTimeoutMs;
125
128
  dispatchAckResendIntervalMs = 3_000;
@@ -189,6 +192,9 @@ export class AgentManager {
189
192
  getReviewStore() {
190
193
  return this.reviewStore;
191
194
  }
195
+ setServerReviewDriver(driver) {
196
+ this.serverReviewDriver = driver;
197
+ }
192
198
  effectiveReviewMode(projectId) {
193
199
  const project = this.getProjectConfig(projectId);
194
200
  return project?.review?.mode ?? this.config.review.mode ?? 'github';
@@ -2284,7 +2290,13 @@ export class AgentManager {
2284
2290
  }
2285
2291
  async resolveAutoBaseRef(runner, workdir) {
2286
2292
  const result = await runner.exec(`git -C ${shellQuote(workdir)} rev-parse --verify --quiet origin/HEAD`);
2287
- return result.exitCode === 0 ? 'origin/HEAD' : undefined;
2293
+ if (result.exitCode !== 0) {
2294
+ // Falling back to the shared clone's HEAD would seed the worktree with whatever
2295
+ // another agent left checked out — refuse instead of silently cross-contaminating.
2296
+ throw new Error(`origin/HEAD is unresolvable in ${workdir}; ` +
2297
+ `run "git -C ${workdir} remote set-head origin --auto" and redispatch`);
2298
+ }
2299
+ return 'origin/HEAD';
2288
2300
  }
2289
2301
  getRepoCache() {
2290
2302
  return this.repoCache;
@@ -2906,16 +2918,15 @@ export class AgentManager {
2906
2918
  const runner = this.createRunnerFor(agent);
2907
2919
  const worktree = new WorktreeManager(runner);
2908
2920
  const tmux = new TmuxManager(runner);
2909
- const baseRef = agent.workdir
2910
- ? undefined
2911
- : await this.resolveAutoBaseRef(runner, workdir);
2912
2921
  const isServerQaPhase = phase === 'server-review' || phase === 'server-recheck' || phase === 'server-spec-review';
2913
2922
  const customBranch = task.branch && !task.branch.startsWith(BRANCH_PREFIX) ? task.branch : undefined;
2923
+ // review/recheck check out the PR branch detached and never touch origin/HEAD,
2924
+ // so the fail-fast base resolution only runs where the default base is used.
2914
2925
  const worktreePath = isServerQaPhase
2915
2926
  ? await worktree.createDetachedAtBase(workdir, taskId)
2916
2927
  : phase === 'review' || phase === 'recheck'
2917
2928
  ? await worktree.createDetached(workdir, taskId, task.branch)
2918
- : await worktree.create(workdir, taskId, baseRef, customBranch);
2929
+ : await worktree.create(workdir, taskId, agent.workdir ? undefined : await this.resolveAutoBaseRef(runner, workdir), customBranch);
2919
2930
  await this.agentStore.update(agentId, (stateNow) => {
2920
2931
  if (!stateNow || stateNow.taskId !== taskId)
2921
2932
  return AGENT_STORE_NOOP;
@@ -3713,11 +3724,14 @@ export class AgentManager {
3713
3724
  const task = await this.taskStore.get(taskId);
3714
3725
  if (!task)
3715
3726
  throw new ApiError(404, 'Task not found');
3716
- if (TERMINAL_STATUSES.includes(task.status))
3717
- return task;
3718
3727
  if (this.markCompleteInFlight.has(taskId)) {
3719
3728
  throw new ApiError(409, `Task ${taskId} is being completed (merge in progress); try again shortly`);
3720
3729
  }
3730
+ // 终态不早退:状态不再改写,但残留的 pane/绑定(上次清理中途失败)仍走同一条强制清理路径。
3731
+ // 唯一例外:清理已在进行中的重复取消——重跑只会重复中断同一批 pane,等它收尾即可。
3732
+ const alreadyTerminal = TERMINAL_STATUSES.includes(task.status);
3733
+ if (alreadyTerminal && this.cancelCleanupInFlight.has(taskId))
3734
+ return task;
3721
3735
  if (task.agentId)
3722
3736
  devToRelease = task.agentId;
3723
3737
  if (task.qaAgentId)
@@ -3736,12 +3750,14 @@ export class AgentManager {
3736
3750
  };
3737
3751
  }
3738
3752
  }
3739
- else if (task.status === 'merge-ready' && task.prNumber !== undefined && task.branch && task.agentId) {
3753
+ else if (!alreadyTerminal && task.reviewMode !== 'server' && task.prNumber !== undefined && task.branch) {
3754
+ // github 模式持有开放 PR 的任务(review/fixing/approved/merge-ready/max_rounds 等)取消时关 PR 删分支;
3755
+ // server 模式仍只信 gate+marker——非 gate 状态上的孤立 prNumber 不足以证明远端有待回收的工件
3740
3756
  publishedCleanup = {
3741
3757
  afterDone: 'pr',
3742
3758
  branch: task.branch,
3743
3759
  prNumber: task.prNumber,
3744
- devAgentId: task.agentId,
3760
+ ...(task.agentId ? { devAgentId: task.agentId } : {}),
3745
3761
  mayBeInFlight: false,
3746
3762
  };
3747
3763
  }
@@ -3749,18 +3765,20 @@ export class AgentManager {
3749
3765
  if (id)
3750
3766
  await this.markPaneCancelClearing(id, taskId);
3751
3767
  }
3752
- const now = new Date().toISOString();
3753
- task.status = 'cancelled';
3754
- task.updatedAt = now;
3755
- await this.taskStore.set(task);
3756
- await this.safeEmit({
3757
- id: '',
3758
- type: 'task.updated',
3759
- timestamp: now,
3760
- projectId: task.projectId,
3761
- taskId,
3762
- data: { status: 'cancelled' },
3763
- });
3768
+ if (!alreadyTerminal) {
3769
+ const now = new Date().toISOString();
3770
+ task.status = 'cancelled';
3771
+ task.updatedAt = now;
3772
+ await this.taskStore.set(task);
3773
+ await this.safeEmit({
3774
+ id: '',
3775
+ type: 'task.updated',
3776
+ timestamp: now,
3777
+ projectId: task.projectId,
3778
+ taskId,
3779
+ data: { status: 'cancelled' },
3780
+ });
3781
+ }
3764
3782
  this.claimCancelCleanup(taskId);
3765
3783
  cleanupClaimed = true;
3766
3784
  return task;
@@ -3828,7 +3846,7 @@ export class AgentManager {
3828
3846
  if (close.exitCode !== 0)
3829
3847
  throw new Error(close.stderr.trim() || close.stdout.trim());
3830
3848
  }
3831
- else {
3849
+ else if (publishedCleanup.devAgentId) {
3832
3850
  const dev = this.getAgentConfig(publishedCleanup.devAgentId);
3833
3851
  const state = await this.agentStore.get(publishedCleanup.devAgentId);
3834
3852
  if (dev && state?.repoPath) {
@@ -3903,11 +3921,31 @@ export class AgentManager {
3903
3921
  if (opts.expectSignalToken !== undefined && task.signalToken !== opts.expectSignalToken) {
3904
3922
  throw new ApiError(409, `Task ${taskId} review pass changed during redispatch (signalToken rotated); aborting`);
3905
3923
  }
3906
- if (task.reviewMode === 'server') {
3907
- throw new ApiError(409, `Task ${taskId} uses server review mode; Call review applies only to github-mode tasks`);
3908
- }
3909
- if (task.phase === 'spec' && task.status === 'max_rounds') {
3910
- throw new ApiError(409, `Call review is not supported for spec-phase max_rounds tasks (use Retry or Cancel)`);
3924
+ if (task.reviewMode === 'server' || task.phase === 'spec') {
3925
+ if (!MANUAL_SERVER_REVIEW_STATUSES.includes(task.status)) {
3926
+ throw new ApiError(409, `Task ${taskId} status is ${task.status}; manual server-side review requires ${MANUAL_SERVER_REVIEW_STATUSES.join('/')}`);
3927
+ }
3928
+ if (!this.serverReviewDriver) {
3929
+ throw new ApiError(409, `Server review pipeline is not configured; cannot dispatch review for ${taskId}`);
3930
+ }
3931
+ // in_progress 且 phase 未定:dev 既可能交 spec-done 也可能交 code-done,评审对象无从判定
3932
+ if (task.status === 'in_progress' && task.phase === undefined) {
3933
+ throw new ApiError(409, `Task ${taskId} has no phase yet (the dev has not delivered spec-done/code-done); wait for the dev signal or use Cancel/Retry`);
3934
+ }
3935
+ // 手工发起=明确要求跑一次 QA 评审;无 QA 时必须拒绝,不得落入自动通过/停驻兜底
3936
+ const qaAvailable = (task.qaAgentId !== undefined && !!this.getAgentConfig(task.qaAgentId))
3937
+ || !!this.findQaPartner(task.agentId);
3938
+ if (!qaAvailable) {
3939
+ throw new ApiError(400, `Task ${taskId} has no QA partner configured; manual review requires a QA agent`);
3940
+ }
3941
+ const isSpec = task.phase === 'spec';
3942
+ const cap = this.config.review.rounds + (task.maxRoundsContinues ?? 0);
3943
+ const round = isSpec ? (task.specReviewRound ?? 0) : task.reviewRound;
3944
+ if (round + 1 > cap) {
3945
+ throw new ApiError(409, `Task ${taskId} reached the review round cap (${cap}); continue or cancel it instead`);
3946
+ }
3947
+ this.manualReviewInFlight.add(taskId);
3948
+ return { mode: 'server', isSpec, claimToken: task.signalToken };
3911
3949
  }
3912
3950
  if (!task.prNumber) {
3913
3951
  throw new ApiError(400, `Task ${taskId} has no PR yet; cannot dispatch review`);
@@ -3929,8 +3967,11 @@ export class AgentManager {
3929
3967
  qaId = qa.id;
3930
3968
  }
3931
3969
  this.manualReviewInFlight.add(taskId);
3932
- return { qaId, devAgentId: task.agentId, taskStatusAtClaim: task.status };
3970
+ return { mode: 'github', qaId, devAgentId: task.agentId, taskStatusAtClaim: task.status };
3933
3971
  });
3972
+ if (claim.mode === 'server') {
3973
+ return this.runManualServerReview(taskId, claim);
3974
+ }
3934
3975
  try {
3935
3976
  const { qaId, devAgentId, taskStatusAtClaim } = claim;
3936
3977
  const isTerminal = TERMINAL_STATUSES.includes(taskStatusAtClaim);
@@ -4061,6 +4102,27 @@ export class AgentManager {
4061
4102
  this.manualReviewInFlight.delete(taskId);
4062
4103
  }
4063
4104
  }
4105
+ async runManualServerReview(taskId, claim) {
4106
+ try {
4107
+ // 不在此处预释放旧 QA:可失败的准备工作(读 diff/spec、存轮次)失败时旧 pass 必须原样保留;
4108
+ // 同任务的 QA 重新绑定由 dispatchServerReviewToQa 在派发前完成
4109
+ const fresh = await this.taskStore.get(taskId);
4110
+ if (!fresh || fresh.signalToken !== claim.claimToken
4111
+ || !MANUAL_SERVER_REVIEW_STATUSES.includes(fresh.status)) {
4112
+ throw new ApiError(409, `Task ${taskId} changed during manual review dispatch; aborting`);
4113
+ }
4114
+ const dispatched = claim.isSpec
4115
+ ? await this.serverReviewDriver.dispatchSpecReview(fresh)
4116
+ : await this.serverReviewDriver.dispatchCodeReview(fresh);
4117
+ if (!dispatched) {
4118
+ throw new ApiError(500, `Manual review dispatch for ${taskId} did not start; check the event feed for the cause`);
4119
+ }
4120
+ return (await this.taskStore.get(taskId));
4121
+ }
4122
+ finally {
4123
+ this.manualReviewInFlight.delete(taskId);
4124
+ }
4125
+ }
4064
4126
  async continueDevRound(taskId) {
4065
4127
  if (this.markCompleteInFlight.has(taskId)) {
4066
4128
  throw new ApiError(409, `Task ${taskId} is being completed (merge in progress); try again shortly`);
@@ -4848,13 +4910,17 @@ export class AgentManager {
4848
4910
  const armed = await this.setupPhaseSignalWatcher(taskId, agentId, expectedKinds, newToken);
4849
4911
  return { token: newToken, armed };
4850
4912
  }
4851
- async rollbackVerdictArmFailure(taskId, restore) {
4852
- await this.withTaskLock(async () => {
4913
+ async rollbackVerdictArmFailure(taskId, restore, opts = {}) {
4914
+ const expected = opts.expect;
4915
+ const rolledBack = await this.withTaskLock(async () => {
4853
4916
  const fresh = await this.taskStore.get(taskId);
4854
4917
  if (!fresh)
4855
- return;
4918
+ return false;
4856
4919
  if (TERMINAL_STATUSES.includes(fresh.status))
4857
- return;
4920
+ return false;
4921
+ // pass 已被并发接管(token 轮换或状态推进)时禁止回滚,否则会覆盖接管方刚写入的新 pass
4922
+ if (expected && (fresh.status !== expected.status || fresh.signalToken !== expected.signalToken))
4923
+ return false;
4858
4924
  await this.taskStore.set({
4859
4925
  ...fresh,
4860
4926
  status: restore.status,
@@ -4864,19 +4930,26 @@ export class AgentManager {
4864
4930
  qaAgentId: undefined,
4865
4931
  updatedAt: new Date().toISOString(),
4866
4932
  });
4933
+ return true;
4867
4934
  });
4935
+ if (!rolledBack)
4936
+ return false;
4937
+ await this.rearmPhaseSignalForCurrentPass(taskId, { skipSnapshot: opts.rearmSkipSnapshot });
4938
+ return true;
4939
+ }
4940
+ async rearmPhaseSignalForCurrentPass(taskId, opts = {}) {
4868
4941
  if (!this.phaseSignalWatcher)
4869
4942
  return;
4870
- const restored = await this.taskStore.get(taskId);
4871
- if (!restored?.signalToken)
4943
+ const task = await this.taskStore.get(taskId);
4944
+ if (!task?.signalToken)
4872
4945
  return;
4873
- if (TERMINAL_STATUSES.includes(restored.status))
4946
+ if (TERMINAL_STATUSES.includes(task.status))
4874
4947
  return;
4875
- const mapped = this.mapTaskStateToExpectedWatcher(restored);
4876
- if (mapped) {
4877
- await this.setupPhaseSignal(taskId, mapped.agentId, mapped.expectedKinds);
4878
- await this.tearDownWatcherIfTaskTerminal(taskId);
4879
- }
4948
+ const mapped = this.mapTaskStateToExpectedWatcher(task);
4949
+ if (!mapped)
4950
+ return;
4951
+ await this.setupPhaseSignal(taskId, mapped.agentId, mapped.expectedKinds, opts.skipSnapshot ? { skipSnapshot: true } : undefined);
4952
+ await this.tearDownWatcherIfTaskTerminal(taskId);
4880
4953
  }
4881
4954
  async parkTaskAtSpecReady(taskId, opts = {}) {
4882
4955
  const task = await this.taskStore.get(taskId);
@@ -5078,7 +5151,13 @@ export class AgentManager {
5078
5151
  if (task.reviewMode !== 'server' && opts.phase !== 'spec') {
5079
5152
  throw new Error(`dispatchServerReviewToQa: task ${taskId} is not in server review mode`);
5080
5153
  }
5081
- const qaId = task.qaAgentId ?? this.findQaPartner(task.agentId)?.id;
5154
+ let recordedQaId = task.qaAgentId;
5155
+ if (recordedQaId && !this.getAgentConfig(recordedQaId)) {
5156
+ console.warn(`[dispatchServerReviewToQa] task ${taskId}.qaAgentId="${recordedQaId}" no longer in config; ` +
5157
+ `falling back to findQaPartner(${task.agentId})`);
5158
+ recordedQaId = undefined;
5159
+ }
5160
+ const qaId = recordedQaId ?? this.findQaPartner(task.agentId)?.id;
5082
5161
  if (!qaId) {
5083
5162
  const entryKind = task.status === 'fixing'
5084
5163
  ? (opts.phase === 'spec' ? 'spec-fixed' : 'code-fixed')
@@ -5125,12 +5204,20 @@ export class AgentManager {
5125
5204
  }).catch(() => undefined);
5126
5205
  };
5127
5206
  const rearmEntrySignal = async () => {
5207
+ // 从 review 重派(手工发起):入口信号早已被消费,dev 停驻等待中,无可重挂
5208
+ if (claim.originalStatus === 'review')
5209
+ return;
5128
5210
  const entryKind = claim.originalStatus === 'fixing'
5129
5211
  ? (opts.phase === 'spec' ? 'spec-fixed' : 'code-fixed')
5130
5212
  : (opts.phase === 'spec' ? 'spec-done' : 'code-done');
5131
5213
  await this.setupPhaseSignal(taskId, devAgentId, entryKind, { skipSnapshot: true });
5132
5214
  };
5133
5215
  if (!opts.continuation) {
5216
+ const prevQa = await this.agentStore.get(qaId);
5217
+ if (prevQa?.taskId === taskId) {
5218
+ // 手工重派:上一 pass 的 QA 仍绑定本任务,先释放再重新 acquire(与 github 手工路径一致)
5219
+ await this.releaseAgentForTask(qaId, taskId, 'idle');
5220
+ }
5134
5221
  const acquired = await this.acquireAgentForTask(qaId, taskId, dispatchPhase);
5135
5222
  if (!acquired) {
5136
5223
  await rearmEntrySignal();
@@ -5372,6 +5459,62 @@ export class AgentManager {
5372
5459
  await this.armPostDispatchSignalOrHold(taskId, devAgentId, expectedKind, newToken);
5373
5460
  return await this.taskStore.get(taskId);
5374
5461
  }
5462
+ projectRepoKey(projectId) {
5463
+ const repo = this.getProjectConfig(projectId)?.repo;
5464
+ if (!repo)
5465
+ return null;
5466
+ if (isGitHubRepo(repo))
5467
+ return `gh:${repoSlug(repo).toLowerCase()}`;
5468
+ const parsed = parseGitRemote(repo);
5469
+ if (parsed)
5470
+ return `git:${parsed.host.toLowerCase()}/${parsed.path}`;
5471
+ return `raw:${repo.trim()}`;
5472
+ }
5473
+ async findLineageViolation(taskId, baseSha) {
5474
+ const task = await this.taskStore.get(taskId);
5475
+ if (!task?.agentId)
5476
+ return null;
5477
+ const agent = this.getAgentConfig(task.agentId);
5478
+ const agentState = await this.agentStore.get(task.agentId);
5479
+ // A rebound agent's worktree belongs to its new task — checking it would
5480
+ // produce verdicts about the wrong branch. Skip; the dispatch path's own
5481
+ // binding guards (acquire) surface the real failure.
5482
+ if (agentState?.taskId !== taskId)
5483
+ return null;
5484
+ const worktree = agentState.worktreePath;
5485
+ if (!agent || !worktree)
5486
+ return null;
5487
+ const runner = this.createRunnerFor(agent);
5488
+ let base = baseSha;
5489
+ if (!base) {
5490
+ // Callers without a baseSha (publish) run long after the review diff was
5491
+ // read; refresh origin/HEAD first or upstream commits merged since then
5492
+ // would linger in base..HEAD and flag tasks that leak nothing.
5493
+ const fetch = await runner.exec(`git -C ${shellQuote(worktree)} fetch origin --quiet`);
5494
+ if (fetch.exitCode !== 0) {
5495
+ throw new Error(`lineage fetch failed in ${worktree}: ${fetch.stderr.trim()}`);
5496
+ }
5497
+ const mb = await runner.exec(`git -C ${shellQuote(worktree)} merge-base origin/HEAD HEAD`);
5498
+ if (mb.exitCode !== 0) {
5499
+ throw new Error(`lineage merge-base failed in ${worktree}: ${mb.stderr.trim()}`);
5500
+ }
5501
+ base = mb.stdout.trim();
5502
+ }
5503
+ // Projects pointing at the same repo share one store and branch namespace,
5504
+ // so candidates are scoped by repo identity, not by projectId.
5505
+ const selfRepoKey = this.projectRepoKey(task.projectId);
5506
+ if (!selfRepoKey)
5507
+ return null;
5508
+ const tasks = await this.taskStore.list();
5509
+ const candidates = tasks
5510
+ .filter(t => t.id !== taskId
5511
+ && !TERMINAL_STATUSES.includes(t.status)
5512
+ && this.projectRepoKey(t.projectId) === selfRepoKey)
5513
+ .map(t => ({ taskId: t.id, branch: t.branch ?? BRANCH_PREFIX + t.id }));
5514
+ if (candidates.length === 0)
5515
+ return null;
5516
+ return findForeignTaskTip((cmd) => runner.exec(cmd), worktree, base, candidates);
5517
+ }
5375
5518
  async dispatchServerAfterDone(taskId, kind) {
5376
5519
  const task = await this.taskStore.get(taskId);
5377
5520
  if (!task)
@@ -5379,6 +5522,44 @@ export class AgentManager {
5379
5522
  const devAgentId = task.agentId;
5380
5523
  if (!devAgentId)
5381
5524
  throw new Error(`dispatchServerAfterDone: task ${taskId} has no dev agent`);
5525
+ let violation;
5526
+ try {
5527
+ violation = await this.findLineageViolation(taskId);
5528
+ }
5529
+ catch (err) {
5530
+ await this.safeEmit({
5531
+ id: '',
5532
+ type: 'human.intervention',
5533
+ timestamp: new Date().toISOString(),
5534
+ projectId: task.projectId,
5535
+ agentId: devAgentId,
5536
+ taskId,
5537
+ data: {
5538
+ phase: 'server-after-done-lineage-check-failed',
5539
+ error: err instanceof Error ? err.message : String(err),
5540
+ note: 'Publish was not dispatched; mark-complete retries it once the repo state is fixed.',
5541
+ },
5542
+ });
5543
+ return null;
5544
+ }
5545
+ if (violation) {
5546
+ await this.safeEmit({
5547
+ id: '',
5548
+ type: 'human.intervention',
5549
+ timestamp: new Date().toISOString(),
5550
+ projectId: task.projectId,
5551
+ agentId: devAgentId,
5552
+ taskId,
5553
+ data: {
5554
+ phase: 'server-after-done-lineage-violation',
5555
+ offendingTaskId: violation.taskId,
5556
+ offendingBranch: violation.branch,
5557
+ offendingSha: violation.sha,
5558
+ note: 'The task branch embeds another active task\'s commits; publishing would leak them into this PR. Rebase the branch onto origin/HEAD, then mark-complete to retry the publish.',
5559
+ },
5560
+ });
5561
+ return null;
5562
+ }
5382
5563
  const branch = task.branch ?? BRANCH_PREFIX + taskId;
5383
5564
  const originalToken = task.signalToken;
5384
5565
  const newToken = createSignalToken();