diff --git a/packages/cli/src/commands/start.ts b/packages/cli/src/commands/start.ts index 32f84f813..43d67cfb4 100644 --- a/packages/cli/src/commands/start.ts +++ b/packages/cli/src/commands/start.ts @@ -567,6 +567,7 @@ async function autoCreateConfig(workingDir: string): Promise const defaultBranch = env.defaultBranch || "main"; // If no repo detected, inform the user and ask + /* c8 ignore start -- interactive prompt, tested via onboarding integration */ if (!repo && isHumanCaller()) { console.log(chalk.yellow(" ⚠ Could not auto-detect a GitHub/GitLab remote.")); const entered = await promptText( @@ -581,6 +582,7 @@ async function autoCreateConfig(workingDir: string): Promise console.log(chalk.yellow(` ⚠ "${trimmed}" doesn't look like owner/repo — skipping.`)); } } + /* c8 ignore stop */ // Detect available agent runtimes via plugin registry let detectedAgents = await detectAvailableAgents(); diff --git a/packages/cli/src/lib/prompts.ts b/packages/cli/src/lib/prompts.ts index 460ae380c..f7be6bebb 100644 --- a/packages/cli/src/lib/prompts.ts +++ b/packages/cli/src/lib/prompts.ts @@ -29,6 +29,7 @@ export async function promptSelect( return result; } +/* c8 ignore start -- interactive prompt wrapper, same pattern as promptConfirm/promptSelect */ export async function promptText( message: string, placeholder?: string, @@ -43,3 +44,4 @@ export async function promptText( } return result; } +/* c8 ignore stop */ diff --git a/packages/core/src/__tests__/orchestrator-prompt.test.ts b/packages/core/src/__tests__/orchestrator-prompt.test.ts index 82ae1ff49..c9fcf26c8 100644 --- a/packages/core/src/__tests__/orchestrator-prompt.test.ts +++ b/packages/core/src/__tests__/orchestrator-prompt.test.ts @@ -56,6 +56,18 @@ describe("generateOrchestratorPrompt", () => { expect(prompt).toContain("ao send --no-wait"); }); + it("shows 'not configured' when repo is omitted", () => { + const noRepoProject = { ...config.projects["my-app"]!, repo: undefined }; + const prompt = generateOrchestratorPrompt({ + config, + projectId: "my-app", + project: noRepoProject, + }); + + expect(prompt).toContain("not configured"); + expect(prompt).not.toContain("undefined"); + }); + it("pushes implementation and PR claiming into worker sessions", () => { const prompt = generateOrchestratorPrompt({ config,