Headless `run` is unusable outside a configured HOME: silent hangs, exit-code 0 on fatal errors, provider env split-brains
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- bun, google-cloud, typescript
- Domain
- authentication, cli, cloud, testing-qa
Research direction
Start with the PR #1092 eval harness and reproduce the documented env-only runs through the compiled run CLI, capturing OPTIMIZER_EVAL_TRANSCRIPT. Inspect provider.ts:629 and the error and stream-exit paths, then use bun test to verify that fatal errors return nonzero, processes terminate, streams finish or fail, and documented provider variables work consistently.
Written by the indexing model from the issue text.
Description
Found while running the dbt-optimizer live eval (PR #1092) — the eval spawns the compiled binary in an isolated HOME with env-only model credentials, which is exactly the headless/CI posture. Eight runs produced six distinct product defects before a single model call succeeded:
runexits 0 on fatal errors.Error: Token refresh failed: 400andModel not found: ...both print to the transcript and exit 0. Headless consumers cannot detect failure by exit code.- Errored CLI lingers as a dangling process. After a provider-lookup error, the process survived
spawnSynctimeout (SIGTERM and SIGKILL configured) — observed alive ~2h and ~69m in two runs untilbun testforce-killed it. - Silent stream hang on google-vertex-anthropic. With valid ADC (verified via
gcloud auth application-default print-access-token), the session starts, the title-agent call is issued... and nothing ever arrives — no error, no timeout, no finish. Logs end atsession.updated. - Google provider env split-brain. Provider detection accepts
GEMINI_API_KEY, but the SDK call then demandsGOOGLE_GENERATIVE_AI_API_KEY— detection succeeds, invocation fails. - Vertex provider env split-brain. The models.dev env list advertises
GOOGLE_VERTEX_PROJECT/GOOGLE_VERTEX_LOCATION, but the loader (provider.ts:629) only detects viaGOOGLE_CLOUD_PROJECT/GCP_PROJECT/GCLOUD_PROJECT;GOOGLE_VERTEX_PROJECTis an output var only. Env-only vertex configuration per the documented names cannot work. - OAuth auth store is location-bound. Copying
auth.jsonto a new HOME yieldsToken refresh failed: 400(refresh-token rotation), so OAuth accounts have no headless path at all; and per (1) that failure is invisible to exit-code checks.
Repro for each is in the PR #1092 eval harness: OPTIMIZER_LIVE_EVAL=1 + OPENCODE_TEST_CLI + the documented env vars; transcripts captured via OPTIMIZER_EVAL_TRANSCRIPT.
Suggested severity: (1) and (3) first — they make headless usage silently unreliable; (4)/(5) are one-line env additions; (2) needs a process-exit audit on the error path; (6) needs a documented headless auth story (API-key path or device-flow re-auth).
- Dominant language
- TypeScript
- Stars
- 813
- Forks
- 134
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 65
Contributor 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 AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
AltimateAI/altimate-code#1359 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifier Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
All issues in AltimateAI/altimate-code
Similar issues
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Crush Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Open
Difficulty 1/5 Under an hour Newbie friendliness 90/100
ElementsProject/cln-application#167 · 1 comment · 1 reaction ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Quantco/pnpm-licenses#17 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100