11 KiB
作成
LocalTicketBackend によって作成されました。
Decision
決定:
- feature-layer
HostAuthorityは残さず削除する。 - rename して診断用に温存する案も採用しない。
Authority/Grantという語彙をpod::featurepublic API に残すと、Plugin/MCP permission layer と再び混同されるため。 - feature install report に必要な情報は ordinary diagnostics / skipped contribution reason として表現する。
Intake summary
Marked ready by yoi ticket state.
State changed
Marked ready by yoi ticket state.
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision: implementation_ready
Reason:
- Ticket は
queuedで、feature-layerHostAuthority*model を削除し、permission/trust は Plugin/MCP/Ticket/tool owning layers に置く decision が明確。 TicketRelationQueryには incomingdepends_on(00001KTR81P9Xがこの Ticket に依存)があるが、この Ticket 自身を blocking する relation はない。むしろ後続 dynamic provider work の前提として先に進めるべき。TicketOrchestrationPlanQueryに blocker はない。- Risk は feature-api / tool-registry / ticket-tools だが、削除対象・非目標(Plugin/MCP permission policy を導入しない)が明記済み。
- 他 queued work と主な変更面が異なるため並列開始可能。API cleanup の影響が大きい場合は Coder に escalation させる。
Evidence checked:
- Ticket body / thread / artifacts。
- relation records: incoming dependency from
00001KTR81P9Xonly。 - orchestration plan records: なし。
- bounded code context:
HostAuthority*occurrences acrosscrates/pod/ feature registry / ticket/task feature tests。
IntentPacket:
pod::featurepublic API からHostAuthority,HostAuthorityRequest,HostAuthorityGrantSetと related grant/install report semantics を削除し、ordinary contribution diagnostics に整理する。
Binding decisions / invariants:
- Renamed feature-layer authority/grant model は作らない。
- Plugin permission policy / MCP trust policy はこの Ticket で実装しない。
- Ticket tools は explicit TicketFeatureConfig / backend validation / access-level config を維持する。
- Useful contribution checks(duplicate names、undeclared categories等)は残す。
Validation:
- Focused pod feature / ticket / task tests、
cargo fmt --check、cargo check --workspace --all-targets、可能ならnix build .#yoi。
State changed
Ticket evidence、relation records、orchestration plan、workspace state を確認した。This Ticket 自身を blocking する relation はなく、incoming dependent Ticket の前提として先に進めるべき。実装 side effect の前に inprogress acceptance を記録する。
Implementation report
Implementation handoff started.
- Worktree:
/home/hare/Projects/yoi/.worktree/remove-feature-hostauthority - Branch:
ticket-00001KV0SP0TY-remove-feature-hostauthority - Coder Pod:
coder-00001KV0SP0TY-hostauthority - Scope: root workspace non-recursive read for launch validation only; child worktree read; writes limited to relevant feature/Ticket/tool/client/workflow/manifest/docs surfaces, target, and this Ticket record。
Next: Coder implementation_report / commit / validation evidence を確認後、Reviewer を起動する。
Implementation report
Commit: 5549c50d8679 (feat: remove feature host authority API)
Files changed:
crates/pod/src/feature.rs- Removed
HostAuthority,HostAuthorityRequest,HostAuthorityGrantSet, host-authority denial errors, grant plumbing, and per-tool host-authority gates from the public feature API/install path. - Kept ordinary contribution declaration diagnostics: duplicate names, undeclared/mismatched tools, undeclared hooks/background tasks/services, skipped contributions, and service requirement diagnostics.
- Kept install reports focused on installed/skipped contributions and diagnostics without security grant semantics.
- Removed
crates/pod/src/feature/builtin/ticket.rs- Stopped declaring TicketBackend host authority and registering Ticket tools with feature-layer authority requirements.
- Preserved explicit
TicketFeatureConfig, backend provider/root validation, and access-level-controlled tool exposure.
crates/pod/src/feature/builtin/task/mod.rs- Removed Task feature prose that referenced feature-layer host authorities.
Validation:
cargo test -p pod feature:: --lib— passed (46 tests).cargo test -p pod feature::builtin::task --lib— passed (18 tests).cargo test -p ticket— passed (68 tests + doc-tests).cargo fmt --check— passed.cargo check --workspace --all-targets— passed.git diff --check— passed before commit.- Source grep under
crates/**/*.rsfound no remainingHostAuthority*,host_authority,with_host_authority,requested_host_authorities, orrequired_host_authoritiessymbols/terminology after cleanup.
Residual risks / notes:
nix build .#yoiwas not run; this change does not modify dependencies,Cargo.lock, packaging, or source filters.- Related Plugin/MCP planning Ticket review was not performed from this delegated Coder scope because only Ticket
00001KV0SP0TYis readable/writable in.yoi/tickets; no Plugin/MCP permission or trust policy was implemented.
Review: approve
Reviewed implementation commits 5549c50d and 3faf7d7b against Ticket 00001KV0SP0TY.
Evidence:
crates/pod/src/feature.rsremoves the feature-layerHostAuthority,HostAuthorityRequest,HostAuthorityGrantSet, grant/denial/install-report semantics, and per-tool authority gates. The remaining feature API is contribution/lifecycle/diagnostic oriented: tools, hooks, background tasks, services, notifications, and install diagnostics.- No renamed equivalent authority/grant layer was introduced in
pod::feature; remaining checks are ordinary contribution diagnostics such as duplicate tool names, undeclared tools/hooks/background tasks/services, service requirements, skipped contributions, and install errors. crates/pod/src/feature/builtin/ticket.rsno longer requests or registers feature-layer host authority. Ticket tool exposure remains controlled byTicketFeatureConfigresolution, backend provider/root validation, andTicketFeatureAccess/ base-orchestration tool selection. Missing/invalid backend roots and unsupported providers still fail closed without registering tools.crates/pod/src/feature/builtin/task/mod.rsno longer describes task tools in host-authority terms; task hooks/tools still install through the normal feature registry path.- Source grep under
crates/**/*.rsfound no remainingHostAuthority,HostAuthorityRequest,HostAuthorityGrantSet,host_authority,with_host_authority,requested_host_authorities, orrequired_host_authoritiessymbols/terms. - Related Plugin/MCP planning Tickets inspected (
00001KTR81P9X,00001KTR82RB7,00001KSXRQ4G8,00001KT0Z4BK8) state that Plugin/MCP permission/trust policy is not apod::featureauthority/grant dependency. The remaining mentions are negative boundary statements, not implementation reliance.
Validation performed:
git diff --check c4465a04..HEAD— passed.cargo test -p pod feature:: --lib— passed.cargo test -p pod feature::builtin::task --lib— passed.cargo test -p ticket— passed.cargo fmt --check— passed.cargo check --workspace --all-targets— passed.
Not run:
nix build .#yoi; skipped because this review scope is source read-only with writes limited totarget/and this Ticket record, and the change does not touch dependencies,Cargo.lock, packaging, or source filters.
Risks / notes:
- This intentionally removes the feature-layer authority gate rather than replacing it. Any future Plugin/MCP permission policy must be implemented in its owning layer and must not reintroduce this as a feature-layer grant API.
Decision: approved.
Implementation report
Integration outcome: merged and validated.
- Implementation branch:
ticket-00001KV0SP0TY-remove-feature-hostauthority - Implementation commits:
5549c50d feat: remove feature host authority API,3faf7d7b ticket: report host authority cleanup - Review commit:
92e64bda ticket: approve host authority cleanup - Orchestrator merge commit:
297e95ef merge: remove feature host authority
Reviewer result:
approve。feature-layerHostAuthority/HostAuthorityRequest/HostAuthorityGrantSet、grant/denial/install-report semantics、per-tool authority gates が削除され、renamed replacement authority layer は導入されていないことを確認済み。
Orchestrator validation after merge:
cargo test -p pod feature:: --lib: PASScargo test -p pod feature::builtin::task --lib: PASScargo test -p ticket: PASScargo fmt --check: PASSgit diff --check: PASScargo check --workspace --all-targets: first attempt failed due to host disk full (No space left on device); after stopping HostAuthority child Pods and removing their child worktree/target, rerun PASS。
Cleanup performed:
- stopped
coder-00001KV0SP0TY-hostauthorityandreviewer-00001KV0SP0TY-hostauthority - removed child worktree
/home/hare/Projects/yoi/.worktree/remove-feature-hostauthority - deleted branch
ticket-00001KV0SP0TY-remove-feature-hostauthority
Not run:
nix build .#yoi; skipped because dependencies /Cargo.lock/ packaging/source filters were not changed and disk pressure was encountered during validation。
Next:
- mark Ticket done. Closure remains separate.
State changed
Implementation branch was reviewed, approved, merged into the Orchestrator branch as 297e95ef, and validated in the Orchestrator worktree. Focused pod/ticket tests, formatting, diff check, and cargo check --workspace --all-targets passed after cleanup freed disk space. Ticket implementation work is done; closure remains separate.