1.2 KiB
1.2 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 02-layout-profile-domain | Layout profile domain | done | 1 | plan.md | ../../specs/ui/requirements/task-layout-profiles.md |
Task 02: Layout Profile Domain
Acceptance
- Pure helpers define built-in templates, validate reusable layouts, resolve the effective default, and perform immutable profile mutations.
- Editor-created layouts allow exactly one Agent and at most one of each reusable optional panel, with no empty groups.
- Invalid or legacy layouts are identified without mutating their stored payloads.
Files likely touched
apps/web/lib/layout/layout-profiles.tsapps/web/lib/layout/layout-profiles.test.tsapps/web/lib/state/layout-manager/constants.tsapps/web/components/task/layout-preset-selector.tsx
Dependencies
None.
Inputs
- Spec
What,Data model, and legacy failure-mode requirements. - Existing
LayoutState,PANEL_REGISTRY,getPresetLayout, andSavedLayouttypes.
Verification
pnpm --filter @kandev/web test -- --run lib/layout/layout-profiles.test.ts
Run from apps.
Output contract
Report helper contracts, tests run, files changed, blockers, and risks; mark this task and its plan item done.