3.4 KiB
3.4 KiB
実装報告(Coder)
Commit:
- implementation:
21bf009a3f95978007468005982903c8d7cae9e7(feat: move profile scope to launch policy)
変更ファイル:
resources/profiles/default.luaresources/profiles/companion.luaresources/profiles/intake.luaresources/profiles/orchestrator.luaresources/profiles/coder.luaresources/profiles/reviewer.luacrates/manifest/src/profile.rscrates/manifest/src/config.rscrates/pod/src/entrypoint.rscrates/pod/src/spawn/tool.rs
実装内容:
- Builtin reusable Profiles から concrete filesystem
scope/delegation_scopeを削除した。 - Profile resolution の implicit default workspace-write scope を廃止し、Profiles without scope を empty scope として解決可能にした。
- Fresh profile launch の effective authority を
podentrypoint の launch policy で付与するようにした。- normal Companion/TUI/default profile launch: workspace write direct scope(
.worktreewrite deny)+ workspace read /.worktreewrite delegation。 - Ticket Orchestrator role launch: original workspace read direct scope + original workspace read /
<workspace>/.worktreewrite delegation。root workspace write delegation は付与しない。 - Ticket Intake/Reviewer role launch: workspace read direct scope。
- Ticket Coder role launch: workspace write direct scope。
- normal Companion/TUI/default profile launch: workspace write direct scope(
- Single-file
--manifestmode は従来どおり concretescope.allowを要求し、Profile launch policy と混同しないようにした。 - SpawnPod child scope replacement path は維持し、narrow Orchestrator delegation で Coder/Reviewer 用の root-read + implementation-worktree-write validation が成立することをテストした。
- Existing user Profile
scope/delegation_scopecompatibility は deprecated-compatible path として残した(Ticket の選択肢に沿って、builtin role launch authority は Profile scope に依存しない)。
Validation:
cargo test -p manifest✅- Focused tests ✅
cargo test -p manifest builtin_role_profiles_are_registered_and_resolve --quietcargo test -p manifest builtin_default_resolves_without_external_evaluator --quietcargo test -p manifest resolve_accepts_empty_scope_for_profile_launch_policy --quietcargo test -p pod --lib entrypoint::tests::normal_startup_uses_default_profile --quietcargo test -p pod --lib entrypoint::tests::orchestrator_profile_launch_gets_read_root_and_worktree_delegation_from_launch_policy --quietcargo test -p pod --lib spawn::tool::tests::orchestration_delegation_allows_root_read_and_worktree_writes_not_root_writes --quietcargo test -p pod --lib pod::pod_metadata_restore_manifest_tests::snapshot_preserves_saved_scope_over_current_manifest --quietcargo test -p client ticket_role --quiet
cargo build -p yoi✅cargo fmt --check✅git diff --check✅nix build .#yoinot run: no Cargo.lock, packaging, or resource inclusion pattern changed.
Residual risks / notes:
- Full
cargo test -p pod --libwas attempted and still has two prompt-text assertion failures (worktree status, diff, and test results) in prompt catalog/system tests; this diff did not touch prompt resources or those assertions. Focused scope/profile/spawn/restore tests passed. - User Profile
scopecompatibility remains supported for now; future schema cleanup can remove or deprecate it explicitly if desired.