fix(desktop): 単発TODOで介入送信が無視される問題を修正#194
Conversation
verifyCommand 無しの単発TODOでは iteration 1 完了直後に status=done を書いて return していたため、ターン実行中に queueIntervention された内容が pendingIntervention に残り Claude に永遠に届かなかった。 ターン終了時点で pendingIntervention が残っていれば done マークを付けず次のイテレーションへ継続するようにした。 verify モードで既に使っているのと同じ合流点に寄せた修正。 Closes #189
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 58 minutes and 3 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
従来はイテレーション境界でしか介入が届かなかったが、通常の Claude Code のようにいつでも割り込めるように改修。 runClaudeTurn 内に 500ms ポーリングを追加し、 pendingIntervention が設定されたら即座に child を SIGINT → while ループに interrupted フラグで戻し、次のイテレーション で --resume + 介入プロンプトとして Claude に届ける。 UI ヒントテキストも「数秒以内に自動割り込み」に変更。 Refs #189
概要
Issue #189 の対応。AgentManager のタスク詳細ペインから「次のターンに注入する介入表示」でメッセージを送ると UI 上「予約済み」になるものの、Claude 側には一切届かなかった。
根本原因
`verifyCommand` 無しの単発TODOでは、`supervisor.runSession` が iteration 1 完了直後に
`status: "done"` を書いて `return` していた。`pendingIntervention` は次イテレーションの冒頭で読み出して Claude に渡す設計なので、次のイテレーションが発生しない単発モードでは永遠に読まれない。
修正
単発モードの完了分岐でも `pendingIntervention` を再チェックし、未処理分があれば done を書かずに `continue` して次イテレーションへ回すようにした。verify モードが既に持っている合流点に寄せただけで、セマンティクスは「介入が無ければ1ターンで done」「あればその分だけ延長」になる。
Test plan
Closes #189