@cat-factory/orchestration 0.53.2 → 0.54.1

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 (40) hide show
  1. package/dist/container.d.ts +10 -0
  2. package/dist/container.d.ts.map +1 -1
  3. package/dist/container.js +7 -0
  4. package/dist/container.js.map +1 -1
  5. package/dist/modules/execution/AgentContextBuilder.d.ts +19 -0
  6. package/dist/modules/execution/AgentContextBuilder.d.ts.map +1 -1
  7. package/dist/modules/execution/AgentContextBuilder.js +57 -2
  8. package/dist/modules/execution/AgentContextBuilder.js.map +1 -1
  9. package/dist/modules/execution/ExecutionService.d.ts +52 -2
  10. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  11. package/dist/modules/execution/ExecutionService.js +174 -53
  12. package/dist/modules/execution/ExecutionService.js.map +1 -1
  13. package/dist/modules/execution/RunDispatcher.d.ts.map +1 -1
  14. package/dist/modules/execution/RunDispatcher.js +9 -3
  15. package/dist/modules/execution/RunDispatcher.js.map +1 -1
  16. package/dist/modules/execution/ci.logic.d.ts +9 -31
  17. package/dist/modules/execution/ci.logic.d.ts.map +1 -1
  18. package/dist/modules/execution/ci.logic.js +27 -31
  19. package/dist/modules/execution/ci.logic.js.map +1 -1
  20. package/dist/modules/execution/frontend-infra.logic.d.ts +25 -0
  21. package/dist/modules/execution/frontend-infra.logic.d.ts.map +1 -0
  22. package/dist/modules/execution/frontend-infra.logic.js +33 -0
  23. package/dist/modules/execution/frontend-infra.logic.js.map +1 -0
  24. package/dist/modules/execution/tester-infra.logic.d.ts +23 -4
  25. package/dist/modules/execution/tester-infra.logic.d.ts.map +1 -1
  26. package/dist/modules/execution/tester-infra.logic.js +15 -4
  27. package/dist/modules/execution/tester-infra.logic.js.map +1 -1
  28. package/dist/modules/kaizen/KaizenService.d.ts +5 -0
  29. package/dist/modules/kaizen/KaizenService.d.ts.map +1 -1
  30. package/dist/modules/kaizen/KaizenService.js +2 -1
  31. package/dist/modules/kaizen/KaizenService.js.map +1 -1
  32. package/dist/modules/review/IterativeReviewService.d.ts +7 -0
  33. package/dist/modules/review/IterativeReviewService.d.ts.map +1 -1
  34. package/dist/modules/review/IterativeReviewService.js +2 -1
  35. package/dist/modules/review/IterativeReviewService.js.map +1 -1
  36. package/dist/modules/sandbox/SandboxRunService.d.ts +5 -0
  37. package/dist/modules/sandbox/SandboxRunService.d.ts.map +1 -1
  38. package/dist/modules/sandbox/SandboxRunService.js +2 -1
  39. package/dist/modules/sandbox/SandboxRunService.js.map +1 -1
  40. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionService.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecutionService.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/ExecutionService.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { DEFAULT_COMPANION_MAX_ATTEMPTS, isLocalRunner } from '@cat-factory/contracts';
2
- import { BINARY_STORAGE_TRAIT, companionFor, companionTargets, hasTrait, isCompanionKind, } from '@cat-factory/agents';
1
+ import { DEFAULT_COMPANION_MAX_ATTEMPTS, frameAllowsVisualPipeline, isLocalRunner, pipelineHasVisualStep, } from '@cat-factory/contracts';
2
+ import { BINARY_STORAGE_TRAIT, companionFor, companionTargets, hasTrait, isCompanionKind, isInlineModelStep, } from '@cat-factory/agents';
3
3
  import { validatePipelineShape } from '../pipelines/pipelineShape.js';
4
4
  import { shouldRunGatedStep } from './stepGating.logic.js';
5
5
  import { resolveIndividualVendors, } from './individualVendors.logic.js';
