Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Headless `run` is unusable outside a configured HOME: silent hangs, exit-code 0 on fatal errors, provider env split-brains

Open
#1,095 0 comments 0 reactions 0 assignees View on GitHub

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

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:

  1. run exits 0 on fatal errors. Error: Token refresh failed: 400 and Model not found: ... both print to the transcript and exit 0. Headless consumers cannot detect failure by exit code.
  2. Errored CLI lingers as a dangling process. After a provider-lookup error, the process survived spawnSync timeout (SIGTERM and SIGKILL configured) — observed alive ~2h and ~69m in two runs until bun test force-killed it.
  3. 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 at session.updated.
  4. Google provider env split-brain. Provider detection accepts GEMINI_API_KEY, but the SDK call then demands GOOGLE_GENERATIVE_AI_API_KEY — detection succeeds, invocation fails.
  5. 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 via GOOGLE_CLOUD_PROJECT/GCP_PROJECT/GCLOUD_PROJECT; GOOGLE_VERTEX_PROJECT is an output var only. Env-only vertex configuration per the documented names cannot work.
  6. OAuth auth store is location-bound. Copying auth.json to a new HOME yields Token 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AltimateAI/altimate-code

All issues in AltimateAI/altimate-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.