fix(cli): run/resume 的错误路径跳过会话 finalize——55% 的 `.meta.json` 永远停在 `active`,"尸体"与"在跑"不可分
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Read crates/recursive-cli/src/main.rs around the run_result Err branch (2600-2627) and compare it with the loop path at 2240-2247 and the finalize calls at 2675-2676; src/session/writer.rs:522-555 shows finish() is the only writer of status/cost. Then look at cli/resume.rs:646, where the ? skips finalize. Done means a forced provider failure leaves .meta.json with status=crashed, an error field, and cost.json written; note the dependency on #111.
索引モデルが issue の本文から書いたものです。
説明
场景 gap 单(okguitar 提报)· 优先级 P0 · 依赖:depends-on: #111(未终态时 keeper 自动 hold) · 验收:代码 diff 逐点核对;运行时可见性另需 Langfuse(#124)
基线 origin/main = fc29f3d4。
Summary
crates/recursive-cli/src/main.rs:2600-2627:run_result的Err分支只drop(runtime)+ 顶一个错误信封,然后return Err(err)——绕过:2675-2676的finalize_session_writer/finalize_cost_tracker(finish()是唯一写status/cost的地方,src/session/writer.rs:522-555)。crates/recursive-cli/src/cli/resume.rs:646:runtime.run(message.clone()).await?——?直接跳出,:715-716的 finalize 永不执行。- 对照:loop 路径(
main.rs:2240-2247)注释自述不变量 "every run closes its session envelope"——该不变量在run_once里不存在,唯 loop 遵守。 - 实测本机:
~/.recursive1132 个.meta.json中active626 个(55%)vscrashed仅 19;抽查一个死透会话:transcript 尾条是孤儿 tool_call、.lock残留、无cost字段——却与正在跑的会话无法区分。
影响
事故复盘时主管线拿到的 .meta.json 给出错误答案("还在跑");recursive resume 也会把 active 当进行中候选;失败 run 的 cost 归零。
建议
finalize 提到 Err 分支(或 RAII guard:SessionWriter Drop 时未 finish 则按 Crashed+原因落盘);resume.rs:646 同处理。
验收:制造一次 provider 失败,断言 .meta.json status=crashed + 有 error 字段 + cost.json 落盘。
- 主要言語
- Rust
- スター
- 4
- フォーク
- 0
- 平均マージ
- 5時間 32分
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jeffkit/recursive のほかの issue
-
難易度 3/5 半日 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
jeffkit/recursive#141 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
jeffkit/recursive#138 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
jeffkit/recursive#134 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
メンテナーはふだん 1 日以内に返信
jeffkit/recursive の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 4 日以内に返信
-
Update dusk-bls12_381 to 0.16対応中かも @HDauven が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
googlefonts/fontquant#43 ·
-
bot:ai-assisted status:untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
midnightntwrk/midnight-zk#561 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
rubys/roundhouse#571 ·
メンテナーはふだん 1 日以内に返信