diff --git a/.planning/phases/20-tablo-detail-kanban-restyle/20-REVIEW.md b/.planning/phases/20-tablo-detail-kanban-restyle/20-REVIEW.md new file mode 100644 index 0000000..3329474 --- /dev/null +++ b/.planning/phases/20-tablo-detail-kanban-restyle/20-REVIEW.md @@ -0,0 +1,232 @@ +--- +phase: 20-tablo-detail-kanban-restyle +reviewed: 2026-05-18T00:00:00Z +depth: standard +files_reviewed: 8 +files_reviewed_list: + - go-backend/internal/web/handlers/tablo_detail.go + - go-backend/internal/web/handlers/tablo_detail_tab.go + - go-backend/internal/web/handlers/tablo_detail_test.go + - go-backend/internal/web/ui/app.css + - go-backend/internal/web/views/tablo_detail.templ + - go-backend/internal/web/views/tablo_detail_view.go + - go-backend/internal/web/views/tablo_detail_view_test.go + - go-backend/router.go +findings: + critical: 3 + warning: 4 + info: 2 + total: 9 +status: issues_found +--- + +# Phase 20: Code Review Report + +**Reviewed:** 2026-05-18 +**Depth:** standard +**Files Reviewed:** 8 +**Status:** issues_found + +## Summary + +The tablo detail kanban restyle introduces a well-structured view model, clean templ components, and solid unit-test coverage for the `TabloDetailViewModel` builder. The Go handler logic is straightforward and handles auth/ownership correctly. + +Three blockers are present. Two of them are dead-on-arrival: kanban drag-to-reorder and the "Add task" links both reference routes that do not exist in the router, so those features produce 404 responses at runtime. The third blocker is a post-delete navigation bug: deleting a task from the kanban board re-renders the `/tasks` page instead of the current tablo, breaking the user's context. + +The warnings cover a non-functional active tab indicator, a stale task count in the column header after reorder, an O(n²) child-count loop in the view model builder, and a shadowed built-in `min` function in the test file that may cause confusion as Go versions evolve. + +--- + +## Critical Issues + +### CR-01: Kanban drag-reorder endpoint not registered in router + +**File:** `go-backend/router.go:45-49` / `go-backend/internal/web/views/tablo_detail.templ:121` + +**Issue:** Every kanban column contains a hidden `