Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#1,095 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
38/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
bun, google-cloud, typescript

调研方向

从 PR #1092 的 eval harness 开始,通过已编译的 run CLI 复现文档中记录的仅使用环境变量的运行,并捕获 OPTIMIZER_EVAL_TRANSCRIPT。检查 provider.ts:629 以及错误和流退出路径,然后使用 bun test 验证致命错误会返回非零状态、进程会终止、流会完成或失败,并验证文档中记录的 provider 变量能够一致地工作。

由索引模型根据 Issue 内容生成。

描述

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).

主要语言
TypeScript
星标
813
派生
134
平均合并
2 天 3 小时
30 天内合并 PR
65

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

AltimateAI/altimate-code 的其他 Issue

查看 AltimateAI/altimate-code 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。