6
- import { assertFound, ConflictError, isModelUsable, NotFoundError, resolveModelRef, subscriptionOptionFor, ValidationError, } from '@cat-factory/kernel';
6
+ import { assertFound, ConflictError, isModelUsable, isModelUsableInline, NotFoundError, resolveModelRef, subscriptionOptionFor, ValidationError, } from '@cat-factory/kernel';
7
7
  import { DEFAULT_MERGE_PRESET } from '@cat-factory/kernel';
8
8
  import { REQUIREMENTS_REVIEW_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, REQUIREMENTS_BRAINSTORM_AGENT_KIND, ARCHITECTURE_BRAINSTORM_AGENT_KIND, BUG_INVESTIGATOR_AGENT_KIND, isTesterKind, HUMAN_TEST_AGENT_KIND, VISUAL_CONFIRM_AGENT_KIND, HUMAN_REVIEW_AGENT_KIND, } from './ci.logic.js';
9
9
  import { DEFAULT_FOLLOW_UP_MAX_LOOPS, FOLLOW_UP_PRODUCER_KIND } from './followUp.logic.js';
@@ -24,6 +24,7 @@ import { dependenciesMet, descendantIds, serviceOf, unmetDependencies, } from '.
24
24
  import { requireWorkspace } from '@cat-factory/kernel';
25
25
  import { planResumedSteps, planRestartFromStep } from './retry.logic.js';
26
26
  import { decideTesterInfra, TESTER_INFRA_MESSAGES } from './tester-infra.logic.js';
27
+ import { hasLiveServiceBinding, hasServiceBinding } from './frontend-infra.logic.js';
27
28
  /**
28
29
  * The execution engine. It orchestrates a pipeline of agent-performed steps and
29
30
  * is fully deterministic: `advanceInstance` moves one run forward by exactly one
@@ -91,6 +92,7 @@ export class ExecutionService {
91
92
  issueWriteback;
92
93
  subscriptionActivations;
93
94
  resolveProviderCapabilities;
95
+ inlineHarnessRef;
94
96
  resolveWorkspaceModelDefault;
95
97
  /** Whether the runtime can run the Tester's local DinD infra (false = limited mode). */
96
98
  localTestInfraSupported;
