Pi on arc-dind: an aliased model reaches pi empty (`Model "aw-gateway/" not found`)
Maintainers usually reply within 1 day
@pelikhan is already working on this.
Since Oct 29, 2026.
- #72937 by @copilot-swe-agent — closed without merging
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 83/100
Research direction
Read pkg/workflow/pi_engine.go to trace how aliased models set the model file path and how the compiled step exports environment variables. Then inspect the compiled step assertion in pkg/workflow/pi_engine_test.go; done means the exported GH_AW_PI_MODEL_FILE matches the path read by the --model substitution.
Written by the indexing model from the issue text.
Description
Analysis
With engine: pi, model: opus (or copilot/opus) and runner.topology: arc-dind, the alias resolves correctly, but pi is launched without a model:
[gh-aw/pi-models-json] model resolution: engine=pi role=main configured=opus resolved=claude-opus-5 provider=copilot status=resolved
Error: Model "aw-gateway/" not found. Use --list-models to see available models.
For an alias, pkg/workflow/pi_engine.go builds --model "aw-gateway/$(cat + piResolvedModelFile + )" with piResolvedModelFile = "/tmp/gh-aw/pi-model". In the compiled lock, that path is rewritten to ${RUNNER_TEMP}/gh-aw/pi-model. pi_models_json.cjs writes to process.env.GH_AW_PI_MODEL_FILE || "/tmp/gh-aw/pi-model", and the lock never sets GH_AW_PI_MODEL_FILE, so the file goes to /tmp/gh-aw/pi-model. On arc-dind those are different directories, so pi reads an empty file. pi_runtime.cjs reads the same default.
An exact ID (copilot/claude-opus-5) is compiled straight into --model aw-gateway/claude-opus-5 and works. Seen on v0.93.2. v0.93.5 and v1.0.1 compile the same launch line, with no GH_AW_PI_MODEL_FILE, and main (6cb1976022) has the same code.
Implementation plan
- In
pkg/workflow/pi_engine.go, whenpiModelIsAlias, exportGH_AW_PI_MODEL_FILEset to the same path the launch line reads, next toGH_AW_PI_MODEL_ID. The compiler's/tmp/gh-aw→${RUNNER_TEMP}/gh-awrewrite then applies to the writer,pi_runtime.cjsand the reader alike. - Add a test in
pkg/workflow/pi_engine_test.go: for an aliased model, the compiled step setsGH_AW_PI_MODEL_FILEto exactly the path inside the--model "aw-gateway/$(cat …)"substitution.
Acceptance: an arc-dind pi workflow with model: opus launches pi with the resolved model (for example aw-gateway/claude-opus-5).
- Dominant language
- Go
- Stars
- 5.6k
- Forks
- 615
- Avg merge
- 5h 19m
- Merged PRs (30d)
- 798
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from github/gh-aw
-
automated-analysis code-quality cookie enhancement report safe-outputs testing workflows
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
agent-research
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
ai-inspected community model-routing
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
ai-inspected community model-routing
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
automation cli-tools testing
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
Similar issues
-
component:obi contribfest go test
Difficulty 2/5 Under an hour Newbie friendliness 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4143 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
area/ambient
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
kubernetes-sigs/kueue#18324 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100