pi extension: herdr never shows the agent as blocked while a revdiff review is open
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- typescript
調査の方向性
plugins/pi/extensions/revdiff.ts の runDirectReview から始め、herdr 統合で使用されている pi 拡張機能のイベントバスを調査してください。revdiff UI が開いている間はレビューのライフサイクルがブロック状態を報告し、レビューが終了したらそれを解除することを、エラーまたはキャンセルの経路も含めて確認してください。PR #319 には提案された変更がすでに含まれています。
索引モデルが issue の本文から書いたものです。
説明
Current behavior
With the pi plugin, revdiff_review runs revdiff in-place: runDirectReview in plugins/pi/extensions/revdiff.ts does spawnSync(revdiffBin, ..., { stdio: "inherit" }), so pi is suspended inside the tool call while the user reviews. To anything supervising the agent from outside, the session looks busy rather than waiting on the user.
Concrete case: herdr gets omp/pi lifecycle state from its installed hook integration (which disables herdr's screen-scraping fallback for the pane). The integration reports working for the entire review, because a parked tool call is indistinguishable from active work. Result: no blocked state in the sidebar, no notification, and herdr agent wait <pane> --until blocked never fires — easy to miss that the agent is waiting.
The standalone launcher scripts already integrate with herdr for tab placement (the HERDR_ENV branch in launch-revdiff.sh), so herdr awareness exists in the project; only the pi in-place path lacks any state signal.
Expected behavior
While the revdiff UI owns the terminal, the supervising integration should see the session as blocked/waiting-for-user.
Reproduction
herdr integration install omp, start omp (TUI) inside a herdr pane./revdiff(or let the agent callrevdiff_review).- While the review UI is open:
herdr agent list→agent_status: workinguntil revdiff exits.
Proposed fix
herdr's omp/pi integration listens on pi's shared extension event bus for a herdr:blocked channel. Emitting around the review run is enough:
pi.events.emit("herdr:blocked", { active: true, label: `revdiff review: ${launch.label}` });
try {
result = await runDirectReview(ctx, launch, cwd);
} finally {
pi.events.emit("herdr:blocked", { active: false });
}
EventBus.emit with no listener is a no-op, so this is free for non-herdr users and needs no HERDR_ENV gate. PR with this change: #319.
Environment
- revdiff-pi 0.4.1, omp 17.3.5, herdr 0.8.0 (omp integration v6), macOS arm64
(Disclosure: drafted by an AI coding agent on behalf of the human reporter, who reviewed and approved this text before it was posted.)
- 主要言語
- Go
- スター
- 928
- フォーク
- 96
- 平均マージ
- 2日 3時間
- マージ済み PR(30日)
- 28
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
umputun/revdiff のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
umputun/revdiff#334 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 38/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 64/100
umputun/revdiff#324 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
umputun/revdiff の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
docker/sbx-releases#737 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
area/manager needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
kyma-project/telemetry-manager#3922 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
JakeChampion/lang#12965 ·
メンテナーはふだん 1 日以内に返信
-
hacktoberfest priority: low skill: good first issue status: ready for dev
難易度 2/5 1〜3時間 初心者へのやさしさ 89/100
hyperledger-labs/fabric-smart-client#2218 ·
メンテナーはふだん 1 日以内に返信