Skip to content

Commit e2ed9d9

Browse files
committed
Merge fix-integration-copilot
1 parent a9ea4a2 commit e2ed9d9

3 files changed

Lines changed: 17 additions & 3 deletions

File tree

src/tools/plan-approve.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { getSharedMonitor, getSharedNotifyCallback, setSharedOrchestrator } from
55
import type { CheckpointType } from '../lib/plan-types';
66
import { loadConfig } from '../lib/config';
77
import { getCurrentModel } from '../lib/model-tracker';
8+
import { createIntegrationBranch } from '../lib/integration';
9+
import { resolvePostCreateHook } from '../lib/worktree-setup';
810

911
export const mc_plan_approve: ToolDefinition = tool({
1012
description:
@@ -49,10 +51,15 @@ export const mc_plan_approve: ToolDefinition = tool({
4951
);
5052
}
5153

54+
// Create integration infrastructure that copilot mode skipped
55+
const config = await loadConfig();
56+
const integrationPostCreate = resolvePostCreateHook(config.worktreeSetup);
57+
const integration = await createIntegrationBranch(plan.id, integrationPostCreate);
58+
plan.integrationBranch = integration.branch;
59+
plan.integrationWorktree = integration.worktreePath;
5260
plan.status = 'running';
5361
await savePlan(plan);
5462

55-
const config = await loadConfig();
5663
const orchestrator = new Orchestrator(getSharedMonitor(), config, { notify: getSharedNotifyCallback() ?? undefined });
5764
setSharedOrchestrator(orchestrator);
5865
orchestrator.setPlanModelSnapshot(getCurrentModel());

src/tools/plan.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export const mc_plan: ToolDefinition = tool({
111111
placement: args.placement,
112112
status: 'pending',
113113
jobs: jobSpecs,
114-
integrationBranch: `mc/integration/${planId.slice(0, 8)}`,
114+
integrationBranch: `mc/integration-${planId}`,
115115
baseCommit,
116116
createdAt: new Date().toISOString(),
117117
};

tests/tools/plan-approve.test.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import * as planState from '../../src/lib/plan-state';
33
import * as orchestrator from '../../src/lib/orchestrator';
44
import * as config from '../../src/lib/config';
55
import * as monitor from '../../src/lib/monitor';
6+
import * as integration from '../../src/lib/integration';
7+
import * as worktreeSetup from '../../src/lib/worktree-setup';
68

79
const { mc_plan_approve } = await import('../../src/tools/plan-approve');
810

@@ -78,7 +80,7 @@ describe('mc_plan_approve', () => {
7880
{ id: 'j1', name: 'auth', prompt: 'do auth', status: 'queued' },
7981
{ id: 'j2', name: 'api', prompt: 'do api', status: 'queued' },
8082
],
81-
integrationBranch: 'mc/integration/plan-1',
83+
integrationBranch: 'mc/integration-plan-1',
8284
baseCommit: 'abc123',
8385
createdAt: new Date().toISOString(),
8486
});
@@ -92,6 +94,11 @@ describe('mc_plan_approve', () => {
9294
setPlanModelSnapshot: vi.fn(),
9395
}) as any,
9496
);
97+
vi.spyOn(integration, 'createIntegrationBranch').mockResolvedValue({
98+
branch: 'mc/integration-plan-1',
99+
worktreePath: '/tmp/integration-plan-1',
100+
});
101+
vi.spyOn(worktreeSetup, 'resolvePostCreateHook').mockReturnValue(undefined as any);
95102

96103
const result = await mc_plan_approve.execute({}, mockContext);
97104

0 commit comments

Comments
 (0)