ticket: record feature role fix and attention approval

This commit is contained in:
Keisuke Hirata 2026-06-09 21:32:06 +09:00
parent 4eb3e117e3
commit 61c93990d1
No known key found for this signature in database
4 changed files with 98 additions and 2 deletions

View File

@ -2,7 +2,7 @@
title: 'Profile feature flagsでtool surfaceを制御する' title: 'Profile feature flagsでtool surfaceを制御する'
state: 'inprogress' state: 'inprogress'
created_at: '2026-06-09T08:22:09Z' created_at: '2026-06-09T08:22:09Z'
updated_at: '2026-06-09T12:22:09Z' updated_at: '2026-06-09T12:32:00Z'
assignee: null assignee: null
queued_by: 'workspace-panel' queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:31:11Z' queued_at: '2026-06-09T10:31:11Z'

View File

@ -213,3 +213,70 @@ Validation after fix:
- `cargo fmt --check` - `cargo fmt --check`
--- ---
<!-- event: review author: reviewer-profile-feature-flags-tool-surface-r2 at: 2026-06-09T12:27:05Z status: request_changes -->
## Review: request changes
Re-review result: request_changes.
Prior findings status:
- Fixed: user-facing Profile/Manifest syntax is now `feature.pods`; controller error/test/profile resources use `[feature.pods]`, and remaining `pod_management` references are internal prompt capability helper names rather than profile syntax.
- Fixed for Coder: `.yoi/profiles/coder.lua` now sets `feature.task.enabled = false` and keeps Ticket/Ticket orchestration/Pods disabled.
Blocking finding:
1. Several project role profiles still expose Task tools by default despite the Ticket role defaults saying these roles should disable Task. `register_pod_tools` registers TaskCreate/TaskUpdate/TaskGet/TaskList whenever `feature_config.task.enabled` is true, so these profile defaults are model-visible tool-surface grants, not inert metadata.
- `.yoi/profiles/intake.lua:7-13` has `task = { enabled = true }`, but the Ticket says Intake `task = disabled`.
- `.yoi/profiles/reviewer.lua:7-13` has `task = { enabled = true }`, but the Ticket says Reviewer `task = disabled`.
- `.yoi/profiles/companion.lua:7-13` has `task = { enabled = true }`, but the Ticket says Companion `task = disabled`.
- `.yoi/profiles/orchestrator.lua:8-14` has `task = { enabled = true }`; the Ticket says Orchestrator task should be disabled unless explicitly justified. I do not see a recorded justification in the implementation/report.
- `.yoi/profiles/_base.lua:32-38` and `resources/profiles/default.lua:29-35` also keep Task enabled by default; this may be fine for the builtin/default coding profile if intentional, but the project role profiles above need to match the Ticket or document an accepted deviation.
- Registration path: `crates/pod/src/controller.rs:545-548`.
Secondary gap:
- The acceptance condition asks for tests covering tool definition lists for Orchestrator, Coder, Intake, Reviewer, and Companion profiles. The current focused tests cover synthetic feature manifests and the Coder profile was fixed by file inspection, but I did not find role-profile tool-list tests that would catch the Intake/Reviewer/Companion Task exposure.
Validation run:
- `cargo test -p manifest feature --lib` passed (4 tests).
- `cargo test -p pod feature --tests` passed (45 lib tests plus 3 controller feature tests; other filtered test binaries had 0 matching tests).
- `cargo test -p pod pods_feature_requires_delegation_scope --test controller_test` passed (1 test).
- `cargo test -p tools --test integration` passed (14 tests).
- `cargo fmt --check` passed.
- `git diff --check` passed.
- `cargo run -q -p yoi -- ticket doctor` passed (`doctor: ok`).
- `git status --short` is clean.
Merge readiness: not merge-ready until the remaining project role defaults and role-profile tool-list test coverage are aligned with the Ticket.
---
<!-- event: implementation_report author: orchestrator at: 2026-06-09T12:32:00Z -->
## Implementation report
Second review requested one remaining change set:
- Project role profiles beyond Coder (`intake`, `reviewer`, `companion`, and `orchestrator`) still inherited/used `feature.task.enabled = true`, contrary to the Ticket's explicit role defaults.
- There was no regression test that asserted role-like tool surfaces across Orchestrator/Coder/Intake/Reviewer/Companion.
Fix applied on branch `profile-feature-flags-tool-surface`:
- Set `feature.task.enabled = false` in the remaining project role profiles.
- Added controller regression test `project_role_tool_surfaces_keep_task_disabled_and_pods_role_scoped`, covering the five role-like tool surfaces for Task tool absence and Pod tool exposure only where intended.
Fix commit: `507863f fix: lock project role feature surfaces`
Validation after fix:
- `cargo fmt`
- `cargo test -p pod project_role_tool_surfaces_keep_task_disabled_and_pods_role_scoped --test controller_test`
- `cargo test -p pod pods_feature_requires_delegation_scope --test controller_test`
- `cargo test -p manifest feature --lib`
- `cargo test -p pod feature --tests`
- `cargo test -p tools --test integration`
- `cargo fmt --check`
- `git diff --check`
- `cargo run -q -p yoi -- ticket doctor`
- `cargo check --workspace`
---

View File

@ -2,7 +2,7 @@
title: 'action_requiredとattention_requiredをTicket schemaから削除する' title: 'action_requiredとattention_requiredをTicket schemaから削除する'
state: 'inprogress' state: 'inprogress'
created_at: '2026-06-09T09:55:18Z' created_at: '2026-06-09T09:55:18Z'
updated_at: '2026-06-09T12:22:09Z' updated_at: '2026-06-09T12:28:22Z'
assignee: null assignee: null
queued_by: 'workspace-panel' queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:11:38Z' queued_at: '2026-06-09T10:11:38Z'

View File

@ -205,3 +205,32 @@ Validation after fix:
- `cargo check --workspace` - `cargo check --workspace`
--- ---
<!-- event: review author: reviewer at: 2026-06-09T12:28:22Z status: approve -->
## Review: approve
Re-review result: approve.
Focus:
- Verified prior finding is addressed: CLI `ticket show` now filters `action_required` and `attention_required` from `ticket.document.raw_frontmatter` through `is_obsolete_ticket_frontmatter_key`.
- Verified regression coverage: `ticket_cli_show_omits_obsolete_overlay_fields_from_legacy_frontmatter` injects both obsolete overlay fields into legacy frontmatter and asserts both keys and values are absent from `ticket show` output.
- Checked repository search for remaining current-surface mentions; remaining `action_required` / `attention_required` occurrences are obsolete-field diagnostics/filters and tests only.
- No new regression found in the fix commit.
Validation run in `.worktree/remove-action-attention-ticket-fields`:
- `cargo test -p yoi ticket_cli::tests::ticket_cli_show_omits_obsolete_overlay_fields_from_legacy_frontmatter -- --exact` — pass (1 test).
- `cargo test -p yoi ticket_cli::tests -- --nocapture` — pass (12 tests).
- `cargo check -p yoi` — pass.
- `git diff --check` — pass.
- `cargo fmt --check` — pass.
- `cargo run -q -p yoi -- ticket doctor` — pass (`doctor: ok`).
- `nix build .#yoi` — pass; `result` points to `/nix/store/n4bxl2fmwk85gfpq7bf59fd8mny1dl9r-yoi-0.1.0`.
Merge readiness:
- Approved and merge-ready from review perspective.
Residual risks:
- No branch-specific residual risk found. Existing live reviewer/orchestrator processes built before this branch may still expose old Ticket tool schemas until restarted/rebuilt, but that is a runtime refresh concern rather than a code issue in this branch.
---