3.1 KiB
3.1 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 09-promotion-release-management | Canvas release governance | done | 9 |
|
plan.md |
|
|
|
Task 09: Canvas release governance
Summary
Add human promotion, permission review, release history, rollback, archive, restore, and removal APIs. Keep scope, grants, and release activation atomic.
In scope
- Add promotion preview and confirmation services.
- Show task and workspace scope plus every requested permission.
- Change instance scope and grants in one transaction.
- Add pending-release approval and rejection.
- Retain one prior valid release and at most one pending release.
- Add release history, rollback, archive, restore, and remove handlers.
- Prevent agents from using human lifecycle operations.
- Add authorization, retention, transaction, and rollback tests.
Out of scope
- Quick Chat editing and frontend management surfaces.
Acceptance
- Promotion changes scope and grants together or changes neither.
- A permission increase keeps the current release active until approval.
- Rollback selects the retained prior release and rechecks current grants.
Verification
cd apps/backend && go test ./internal/canvas/... ./internal/plugins/... ./internal/backendapp/...
cd apps && pnpm --filter @kandev/web test -- lib/api/domains/canvas-api
Files likely touched
apps/backend/internal/canvas/promotion.goapps/backend/internal/canvas/releases.goapps/backend/internal/canvas/handlers.goapps/backend/internal/plugins/instances/**apps/web/lib/api/domains/canvas-api.tsapps/web/lib/api/domains/canvas-api.test.tsapps/web/lib/types/canvas.ts
Dependencies
- Task 08 provides active task canvases and published releases.
Risks
- Permission approval can activate a release before the transaction commits.
- Rollback can restore authority that the user revoked.
- Restore can exceed canvas or storage limits without shared admission.
Parallelism
sequential
Inputs
- Promotion, permissions, publish, rollback, HTTP API, and authorization sections.
- Existing plugin permission and task authorization tests.
Results
Implemented human-only promotion and permission review, atomic metadata, scope, and grant changes, pending-release approval and rejection, release history, rollback, archive, restore, removal, retention, and authorization checks.
Verification:
go test ./internal/canvas/... ./internal/plugins/... ./internal/backendapp/... -count=1— passed.- Focused canvas API tests — passed.