baxian 1.2.53 → 1.2.55
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/bootstrap-poller.d.ts +2 -1
- package/dist/agent/bootstrap-poller.d.ts.map +1 -1
- package/dist/agent/bootstrap-poller.js +3 -1
- package/dist/agent/bootstrap-poller.js.map +1 -1
- package/dist/agent/bootstrap.d.ts +1 -1
- package/dist/agent/bootstrap.d.ts.map +1 -1
- package/dist/agent/bootstrap.js +12 -19
- package/dist/agent/bootstrap.js.map +1 -1
- package/dist/agent/branch.d.ts +64 -0
- package/dist/agent/branch.d.ts.map +1 -0
- package/dist/agent/branch.js +386 -0
- package/dist/agent/branch.js.map +1 -0
- package/dist/agent/detect/manifests/claude-code.json +2 -2
- package/dist/agent/detect/manifests/opencode.json +44 -0
- package/dist/agent/detect/manifests/qodercli.json +49 -0
- package/dist/agent/detect/region.d.ts +1 -0
- package/dist/agent/detect/region.d.ts.map +1 -1
- package/dist/agent/detect/region.js +27 -19
- package/dist/agent/detect/region.js.map +1 -1
- package/dist/agent/lineage.d.ts +1 -1
- package/dist/agent/lineage.d.ts.map +1 -1
- package/dist/agent/lineage.js +6 -7
- package/dist/agent/lineage.js.map +1 -1
- package/dist/agent/manager.d.ts +13 -9
- package/dist/agent/manager.d.ts.map +1 -1
- package/dist/agent/manager.js +1071 -426
- package/dist/agent/manager.js.map +1 -1
- package/dist/agent/preflight.d.ts.map +1 -1
- package/dist/agent/preflight.js +21 -15
- package/dist/agent/preflight.js.map +1 -1
- package/dist/agent/prompt.d.ts +2 -2
- package/dist/agent/prompt.d.ts.map +1 -1
- package/dist/agent/prompt.js +9 -7
- package/dist/agent/prompt.js.map +1 -1
- package/dist/agent/repo-store.d.ts +8 -4
- package/dist/agent/repo-store.d.ts.map +1 -1
- package/dist/agent/repo-store.js +142 -54
- package/dist/agent/repo-store.js.map +1 -1
- package/dist/agent/review-transport.d.ts +6 -4
- package/dist/agent/review-transport.d.ts.map +1 -1
- package/dist/agent/review-transport.js +39 -13
- package/dist/agent/review-transport.js.map +1 -1
- package/dist/agent/runner.d.ts +1 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +5 -0
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tmux-probe-poller.d.ts.map +1 -1
- package/dist/agent/tmux-probe-poller.js +2 -0
- package/dist/agent/tmux-probe-poller.js.map +1 -1
- package/dist/agent/tmux.d.ts +2 -1
- package/dist/agent/tmux.d.ts.map +1 -1
- package/dist/agent/tmux.js +73 -7
- package/dist/agent/tmux.js.map +1 -1
- package/dist/api/probe.d.ts.map +1 -1
- package/dist/api/probe.js +9 -1
- package/dist/api/probe.js.map +1 -1
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +228 -56
- package/dist/api/projects.js.map +1 -1
- package/dist/config/validator.d.ts.map +1 -1
- package/dist/config/validator.js +58 -8
- package/dist/config/validator.js.map +1 -1
- package/dist/event/server-handlers.js +8 -8
- package/dist/event/server-handlers.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.d.ts +0 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +0 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/types.d.ts +15 -4
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/dist/skills/baxian-pr-feedback/SKILL.md +1 -1
- package/dist/skills/baxian-pr-recheck/SKILL.md +1 -1
- package/dist/skills/baxian-pr-review/SKILL.md +1 -1
- package/dist/skills/baxian-server-feedback/SKILL.md +4 -4
- package/dist/skills/baxian-server-review/SKILL.md +7 -7
- package/dist/skills/baxian-signals/SKILL.md +3 -1
- package/dist/skills/baxian-task-check/SKILL.md +4 -4
- package/dist/state/agent-store.js +4 -4
- package/dist/state/agent-store.js.map +1 -1
- package/dist/state/lock.d.ts +15 -2
- package/dist/state/lock.d.ts.map +1 -1
- package/dist/state/lock.js +104 -21
- package/dist/state/lock.js.map +1 -1
- package/dist/state/task-store.d.ts.map +1 -1
- package/dist/state/task-store.js +5 -2
- package/dist/state/task-store.js.map +1 -1
- package/dist/web/assets/index-BmnSiyut.js +13 -0
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/agent/worktree.d.ts +0 -32
- package/dist/agent/worktree.d.ts.map +0 -1
- package/dist/agent/worktree.js +0 -291
- package/dist/agent/worktree.js.map +0 -1
- package/dist/web/assets/index-DAPd4Nv_.js +0 -13
package/dist/api/projects.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import { isAbsolute, normalize } from 'node:path';
|
|
2
3
|
import { TASK_ACTIVE_STATUS_SET, TASK_TERMINAL_STATUS_SET } from '../shared/index.js';
|
|
3
4
|
import { probeTmux, runPreflight } from '../agent/preflight.js';
|
|
4
5
|
import { installTmux } from '../agent/tmux-install.js';
|
|
5
|
-
import { createRunner, hostGroupKey, resolveAgentHost } from '../agent/runner.js';
|
|
6
|
+
import { createRunner, hostGroupKey, resolveAgentHost, workdirHostGroupKey, } from '../agent/runner.js';
|
|
6
7
|
import { saveConfig, prepareConfig, ConfigValidationError } from '../config/loader.js';
|
|
7
8
|
import { withConfigLock } from '../config/mutex.js';
|
|
8
9
|
import { redactProjects } from './config.js';
|
|
@@ -129,7 +130,7 @@ export async function projectRoutes(app) {
|
|
|
129
130
|
if (remaining.length > 0) {
|
|
130
131
|
return reply.status(409).send({
|
|
131
132
|
error: `Project "${id}" still has ${remaining.length} agent(s); ` +
|
|
132
|
-
`delete every agent (which reclaims its tmux session /
|
|
133
|
+
`delete every agent (which reclaims its tmux session / Workdir binding) before deleting the project.`,
|
|
133
134
|
agents: remaining.map(a => a.id),
|
|
134
135
|
});
|
|
135
136
|
}
|
|
@@ -220,6 +221,13 @@ export async function projectRoutes(app) {
|
|
|
220
221
|
if (existsGlobally) {
|
|
221
222
|
return reply.status(409).send({ error: `Agent id "${agentInput.id}" already exists` });
|
|
222
223
|
}
|
|
224
|
+
const workdirConflict = findConfiguredWorkdirConflict(app.ctx.config, agentInput);
|
|
225
|
+
if (workdirConflict) {
|
|
226
|
+
return reply.status(409).send({
|
|
227
|
+
error: `Workdir "${normalize(agentInput.workdir)}" is already used by agent ` +
|
|
228
|
+
`"${workdirConflict}" on the same host; different agents must not share a directory`,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
223
231
|
if (agentInput.role === 'qa') {
|
|
224
232
|
if (!pairWith) {
|
|
225
233
|
return reply.status(400).send({ error: 'pairWith required when role=qa' });
|
|
@@ -306,7 +314,33 @@ export async function projectRoutes(app) {
|
|
|
306
314
|
const originalStates = new Map();
|
|
307
315
|
let originalConfigHash = '';
|
|
308
316
|
let validatedAfterRemove = null;
|
|
309
|
-
const
|
|
317
|
+
const deleteOwner = 'maintenance:delete-agent';
|
|
318
|
+
const acquiredLocks = new Map();
|
|
319
|
+
const releaseAcquiredLocks = async () => {
|
|
320
|
+
for (const [id, claim] of acquiredLocks) {
|
|
321
|
+
await app.ctx.lockManager.releaseIfOwner(id, claim.taskId, claim.token);
|
|
322
|
+
}
|
|
323
|
+
acquiredLocks.clear();
|
|
324
|
+
};
|
|
325
|
+
const rollbackAndRelease = async () => {
|
|
326
|
+
let rollbackError = null;
|
|
327
|
+
try {
|
|
328
|
+
await rollbackPerTargetState(app, targets, originalStates);
|
|
329
|
+
}
|
|
330
|
+
catch (err) {
|
|
331
|
+
rollbackError = err instanceof Error ? err : new Error(String(err));
|
|
332
|
+
}
|
|
333
|
+
try {
|
|
334
|
+
await releaseAcquiredLocks();
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
const releaseError = err instanceof Error ? err : new Error(String(err));
|
|
338
|
+
rollbackError = rollbackError
|
|
339
|
+
? new AggregateError([rollbackError, releaseError], 'Agent deletion rollback and lock release failed')
|
|
340
|
+
: releaseError;
|
|
341
|
+
}
|
|
342
|
+
return rollbackError;
|
|
343
|
+
};
|
|
310
344
|
let claimedTargets = [];
|
|
311
345
|
try {
|
|
312
346
|
const phase1Result = await withConfigLock(async () => {
|
|
@@ -325,7 +359,7 @@ export async function projectRoutes(app) {
|
|
|
325
359
|
if (task && TASK_ACTIVE_STATUS_SET.has(task.status)) {
|
|
326
360
|
return reply.status(409).send({
|
|
327
361
|
error: `Agent "${id}" is still active on task ${task.id}; cancel the task before deleting ` +
|
|
328
|
-
`(prevents orphan task / tmux session / lock /
|
|
362
|
+
`(prevents orphan task / tmux session / lock / Workdir binding).`,
|
|
329
363
|
});
|
|
330
364
|
}
|
|
331
365
|
if (state?.status === 'awaiting_human')
|
|
@@ -355,19 +389,41 @@ export async function projectRoutes(app) {
|
|
|
355
389
|
}
|
|
356
390
|
claimedTargets = targets.slice();
|
|
357
391
|
for (const id of targets) {
|
|
358
|
-
const
|
|
359
|
-
if (
|
|
360
|
-
|
|
361
|
-
if (state
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
392
|
+
const state = await app.ctx.agentStore.get(id);
|
|
393
|
+
if (state?.taskId) {
|
|
394
|
+
let token = state.lockToken;
|
|
395
|
+
if (!token || !(await app.ctx.lockManager.isOwner(id, state.taskId, token))) {
|
|
396
|
+
const claim = await app.ctx.lockManager.claimOf(id);
|
|
397
|
+
token = claim?.taskId === state.taskId ? claim.token : undefined;
|
|
398
|
+
if (!token && claim === null) {
|
|
399
|
+
token = await app.ctx.lockManager.acquire(id, state.taskId) ?? undefined;
|
|
400
|
+
if (token)
|
|
401
|
+
acquiredLocks.set(id, { taskId: state.taskId, token });
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (token && await app.ctx.lockManager.isOwner(id, state.taskId, token)) {
|
|
405
|
+
await app.ctx.agentStore.update(id, (latest) => {
|
|
406
|
+
if (!latest || latest.taskId !== state.taskId || latest.lockToken === token)
|
|
407
|
+
return latest;
|
|
408
|
+
return { ...latest, lockToken: token, updatedAt: new Date().toISOString() };
|
|
409
|
+
});
|
|
365
410
|
}
|
|
411
|
+
if (!token || !(await app.ctx.lockManager.isOwner(id, state.taskId, token))) {
|
|
412
|
+
await releaseAcquiredLocks();
|
|
413
|
+
return reply.status(409).send({
|
|
414
|
+
error: `Agent "${id}" has a stale task binding whose exclusive lock is owned by another operation; retry after it finishes.`,
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
continue;
|
|
418
|
+
}
|
|
419
|
+
const token = await app.ctx.lockManager.acquire(id, deleteOwner);
|
|
420
|
+
if (!token) {
|
|
421
|
+
await releaseAcquiredLocks();
|
|
366
422
|
return reply.status(409).send({
|
|
367
423
|
error: `Agent "${id}" is currently locked by another op; please retry later`,
|
|
368
424
|
});
|
|
369
425
|
}
|
|
370
|
-
acquiredLocks.
|
|
426
|
+
acquiredLocks.set(id, { taskId: deleteOwner, token });
|
|
371
427
|
}
|
|
372
428
|
for (const id of targets) {
|
|
373
429
|
const existing = await app.ctx.agentStore.get(id);
|
|
@@ -379,8 +435,7 @@ export async function projectRoutes(app) {
|
|
|
379
435
|
validatedAfterRemove = prepareConfig(removeRequest);
|
|
380
436
|
}
|
|
381
437
|
catch (err) {
|
|
382
|
-
|
|
383
|
-
await app.ctx.lockManager.release(got);
|
|
438
|
+
await releaseAcquiredLocks();
|
|
384
439
|
if (err instanceof ConfigValidationError) {
|
|
385
440
|
return reply.status(400).send({ error: 'Invalid config', details: err.errors });
|
|
386
441
|
}
|
|
@@ -396,21 +451,23 @@ export async function projectRoutes(app) {
|
|
|
396
451
|
await app.ctx.agentManager.cleanupRemovedAgentRuntime(targets);
|
|
397
452
|
}
|
|
398
453
|
catch (err) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
});
|
|
406
|
-
return reply.status(
|
|
407
|
-
error: `runtime cleanup failed
|
|
408
|
-
`to idle+missing. Fix the underlying SSH / tmux / worktree issue and retry DELETE.`,
|
|
409
|
-
failures: err.failures.map(f => ({ agentId: f.agentId, step: f.step,
|
|
410
|
-
error: f.error instanceof Error ? f.error.message : String(f.error) })),
|
|
454
|
+
const failures = err instanceof CleanupFailedError
|
|
455
|
+
? err.failures
|
|
456
|
+
: [{ agentId: agentId, step: 'runtime.cleanup', error: err }];
|
|
457
|
+
app.log.error({ failures, targets }, 'DELETE /agents cleanupRemovedAgentRuntime failed; rolling back state and locks');
|
|
458
|
+
const rollbackError = await withConfigLock(rollbackAndRelease);
|
|
459
|
+
if (rollbackError) {
|
|
460
|
+
app.log.error({ err: rollbackError, targets }, 'DELETE /agents rollback failed');
|
|
461
|
+
return reply.status(500).send({
|
|
462
|
+
error: `runtime cleanup failed and agent state could not be restored safely: ${rollbackError.message}`,
|
|
411
463
|
});
|
|
412
464
|
}
|
|
413
|
-
|
|
465
|
+
return reply.status(502).send({
|
|
466
|
+
error: `runtime cleanup failed for ${targets.join(',')}; agent state and exact task locks were restored. ` +
|
|
467
|
+
`Fix the underlying SSH / tmux / Workdir issue and retry DELETE.`,
|
|
468
|
+
failures: failures.map(f => ({ agentId: f.agentId, step: f.step,
|
|
469
|
+
error: f.error instanceof Error ? f.error.message : String(f.error) })),
|
|
470
|
+
});
|
|
414
471
|
}
|
|
415
472
|
const phase3Result = await withConfigLock(async () => {
|
|
416
473
|
const currentHash = configHash(app.ctx.config);
|
|
@@ -422,9 +479,13 @@ export async function projectRoutes(app) {
|
|
|
422
479
|
validated = prepareConfig(rollbackBase);
|
|
423
480
|
}
|
|
424
481
|
catch (err) {
|
|
425
|
-
await
|
|
426
|
-
|
|
427
|
-
|
|
482
|
+
const rollbackError = await rollbackAndRelease();
|
|
483
|
+
if (rollbackError) {
|
|
484
|
+
app.log.error({ err: rollbackError, targets }, 'DELETE /agents rollback after config validation failed');
|
|
485
|
+
return reply.status(500).send({
|
|
486
|
+
error: `config validation and agent-state rollback both failed: ${rollbackError.message}`,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
428
489
|
if (err instanceof ConfigValidationError) {
|
|
429
490
|
return reply.status(400).send({ error: 'Invalid config', details: err.errors });
|
|
430
491
|
}
|
|
@@ -434,12 +495,16 @@ export async function projectRoutes(app) {
|
|
|
434
495
|
await saveConfig(app.ctx.configPath, validated);
|
|
435
496
|
}
|
|
436
497
|
catch (err) {
|
|
437
|
-
app.log.error({ err, targets }, 'DELETE /agents Phase 3 saveConfig failed;
|
|
438
|
-
await
|
|
439
|
-
|
|
440
|
-
|
|
498
|
+
app.log.error({ err, targets }, 'DELETE /agents Phase 3 saveConfig failed; restoring agent state and exact locks');
|
|
499
|
+
const rollbackError = await rollbackAndRelease();
|
|
500
|
+
if (rollbackError) {
|
|
501
|
+
app.log.error({ err: rollbackError, targets }, 'DELETE /agents rollback after saveConfig failed');
|
|
502
|
+
return reply.status(500).send({
|
|
503
|
+
error: `failed to persist config and restore agent state safely: ${rollbackError.message}`,
|
|
504
|
+
});
|
|
505
|
+
}
|
|
441
506
|
return reply.status(500).send({
|
|
442
|
-
error: 'failed to persist config after runtime cleanup;
|
|
507
|
+
error: 'failed to persist config after runtime cleanup; agent state and exact task locks were restored',
|
|
443
508
|
});
|
|
444
509
|
}
|
|
445
510
|
app.ctx.config = validated;
|
|
@@ -469,7 +534,9 @@ export async function projectRoutes(app) {
|
|
|
469
534
|
app.log.warn({ err: petErr, agentId: id }, 'DELETE /agents petStore.setAssignment(null) failed');
|
|
470
535
|
}
|
|
471
536
|
}
|
|
472
|
-
|
|
537
|
+
const claim = acquiredLocks.get(id);
|
|
538
|
+
if (claim)
|
|
539
|
+
await app.ctx.lockManager.releaseIfOwner(id, claim.taskId, claim.token);
|
|
473
540
|
}
|
|
474
541
|
return reply.send({ removed: targets, restartRequired: false });
|
|
475
542
|
});
|
|
@@ -520,6 +587,10 @@ export async function projectRoutes(app) {
|
|
|
520
587
|
if (guard)
|
|
521
588
|
return reply.status(guard.status).send({ error: guard.error });
|
|
522
589
|
const owner = await resolveLockOwnership(app, agentId);
|
|
590
|
+
const maintenanceOwner = 'maintenance:restart-repl';
|
|
591
|
+
let maintenanceLockOwner = maintenanceOwner;
|
|
592
|
+
let maintenanceToken = null;
|
|
593
|
+
let acquiredMaintenanceLock = false;
|
|
523
594
|
if (!owner.takeover) {
|
|
524
595
|
const stateBefore = await app.ctx.agentStore.get(agentId);
|
|
525
596
|
const task = stateBefore?.taskId ? await app.ctx.taskStore.get(stateBefore.taskId) : null;
|
|
@@ -530,21 +601,27 @@ export async function projectRoutes(app) {
|
|
|
530
601
|
`task would lose work. cancel the task first.`,
|
|
531
602
|
});
|
|
532
603
|
}
|
|
533
|
-
|
|
534
|
-
|
|
604
|
+
maintenanceLockOwner = stateBefore?.taskId ?? maintenanceOwner;
|
|
605
|
+
const lock = await acquireOrReuseExactLock(app, agentId, maintenanceLockOwner);
|
|
606
|
+
if (!lock) {
|
|
535
607
|
return reply.status(409).send({ error: `Agent "${agentId}" is locked by another op; please retry later` });
|
|
536
608
|
}
|
|
609
|
+
maintenanceToken = lock.token;
|
|
610
|
+
acquiredMaintenanceLock = lock.acquired;
|
|
537
611
|
}
|
|
538
612
|
try {
|
|
539
613
|
await app.ctx.agentManager.restartReplOnly(agentId);
|
|
540
614
|
}
|
|
541
615
|
catch (err) {
|
|
542
|
-
if (
|
|
543
|
-
await app.ctx.lockManager.
|
|
616
|
+
if (maintenanceToken && acquiredMaintenanceLock) {
|
|
617
|
+
await app.ctx.lockManager.releaseIfOwner(agentId, maintenanceLockOwner, maintenanceToken);
|
|
618
|
+
}
|
|
544
619
|
const message = err instanceof Error ? err.message : String(err);
|
|
545
620
|
return reply.status(500).send({ error: message });
|
|
546
621
|
}
|
|
547
|
-
await pendingCleanupAfterReplReady(app, agentId, owner.takeover
|
|
622
|
+
await pendingCleanupAfterReplReady(app, agentId, owner.takeover, maintenanceToken
|
|
623
|
+
? { taskId: maintenanceLockOwner, token: maintenanceToken }
|
|
624
|
+
: undefined);
|
|
548
625
|
return reply.send({ ok: true, agentId });
|
|
549
626
|
});
|
|
550
627
|
app.post('/projects/:projectId/agents/:agentId/retry', async (request, reply) => {
|
|
@@ -563,11 +640,24 @@ export async function projectRoutes(app) {
|
|
|
563
640
|
return reply.status(409).send({ error: 'agent is already ready; retry is for failed/missing sessions' });
|
|
564
641
|
}
|
|
565
642
|
const owner = await resolveLockOwnership(app, agentId);
|
|
643
|
+
const maintenanceOwner = 'maintenance:retry';
|
|
644
|
+
const maintenanceLockOwner = stateBefore?.taskId ?? maintenanceOwner;
|
|
645
|
+
let maintenanceToken = null;
|
|
646
|
+
let acquiredMaintenanceLock = false;
|
|
566
647
|
if (!owner.takeover) {
|
|
567
|
-
const
|
|
568
|
-
if (
|
|
648
|
+
const task = stateBefore?.taskId ? await app.ctx.taskStore.get(stateBefore.taskId) : null;
|
|
649
|
+
if (task && TASK_ACTIVE_STATUS_SET.has(task.status)) {
|
|
650
|
+
return reply.status(409).send({
|
|
651
|
+
error: `agent "${agentId}" is bound to active task ${task.id}, but does not hold that task's ` +
|
|
652
|
+
`exclusive lock; Resume or cancel the task before retrying the REPL.`,
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
const lock = await acquireOrReuseExactLock(app, agentId, maintenanceLockOwner);
|
|
656
|
+
if (!lock) {
|
|
569
657
|
return reply.status(409).send({ error: `Agent "${agentId}" is locked by another op; please retry later` });
|
|
570
658
|
}
|
|
659
|
+
maintenanceToken = lock.token;
|
|
660
|
+
acquiredMaintenanceLock = lock.acquired;
|
|
571
661
|
}
|
|
572
662
|
try {
|
|
573
663
|
const result = await app.ctx.agentManager.ensureSession(agentId, 'runtime');
|
|
@@ -581,8 +671,9 @@ export async function projectRoutes(app) {
|
|
|
581
671
|
}
|
|
582
672
|
catch (err) {
|
|
583
673
|
if (await app.ctx.agentManager.handleDialogPendingFromRuntime(agentId, err)) {
|
|
584
|
-
if (
|
|
585
|
-
await app.ctx.lockManager.
|
|
674
|
+
if (maintenanceToken && acquiredMaintenanceLock) {
|
|
675
|
+
await app.ctx.lockManager.releaseIfOwner(agentId, maintenanceLockOwner, maintenanceToken);
|
|
676
|
+
}
|
|
586
677
|
return reply.status(202).send({
|
|
587
678
|
ok: true,
|
|
588
679
|
agentId,
|
|
@@ -600,15 +691,50 @@ export async function projectRoutes(app) {
|
|
|
600
691
|
app.log.warn({ err: cleanupErr, agentId }, 'POST /retry ensureSession rollback killSession failed');
|
|
601
692
|
}
|
|
602
693
|
}
|
|
603
|
-
if (
|
|
604
|
-
await app.ctx.lockManager.
|
|
694
|
+
if (maintenanceToken && acquiredMaintenanceLock) {
|
|
695
|
+
await app.ctx.lockManager.releaseIfOwner(agentId, maintenanceLockOwner, maintenanceToken);
|
|
696
|
+
}
|
|
605
697
|
const message = err instanceof Error ? err.message : String(err);
|
|
606
698
|
return reply.status(500).send({ error: message });
|
|
607
699
|
}
|
|
608
|
-
await pendingCleanupAfterReplReady(app, agentId, owner.takeover
|
|
700
|
+
await pendingCleanupAfterReplReady(app, agentId, owner.takeover, maintenanceToken
|
|
701
|
+
? { taskId: maintenanceLockOwner, token: maintenanceToken }
|
|
702
|
+
: undefined);
|
|
609
703
|
return reply.send({ ok: true, agentId });
|
|
610
704
|
});
|
|
611
705
|
}
|
|
706
|
+
function findConfiguredWorkdirConflict(config, candidate) {
|
|
707
|
+
if (typeof candidate.workdir !== 'string'
|
|
708
|
+
|| candidate.workdir.trim() === ''
|
|
709
|
+
|| !isAbsolute(candidate.workdir)
|
|
710
|
+
|| (candidate.mode !== 'local' && candidate.mode !== 'remote'))
|
|
711
|
+
return null;
|
|
712
|
+
const resolvedCandidateHost = resolveAgentHost(config.host, candidate.host);
|
|
713
|
+
if (candidate.mode === 'remote'
|
|
714
|
+
&& (!resolvedCandidateHost || typeof resolvedCandidateHost.hostname !== 'string'))
|
|
715
|
+
return null;
|
|
716
|
+
const candidateHost = workdirHostGroupKey(candidate.mode, resolvedCandidateHost);
|
|
717
|
+
const candidatePath = normalize(candidate.workdir);
|
|
718
|
+
for (const project of config.project) {
|
|
719
|
+
for (const existing of project.agent.flat()) {
|
|
720
|
+
if (!existing.workdir)
|
|
721
|
+
continue;
|
|
722
|
+
const existingHost = workdirHostGroupKey(existing.mode, resolveAgentHost(config.host, existing.host));
|
|
723
|
+
if (existingHost === candidateHost && normalize(existing.workdir) === candidatePath) {
|
|
724
|
+
return existing.id;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
return null;
|
|
729
|
+
}
|
|
730
|
+
async function acquireOrReuseExactLock(app, agentId, taskId) {
|
|
731
|
+
const claim = await app.ctx.lockManager.claimOf(agentId);
|
|
732
|
+
if (claim) {
|
|
733
|
+
return claim.taskId === taskId ? { token: claim.token, acquired: false } : null;
|
|
734
|
+
}
|
|
735
|
+
const token = await app.ctx.lockManager.acquire(agentId, taskId);
|
|
736
|
+
return token ? { token, acquired: true } : null;
|
|
737
|
+
}
|
|
612
738
|
async function resolveLockOwnership(app, agentId) {
|
|
613
739
|
const cfg = app.ctx.agentManager.getAgentConfig(agentId);
|
|
614
740
|
if (!cfg || cfg.role !== 'dev')
|
|
@@ -621,10 +747,21 @@ async function resolveLockOwnership(app, agentId) {
|
|
|
621
747
|
return { takeover: false };
|
|
622
748
|
if (!TASK_ACTIVE_STATUS_SET.has(task.status))
|
|
623
749
|
return { takeover: false };
|
|
624
|
-
|
|
625
|
-
if (!
|
|
750
|
+
let token = state.lockToken;
|
|
751
|
+
if (!token || !(await app.ctx.lockManager.isOwner(agentId, task.id, token))) {
|
|
752
|
+
const claim = await app.ctx.lockManager.claimOf(agentId);
|
|
753
|
+
token = claim?.taskId === task.id ? claim.token : undefined;
|
|
754
|
+
if (token) {
|
|
755
|
+
await app.ctx.agentStore.update(agentId, (latest) => {
|
|
756
|
+
if (!latest || latest.taskId !== task.id || latest.lockToken === token)
|
|
757
|
+
return latest;
|
|
758
|
+
return { ...latest, lockToken: token, updatedAt: new Date().toISOString() };
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
if (!token)
|
|
626
763
|
return { takeover: false };
|
|
627
|
-
return { takeover:
|
|
764
|
+
return { takeover: await app.ctx.lockManager.isOwner(agentId, task.id, token) };
|
|
628
765
|
}
|
|
629
766
|
async function rejectIfOpInProgress(app, agentId) {
|
|
630
767
|
const state = await app.ctx.agentStore.get(agentId);
|
|
@@ -633,7 +770,7 @@ async function rejectIfOpInProgress(app, agentId) {
|
|
|
633
770
|
}
|
|
634
771
|
return null;
|
|
635
772
|
}
|
|
636
|
-
async function pendingCleanupAfterReplReady(app, agentId, takeover) {
|
|
773
|
+
async function pendingCleanupAfterReplReady(app, agentId, takeover, maintenance) {
|
|
637
774
|
const state = await app.ctx.agentStore.get(agentId);
|
|
638
775
|
const taskId = state?.taskId;
|
|
639
776
|
if (!taskId) {
|
|
@@ -643,12 +780,24 @@ async function pendingCleanupAfterReplReady(app, agentId, takeover) {
|
|
|
643
780
|
else {
|
|
644
781
|
await app.ctx.agentManager.clearAwaitingHuman(agentId);
|
|
645
782
|
}
|
|
646
|
-
if (!takeover)
|
|
647
|
-
await app.ctx.lockManager.
|
|
783
|
+
if (!takeover && maintenance) {
|
|
784
|
+
await app.ctx.lockManager.releaseIfOwner(agentId, maintenance.taskId, maintenance.token);
|
|
785
|
+
}
|
|
648
786
|
return;
|
|
649
787
|
}
|
|
650
788
|
const task = await app.ctx.taskStore.get(taskId);
|
|
651
789
|
if (!task || TASK_TERMINAL_STATUS_SET.has(task.status)) {
|
|
790
|
+
if (maintenance?.taskId === taskId) {
|
|
791
|
+
await app.ctx.agentStore.update(agentId, (latest) => {
|
|
792
|
+
if (!latest || latest.taskId !== taskId)
|
|
793
|
+
return latest;
|
|
794
|
+
return {
|
|
795
|
+
...latest,
|
|
796
|
+
lockToken: maintenance.token,
|
|
797
|
+
updatedAt: new Date().toISOString(),
|
|
798
|
+
};
|
|
799
|
+
});
|
|
800
|
+
}
|
|
652
801
|
await app.ctx.agentManager.releaseAgentForTask(agentId, taskId, 'idle', { allowAwaitingHuman: true })
|
|
653
802
|
.catch(err => app.log.warn({ err, agentId, taskId }, 'restart/retry idle-release failed'));
|
|
654
803
|
return;
|
|
@@ -659,25 +808,48 @@ async function pendingCleanupAfterReplReady(app, agentId, takeover) {
|
|
|
659
808
|
});
|
|
660
809
|
}
|
|
661
810
|
async function rollbackPerTargetState(app, targets, originalStates) {
|
|
811
|
+
const failures = [];
|
|
662
812
|
for (const id of targets) {
|
|
663
813
|
const original = originalStates.get(id) ?? null;
|
|
664
814
|
if (!original) {
|
|
665
815
|
try {
|
|
666
816
|
await app.ctx.agentStore.delete(id);
|
|
667
817
|
}
|
|
668
|
-
catch {
|
|
818
|
+
catch (err) {
|
|
819
|
+
failures.push(new Error(`delete transient state for ${id}: ${err instanceof Error ? err.message : String(err)}`));
|
|
820
|
+
}
|
|
669
821
|
continue;
|
|
670
822
|
}
|
|
671
823
|
try {
|
|
824
|
+
let lockToken = original.lockToken;
|
|
825
|
+
if (original.taskId) {
|
|
826
|
+
const claim = await app.ctx.lockManager.claimOf(id);
|
|
827
|
+
if (claim?.taskId === original.taskId) {
|
|
828
|
+
lockToken = claim.token;
|
|
829
|
+
}
|
|
830
|
+
else if (claim === null) {
|
|
831
|
+
lockToken = await app.ctx.lockManager.acquire(id, original.taskId) ?? undefined;
|
|
832
|
+
}
|
|
833
|
+
else {
|
|
834
|
+
throw new Error(`lock is owned by ${claim.taskId}, expected ${original.taskId}`);
|
|
835
|
+
}
|
|
836
|
+
if (!lockToken || !(await app.ctx.lockManager.isOwner(id, original.taskId, lockToken))) {
|
|
837
|
+
throw new Error(`could not restore exact task lock for ${original.taskId}`);
|
|
838
|
+
}
|
|
839
|
+
}
|
|
672
840
|
await app.ctx.agentStore.set({
|
|
673
841
|
...original,
|
|
842
|
+
...(original.taskId ? { lockToken } : { lockToken: undefined }),
|
|
674
843
|
paneId: undefined,
|
|
675
844
|
updatedAt: new Date().toISOString(),
|
|
676
845
|
});
|
|
677
846
|
}
|
|
678
847
|
catch (err) {
|
|
679
|
-
|
|
848
|
+
failures.push(new Error(`restore state for ${id}: ${err instanceof Error ? err.message : String(err)}`));
|
|
680
849
|
}
|
|
681
850
|
}
|
|
851
|
+
if (failures.length > 0) {
|
|
852
|
+
throw new AggregateError(failures, `Failed to roll back ${failures.length} agent deletion state(s)`);
|
|
853
|
+
}
|
|
682
854
|
}
|
|
683
855
|
//# sourceMappingURL=projects.js.map
|
package/dist/api/projects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"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"}
|