From 85f4bafca625191c313a3f0a17533f98b3f555ed Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 13 Jun 2026 00:42:28 +0900 Subject: [PATCH] ticket: approve companion notify review --- .yoi/tickets/00001KTTW04W2/item.md | 2 +- .yoi/tickets/00001KTTW04W2/thread.md | 47 ++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/.yoi/tickets/00001KTTW04W2/item.md b/.yoi/tickets/00001KTTW04W2/item.md index e9d81924..48b83ea4 100644 --- a/.yoi/tickets/00001KTTW04W2/item.md +++ b/.yoi/tickets/00001KTTW04W2/item.md @@ -2,7 +2,7 @@ title: 'Orchestrator進捗をAutoKickなしでCompanionへ通知する' state: 'inprogress' created_at: '2026-06-11T08:15:24Z' -updated_at: '2026-06-12T15:40:14Z' +updated_at: '2026-06-12T15:42:21Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-11T10:31:56Z' diff --git a/.yoi/tickets/00001KTTW04W2/thread.md b/.yoi/tickets/00001KTTW04W2/thread.md index e29717e3..956006e6 100644 --- a/.yoi/tickets/00001KTTW04W2/thread.md +++ b/.yoi/tickets/00001KTTW04W2/thread.md @@ -348,3 +348,50 @@ Next: - Request reviewer re-review of fix commit `61e6c068`, focusing on the prompt-resource boundary blocker, retention of weak notify safety invariants, dependency/package updates, and validation evidence. --- + + + +## Review: approve + +Approve. + +The previous requested-change blocker is resolved. + +Review findings: +- Prompt/resource boundary is now satisfied: + - Companion progress notice framing lives in `resources/prompts/panel/companion_progress_notice.md`. + - Rust only builds bounded runtime values and renders the prompt resource via `minijinja`. + - `COMPANION_PROGRESS_NOTICE_TEMPLATE` uses `include_str!` to load the resource. + - `render_companion_progress_notice_template()` renders with strict `minijinja` undefined behavior. + - Focused test `companion_progress_notice_uses_prompt_resource_template` confirms rendering comes from the resource. + - Grep for prior hard-coded framing found no Rust production copy of the prompt text; only test assertion remains. +- Weak notify invariants remain intact: + - Companion progress dispatch still uses `send_notify_only(..., false)`. + - `auto_run:false` controller behavior remains covered by pod controller tests. + - `auto_run:true` legacy behavior remains covered by protocol/controller tests. +- Missing/stopped/unreachable Companion remains no-op: + - Target selection still requires Companion panel state to be peer-reachable and a live reachable socket. + - No spawn/restore path is introduced for progress delivery. +- No Companion authority expansion found: + - The fix touches prompt rendering, TUI dependency metadata, `Cargo.lock`, and `package.nix`; it does not alter Companion profile/tool authority. +- Bounded/sensitive-safe summary remains preserved: + - Runtime values are bounded before/after rendering. + - The summary still uses ticket id/state/title/ref and role pod status, not thread excerpts, diagnostics, Pod output, or provider error details. +- Dependency/package updates are appropriate: + - `minijinja = "2.19.0"` is already used elsewhere in the workspace (`crates/pod`), so adding it to `crates/tui` does not introduce an unexpected new dependency family. + - `Cargo.lock` and `package.nix` `cargoHash` were updated, and `nix build .#yoi` passes. + +Reviewer-run validation: +- `git diff --check orchestration/yoi-orchestrator...HEAD`: pass +- `cargo test -p tui companion_progress -- --nocapture`: pass, 6 tests +- `cargo test -p tui send_notify_only_can_deliver_weak_notification_without_auto_run -- --nocapture`: pass, 1 test +- `cargo check -p protocol -p pod -p tui`: pass +- `cargo fmt --check`: pass +- `cargo run -p yoi -- ticket doctor`: `doctor: ok` +- `nix build .#yoi`: pass +- `cargo test -p protocol`: pass, 39 tests +- `cargo test -p pod --test controller_test`: pass, 36 tests + +No blocking issues remain. + +---