ticket: close event companion notify

This commit is contained in:
Keisuke Hirata 2026-06-13 13:22:26 +09:00
parent ed639ac85f
commit 074f4b6ff9
No known key found for this signature in database
3 changed files with 49 additions and 28 deletions

View File

@ -1,8 +1,8 @@
--- ---
title: 'Orchestrator進捗をAutoKickなしでCompanionへ通知する' title: 'Orchestrator進捗をAutoKickなしでCompanionへ通知する'
state: 'done' state: 'closed'
created_at: '2026-06-11T08:15:24Z' created_at: '2026-06-11T08:15:24Z'
updated_at: '2026-06-13T04:21:40Z' updated_at: '2026-06-13T04:22:26Z'
assignee: null assignee: null
queued_by: 'workspace-panel' queued_by: 'workspace-panel'
queued_at: '2026-06-11T10:31:56Z' queued_at: '2026-06-11T10:31:56Z'

View File

@ -1,41 +1,38 @@
Orchestrator progress を AutoKick なしで live/reachable Companion に通知する仕組みを実装した。 Orchestrator の明示 Ticket event を Companion に weak notify する形へ再実装した。
実装概要: 実装概要:
- `Method::Notify { auto_run: bool }` を追加し、`auto_run: false` では idle Pod に `RunForNotification` を stage しない weak notification にした - 以前の Panel reload / periodic refresh 起点の Companion progress feed は削除済みで、今回の実装でも再導入していない
- `auto_run: true` と legacy missing-field behavior は既存 Notify と互換にした - Orchestrator-role lifecycle Ticket tool の post-call event に限定して、live/reachable Companion peer へ `Notify { auto_run:false }` を送る
- Panel から live/reachable Companion へ bounded progress notice を `Notify { auto_run: false }` で送るようにした - 対象 event は state change、comment/plan/decision/implementation_report、review、close/resolution 系の explicit mutating Ticket event
- missing/stopped/unreachable Companion は best-effort no-op とし、spawn/restore しない。 - Passive Ticket reads/list/show/query では通知しない。
- Progress summary は Ticket id/title/state、role pod status、short reason、`.yoi/tickets/<id>` refs に限定し、full thread、Pod output、diagnostics、provider errors、secret-like content を含めない。 - missing/stopped/unreachable Companion は no-op とし、spawn/restore しない。
- Panel に Companion progress freshness / last-updated indication を追加した - Companion authority は増やしていない
- Reviewer request_changes を受け、Companion progress notice の LLM-facing framing を Rust 直書きから `resources/prompts/panel/companion_progress_notice.md` へ移し、Rust は bounded runtime values の rendering に限定した - Payload は Ticket id/title/state、event kind、short summary、`.yoi/tickets/<id>` ref 程度の bounded event notice に限定し、Ticket list snapshot、full thread、Pod output、diagnostics、provider error details、長大 log は含めない
- Companion profile/tool authority は変更していない - LLM-facing notice framing は `resources/prompts/pod/ticket_event_companion_notice.md` に置き、Rust は bounded runtime values の構築と render に限定した
Review / integration: Review / integration:
- Implementation commits: - Implementation commits:
- `a87d3154 feat: weak companion progress notify` - `465ef100 feat: notify Companion on Orchestrator ticket events`
- `61e6c068 fix: resource-back companion progress notice` - `6f8571f7 fix: render ticket event notice from prompt resource`
- Reviewer: `yoi-reviewer-companion-progress-notify` が初回 request_changes、fix 後 approve。 - Reviewer: `yoi-reviewer-event-companion-notify` が approve。
- Orchestrator merge commit: `56b10a2d merge: companion weak progress notify` - Orchestrator merge commit: `2e5a60f4 merge: companion ticket event notify`
- Ticket completion commit: `2b64f428 ticket: mark companion notify done` - Ticket completion commit: `ee6213ee ticket: mark event companion notify done`
Validation: Validation:
- `cargo test -p protocol`: pass, 39 tests - `cargo test -p pod ticket_event_notify`: pass
- `cargo test -p pod --test controller_test`: pass, 36 tests - `cargo test -p pod ticket_event`: pass
- `cargo test -p tui companion_progress -- --nocapture`: pass, 6 tests - `cargo test -p pod weak_notify_to_live_peer_uses_notify_without_auto_run_and_noops_when_missing`: pass
- `cargo test -p tui send_notify_only_can_deliver_weak_notification_without_auto_run -- --nocapture`: pass, 1 test - `cargo test -p tui companion_progress`: pass0 matched; Panel feed remains absent
- `cargo check -p protocol -p pod -p tui`: pass - `rg` check confirmed no `companion_progress` / progress feed / `send_weak_notify` references in `crates/tui/src/multi_pod.rs`
- `cargo fmt --check`: pass - `cargo fmt --check`: pass
- `git diff --check HEAD~1..HEAD`: pass - `git diff --check HEAD~1..HEAD`: pass
- `./result/bin/yoi ticket doctor`: `doctor: ok` - `./result/bin/yoi ticket doctor`: `doctor: ok`
- `nix build .#yoi`: pass - `nix build .#yoi`: pass
Known unrelated broad-suite failures:
- Existing prompt/TUI broad-suite failures noted in thread remain outside this Ticket and were not blockers for focused implementation/review.
Cleanup: Cleanup:
- coder/reviewer Pods stopped。 - coder/reviewer Pods stopped。
- child worktree `/home/hare/Projects/yoi/.worktree/orchestrator-progress-companion-notify` removed。 - child worktree `/home/hare/Projects/yoi/.worktree/orchestrator-ticket-event-companion-notify` removed。
- branch `ticket/orchestrator-progress-companion-notify` deleted。 - branch `ticket/orchestrator-ticket-event-companion-notify` deleted。
Non-blocking risk: Non-blocking note:
- Added `minijinja` dependency to `crates/tui`; it is already used elsewhere in the workspace, and `Cargo.lock` / `package.nix` were updated with passing Nix build. - Panel 非通知は TUI diff absence / `rg` check と focused behavior tests で確認した。将来の回帰防止として、Panel reload/open が Companion event notify を呼ばない明示 test を追加してもよい。

View File

@ -755,3 +755,27 @@ Behavior now:
## State changed ## State changed
Implementation was merged into the Orchestrator branch, reviewer approved with no blockers, and post-integration validation passed. Cleanup and closure will be recorded next. Implementation was merged into the Orchestrator branch, reviewer approved with no blockers, and post-integration validation passed. Cleanup and closure will be recorded next.
---
<!-- event: implementation_report author: orchestrator at: 2026-06-13T04:22:26Z -->
## Implementation report
Cleanup completed.
- Stopped coder Pod: `yoi-coder-event-companion-notify`
- Stopped reviewer Pod: `yoi-reviewer-event-companion-notify`
- Removed child worktree: `/home/hare/Projects/yoi/.worktree/orchestrator-ticket-event-companion-notify`
- Deleted implementation branch: `ticket/orchestrator-ticket-event-companion-notify`
- Orchestrator worktree status after cleanup: clean
Cleanup was limited to child implementation worktree/branch and related child Pods. Root/original workspace was not used as an implementation target.
---
<!-- event: closed author: orchestrator at: 2026-06-13T04:22:26Z -->
## Closed
Resolution written to `resolution.md`.