From 06bbb49a7f1eaed36d23eaeb38d4889aea260430 Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Fri, 15 May 2026 10:04:21 +0200 Subject: [PATCH] =?UTF-8?q?docs(04-04):=20human=20checkpoint=20approved=20?= =?UTF-8?q?=E2=80=94=20phase=204=20complete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All 7 TASK requirements verified in browser. Two bugs found and fixed during verification (badge count, drag-and-drop draggable selector). Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .planning/ROADMAP.md | 2 +- .../phases/04-tasks-kanban/04-04-SUMMARY.md | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 .planning/phases/04-tasks-kanban/04-04-SUMMARY.md diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index af79876..63bb841 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -108,7 +108,7 @@ Plans: - [x] 04-01-PLAN.md — Wave 0: migration 0004_tasks + sqlc queries + handlers_tasks_test.go RED scaffold + soft-danger button CSS + Sortable.js bootstrap - [x] 04-02-PLAN.md — Vertical slice 1: kanban board render + task create + task delete (TASK-01, TASK-02, TASK-06) - [x] 04-03-PLAN.md — Vertical slice 2: task inline edit + Sortable.js drag reorder/move (TASK-03, TASK-04, TASK-05, TASK-07) -- [ ] 04-04-PLAN.md — Human-verify checkpoint: full kanban board browser verification +- [x] 04-04-PLAN.md — Human-verify checkpoint: full kanban board browser verification ### Phase 5: Files **Goal:** A user can attach files to a tablo, list them, download them via signed URLs, and delete them — backed by S3-compatible storage. diff --git a/.planning/phases/04-tasks-kanban/04-04-SUMMARY.md b/.planning/phases/04-tasks-kanban/04-04-SUMMARY.md new file mode 100644 index 0000000..bfbe502 --- /dev/null +++ b/.planning/phases/04-tasks-kanban/04-04-SUMMARY.md @@ -0,0 +1,42 @@ +--- +plan: 04-04 +phase: 04-tasks-kanban +status: complete +type: checkpoint +completed: 2026-05-15 +--- + +## Summary + +Human verification checkpoint for Phase 4 kanban board. Automated suite gate passed (5 packages, all ok). Two bugs surfaced during browser testing and fixed before approval. + +## What was verified + +All 7 TASK requirements confirmed working in a live browser session: +- TASK-01: 4 kanban columns render with correct labels and count badges +- TASK-02: Task creation via inline form (no page reload), card appears in correct column +- TASK-03: Inline task editing — click card, edit form pre-filled, save updates title +- TASK-04: Cross-column drag-and-drop via ⠿ handle, persists after reload +- TASK-05: Within-column reorder via drag, persists after reload +- TASK-06: Delete with confirmation step, card removed on confirm +- TASK-07: Order survives full page reload (covered by TASK-04/05 reload checks) + +## Bugs found and fixed + +### Bug 1 — Badge count not updating on task create/delete +Badge count was rendered server-side at page load only. Added `id="task-count-badge-{status}"` wrapper to each column header badge and a `updateBadges()` function triggered on `htmx:afterSettle` to recount `.task-card` elements. Commit: `68f2ccd`. + +### Bug 2 — Drag-and-drop not working +`draggable: ".task-card"` was incorrect — `.task-card` is a grandchild of `.sortable-column` (nested inside `.task-card-zone`), so Sortable was detaching the inner card from its wrapper during drag, breaking HTMX OOB swap targets. Changed to `draggable: ".task-card-zone"` so Sortable moves the full wrapper. Also replaced `htmx.onLoad()` (requires htmx defined at parse time) with native `document.addEventListener('DOMContentLoaded')` + `htmx:afterSettle`. Commits: `68f2ccd`, `131c9fd`. + +## Automated gate + +``` +ok backend/internal/auth 0.400s +ok backend/internal/db 0.459s +ok backend/internal/web 0.699s +ok backend/internal/web/ui 0.690s +ok backend/templates 0.856s +``` + +## Self-Check: PASSED