@@ -111,7 +113,7 @@ export class ExecutionService {
111
113
  * / `resolveGatePollExhaustion` + the follow-up human-action API are thin pass-throughs.
112
114
  */
113
115
  runDispatcher;
114
- constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, documentUrlResolver, taskRepository, requirementReviewRepository, requirementReviewService, kaizenScheduler, clarityReviewRepository, clarityReviewService, brainstormServices, brainstormSessionRepository, fragmentResolver, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, resolveBinaryArtifactStore, workspaceSettingsService, llmObservability, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, localTestInfraSupported, resolveRunRepoContext, assertAgentBackendConfigured, runInitiatorScope, }) {
116
+ constructor({ workspaceRepository, blockRepository, pipelineRepository, executionRepository, accountRepository, idGenerator, clock, agentExecutor, workRunner, executionEventPublisher, boardService, spendService, documentRepository, documentUrlResolver, taskRepository, requirementReviewRepository, requirementReviewService, kaizenScheduler, clarityReviewRepository, clarityReviewService, brainstormServices, brainstormSessionRepository, fragmentResolver, environmentProvisioning, environmentTeardown, branchUpdater, blueprintReconciler, notificationService, resolveBinaryArtifactStore, workspaceSettingsService, llmObservability, pullRequestMerger, mergePresetRepository, ticketTrackerProvider, issueWriteback, subscriptionActivationRepository, resolveWorkspaceModelDefault, resolveProviderCapabilities, inlineHarnessRef, localTestInfraSupported, resolveRunRepoContext, assertAgentBackendConfigured, runInitiatorScope, }) {
115
117
  // Forward-only: the run-initiator scope is consumed solely by RunDispatcher (below), so it
116
118
  // is hoisted to a local with its default applied rather than stored as a `this.` field.
117
119
  const runInitiatorScopeFn = runInitiatorScope ?? ((_initiatedBy, fn) => fn());
@@ -294,6 +296,7 @@ export class ExecutionService {
294
296
  this.subscriptionActivations = subscriptionActivationRepository;
295
297
  this.resolveWorkspaceModelDefault = resolveWorkspaceModelDefault;
296
298
  this.resolveProviderCapabilities = resolveProviderCapabilities;
299
+ this.inlineHarnessRef = inlineHarnessRef;
297
300
  this.localTestInfraSupported = localTestInfraSupported ?? true;
298
301
  this.assertAgentBackendConfigured = assertAgentBackendConfigured;
299
302
  this.resolveBinaryArtifactStore = resolveBinaryArtifactStore;
@@ -376,7 +379,58 @@ export class ExecutionService {
376
379
  * otherwise. Passes through when the provisioning seam is unwired (tests / no environment
377
380
  * integration), like the other optional start guards.
378
381
  */
382
+ /**
383
+ * Guard a run start when the pipeline carries a VISUAL step (`tester-ui` /
384
+ * `visual-confirmation`): such a step exercises a rendered UI, so it only makes sense where
385
+ * there is a UI to drive — a `type: 'frontend'` frame (it owns the app under test) or a frame
386
+ * a `frontend` frame links to (the linked frontend is the UI a change to that service is
387
+ * validated through). On any other frame (a service with no linked frontend, a `library` /
388
+ * `document` repo) a `tester-ui` step would have nothing to drive, so refuse the start with an
389
+ * actionable {@link ConflictError} (`visual_pipeline_no_frontend`). The frontend surfaces the
390
+ * SAME rule (via the shared `frameAllowsVisualPipeline`) so it only offers these pipelines
391
+ * where they can run; this is the server-side guarantee. A non-visual pipeline passes through.
392
+ * The workspace block list is read ONCE (for the frontend→service links), never per-frame.
393
+ */
394
+ async assertPipelineFrameTypeAllowed(workspaceId, block, agentKinds) {
395
+ if (!pipelineHasVisualStep({ agentKinds: [...agentKinds] }))
396
+ return;
397
+ const frame = await this.contextBuilder.resolveServiceFrame(workspaceId, block.id);
398
+ // A `frontend` frame is always allowed without listing the workspace; only a non-frontend
399
+ // frame needs the link scan, so defer the (single) block-list read until then.
400
+ if (frame?.type === 'frontend')
401
+ return;
402
+ const blocks = await this.blockRepository.listByWorkspace(workspaceId);
403
+ if (frameAllowsVisualPipeline(frame, blocks))
404
+ return;
405
+ throw new ConflictError('This pipeline includes a UI-testing step, so it can only run on a frontend service (or a ' +
406
+ 'backend service that has a frontend linked to it). Move the task under a frontend, link ' +
407
+ 'a frontend to this service, or pick a pipeline without UI-testing steps.', 'visual_pipeline_no_frontend', { frameType: frame?.type ?? null });
408
+ }
379
409
  async assertTesterInfraConfigured(workspaceId, block) {
410
+ // A `frontend` frame (the self-contained UI-test flow) is gated on having a live service
411
+ // under test, NOT on a provision type — resolved first and short-circuiting the backend
412
+ // branch. Only enforce it when the environment seam is wired (else, like the other optional
413
+ // start guards, pass through so tests / no-env deployments run unchanged).
414
+ const frontend = await this.contextBuilder.resolveFrontendConfig(workspaceId, block);
415
+ if (frontend) {
416
+ if (!this.environmentProvisioning)
417
+ return;
418
+ const decision = decideTesterInfra({
419
+ frontend: {
420
+ hasServiceBindings: hasServiceBinding(frontend.config),
421
+ hasLiveService: hasLiveServiceBinding(frontend.bindings),
422
+ },
423
+ provisionType: undefined,
424
+ localTestInfraSupported: this.localTestInfraSupported,
425
+ hasComposePath: false,
426
+ handlerResolves: true,
427
+ });
428
+ if (decision.ok)
429
+ return;
430
+ throw new ConflictError(TESTER_INFRA_MESSAGES[decision.reason], 'tester_infra_unsupported', {
431
+ infraReason: decision.reason,
432
+ });
433
+ }
380
434
  const service = await this.contextBuilder.resolveServiceConfig(workspaceId, block);
381
435
  const provisioning = service?.provisioning;
382
436
  // Only `kubernetes`/`custom` need a workspace handler resolved; resolve it lazily and
@@ -435,22 +489,38 @@ export class ExecutionService {
435
489
  * personal-credential gate. A throw aborts the start cleanly before any side effects.
436
490
  * Skipped when no capability resolver is wired (tests / unconfigured facades).
437
491
  */
438
- async assertProvidersConfiguredForPipeline(workspaceId, block, pipeline, initiatedBy) {
492
+ async assertProvidersConfiguredForPipeline(workspaceId, block, agentKinds, initiatedBy) {
439
493
  if (!this.resolveProviderCapabilities)
440
494
  return;
441
495
  const caps = await this.resolveProviderCapabilities(workspaceId, initiatedBy);
496
+ const runsInline = this.inlineHarnessRef;
497
+ // Two failure buckets, so the error can steer the fix precisely:
498
+ // - `unconfigured`: no usable provider AT ALL (container or inline) — add a key/sub/CF.
499
+ // - `inlineUnsatisfiable`: usable for a container step but NOT for an INLINE step — a
500
+ // subscription-only model an inline `generateText` call can't drive (and this
501
+ // deployment can't run the harness inline). The remedy is different (pin an
502
+ // inline-capable model, or a preset whose inline steps resolve to one), so a subscription
503
+ // model that satisfies the container steps but strands the reviewer/brainstorm/estimator
504
+ // is refused up front instead of failing mid-run against an ungated env default.
442
505
  const unconfigured = new Set();
443
- const check = (id) => {
444
- if (id && !isModelUsable(id, caps))
506
+ const inlineUnsatisfiable = new Set();
507
+ const check = (id, inline) => {
508
+ if (!id)
509
+ return;
510
+ if (!isModelUsable(id, caps))
445
511
  unconfigured.add(id);
512
+ else if (inline && !isModelUsableInline(id, caps, runsInline))
513
+ inlineUnsatisfiable.add(id);
446
514
  };
447
515
  if (block.modelId) {
448
- // A block-level pin applies to every step.
449
- check(block.modelId);
516
+ // A block-level pin applies to every step; it must satisfy an inline step too when the
517
+ // pipeline has one.
518
+ check(block.modelId, agentKinds.some(isInlineModelStep));
450
519
  }
451
520
  else if (this.resolveWorkspaceModelDefault) {
452
- for (const kind of pipeline.agentKinds) {
453
- check(await this.resolveWorkspaceModelDefault(workspaceId, kind, block.modelPresetId));
521
+ for (const kind of agentKinds) {
522
+ const id = await this.resolveWorkspaceModelDefault(workspaceId, kind, block.modelPresetId);
523
+ check(id, isInlineModelStep(kind));
454
524
  }
455
525
  }
456
526
  if (unconfigured.size > 0) {
@@ -458,6 +528,14 @@ export class ExecutionService {
458
528
  'Add an API key for the provider, connect a subscription, or enable Cloudflare AI ' +
459
529
  'before starting.', 'providers_unconfigured', { models: [...unconfigured] });
460
530
  }
531
+ if (inlineUnsatisfiable.size > 0) {
532
+ throw new ConflictError(`This pipeline has inline steps (e.g. the requirements reviewer) whose model ` +
533
+ `cannot run inline: ${[...inlineUnsatisfiable].join(', ')}. A subscription-only model ` +
534
+ '(Claude / GPT / GLM) runs only in the container agents, not the inline reviewers — ' +
535
+ 'and this deployment has no inline harness. Pick a model preset whose inline steps ' +
536
+ 'resolve to a provider-backed model (a direct API key, OpenRouter, or Cloudflare AI), ' +
537
+ 'or run local mode with the ambient Claude Code / Codex CLI enabled.', 'preset_unsatisfiable', { models: [...inlineUnsatisfiable] });
538
+ }
461
539
  }
462
540
  /**
463
541
  * Refuse to START / RETRY a run when the workspace has reached its spend budget AND the
@@ -469,7 +547,7 @@ export class ExecutionService {
469
547
  * with no capability resolver wired (tests/unconfigured) it is skipped and the mid-run
470
548
  * gate still guards. Before any side effects, matching the other start guards.
471
549
  */
472
- async assertBudgetAllowsPipeline(workspaceId, block, pipeline, initiatedBy) {
550
+ async assertBudgetAllowsPipeline(workspaceId, block, agentKinds, initiatedBy) {
473
551
  if (!(await this.spend.isOverBudget(workspaceId)))
474
552
  return;
475
553
  if (!this.resolveProviderCapabilities)
@@ -480,7 +558,7 @@ export class ExecutionService {
480
558
  ids.push(block.modelId);
481
559
  }
482
560
  else if (this.resolveWorkspaceModelDefault) {
483
- for (const kind of pipeline.agentKinds) {
561
+ for (const kind of agentKinds) {
484
562
  ids.push(await this.resolveWorkspaceModelDefault(workspaceId, kind, block.modelPresetId));
485
563
  }
486
564
  }
@@ -512,6 +590,66 @@ export class ExecutionService {
512
590
  return false;
513
591
  return !isLocalRunner(ref.provider);
514
592
  }
593
+ /**
594
+ * The config/resource preconditions a run must satisfy to START, RETRY **or** RESTART:
595
+ * everything that depends on the workspace environment + the steps being run, and NOT on
596
+ * whether this is a fresh run or a replacement. All three entry points call this so they
597
+ * can't drift — a guard added to one but silently missing from the other is exactly how a
598
+ * subscription-only preset slipped past retry and failed mid-run against the routing default.
599
+ * All checks are read-only and run BEFORE any side effects, each throwing an actionable
600
+ * {@link ConflictError}.
601
+ *
602
+ * The `shape` is the effective chain that will run, NOT the current pipeline definition: a
603
+ * fresh start passes the pipeline, while a retry/restart passes the STORED steps (via
604
+ * {@link runnableShapeOf}) so the guard validates exactly what re-executes — a pipeline
605
+ * edited out of band since the run started can't falsely refuse (or silently skip a check
606
+ * for) a step that isn't actually being re-driven.
607
+ *
608
+ * The concurrency (task-limit) and dependency gates are deliberately NOT here — they are
609
+ * start-only (a retry replaces the failed run rather than adding a new concurrent one, and a
610
+ * re-drive of an already-started task isn't re-gated on its dependencies).
611
+ */
612
+ async assertRunnable(workspaceId, block, shape, initiatedBy) {
613
+ // Reject a structurally-invalid chain (a misplaced companion or estimate-gating without a
614
+ // preceding task-estimator). The builder also rejects these at save, but a pipeline can
615
+ // become invalid out of band.
616
+ validatePipelineShape(shape);
617
+ // A chain with visual steps (`tester-ui` / `visual-confirmation`) needs a UI to exercise:
618
+ // it can only run on a `frontend` frame or a frame a frontend links to — else a `tester-ui`
619
+ // step has no app to drive.
620
+ await this.assertPipelineFrameTypeAllowed(workspaceId, block, shape.agentKinds);
621
+ // A chain with a Tester needs the service's declared provisioning to be runnable
622
+ // (`infraless`/none = no infra, `docker-compose` = DinD, `kubernetes`/`custom` = a handler).
623
+ if (shape.agentKinds.some(isTesterKind)) {
624
+ await this.assertTesterInfraConfigured(workspaceId, block);
625
+ }
626
+ // A chain carrying an agent that relies on binary-artifact storage (the UI Tester uploads
627
+ // screenshots) needs the account to have storage configured.
628
+ await this.assertBinaryStorageConfigured(workspaceId, shape.agentKinds);
629
+ // A workspace that delegates container agents to a runner pool needs that pool registered
630
+ // (local mode opt-in). No-op on Cloudflare/Node (fixed backend) and when delegation is off.
631
+ await this.assertAgentBackendConfigured?.(workspaceId);
632
+ // Every step's canonical model must have a usable provider — a container step needs any
633
+ // usable flavour, an INLINE step needs an inline-usable one (a subscription-only model can't
634
+ // run inline without an inline harness). This is the gate a retry used to skip.
635
+ await this.assertProvidersConfiguredForPipeline(workspaceId, block, shape.agentKinds, initiatedBy);
636
+ // Refuse a metered run once the spend budget is reached (a clear error rather than a silent
637
+ // mid-run pause). A local/subscription-only pipeline is exempt.
638
+ await this.assertBudgetAllowsPipeline(workspaceId, block, shape.agentKinds, initiatedBy);
639
+ }
640
+ /**
641
+ * The {@link PipelineShape} a retry/restart re-drives: the stored run's steps ARE the enabled,
642
+ * ordered chain that will run again, so {@link assertRunnable} validates exactly what
643
+ * re-executes rather than the current pipeline definition (which may have been edited out of
644
+ * band since the run started). Disabled steps were already filtered out at start, so every
645
+ * stored step is enabled.
646
+ */
647
+ runnableShapeOf(steps) {
648
+ return {
649
+ agentKinds: steps.map((s) => s.agentKind),
650
+ gating: steps.map((s) => s.gating ?? null),
651
+ };
652
+ }
515
653
  /** Start a pipeline against a block, replacing any prior run on it. */
516
654
  async start(workspaceId, blockId, pipelineId,
517
655
  /**
@@ -531,35 +669,16 @@ export class ExecutionService {
531
669
  await this.requireWorkspace(workspaceId);
532
670
  const block = await this.requireBlock(workspaceId, blockId);
533
671
  const pipeline = assertFound(await this.pipelineRepository.get(workspaceId, pipelineId), 'Pipeline', pipelineId);
534
- // Reject a structurally-invalid pipeline before any side effects a misplaced
535
- // companion or estimate-gating without a preceding task-estimator. The builder also
536
- // rejects these at save, but a pipeline can become invalid out of band, so a run
537
- // refuses to START as well (the same shared check).
538
- validatePipelineShape(pipeline);
539
- // A pipeline with a Tester needs the service's declared provisioning to be runnable
540
- // `infraless`/none runs with no infra, `docker-compose` needs DinD, `kubernetes`/`custom`
541
- // needs a workspace handler. Block the start with a clear, actionable error otherwise —
542
- // before any side effects (activation mint / prior-run teardown).
543
- if (pipeline.agentKinds.some(isTesterKind)) {
544
- await this.assertTesterInfraConfigured(workspaceId, block);
545
- }
546
- // Block the start when the pipeline carries an agent that relies on binary-artifact
547
- // storage (the UI Tester uploads screenshots) but the account has none configured —
548
- // before any side effects, with an actionable error pointing at the storage settings.
549
- await this.assertBinaryStorageConfigured(workspaceId, pipeline.agentKinds);
550
- // Block the start when the workspace delegates container agents to a runner pool that
551
- // isn't registered (local mode opt-in). No-op on Cloudflare/Node (fixed backend) and
552
- // when delegation is off; a missing local pool still also fails loudly at dispatch.
553
- await this.assertAgentBackendConfigured?.(workspaceId);
554
- // Block the start when a step's canonical model has no usable provider (no direct
555
- // key, no subscription, no Cloudflare) — before any side effects.
556
- await this.assertProvidersConfiguredForPipeline(workspaceId, block, pipeline, initiatedBy);
672
+ // Shared config/resource preconditions (pipeline shape, frame type, tester infra, binary
673
+ // storage, agent backend, provider/preset satisfiability, budget) the SAME gate a retry
674
+ // runs, so the two can't drift. See assertRunnable.
675
+ await this.assertRunnable(workspaceId, block, pipeline, initiatedBy);
676
+ // START-ONLY gates below: a retry REPLACES the failed run rather than adding a new one, so
677
+ // the concurrency limit doesn't apply to it, and a re-drive of an already-started task isn't
678
+ // re-gated on its dependencies.
557
679
  // Enforce the workspace's per-service running-task limit (off by default) — a clear,
558
680
  // actionable error before any side effects, so the human knows why the start was refused.
559
681
  await this.assertWithinTaskLimit(workspaceId, block);
560
- // Refuse a metered run once the spend budget is reached (a clear error rather than a
561
- // silent mid-run pause). A local/subscription-only pipeline is exempt and starts.
562
- await this.assertBudgetAllowsPipeline(workspaceId, block, pipeline, initiatedBy);
563
682
  // Hard dependency gate: a task cannot start while any block it `dependsOn` is unfinished
564
683
  // (not yet `done`/merged). Enforced server-side so it holds for manual starts, recurring
565
684
  // fires, auto-start propagation and direct API calls alike — the frontend's runnable
@@ -1599,15 +1718,14 @@ export class ExecutionService {
1599
1718
  throw new ConflictError(`Only a failed run can be retried (run is '${previous.status}').`, 'run_not_retryable', { status: previous.status });
1600
1719
  }
1601
1720
  const block = await this.requireBlock(workspaceId, previous.blockId);
1602
- // Same up-front budget gate as start(): refuse a metered retry once the budget is
1603
- // reached (local/subscription-only pipelines still retry). Before any side effects.
1604
- const pipeline = await this.pipelineRepository.get(workspaceId, previous.pipelineId);
1605
- if (pipeline) {
1606
- await this.assertBudgetAllowsPipeline(workspaceId, block, pipeline, initiatedBy ?? previous.initiatedBy);
1607
- }
1608
- // Same binary-storage precondition as start(): a retry of a run carrying a
1609
- // storage-reliant kind (the UI Tester) is refused when the account has no storage.
1610
- await this.assertBinaryStorageConfigured(workspaceId, previous.steps.map((s) => s.agentKind));
1721
+ // Run the SAME config/resource preconditions start() does (shape, frame type, tester infra,
1722
+ // binary storage, agent backend, provider/preset satisfiability, budget), so a retry can't
1723
+ // silently proceed on a config a fresh start would refuse — the drift that let a
1724
+ // subscription-only preset fail mid-run against the routing default. Validated over the
1725
+ // STORED steps (what the retry actually re-drives), not the current pipeline definition, so
1726
+ // an out-of-band pipeline edit can't skew the gate and a deleted pipeline needs no special
1727
+ // case. Before any side effects.
1728
+ await this.assertRunnable(workspaceId, block, this.runnableShapeOf(previous.steps), initiatedBy ?? previous.initiatedBy);
1611
1729
  const { steps, currentStep } = planResumedSteps(previous);
1612
1730
  // Mint the activation before replacing the failed run, so a bad password aborts
1613
1731
  // the retry without losing the retryable terminal run.
@@ -1674,16 +1792,19 @@ export class ExecutionService {
1674
1792
  activate) {
1675
1793
  await this.requireWorkspace(workspaceId);
1676
1794
  const previous = assertFound(await this.executionRepository.get(workspaceId, executionId), 'Execution', executionId);
1677
- await this.requireBlock(workspaceId, previous.blockId);
1795
+ const block = await this.requireBlock(workspaceId, previous.blockId);
1678
1796
  if (!Number.isInteger(fromStepIndex) ||
1679
1797
  fromStepIndex < 0 ||
1680
1798
  fromStepIndex >= previous.steps.length) {
1681
1799
  throw new ValidationError(`Step ${fromStepIndex} is out of range for this run (it has ${previous.steps.length} step(s)).`);
1682
1800
  }
1683
- // Same binary-storage precondition as start(): a restart of a run carrying a
1684
- // storage-reliant kind (the UI Tester) is refused when the account has no storage —
1685
- // before any teardown/side effects.
1686
- await this.assertBinaryStorageConfigured(workspaceId, previous.steps.map((s) => s.agentKind));
1801
+ // Run the SAME config/resource preconditions start()/retry() do, over the STORED steps this
1802
+ // restart re-drives (frame type, tester infra, binary storage, agent backend, provider/preset
1803
+ // satisfiability, budget). A restart re-dispatches provider-bearing steps just like a retry,
1804
+ // so it must be gated identically — otherwise a run whose preset can't run every step (e.g. a
1805
+ // subscription-only model an inline reviewer can't drive) strands mid-run instead of being
1806
+ // refused up front. Before any teardown/side effects.
1807
+ await this.assertRunnable(workspaceId, block, this.runnableShapeOf(previous.steps), initiatedBy ?? previous.initiatedBy);
1687
1808
  // Tear down whatever was driving the run we're about to replace — its per-run
1688
1809
  // container AND its durable driver — before minting the restart. A `done`/`failed`
1689
1810
  // run is already terminal (a no-op teardown), but a still-`running` run would