go-htmx-gsd #1

Merged
arthur merged 558 commits from go-htmx-gsd into main 2026-05-23 15:16:44 +00:00
2 changed files with 43 additions and 1 deletions
Showing only changes of commit 06bbb49a7f - Show all commits

View file

@ -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.

View file

@ -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