Skip to content

feat(init): select engine via --engine or interactive menu - #148

Merged
charlesgreen merged 12 commits into
mainfrom
feat/init-engine-select
Sep 19, 2026
Merged

charlesgreen merged 12 commits into
mainfrom
feat/init-engine-select

Conversation

@charlesgreen

Copy link
Copy Markdown
Contributor

Summary

aixgo-code init now selects the model engine (Codex / Gemini / Claude) via --engine or an interactive TTY menu, writes engine: into .github/aixgo.yml, and emits a conditional caller workflow that only wires that provider's credentials (not a multi-provider starter that always shows Azure).

  • Non-TTY / CI without --engine defaults to codex and prints one line saying so (existing scripts keep working).
  • --force overwrites existing starter config/workflow so re-running init can switch providers.
  • Claude caller documents Actions limitation (Actions: run engine:claude end-to-end (install CLI + Anthropic secret) #147); App credentials only until Anthropic wiring lands.
  • Dogfood .github/workflows/aixgo-caller.yml untouched (still Vertex-only).
  • Reusable product workflow stays multi-engine with gated installs.

How interactive vs --engine works

Context Behavior
--engine codex|gemini|claude Use that engine; skip menu
TTY, no --engine Numbered menu: 1 Codex/Azure, 2 Gemini/Vertex, 3 Claude
Non-TTY, no --engine Default codex + one-line notice

Test plan

  • go test ./cmd/aixgo-code — engine flag, non-TTY default, interactive menu, --force, next-steps strings, template equality
  • Manual gate equivalent of make check (gofmt, vet, workflows YAML, build, race tests) green locally
  • CI on this PR

Note on commits

Implementation was developed in /workspace/aixgo-code (local clone). Docs + caller templates are on this branch; Go sources (main.go / main_test.go) are being pushed in follow-up commits via MCP if git HTTPS auth is unavailable on the box.

init writes engine: into .github/aixgo.yml and a conditional caller that
only wires Codex/Azure, Gemini/Vertex, or Claude (App-only + #147 note).
Non-TTY defaults to codex; --force overwrites starters to switch providers.

Part 1/2: docs and caller template.
@charlesgreen

Copy link
Copy Markdown
Contributor Author

Follow-up: Go implementation (cmd/aixgo-code/main.go, main_test.go) is complete locally (commit 11ebc64 on the workspace clone; make check green). Docs + caller templates are already on this branch.

Push of the Go sources via git push needs GitHub HTTPS auth on the box. If you can authorize device login when a code appears, or push from a machine with credentials:

cd /path/to/aixgo-dev/code
git fetch origin feat/init-engine-select
# cherry-pick or merge local 11ebc64 / push main.go + main_test.go onto the branch

I'll keep trying MCP push_files for the Go sources.

charlesgreen and others added 8 commits September 19, 2026 19:40
Unbreaks branch after accidental path-ref stub. Engine select lives in init_select.go; gemini init writes Vertex-only caller. Dogfood aixgo-caller.yml stays Vertex-only.
CI failed on gofmt. Tests now pass --engine codex and expect the
engine-specific next-steps wording; renderCallerWorkflow calls take
the third engine argument.
@codecov

codecov Bot commented Sep 19, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.80952% with 34 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
cmd/aixgo-code/init_select.go 83.65% 23 Missing and 11 partials ⚠️

📢 Thoughts on this report? Let us know!

@charlesgreen
charlesgreen merged commit a6bc92f into main Sep 19, 2026
3 checks passed
@charlesgreen
charlesgreen deleted the feat/init-engine-select branch September 19, 2026 10:56
@charlesgreen charlesgreen mentioned this pull request Sep 19, 2026
2 of 4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant