fix(cli): 失败出口主动误导机器消费者——`--output-format json` 全零值信封、`resume` 连 result 行都不发、错误里无 trace id
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Start at crates/recursive-cli/src/main.rs:2605-2622, where the error envelope is finished with TokenUsage::default() and zero counters, then see cli/output.rs:435-439, where Single mode drains events instead of feeding the emitter. Cross-check claude_json.rs:394-440 (the envelope consumers receive), resume.rs:646 (the ? that skips printer finish) and openai.rs:185-188 (no WARN, no trace id). Done: a failed --output-format json run reports real partial usage/steps, resume always emits a result line, and Error::Llm carries provider/model plus a header trace id. Blocked on #110/#115.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
场景 gap 单(okguitar 提报)· 优先级 P0 · 依赖:depends-on: #110、depends-on: #115(未终态时 keeper 自动 hold) · 验收:代码 diff 逐点核对;运行时可见性另需 Langfuse(#124)
基线 origin/main = fc29f3d4。
Summary
crates/recursive-cli/src/main.rs:2605-2622:错误信封task.finish(&reason, None, TokenUsage::default(), 0, 0, ...)——硬编码零值;cli/output.rs:435-439的Self::Single模式下 emitter 从不被喂事件(drain 只丢弃)→build_result(finish, None, TokenUsage::default(), 0, 0)。claude_json.rs:394-440:于是--output-format json(正是代理/flow 的执行模式)在失败时输出{"num_turns":0,"total_cost_usd":0.0,"usage":{all zeros},"stop_reason":"provider_stop:<全文>"}——唯一有信息的是 stop_reason。resume.rs:646的?使 printer 永不 finish——一条 result 行都不发(stream-json 消费者挂死在"等 result";Claude SDK 契约违反,run_once 修过、resume 未修)。- trace id 全缺:全仓 grep
x-request-id|traceparent0 命中;Error::Llm把 model 塞进provider字段;429 重试耗尽后无 WARN(openai.rs:185-188仅 transient 时 warn);Error::RateLimited只有测试构造。
建议
Err 路径透传已知 steps/usage(RuntimeOutcome 已有——让 kernel 在 Err 时也带 partial outcome);resume 补 result 兜底;Error::Llm 加 provider/model 字段并提取响应头 trace id。
- Lingua principale
- Rust
- Stelle
- 4
- Fork
- 0
- Merge medio
- 5h 32m
- PR unite (30g)
- 7
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jeffkit/recursive
-
fix(pipeline): preflight kill-stale 在 v2 console/worker 路径把并发兄弟 run 当孤儿杀——同仓并发 run 互杀成链(今日 4 例实证)Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
jeffkit/recursive#148 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
jeffkit/recursive#147 · 14 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
jeffkit/recursive#134 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di jeffkit/recursive
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agentic-os-org/ANOLISA#6742 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
api: storage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
googleapis/google-cloud-rust#7153 ·
I maintainer di solito rispondono entro 1 giorno
-
comp-mysql
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ClickHouse/ClickHouse#124749 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
oracle/rust-oracledb#43 · 1 commento ·