1.9 KiB
1.9 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec | ||
|---|---|---|---|---|---|---|---|---|
| 06-plugin-owned-task-lifecycle | Rich plugin-owned task lifecycle | completed | 2 |
|
plan.md | ../../specs/bitbucket-plugin/spec.md |
Task 06: Rich plugin-owned task lifecycle
Intent
Let plugins create/read plugin-owned tasks with complete remote descriptors, launch profiles, namespaced metadata, and ownership-safe preview/cascade deletion.
Owned paths
apps/backend/internal/plugins/host_write.goapps/backend/internal/plugins/host_data.goapps/backend/internal/plugins/host_write_test.goapps/backend/internal/plugins/host_data_test.goapps/backend/internal/plugins/host_data_wire_test.goapps/backend/internal/backendapp/services.goapps/backend/internal/backendapp/adapters_plugin_starter.goapps/backend/internal/task/service/service_requests.goapps/backend/internal/task/service/service_tasks.goapps/backend/internal/task/service/remote_repository_test.go
Dependencies
Tasks 01 and 03.
Acceptance
- Create/read shapes support existing repository ID or complete arbitrary-provider remote descriptor, workflow/step, plan, agent/executor profile, prompt/plan mode, and namespaced metadata.
- Host writes reserved
metadata.source = plugin:<id>, rejects reserved-key overwrite, exposes executor-profile reads behindapi_read:executor_profiles, and preserves exact credential-free Data Center clone URLs. - Preview/delete only cascades trees whose source matches caller plugin; adopted or user-owned tasks survive.
Verification
cd apps/backend && go test ./internal/plugins ./internal/task/service ./internal/backendapp ./pkg/pluginsdk
make -C apps/backend lint
Risks
Task provenance is destructive-action authorization. Missing or mismatched ownership must fail closed; do not use plugin state links as authority to delete user tasks.