From 4eb3e117e357df7ada701253b58641f70109b0d4 Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 9 Jun 2026 21:22:21 +0900 Subject: [PATCH] ticket: record feature cleanup review fixes --- .yoi/tickets/20260609-082209-001/item.md | 2 +- .yoi/tickets/20260609-082209-001/thread.md | 57 ++++++++++++++++++++++ .yoi/tickets/20260609-095518-001/item.md | 2 +- .yoi/tickets/20260609-095518-001/thread.md | 20 ++++++++ 4 files changed, 79 insertions(+), 2 deletions(-) diff --git a/.yoi/tickets/20260609-082209-001/item.md b/.yoi/tickets/20260609-082209-001/item.md index e90c82e0..4467652f 100644 --- a/.yoi/tickets/20260609-082209-001/item.md +++ b/.yoi/tickets/20260609-082209-001/item.md @@ -2,7 +2,7 @@ title: 'Profile feature flagsでtool surfaceを制御する' state: 'inprogress' created_at: '2026-06-09T08:22:09Z' -updated_at: '2026-06-09T12:10:16Z' +updated_at: '2026-06-09T12:22:09Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-09T10:31:11Z' diff --git a/.yoi/tickets/20260609-082209-001/thread.md b/.yoi/tickets/20260609-082209-001/thread.md index 3a17c7b8..15f605cc 100644 --- a/.yoi/tickets/20260609-082209-001/thread.md +++ b/.yoi/tickets/20260609-082209-001/thread.md @@ -156,3 +156,60 @@ Reviewer Pod: Review focus includes explicit bool feature authority, concrete resolved Manifest feature values, disabled feature tool omission from schema, role profile surfaces, authority/fail-closed preservation, and the `feature.pods` vs implementation-reported `feature.pod_management` naming mismatch. --- + + + +## Review: request changes + +Review result: request_changes. + +Findings: + +1. Coder role still enables Task tools by default. Ticket/review focus requires the Coder profile not to expose Ticket management, Ticket orchestration, Task, or Pod orchestration by default. The implementation correctly disables Ticket, Ticket orchestration, and Pod management in `.yoi/profiles/coder.lua`, but leaves `feature.task.enabled = true`, and controller registration registers Task tools whenever that flag is enabled. This means the Coder tool schema still exposes TaskCreate/TaskUpdate/etc. + - `.yoi/profiles/coder.lua:8-14` + - `crates/pod/src/controller.rs:545-548` + +2. The user-facing Pod feature flag name does not match the Ticket spec. The Ticket names the initial group `feature.pods`, but the implementation exposes only `feature.pod_management`. Since manifest/Profile config currently ignores unknown subfields rather than rejecting or aliasing them, a profile following the Ticket text with `feature.pods.enabled = true` would not enable Pod-management tools, and would likely fail only indirectly at missing-tool time. Either align the name with the Ticket or update the accepted spec and reject/diagnose the old spelling explicitly. + - `.yoi/tickets/20260609-082209-001/item.md:31-37`, `.yoi/tickets/20260609-082209-001/item.md:56-59` + - `crates/manifest/src/config.rs:77-84` + - `crates/manifest/src/lib.rs:95-101` + +Validation run: + +- `cargo fmt --check` passed +- `git diff --check HEAD^..HEAD` passed +- `cargo run -q -p yoi -- ticket doctor` passed +- `cargo check --workspace` passed +- `cargo test -p manifest feature --lib` passed +- `cargo test -p pod feature --tests` passed +- `cargo test -p pod pod_management_feature_requires_delegation_scope --test controller_test` passed +- `cargo test -p tools --test integration` passed + +Positive checks: disabled optional surfaces are omitted from registry by `controller.rs` gating rather than merely denied at execution; resolved feature structs use concrete booleans; Ticket base and orchestration registration are separable; web registration is omitted when `feature.web.enabled=false` and still uses existing provider/config fail-closed checks when enabled; enabling Ticket/Pod management still goes through host-authority/delegation checks. + +--- + + + +## Implementation report + +Reviewer requested changes on the initial implementation. Fix applied on branch `profile-feature-flags-tool-surface`: + +- Renamed the user-facing profile feature from `feature.pod_management` to the Ticket-specified `feature.pods`. +- Kept internal prompt helper naming unchanged where it describes derived tool capabilities rather than profile syntax. +- Set project Coder profile `feature.task.enabled = false` so Coder no longer exposes Task tools by default. + +Fix commit: `2fd37af fix: align pod feature flag naming` + +Validation after fix: +- `cargo fmt` +- `cargo test -p manifest feature --lib` +- `cargo test -p pod feature --tests` +- `cargo test -p pod pods_feature_requires_delegation_scope --test controller_test` +- `cargo test -p tools --test integration` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `cargo check --workspace` +- `cargo fmt --check` + +--- diff --git a/.yoi/tickets/20260609-095518-001/item.md b/.yoi/tickets/20260609-095518-001/item.md index 29a35743..c7f2776f 100644 --- a/.yoi/tickets/20260609-095518-001/item.md +++ b/.yoi/tickets/20260609-095518-001/item.md @@ -2,7 +2,7 @@ title: 'action_requiredとattention_requiredをTicket schemaから削除する' state: 'inprogress' created_at: '2026-06-09T09:55:18Z' -updated_at: '2026-06-09T12:10:16Z' +updated_at: '2026-06-09T12:22:09Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-09T10:11:38Z' diff --git a/.yoi/tickets/20260609-095518-001/thread.md b/.yoi/tickets/20260609-095518-001/thread.md index 89e2365b..8cd2cbd6 100644 --- a/.yoi/tickets/20260609-095518-001/thread.md +++ b/.yoi/tickets/20260609-095518-001/thread.md @@ -185,3 +185,23 @@ Review focus includes schema/tool/API/output removal, doctor behavior for obsole Note: the initial reviewer prompt accidentally included a stale full commit hash; the branch HEAD in the worktree is the authority and is `3afdd89`. --- + + + +## Implementation report + +Reviewer requested changes on the initial implementation because CLI `show` still printed obsolete legacy frontmatter keys through the raw-frontmatter fallback. Fix applied on branch `remove-action-attention-ticket-fields`: + +- Added `action_required` and `attention_required` to the obsolete frontmatter key filter used by CLI show output. +- Added a regression test that injects legacy obsolete overlay fields and verifies `ticket show` omits both keys and values. + +Fix commit: `94db2dc fix: hide obsolete ticket fields in cli show` + +Validation after fix: +- `cargo test -p yoi ticket_cli_show_omits_obsolete_overlay_fields_from_legacy_frontmatter` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `cargo check --workspace` + +---