## Summary
This PR is Phase 2 of 3 for [AERIE-2744 - Launch and verify the complete Task Board](https://linear.app/builder-team/issue/AERIE-2744/launch-and-verify-the-complete-task-board), part of the [Human Task Assignment from Aerie project](https://linear.app/builder-team/project/human-task-assignment-from-aerie-b3582376ae6e).
It activates the public Task API, publishes its canonical Task semantics and DSS workflows, connects Work Plan Task changes to the engine shipped in #1812, and adapts existing Rhodes Task consumers to the same model. Task digest delivery stays disabled, while the separate agent runtime and worker-tool launch remains gated for Phase 3.
Production effect: activation.
## Why
The previous launch PR combined the API, agent runtime, UI, release controls, and review-only hardening in one large change. This slice gives the public API and existing Work Plan paths one independently safe production boundary. The canonical DSS workflow catalog ships with the active operations because Aerie requires every published operation to have complete workflow coverage. Existing Rhodes Task consumers also move with the new model so they cannot keep writing the retired Task shape.
## Business Value
- Lets approved users and their API keys create and manage Tasks through one public API.
- Gives Task participants the same note, watcher, evidence, approval, and history actions available through Aerie.
- Keeps existing Work Plan Task creation compact while using the same lifecycle rules underneath.
- Gives agents accurate DSS guidance for every active Task API operation.
- Sends immediate Task events while keeping the unfinished daily digest disabled.
## How does it work
1. Public Work Management routes use the Task engine from #1812 for Task reads and writes.
2. API-key owners may act on Tasks they participate in. Users with operations.tasks.write retain global Task management.
3. Task responses expose current allowed actions, unified internal and external assignments, and bounded history.
4. Work Plan writers use the same Task creation and update logic without requiring the expanded Task fields.
5. Immediate Task notification events remain active. Digest delivery stays disabled behind AERIE_TASK_SCENARIO_DIGEST_ENABLED.
6. The canonical Task semantics and DSS workflows cover every active Task operation, so the public API manifest stays complete.
7. Existing Rhodes Task reads and mutations use the same Task authority and lifecycle contracts. Phase 3 still owns the agent runtime protocol, worker tooling, and final launch-gate removal.
## Scope
### Included in this phase
- Public Task list, detail, My Tasks, create, update, assignment, notes, watcher, completion, review, document, and history operations.
- Participant-level API authority and global Task manager authority.
- Work Plan integration with the canonical Task lifecycle.
- Unified internal-user and external-email assignments.
- Immediate Task notification events and the explicit digest hold.
- Current authorization recheck before returning an idempotent append replay.
- Task-specific authority for generic Task-anchored Note updates and deletion.
- Canonical Task semantics and DSS workflows required by the active API manifest.
- Permanent Rhodes read, mutation-dispatch, and mutation-contract adaptations required by the new Task model.
- Exact final diff paths:
chat/app/(main)/tools/api-docs/page.tsxchat/convex/agentRuns/runs.ts
chat/convex/automations/cronRegistry.ts
chat/convex/migrations/taskLifecycleContract.test.ts
chat/convex/publicApi/apiKeyAuth.ts
chat/convex/publicApi/routeManifest.test.ts
chat/convex/publicApi/v2/domains/workManagement.ts
chat/convex/publicApi/v2/domains/workManagementTaskBoardWrites.test.ts
chat/convex/publicApi/v2/domains/workManagementWrites.test.ts
chat/convex/publicApi/v2/http.test.ts
chat/convex/publicApi/v2/http.ts
chat/convex/publicApi/v2/siteNotes.test.ts
chat/convex/publicApi/v2/workManagement.test.ts
chat/convex/publicApi/v2/workManagementData.ts
chat/convex/publicApi/v2/workManagementWrites.ts
chat/convex/rhodes/mcp.ts
chat/convex/rhodes/portfolioWorkbench.ts
chat/convex/rhodes/runtime/mutationAuthorization.ts
chat/convex/rhodes/runtime/mutationDispatcher.ts
chat/convex/rhodes/runtime/writes/noteWrites.ts
chat/convex/rhodes/runtime/writes/taskWrites.ts
chat/convex/rhodesMcpMutationParity.test.ts
chat/convex/rhodesPortfolioWorkbench.test.ts
chat/convex/taskBoard/appendReceipts.ts
chat/convex/taskBoard/assignmentModel.ts
chat/convex/taskBoard/auth.ts
chat/convex/taskBoard/comments.ts
chat/convex/taskBoard/completion.test.ts
chat/convex/taskBoard/digest.test.ts
chat/convex/taskBoard/digest.ts
chat/convex/taskBoard/documents.test.ts
chat/convex/taskBoard/notifications.test.ts
chat/convex/taskBoard/notifications.ts
chat/convex/taskBoard/queries.test.ts
chat/convex/taskBoard/queries.ts
chat/convex/taskBoard/watchers.test.ts
chat/convex/taskBoard/watchers.ts
chat/lib/completion-history-pagination.node.test.ts
chat/lib/public-api/agent-context/projection.node.test.ts
chat/lib/public-api/v2/domains/work-management-schemas.ts
chat/lib/public-api/v2/domains/work-management-task-board.node.test.ts
chat/lib/public-api/v2/domains/work-management.node.test.ts
chat/lib/public-api/v2/domains/work-management.ts
chat/lib/public-api/v2/meta.ts
chat/lib/public-api/v2/openapi.node.test.ts
chat/lib/public-api/v2/openapi.ts
chat/lib/rhodes-mutation-tools.ts
packages/contracts/src/public-api-v2.test.ts
packages/contracts/src/public-api-v2.ts
### Deliberately excluded for later phases
- Agent run protocol, final lifecycle-tool discovery, and Rhodes worker Task tools. Phase 3 owns these.
- Removal of the remaining Task launch gate. Phase 3 removes it when the agent runtime and worker tools are ready.
- My Tasks and Team Tasks UI and global navigation exposure. The refreshed UI work owns these.
- Task Scenario digest delivery. The content will be redesigned before activation.
- Rollback-only compatibility, speculative fallbacks, stale cursor hardening, and unrelated Mercy hardening.
## Test plan
### Automated validation
- Focused Node API, OpenAPI, and pagination contracts: 18/18 passed (pnpm --dir chat exec vitest run --project node lib/public-api/v2/domains/work-management.node.test.ts lib/public-api/v2/domains/work-management-task-board.node.test.ts lib/public-api/v2/openapi.node.test.ts lib/completion-history-pagination.node.test.ts --maxWorkers=1).
- Focused Convex Task, public API, Work Plan, and Site Note suites: 189/189 passed across 11 files (pnpm --dir chat exec vitest run --project edge convex/publicApi/v2/workManagement.test.ts convex/publicApi/v2/domains/workManagementTaskBoardWrites.test.ts convex/publicApi/v2/domains/workManagementWrites.test.ts convex/publicApi/v2/siteNotes.test.ts convex/rhodesPortfolioWorkbench.test.ts convex/taskBoard/completion.test.ts convex/taskBoard/digest.test.ts convex/taskBoard/documents.test.ts convex/taskBoard/notifications.test.ts convex/taskBoard/queries.test.ts convex/taskBoard/watchers.test.ts --maxWorkers=1).
- Split-boundary Rhodes and global API-manifest regressions: 132/132 passed across 4 files (pnpm --dir chat exec vitest run convex/rhodesMcpMutationParity.test.ts lib/public-api/v2/domains/directory.node.test.ts lib/public-api/v2/domains/portfolio.node.test.ts lib/public-api/v2/domains/property.node.test.ts).
- Focused canonical Task catalog, Rhodes, and Task participant regressions: 151/151 passed across 6 files (pnpm --dir chat exec vitest run lib/public-api/v2/domains/work-management-task-board.node.test.ts lib/public-api/v2/domains/work-management.node.test.ts convex/rhodesMcpMutationParity.test.ts convex/taskBoard/completion.test.ts convex/taskBoard/documents.test.ts convex/taskBoard/watchers.test.ts).
- Full monorepo typecheck passed (pnpm typecheck).
- Biome passed across all 9 files in the boundary repair commit and all previously changed files.
- Convex path validation passed in the pre-commit hook.
- git diff --check passed.
- Exact-head diff against current main: 49 paths, 3,978 insertions, 1,932 deletions, 398,391 raw bytes.
### Time for Implementation
An engineer working without AI assistance would likely need about one and a half weeks to trace the public Task and Work Plan paths, align their authorization and lifecycle contracts, and validate the release boundary.