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.
- package/dist/agent/lineage.d.ts +14 -0
- package/dist/agent/lineage.d.ts.map +1 -0
- package/dist/agent/lineage.js +43 -0
- package/dist/agent/lineage.js.map +1 -0
- package/dist/agent/manager.d.ts +19 -0
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +223 -42
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/preflight.js +3 -1
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/repo-store.d.ts +2 -0
- package/dist/agent/repo-store.d.ts.map +1 -1
- package/dist/agent/repo-store.js +32 -6
- package/dist/agent/repo-store.js.map +1 -1
- package/dist/agent/worktree.d.ts.map +1 -1
- package/dist/agent/worktree.js +4 -2
- package/dist/agent/worktree.js.map +1 -1
- package/dist/event/handlers.d.ts.map +1 -1
- package/dist/event/handlers.js +76 -28
- package/dist/event/handlers.js.map +1 -1
- package/dist/event/server-handlers.d.ts.map +1 -1
- package/dist/event/server-handlers.js +117 -52
- package/dist/event/server-handlers.js.map +1 -1
- package/dist/web/assets/index-CZ-PDtJM.js +11 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/assets/index-Bc2bgdOQ.js +0 -11
|
@@ -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"}
|
package/dist/agent/manager.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/agent/manager.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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.
|
|
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
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
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
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
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
|
-
|
|
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
|
|
4871
|
-
if (!
|
|
4943
|
+
const task = await this.taskStore.get(taskId);
|
|
4944
|
+
if (!task?.signalToken)
|
|
4872
4945
|
return;
|
|
4873
|
-
if (TERMINAL_STATUSES.includes(
|
|
4946
|
+
if (TERMINAL_STATUSES.includes(task.status))
|
|
4874
4947
|
return;
|
|
4875
|
-
const mapped = this.mapTaskStateToExpectedWatcher(
|
|
4876
|
-
if (mapped)
|
|
4877
|
-
|
|
4878
|
-
|
|
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
|
-
|
|
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();
|