2.0 KiB
2.0 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-backend-preference-contract | Backend preference contract | done | 1 | plan.md | ../../specs/tasks/requirements/mcp-task-agent-profile-default.md |
Task 01: Backend Preference Contract
Acceptance
- User settings GET, PATCH, boot payload, and
user.settings.updatedexposemcp_task_agent_profile_defaultwith onlycurrent_taskandworkspace_defaultaccepted. - Empty, legacy, or unknown stored values normalize to
current_task; PATCH omission preserves the saved value and explicit values survive restart/round-trip. - Invalid PATCH values return validation failure without changing the persisted preference.
Verification
cd apps/backend && go test ./internal/user/... ./internal/backendapp/...
Files Likely Touched
apps/backend/internal/user/models/models.goapps/backend/internal/user/dto/dto.goapps/backend/internal/user/dto/dto_test.goapps/backend/internal/user/controller/controller.goapps/backend/internal/user/service/service.goapps/backend/internal/user/service/service_test.goapps/backend/internal/user/store/sqlite.goapps/backend/internal/user/store/sqlite_test.goapps/backend/internal/backendapp/boot_state_routes.goapps/backend/internal/backendapp/boot_state_user_settings_test.goapps/backend/internal/backendapp/helpers_test.go
Dependencies
None.
Inputs
- Spec: Data model, API surface, Failure modes, Persistence guarantees, and legacy/default scenarios.
- Plan: User-settings contract and persistence.
- Patterns:
ConfirmTaskArchivefor JSON defaulting and events; ADR 0041 for backend-owned portable settings. Unlike the boolean archive preference, this field must validate and normalize an enum.
Output Contract
Report the normalized constants/field, DTO and persistence behavior, exact tests run, files touched, blockers, and residual risks. Set this task to done and update its plan checkbox only after targeted verification passes.