From 264dfce3c535f9a22dee1c394f2aa2dfdb572289 Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 9 Jun 2026 21:46:13 +0900 Subject: [PATCH] ticket: close profile feature flags --- .yoi/tickets/20260609-082209-001/item.md | 4 +- .../tickets/20260609-082209-001/resolution.md | 35 +++++++++++++ .yoi/tickets/20260609-082209-001/thread.md | 51 +++++++++++++++++++ 3 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/20260609-082209-001/resolution.md diff --git a/.yoi/tickets/20260609-082209-001/item.md b/.yoi/tickets/20260609-082209-001/item.md index 667e4218..97f29298 100644 --- a/.yoi/tickets/20260609-082209-001/item.md +++ b/.yoi/tickets/20260609-082209-001/item.md @@ -1,8 +1,8 @@ --- title: 'Profile feature flagsでtool surfaceを制御する' -state: 'inprogress' +state: 'closed' created_at: '2026-06-09T08:22:09Z' -updated_at: '2026-06-09T12:42:04Z' +updated_at: '2026-06-09T12:46:06Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-09T10:31:11Z' diff --git a/.yoi/tickets/20260609-082209-001/resolution.md b/.yoi/tickets/20260609-082209-001/resolution.md new file mode 100644 index 00000000..58503a1a --- /dev/null +++ b/.yoi/tickets/20260609-082209-001/resolution.md @@ -0,0 +1,35 @@ +Merged and closed. + +Implementation: +- Added explicit Profile/resolved Manifest `feature` configuration for Task, Memory, Web, Pods, Ticket, and Ticket orchestration tool surfaces. +- Disabled features omit tools from the Worker tool schema instead of registering them and denying later. +- Core filesystem/process tools remain outside this feature grouping and continue to be controlled by scope/policy. +- Ticket lifecycle access and Ticket orchestration surfaces are separable. +- Web, Memory, Ticket, and Pod tools retain their existing fail-closed / authority / scope checks when enabled. +- Project role profiles now set explicit feature defaults: + - Orchestrator: Ticket lifecycle, Ticket orchestration, and Pods enabled; Task disabled. + - Intake: basic Ticket enabled; Ticket orchestration, Pods, and Task disabled. + - Coder/Reviewer/Companion: Ticket orchestration, Pods, and Task disabled; Ticket disabled in the current chosen defaults. + +Commits: +- `f0f6cc9 feat: gate built-in tools by profile features` +- `2fd37af fix: align pod feature flag naming` +- `507863f fix: lock project role feature surfaces` +- `656048a test: cover project role feature profiles` +- merge: `c71a272 merge: gate tool surfaces by profile features` + +Review: +- Earlier reviews requested `feature.pods` naming, project role Task-disable defaults, and actual project role profile coverage. +- Final review approved after `656048a`; merge-ready with only small residual E2E coverage risk noted. + +Post-merge validation: +- `cargo test -p manifest actual_project_role_profiles_resolve_explicit_feature_defaults --lib` +- `cargo test -p manifest feature --lib` +- `cargo test -p pod project_role_tool_surfaces_keep_task_disabled_and_pods_role_scoped --test controller_test` +- `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` +- `nix build .#yoi` \ No newline at end of file diff --git a/.yoi/tickets/20260609-082209-001/thread.md b/.yoi/tickets/20260609-082209-001/thread.md index b6c3565a..00830425 100644 --- a/.yoi/tickets/20260609-082209-001/thread.md +++ b/.yoi/tickets/20260609-082209-001/thread.md @@ -374,3 +374,54 @@ Residual risks: - The project role coverage is compositional rather than a single E2E test that launches via `project:` selectors and asserts each actual role's live tool schema. Given the current controller path uses resolved manifest feature flags directly, this is acceptable for this Ticket; an E2E selector/schema test can be added later if the role launcher path gains additional behavior. --- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +Merged and closed. + +Implementation: +- Added explicit Profile/resolved Manifest `feature` configuration for Task, Memory, Web, Pods, Ticket, and Ticket orchestration tool surfaces. +- Disabled features omit tools from the Worker tool schema instead of registering them and denying later. +- Core filesystem/process tools remain outside this feature grouping and continue to be controlled by scope/policy. +- Ticket lifecycle access and Ticket orchestration surfaces are separable. +- Web, Memory, Ticket, and Pod tools retain their existing fail-closed / authority / scope checks when enabled. +- Project role profiles now set explicit feature defaults: + - Orchestrator: Ticket lifecycle, Ticket orchestration, and Pods enabled; Task disabled. + - Intake: basic Ticket enabled; Ticket orchestration, Pods, and Task disabled. + - Coder/Reviewer/Companion: Ticket orchestration, Pods, and Task disabled; Ticket disabled in the current chosen defaults. + +Commits: +- `f0f6cc9 feat: gate built-in tools by profile features` +- `2fd37af fix: align pod feature flag naming` +- `507863f fix: lock project role feature surfaces` +- `656048a test: cover project role feature profiles` +- merge: `c71a272 merge: gate tool surfaces by profile features` + +Review: +- Earlier reviews requested `feature.pods` naming, project role Task-disable defaults, and actual project role profile coverage. +- Final review approved after `656048a`; merge-ready with only small residual E2E coverage risk noted. + +Post-merge validation: +- `cargo test -p manifest actual_project_role_profiles_resolve_explicit_feature_defaults --lib` +- `cargo test -p manifest feature --lib` +- `cargo test -p pod project_role_tool_surfaces_keep_task_disabled_and_pods_role_scoped --test controller_test` +- `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` +- `nix build .#yoi` + +---