agentic-orchestrator 0.1.27 → 0.1.28

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.
@@ -53,6 +53,14 @@ function asStringArray(value: unknown): string[] {
53
53
  return normalized;
54
54
  }
55
55
 
56
+ function asFeatureId(value: unknown): string | null {
57
+ if (typeof value !== 'string') {
58
+ return null;
59
+ }
60
+ const trimmed = value.trim();
61
+ return trimmed.length > 0 ? trimmed : null;
62
+ }
63
+
56
64
  function toResumePhase(status: string): string {
57
65
  if (status === STATUS.BUILDING) {
58
66
  return STATUS.BUILDING;
@@ -101,7 +109,8 @@ export class ResumeCommandHandler {
101
109
  async execute(context: ResumeCommandContext): Promise<unknown> {
102
110
  const { repoRoot, env, runId, transport, options, kernel, toolClient } = context;
103
111
  const recovery = await kernel.recoverFromState();
104
- const resumePlan = await this.buildResumePlan(kernel, runId);
112
+ const requestedFeatureId = asFeatureId(options.feature_id);
113
+ const resumePlan = await this.buildResumePlan(kernel, runId, requestedFeatureId);
105
114
 
106
115
  if (resumePlan.features.length === 0) {
107
116
  return {
@@ -176,7 +185,11 @@ export class ResumeCommandHandler {
176
185
  };
177
186
  }
178
187
 
179
- private async buildResumePlan(kernel: AopKernel, fallbackRunId: string): Promise<ResumePlan> {
188
+ private async buildResumePlan(
189
+ kernel: AopKernel,
190
+ fallbackRunId: string,
191
+ requestedFeatureId?: string | null,
192
+ ): Promise<ResumePlan> {
180
193
  const index = await kernel.readIndex();
181
194
  const runtimeSessions = await kernel.getRuntimeSessions();
182
195
  const discovered = await kernel.featureDiscoverSpecs();
@@ -209,7 +222,13 @@ export class ResumeCommandHandler {
209
222
  }
210
223
 
211
224
  const resumable: ResumeFeature[] = [];
212
- const sortedFeatureIds = [...sourcesByFeature.keys()].sort((a, b) => a.localeCompare(b));
225
+ const normalizedRequestedFeatureId = asFeatureId(requestedFeatureId);
226
+ if (normalizedRequestedFeatureId) {
227
+ this.addSource(sourcesByFeature, normalizedRequestedFeatureId, 'cli.feature_id');
228
+ }
229
+ const sortedFeatureIds = normalizedRequestedFeatureId
230
+ ? [normalizedRequestedFeatureId]
231
+ : [...sourcesByFeature.keys()].sort((a, b) => a.localeCompare(b));
213
232
  for (const featureId of sortedFeatureIds) {
214
233
  try {
215
234
  const state = await kernel.featureStateGet(featureId);
@@ -63,6 +63,7 @@ export class RunCoordinator {
63
63
  private readonly prMonitor: PrMonitorService | undefined;
64
64
  private readonly issueTracker: IssueTracker | undefined;
65
65
  private readonly statusCache: Map<string, string>;
66
+ private static readonly BACKGROUND_LEASE_RENEW_INTERVAL_MS = 30_000;
66
67
  private static readonly TERMINAL_STATUSES = new Set<string>([
67
68
  STATUS.MERGED,
68
69
  STATUS.FAILED,
@@ -105,56 +106,110 @@ export class RunCoordinator {
105
106
  });
106
107
 
107
108
  this.state.runMetadata.took_over_stale = Boolean(leaseResult.data.took_over_stale);
109
+ const backgroundLeaseRenewal = this.startBackgroundLeaseRenewal();
108
110
 
109
- await this.sessionOrchestrator.ensureGlobalOrchestratorSession();
111
+ try {
112
+ await this.sessionOrchestrator.ensureGlobalOrchestratorSession();
110
113
 
111
- const sorted = [...features].sort((a, b) => a.feature_id.localeCompare(b.feature_id));
112
- const scopedFeatureIds = sorted.map((item) => item.feature_id);
113
- this.state.queue = sorted;
114
- let activeFeatureIds: string[] = [];
114
+ const sorted = [...features].sort((a, b) => a.feature_id.localeCompare(b.feature_id));
115
+ const scopedFeatureIds = sorted.map((item) => item.feature_id);
116
+ this.state.queue = sorted;
117
+ let activeFeatureIds: string[] = [];
115
118
 
116
- await this.sessionOrchestrator.cleanupOrphanWorkerSessions(scopedFeatureIds);
117
- await this.kernel.pruneFeatureSessionAssignments({
118
- run_id: this.state.runId,
119
- owner_instance_id: this.state.ownerInstanceId,
120
- active_feature_ids: scopedFeatureIds,
121
- });
119
+ await this.sessionOrchestrator.cleanupOrphanWorkerSessions(scopedFeatureIds);
120
+ await this.kernel.pruneFeatureSessionAssignments({
121
+ run_id: this.state.runId,
122
+ owner_instance_id: this.state.ownerInstanceId,
123
+ active_feature_ids: scopedFeatureIds,
124
+ });
122
125
 
123
- activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
126
+ activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
124
127
 
125
- for (let iteration = 0; iteration < this.maxIterationsPerPhase; iteration += 1) {
126
- if (activeFeatureIds.length === 0 && this.state.queue.length === 0) {
127
- break;
128
+ for (let iteration = 0; iteration < this.maxIterationsPerPhase; iteration += 1) {
129
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
130
+ if (activeFeatureIds.length === 0 && this.state.queue.length === 0) {
131
+ break;
132
+ }
133
+ await this.leaseHeartbeatService.renew();
134
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
135
+ activeFeatureIds = await this.applyOrchestratorPrioritization(
136
+ activeFeatureIds,
137
+ iteration + 1,
138
+ );
139
+ // N3: Check budget before waves; pause over-budget features
140
+ activeFeatureIds = await this.pauseOverBudgetFeatures(activeFeatureIds);
141
+ await this.planningWaveExecutor.run(activeFeatureIds);
142
+ await this.buildWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
143
+ await this.qaWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
144
+ await this.planningWaveExecutor.runPostQaReconciliation(activeFeatureIds, iteration + 1);
145
+ await this.notifyStatusTransitions(activeFeatureIds);
146
+ activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
128
147
  }
129
- await this.leaseHeartbeatService.renew();
130
- activeFeatureIds = await this.applyOrchestratorPrioritization(
131
- activeFeatureIds,
132
- iteration + 1,
133
- );
134
- // N3: Check budget before waves; pause over-budget features
135
- activeFeatureIds = await this.pauseOverBudgetFeatures(activeFeatureIds);
136
- await this.planningWaveExecutor.run(activeFeatureIds);
137
- await this.buildWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
138
- await this.qaWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
139
- await this.planningWaveExecutor.runPostQaReconciliation(activeFeatureIds, iteration + 1);
140
- await this.notifyStatusTransitions(activeFeatureIds);
141
- activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
148
+
149
+ const dashboard = await this.toolCaller.callTool('orchestrator', TOOLS.REPORT_DASHBOARD, {});
150
+ const runtimeSessions = await this.kernel.getRuntimeSessions();
151
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
152
+
153
+ return {
154
+ status: 'running',
155
+ dashboard: dashboard.data,
156
+ queue_depth: this.state.queue.length,
157
+ run_metadata: {
158
+ ...this.state.runMetadata,
159
+ runtime_sessions: runtimeSessions,
160
+ },
161
+ };
162
+ } finally {
163
+ await backgroundLeaseRenewal.stop();
142
164
  }
165
+ }
166
+
167
+ private startBackgroundLeaseRenewal(): {
168
+ stop: () => Promise<void>;
169
+ error: () => unknown;
170
+ } {
171
+ let inFlight: Promise<void> | null = null;
172
+ let failedRenewal: unknown = null;
173
+ let stopped = false;
174
+
175
+ const renew = (): void => {
176
+ if (stopped || inFlight !== null || failedRenewal) {
177
+ return;
178
+ }
179
+ inFlight = this.leaseHeartbeatService
180
+ .renew()
181
+ .catch((error: unknown) => {
182
+ failedRenewal = error;
183
+ })
184
+ .finally(() => {
185
+ inFlight = null;
186
+ });
187
+ };
143
188
 
144
- const dashboard = await this.toolCaller.callTool('orchestrator', TOOLS.REPORT_DASHBOARD, {});
145
- const runtimeSessions = await this.kernel.getRuntimeSessions();
189
+ const timer = setInterval(renew, RunCoordinator.BACKGROUND_LEASE_RENEW_INTERVAL_MS);
190
+ if (typeof timer.unref === 'function') {
191
+ timer.unref();
192
+ }
146
193
 
147
194
  return {
148
- status: 'running',
149
- dashboard: dashboard.data,
150
- queue_depth: this.state.queue.length,
151
- run_metadata: {
152
- ...this.state.runMetadata,
153
- runtime_sessions: runtimeSessions,
195
+ stop: async () => {
196
+ stopped = true;
197
+ clearInterval(timer);
198
+ if (inFlight !== null) {
199
+ await inFlight;
200
+ }
154
201
  },
202
+ error: () => failedRenewal,
155
203
  };
156
204
  }
157
205
 
206
+ private throwIfBackgroundLeaseRenewalFailed(error: unknown): void {
207
+ if (!error) {
208
+ return;
209
+ }
210
+ throw error;
211
+ }
212
+
158
213
  private async pauseOverBudgetFeatures(activeFeatureIds: string[]): Promise<string[]> {
159
214
  const remaining: string[] = [];
160
215
  for (const featureId of activeFeatureIds) {
@@ -0,0 +1,41 @@
1
+ import path from 'node:path';
2
+ import { describe, expect, it } from 'vitest';
3
+ import {
4
+ normalizeFromWorktree,
5
+ normalizeRepoPathForState,
6
+ } from '../src/core/utils/path-normalizers.js';
7
+
8
+ describe('path-normalizers', () => {
9
+ it('normalizeRepoPathForState returns dot when absolute path is repo root', () => {
10
+ const repoRoot = '/repo';
11
+ expect(normalizeRepoPathForState(repoRoot, repoRoot)).toBe('.');
12
+ });
13
+
14
+ it('normalizeRepoPathForState returns repo-relative path for nested file', () => {
15
+ const repoRoot = '/repo';
16
+ const absolutePath = path.join(repoRoot, 'apps', 'control-plane', 'src', 'index.ts');
17
+ expect(normalizeRepoPathForState(repoRoot, absolutePath)).toBe(
18
+ 'apps/control-plane/src/index.ts',
19
+ );
20
+ });
21
+
22
+ it('normalizeFromWorktree keeps relative path when target is inside worktree', () => {
23
+ const repoRoot = '/repo';
24
+ const worktreePath = '/repo/.worktrees/feature-a';
25
+ const repoRelativeFromWorktree = '.worktrees/feature-a/apps/control-plane/src/aop.ts';
26
+
27
+ expect(normalizeFromWorktree(worktreePath, repoRoot, repoRelativeFromWorktree)).toBe(
28
+ 'apps/control-plane/src/aop.ts',
29
+ );
30
+ });
31
+
32
+ it('normalizeFromWorktree falls back to repo-relative when target is outside worktree', () => {
33
+ const repoRoot = '/repo';
34
+ const worktreePath = '/repo/.worktrees/feature-a';
35
+ const repoRelativeFromWorktree = 'README.md';
36
+
37
+ expect(normalizeFromWorktree(worktreePath, repoRoot, repoRelativeFromWorktree)).toBe(
38
+ 'README.md',
39
+ );
40
+ });
41
+ });
@@ -275,6 +275,35 @@ describe('ResumeCommandHandler', () => {
275
275
 
276
276
  expect(result.ok).toBe(true);
277
277
  });
278
+
279
+ it('GIVEN_resume_feature_id_filter_WHEN_execute_THEN_targets_only_requested_feature', async () => {
280
+ const kernel = makeKernel({
281
+ readIndex: vi.fn(async () => ({
282
+ active: ['feature_a', 'feature_b'],
283
+ blocked: [],
284
+ blocked_queue: [],
285
+ })),
286
+ featureStateGet: vi.fn(async (featureId: string) => ({
287
+ data: {
288
+ front_matter: {
289
+ status: featureId === 'feature_b' ? STATUS.BUILDING : STATUS.PLANNING,
290
+ },
291
+ },
292
+ })),
293
+ });
294
+ const handler = new ResumeCommandHandler();
295
+ const context = makeContext(kernel);
296
+ context.options = { feature_id: 'feature_b' } as any;
297
+ const result = (await handler.execute(context)) as any;
298
+
299
+ expect(result.ok).toBe(true);
300
+ expect(result.data.resumed).toBe(true);
301
+ expect(result.data.resumed_features).toEqual([
302
+ expect.objectContaining({ feature_id: 'feature_b' }),
303
+ ]);
304
+ expect(kernel.featureStateGet).toHaveBeenCalledTimes(1);
305
+ expect(kernel.featureStateGet).toHaveBeenCalledWith('feature_b');
306
+ });
278
307
  });
279
308
 
280
309
  describe('ResumeCommandHandler additional branches', () => {
@@ -3,6 +3,125 @@ import { STATUS, TOOLS } from '../src/core/constants.js';
3
3
  import { RunCoordinator } from '../src/supervisor/run-coordinator.js';
4
4
 
5
5
  describe('RunCoordinator iteration behavior', () => {
6
+ it('GIVEN_long_running_wave_WHEN_iteration_exceeds_lease_interval_THEN_background_renew_keeps_run_lease_fresh', async () => {
7
+ vi.useFakeTimers();
8
+ try {
9
+ const kernel = {
10
+ ensureLoaded: vi.fn(async () => undefined),
11
+ recoverFromState: vi.fn(async () => ({ data: { recovered: true } })),
12
+ acquireRunLease: vi.fn(async () => ({ data: { took_over_stale: false } })),
13
+ pruneFeatureSessionAssignments: vi.fn(async () => ({ data: { removed: [] as string[] } })),
14
+ getRuntimeSessions: vi.fn(async () => ({
15
+ run_id: 'run:test',
16
+ owner_instance_id: 'owner:test',
17
+ orchestrator_session_id: 'orch:test',
18
+ feature_sessions: {},
19
+ })),
20
+ updateState: vi.fn(async () => ({})),
21
+ checkBudget: vi.fn(async () => ({
22
+ over_budget: false,
23
+ alert_threshold_reached: false,
24
+ current_cost_usd: 0,
25
+ limit_usd: -1,
26
+ alert_threshold: 0.8,
27
+ })),
28
+ };
29
+
30
+ const provider = {
31
+ selection: {
32
+ provider: 'custom',
33
+ model: 'model-test',
34
+ },
35
+ };
36
+
37
+ const toolCaller = {
38
+ callTool: vi.fn(async (_role: string, toolName: string) => {
39
+ if (toolName === TOOLS.REPORT_DASHBOARD) {
40
+ return { ok: true, data: { features: [] } };
41
+ }
42
+ if (toolName === TOOLS.FEATURE_STATE_GET) {
43
+ return { ok: true, data: { front_matter: { status: STATUS.PLANNING } } };
44
+ }
45
+ return { ok: true, data: {} };
46
+ }),
47
+ };
48
+
49
+ const state = {
50
+ runId: 'run:test',
51
+ ownerInstanceId: 'owner:test',
52
+ orchestratorSessionId: 'orch:test',
53
+ sessionsByFeature: new Map<string, { planner: string; builder: string; qa: string }>(),
54
+ queue: [] as Array<{ feature_id: string }>,
55
+ runMetadata: {},
56
+ };
57
+
58
+ const sessionOrchestrator = {
59
+ ensureGlobalOrchestratorSession: vi.fn(async () => undefined),
60
+ cleanupOrphanWorkerSessions: vi.fn(async () => undefined),
61
+ initializeFeatureCluster: vi.fn(async (featureId: string) => {
62
+ state.sessionsByFeature.set(featureId, {
63
+ planner: `${featureId}:planner`,
64
+ builder: `${featureId}:builder`,
65
+ qa: `${featureId}:qa`,
66
+ });
67
+ }),
68
+ closeFeatureCluster: vi.fn(async () => undefined),
69
+ reconcileQueuedFeatures: vi.fn(async () => undefined),
70
+ enforceActiveFeatureInvariant: vi.fn(async () => undefined),
71
+ };
72
+
73
+ const planningWaveExecutor = {
74
+ run: vi.fn(async () => undefined),
75
+ runPostQaReconciliation: vi.fn(async () => undefined),
76
+ clearFeatureTracking: vi.fn(),
77
+ };
78
+
79
+ const buildWaveExecutor = {
80
+ run: vi.fn(
81
+ async () =>
82
+ await new Promise<void>((resolve) => {
83
+ setTimeout(resolve, 65_000);
84
+ }),
85
+ ),
86
+ clearFeatureTracking: vi.fn(),
87
+ };
88
+
89
+ const qaWaveExecutor = {
90
+ run: vi.fn(async () => undefined),
91
+ clearFeatureTracking: vi.fn(),
92
+ };
93
+
94
+ const leaseHeartbeatService = {
95
+ renew: vi.fn(async () => undefined),
96
+ };
97
+
98
+ const coordinator = new RunCoordinator({
99
+ kernel: kernel as never,
100
+ provider: provider as never,
101
+ toolCaller: toolCaller as never,
102
+ state: state as never,
103
+ sessionOrchestrator: sessionOrchestrator as never,
104
+ planningWaveExecutor: planningWaveExecutor as never,
105
+ buildWaveExecutor: buildWaveExecutor as never,
106
+ qaWaveExecutor: qaWaveExecutor as never,
107
+ leaseHeartbeatService: leaseHeartbeatService as never,
108
+ maxActiveFeatures: 1,
109
+ maxParallelGateRuns: 2,
110
+ maxIterationsPerPhase: 1,
111
+ takeoverStaleRun: false,
112
+ providerConfigRefHash: () => 'hash',
113
+ });
114
+
115
+ const startPromise = coordinator.start([{ feature_id: 'feature_a' }]);
116
+ await vi.advanceTimersByTimeAsync(65_000);
117
+ await startPromise;
118
+
119
+ expect(leaseHeartbeatService.renew).toHaveBeenCalledTimes(3);
120
+ } finally {
121
+ vi.useRealTimers();
122
+ }
123
+ });
124
+
6
125
  it('GIVEN_configured_max_iterations_WHEN_starting_run_THEN_executes_each_wave_exactly_that_many_times', async () => {
7
126
  const kernel = {
8
127
  ensureLoaded: vi.fn(async () => undefined),
@@ -10,7 +10,7 @@ missing_prompt_behavior: ignore
10
10
  runtime:
11
11
  default_provider: claude
12
12
  default_model: local-default
13
- execution_mode: deterministic
13
+ execution_mode: interactive
14
14
  interactive:
15
15
  watchdog_poll_interval_ms: 2000
16
16
  checkpoint_interval_ms: 30000
@@ -21,6 +21,13 @@ function asStringArray(value) {
21
21
  }
22
22
  return normalized;
23
23
  }
24
+ function asFeatureId(value) {
25
+ if (typeof value !== 'string') {
26
+ return null;
27
+ }
28
+ const trimmed = value.trim();
29
+ return trimmed.length > 0 ? trimmed : null;
30
+ }
24
31
  function toResumePhase(status) {
25
32
  if (status === STATUS.BUILDING) {
26
33
  return STATUS.BUILDING;
@@ -58,7 +65,8 @@ export class ResumeCommandHandler {
58
65
  async execute(context) {
59
66
  const { repoRoot, env, runId, transport, options, kernel, toolClient } = context;
60
67
  const recovery = await kernel.recoverFromState();
61
- const resumePlan = await this.buildResumePlan(kernel, runId);
68
+ const requestedFeatureId = asFeatureId(options.feature_id);
69
+ const resumePlan = await this.buildResumePlan(kernel, runId, requestedFeatureId);
62
70
  if (resumePlan.features.length === 0) {
63
71
  return {
64
72
  ok: true,
@@ -119,7 +127,7 @@ export class ResumeCommandHandler {
119
127
  },
120
128
  };
121
129
  }
122
- async buildResumePlan(kernel, fallbackRunId) {
130
+ async buildResumePlan(kernel, fallbackRunId, requestedFeatureId) {
123
131
  const index = await kernel.readIndex();
124
132
  const runtimeSessions = await kernel.getRuntimeSessions();
125
133
  const discovered = await kernel.featureDiscoverSpecs();
@@ -148,7 +156,13 @@ export class ResumeCommandHandler {
148
156
  }
149
157
  }
150
158
  const resumable = [];
151
- const sortedFeatureIds = [...sourcesByFeature.keys()].sort((a, b) => a.localeCompare(b));
159
+ const normalizedRequestedFeatureId = asFeatureId(requestedFeatureId);
160
+ if (normalizedRequestedFeatureId) {
161
+ this.addSource(sourcesByFeature, normalizedRequestedFeatureId, 'cli.feature_id');
162
+ }
163
+ const sortedFeatureIds = normalizedRequestedFeatureId
164
+ ? [normalizedRequestedFeatureId]
165
+ : [...sourcesByFeature.keys()].sort((a, b) => a.localeCompare(b));
152
166
  for (const featureId of sortedFeatureIds) {
153
167
  try {
154
168
  const state = await kernel.featureStateGet(featureId);
@@ -1 +1 @@
1
- {"version":3,"file":"resume-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/resume-command-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume-command-handler.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/cli/resume-command-handler.ts"],"names":[],"mappings":"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"}
@@ -52,9 +52,12 @@ export declare class RunCoordinator {
52
52
  private readonly prMonitor;
53
53
  private readonly issueTracker;
54
54
  private readonly statusCache;
55
+ private static readonly BACKGROUND_LEASE_RENEW_INTERVAL_MS;
55
56
  private static readonly TERMINAL_STATUSES;
56
57
  constructor(dependencies: RunCoordinatorDependencies);
57
58
  start(features: FeatureInput[]): Promise<Record<string, unknown>>;
59
+ private startBackgroundLeaseRenewal;
60
+ private throwIfBackgroundLeaseRenewalFailed;
58
61
  private pauseOverBudgetFeatures;
59
62
  private rebalanceActiveFeatures;
60
63
  private clearWaveTracking;
@@ -23,6 +23,7 @@ export class RunCoordinator {
23
23
  prMonitor;
24
24
  issueTracker;
25
25
  statusCache;
26
+ static BACKGROUND_LEASE_RENEW_INTERVAL_MS = 30_000;
26
27
  static TERMINAL_STATUSES = new Set([
27
28
  STATUS.MERGED,
28
29
  STATUS.FAILED,
@@ -61,45 +62,92 @@ export class RunCoordinator {
61
62
  takeover_stale_run: this.takeoverStaleRun,
62
63
  });
63
64
  this.state.runMetadata.took_over_stale = Boolean(leaseResult.data.took_over_stale);
64
- await this.sessionOrchestrator.ensureGlobalOrchestratorSession();
65
- const sorted = [...features].sort((a, b) => a.feature_id.localeCompare(b.feature_id));
66
- const scopedFeatureIds = sorted.map((item) => item.feature_id);
67
- this.state.queue = sorted;
68
- let activeFeatureIds = [];
69
- await this.sessionOrchestrator.cleanupOrphanWorkerSessions(scopedFeatureIds);
70
- await this.kernel.pruneFeatureSessionAssignments({
71
- run_id: this.state.runId,
72
- owner_instance_id: this.state.ownerInstanceId,
73
- active_feature_ids: scopedFeatureIds,
74
- });
75
- activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
76
- for (let iteration = 0; iteration < this.maxIterationsPerPhase; iteration += 1) {
77
- if (activeFeatureIds.length === 0 && this.state.queue.length === 0) {
78
- break;
79
- }
80
- await this.leaseHeartbeatService.renew();
81
- activeFeatureIds = await this.applyOrchestratorPrioritization(activeFeatureIds, iteration + 1);
82
- // N3: Check budget before waves; pause over-budget features
83
- activeFeatureIds = await this.pauseOverBudgetFeatures(activeFeatureIds);
84
- await this.planningWaveExecutor.run(activeFeatureIds);
85
- await this.buildWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
86
- await this.qaWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
87
- await this.planningWaveExecutor.runPostQaReconciliation(activeFeatureIds, iteration + 1);
88
- await this.notifyStatusTransitions(activeFeatureIds);
65
+ const backgroundLeaseRenewal = this.startBackgroundLeaseRenewal();
66
+ try {
67
+ await this.sessionOrchestrator.ensureGlobalOrchestratorSession();
68
+ const sorted = [...features].sort((a, b) => a.feature_id.localeCompare(b.feature_id));
69
+ const scopedFeatureIds = sorted.map((item) => item.feature_id);
70
+ this.state.queue = sorted;
71
+ let activeFeatureIds = [];
72
+ await this.sessionOrchestrator.cleanupOrphanWorkerSessions(scopedFeatureIds);
73
+ await this.kernel.pruneFeatureSessionAssignments({
74
+ run_id: this.state.runId,
75
+ owner_instance_id: this.state.ownerInstanceId,
76
+ active_feature_ids: scopedFeatureIds,
77
+ });
89
78
  activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
79
+ for (let iteration = 0; iteration < this.maxIterationsPerPhase; iteration += 1) {
80
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
81
+ if (activeFeatureIds.length === 0 && this.state.queue.length === 0) {
82
+ break;
83
+ }
84
+ await this.leaseHeartbeatService.renew();
85
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
86
+ activeFeatureIds = await this.applyOrchestratorPrioritization(activeFeatureIds, iteration + 1);
87
+ // N3: Check budget before waves; pause over-budget features
88
+ activeFeatureIds = await this.pauseOverBudgetFeatures(activeFeatureIds);
89
+ await this.planningWaveExecutor.run(activeFeatureIds);
90
+ await this.buildWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
91
+ await this.qaWaveExecutor.run(activeFeatureIds, this.maxParallelGateRuns);
92
+ await this.planningWaveExecutor.runPostQaReconciliation(activeFeatureIds, iteration + 1);
93
+ await this.notifyStatusTransitions(activeFeatureIds);
94
+ activeFeatureIds = await this.rebalanceActiveFeatures(activeFeatureIds);
95
+ }
96
+ const dashboard = await this.toolCaller.callTool('orchestrator', TOOLS.REPORT_DASHBOARD, {});
97
+ const runtimeSessions = await this.kernel.getRuntimeSessions();
98
+ this.throwIfBackgroundLeaseRenewalFailed(backgroundLeaseRenewal.error());
99
+ return {
100
+ status: 'running',
101
+ dashboard: dashboard.data,
102
+ queue_depth: this.state.queue.length,
103
+ run_metadata: {
104
+ ...this.state.runMetadata,
105
+ runtime_sessions: runtimeSessions,
106
+ },
107
+ };
108
+ }
109
+ finally {
110
+ await backgroundLeaseRenewal.stop();
111
+ }
112
+ }
113
+ startBackgroundLeaseRenewal() {
114
+ let inFlight = null;
115
+ let failedRenewal = null;
116
+ let stopped = false;
117
+ const renew = () => {
118
+ if (stopped || inFlight !== null || failedRenewal) {
119
+ return;
120
+ }
121
+ inFlight = this.leaseHeartbeatService
122
+ .renew()
123
+ .catch((error) => {
124
+ failedRenewal = error;
125
+ })
126
+ .finally(() => {
127
+ inFlight = null;
128
+ });
129
+ };
130
+ const timer = setInterval(renew, RunCoordinator.BACKGROUND_LEASE_RENEW_INTERVAL_MS);
131
+ if (typeof timer.unref === 'function') {
132
+ timer.unref();
90
133
  }
91
- const dashboard = await this.toolCaller.callTool('orchestrator', TOOLS.REPORT_DASHBOARD, {});
92
- const runtimeSessions = await this.kernel.getRuntimeSessions();
93
134
  return {
94
- status: 'running',
95
- dashboard: dashboard.data,
96
- queue_depth: this.state.queue.length,
97
- run_metadata: {
98
- ...this.state.runMetadata,
99
- runtime_sessions: runtimeSessions,
135
+ stop: async () => {
136
+ stopped = true;
137
+ clearInterval(timer);
138
+ if (inFlight !== null) {
139
+ await inFlight;
140
+ }
100
141
  },
142
+ error: () => failedRenewal,
101
143
  };
102
144
  }
145
+ throwIfBackgroundLeaseRenewalFailed(error) {
146
+ if (!error) {
147
+ return;
148
+ }
149
+ throw error;
150
+ }
103
151
  async pauseOverBudgetFeatures(activeFeatureIds) {
104
152
  const remaining = [];
105
153
  for (const featureId of activeFeatureIds) {
@@ -1 +1 @@
1
- {"version":3,"file":"run-coordinator.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/run-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-coordinator.js","sourceRoot":"","sources":["../../../../apps/control-plane/src/supervisor/run-coordinator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-orchestrator",
3
- "version": "0.1.27",
3
+ "version": "0.1.28",
4
4
  "private": false,
5
5
  "workspaces": [
6
6
  "packages/*"
@@ -1585,6 +1585,58 @@
1585
1585
 
1586
1586
  ---
1587
1587
 
1588
+ ✅ **Entry 226 — Prevent stale run leases during long waves via background heartbeat renewal**
1589
+
1590
+ - **Goal:** Fix false `run_already_active` stale-lease failures caused by long build/QA iterations that exceeded lease TTL between explicit heartbeat renewals.
1591
+ - **Changes made:**
1592
+ - `apps/control-plane/src/supervisor/run-coordinator.ts`
1593
+ - added background lease renewal loop (`30s` interval) started immediately after run lease acquisition and stopped in `finally`.
1594
+ - retained existing per-iteration renewal, and added failure propagation checks so background renewal errors fail the run deterministically.
1595
+ - `apps/control-plane/test/run-coordinator.spec.ts`
1596
+ - added long-wave regression test proving lease renewals occur during a 65s build wave (`GIVEN_long_running_wave...THEN_background_renew_keeps_run_lease_fresh`).
1597
+ - **Result:** `npx vitest run apps/control-plane/test/run-coordinator.spec.ts` [PASS] (including new regression). `npm run typecheck` [PASS]. `npm run validate:architecture` [PASS].
1598
+
1599
+ ---
1600
+
1601
+ ✅ **Entry 227 — Make `aop resume --feature-id` deterministic and single-feature scoped**
1602
+
1603
+ - **Goal:** Fix resume flow so `--feature-id` actually scopes execution to the requested feature instead of silently resuming all discovered non-terminal features.
1604
+ - **Changes made:**
1605
+ - `apps/control-plane/src/cli/resume-command-handler.ts`
1606
+ - added feature-id normalization helper.
1607
+ - threaded `options.feature_id` into resume-plan construction.
1608
+ - constrained feature candidate set to the requested feature when provided.
1609
+ - tagged requested feature source as `cli.feature_id` for traceability in `resume_plan`.
1610
+ - `apps/control-plane/test/resume-command.spec.ts`
1611
+ - added regression test proving `--feature-id feature_b` resumes only `feature_b` and only queries that feature state.
1612
+ - **Result:** `npx vitest run apps/control-plane/test/resume-command.spec.ts apps/control-plane/test/cli.unit.spec.ts` [PASS] (4 files / 106 tests). `npm run typecheck` [PASS]. `npm run validate:architecture` [PASS].
1613
+
1614
+ ---
1615
+
1616
+ ✅ **Entry 228 — Fix lint `no-misused-promises` in background lease renewal**
1617
+
1618
+ - **Goal:** Resolve publish-blocking ESLint errors in `RunCoordinator` caused by Promise truthiness checks in boolean conditionals.
1619
+ - **Changes made:**
1620
+ - `apps/control-plane/src/supervisor/run-coordinator.ts`
1621
+ - changed `if (stopped || inFlight || failedRenewal)` to `if (stopped || inFlight !== null || failedRenewal)`.
1622
+ - changed `if (inFlight) { await inFlight; }` to `if (inFlight !== null) { await inFlight; }`.
1623
+ - **Result:** `npx eslint apps/control-plane/src/supervisor/run-coordinator.ts` [PASS]. `npm run typecheck` [PASS].
1624
+
1625
+ ---
1626
+
1627
+ ✅ **Entry 229 — Restore path-normalizers coverage to satisfy global threshold**
1628
+
1629
+ - **Goal:** Eliminate the coverage gate failure caused by untested edge branches in `path-normalizers.ts`.
1630
+ - **Changes made:**
1631
+ - `apps/control-plane/test/path-normalizers.spec.ts`
1632
+ - added branch coverage for `normalizeRepoPathForState(...)` root-path normalization (`'.'` return path).
1633
+ - added branch coverage for `normalizeRepoPathForState(...)` nested repo-relative conversion.
1634
+ - added branch coverage for `normalizeFromWorktree(...)` in-worktree relative path behavior.
1635
+ - added branch coverage for `normalizeFromWorktree(...)` fallback when target resolves outside the worktree.
1636
+ - **Result:** `npm test` [PASS] (88 test files / 1242 tests). Global coverage now passes with `branches: 90.03%`; `apps/control-plane/src/core/utils/path-normalizers.ts` is `100%` across lines/statements/functions/branches.
1637
+
1638
+ ---
1639
+
1588
1640
  ## Next Tasks:
1589
1641
 
1590
1642
  - None currently.