3.6 KiB
3.6 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-conditional-panel-behavior | Conditional panel behavior | completed | 1 | plan.md | ../../specs/ui/requirements/task-layout-profiles.md |
Task 01: Conditional panel behavior
Restore conditional desktop review-tab behavior while preserving explicit layout placement.
Acceptance
- Code-defined Default and compact layouts omit
pr-detail, but reusable-layout validation and the editor still accept it. - A linked GitHub PR or GitLab MR adds one inactive canonical panel in the custom Default's configured group/index, or beside Agent when no custom placement exists; repeated syncs update identity without duplication or focus theft.
- Review loss removes every canonical panel after hydration, including explicitly configured runtime panels. The saved layout keeps its placement, and closing a linked-review panel suppresses re-creation for that session without blocking explicit review open actions.
TDD sequence
- Change focused preset and review-sync unit expectations and run them to capture failures against the current built-in/parameter-only behavior.
- Add pure conditional-panel decision/application coverage, including task-switch, restoration, maximize, provider precedence, and dismissal cases.
- Implement the smallest preset, synchronization, and session-storage changes.
- Re-run the focused suite, typecheck, lint, and
git diff --check.
Files likely touched
apps/web/lib/state/layout-manager/presets.tsapps/web/lib/state/layout-manager/presets.test.tsapps/web/lib/layout/layout-profiles.tsapps/web/lib/layout/layout-profiles.test.tsapps/web/lib/state/layout-manager/merger.test.tsapps/web/components/task/dockview-review-panel-sync.tsapps/web/components/task/dockview-review-panel-sync.test.tsapps/web/lib/local-storage.tsapps/web/lib/local-storage.test.ts
Verification
cd apps && pnpm install --frozen-lockfilecd apps && pnpm --filter @kandev/web test lib/state/layout-manager/presets.test.ts lib/layout/layout-profiles.test.ts lib/state/layout-manager/merger.test.ts components/task/dockview-review-panel-sync.test.ts lib/local-storage.test.tscd apps/web && pnpm run typecheckcd apps && pnpm --filter @kandev/web lintgit diff --check
Dependencies
None.
Parallelism
Sequential. The preset and synchronization changes share behavior and tests.
Inputs
docs/specs/ui/requirements/task-layout-profiles.mdWhat, Persistence guarantees, and Scenariosdocs/plans/conditional-pr-details-tab/plan.mdFrontend and Tests- Pre-regression conditional behavior in parent of commit
f8c363f72, adapted so explicit layouts provide placement without overriding review-driven visibility
Output contract
Report the red/green evidence, changed files, exact command results, blockers, residual risks, and task/plan status updates in the primary conversation.
Results
Completed.
- Red: preset/profile expectations, conditional removal, insertion, configured-placement, and storage tests failed against the embedded PR default and parameter-only sync.
- Green: focused Vitest suite passed (
101tests across presets, profiles, merger, review sync, GitHub review loading, and local storage); the corrected review-sync file passed independently (20tests). cd apps/web && pnpm run typecheckpassed.cd apps && pnpm --filter @kandev/web lintpassed with zero warnings.cd apps/web && pnpm run i18n:checkpassed.git diff --checkpassed.- PR review fixup passed
29focused tests covering terminal retry failure loading and required conditional-panel options.