docs(09): close etape UAT and summary
This commit is contained in:
parent
f9fc7a1e34
commit
ec6bb7d11c
3 changed files with 111 additions and 16 deletions
|
|
@ -3,14 +3,14 @@ gsd_state_version: 1.0
|
|||
milestone: v2.0
|
||||
milestone_name: Collaboration, planning, and social sign-in
|
||||
status: executing
|
||||
last_updated: "2026-05-15T20:31:39.315Z"
|
||||
last_activity: 2026-05-15 -- Phase 09 execution started
|
||||
last_updated: "2026-05-15T21:46:58Z"
|
||||
last_activity: 2026-05-15 -- Phase 09 UAT gap resolved and Plan 09-04 closed
|
||||
progress:
|
||||
total_phases: 5
|
||||
completed_phases: 1
|
||||
total_plans: 9
|
||||
completed_plans: 5
|
||||
percent: 56
|
||||
completed_plans: 9
|
||||
percent: 100
|
||||
---
|
||||
|
||||
# STATE
|
||||
|
|
@ -29,17 +29,17 @@ See: `.planning/PROJECT.md` (updated 2026-05-15)
|
|||
## Current Position
|
||||
|
||||
Phase: 09 (etapes) — EXECUTING
|
||||
Plan: 1 of 4
|
||||
Status: Executing Phase 09
|
||||
Last activity: 2026-05-15 -- Phase 09 execution started
|
||||
Resume file: .planning/phases/09-etapes/09-01-PLAN.md
|
||||
Plan: 4 of 4
|
||||
Status: Phase 09 UAT passed; security review pending
|
||||
Last activity: 2026-05-15 -- Phase 09 UAT gap resolved and Plan 09-04 closed
|
||||
Resume file: .planning/phases/09-etapes/09-UAT.md
|
||||
|
||||
## Phase Status
|
||||
|
||||
| # | Phase | Status |
|
||||
|---|-------|--------|
|
||||
| 8 | Social Sign-in | ✓ Complete |
|
||||
| 9 | Etapes | ◆ Ready to execute |
|
||||
| 9 | Etapes | ◆ UAT passed; security pending |
|
||||
| 10 | Events | ○ Pending |
|
||||
| 11 | Individual Planning | ○ Pending |
|
||||
| 12 | Native Tablo Chat | ○ Pending |
|
||||
|
|
@ -47,6 +47,7 @@ Resume file: .planning/phases/09-etapes/09-01-PLAN.md
|
|||
## Verification Record
|
||||
|
||||
- 2026-05-15: Phase 8 execution complete. Local verification passed with `go test ./... -count=1`; database-backed integration coverage skips unless `TEST_DATABASE_URL` is configured.
|
||||
- 2026-05-15: Phase 9 UAT complete. Five browser checkpoints passed after fixing the selected-etape create gap; backend verification passed with `TEST_DATABASE_URL='postgres://xtablo:xtablo@localhost:5432/xtablo?sslmode=disable' go test ./... -count=1`.
|
||||
|
||||
## Decisions
|
||||
|
||||
|
|
@ -160,6 +161,12 @@ Resume file: .planning/phases/09-etapes/09-01-PLAN.md
|
|||
- Phase 8 Plan 04 SUMMARY: `.planning/phases/08-social-sign-in/08-04-SUMMARY.md`
|
||||
- Phase 8 Plan 05 SUMMARY: `.planning/phases/08-social-sign-in/08-05-SUMMARY.md`
|
||||
- Commits (08): 2d004cd (social identity schema foundation), 6779663 (Google sign-in), a8b6a03 (Apple implementation later disabled), 59fd6b1 (auth page provider controls), 6e65836 (account providers view + docs)
|
||||
- Phase 9 Plan 01 SUMMARY: `.planning/phases/09-etapes/09-01-SUMMARY.md`
|
||||
- Phase 9 Plan 02 SUMMARY: `.planning/phases/09-etapes/09-02-SUMMARY.md`
|
||||
- Phase 9 Plan 03 SUMMARY: `.planning/phases/09-etapes/09-03-SUMMARY.md`
|
||||
- Phase 9 Plan 04 SUMMARY: `.planning/phases/09-etapes/09-04-SUMMARY.md`
|
||||
- Phase 9 UAT: `.planning/phases/09-etapes/09-UAT.md` — 5/5 checkpoints passed after selected-etape create fix.
|
||||
- Commits (09): a8a3e5f/565bb88 (first etape slice), 9b89282/4af623a (management), 9f6c7eb/b22d79d (assignment selector), 55263e4/3a3ecf5/cf07c29 (reorder hardening), 0c95049/ee62ff9/f9fc7a1 (UAT fixes)
|
||||
|
||||
---
|
||||
*Last updated: 2026-05-15 after Phase 8 execution complete*
|
||||
*Last updated: 2026-05-15 after Phase 9 UAT gap resolution*
|
||||
|
|
|
|||
85
.planning/phases/09-etapes/09-04-SUMMARY.md
Normal file
85
.planning/phases/09-etapes/09-04-SUMMARY.md
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
phase: 09-etapes
|
||||
plan: 04
|
||||
subsystem: tasks
|
||||
tags: [go, htmx, templ, etapes, uat]
|
||||
requires:
|
||||
- phase: 09-etapes
|
||||
plan: 03
|
||||
provides: task create/edit etape selectors and same-tablo assignment validation
|
||||
provides:
|
||||
- reorder preservation regression coverage for etape-assigned tasks
|
||||
- filtered reorder behavior that preserves hidden tasks and etape assignment
|
||||
- create/delete count refresh fixes for etape chips
|
||||
- resolved UAT gap for selected etape winning over active filter
|
||||
affects: [09-etapes, tasks]
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [db-backed regressions, oob etape strip refresh, selector-over-filter precedence]
|
||||
key-files:
|
||||
created:
|
||||
- .planning/phases/09-etapes/09-UAT.md
|
||||
modified:
|
||||
- backend/internal/web/handlers_tasks.go
|
||||
- backend/internal/web/handlers_tasks_test.go
|
||||
- backend/templates/tasks.templ
|
||||
key-decisions:
|
||||
- "Task reorder preserves existing etape_id and keeps ordering status-scoped rather than etape-scoped."
|
||||
- "Task create/delete HTMX responses refresh the etape strip out-of-band so chip counts stay current."
|
||||
- "Task create assignment comes from the visible selector, not from the active etape filter query param."
|
||||
patterns-established:
|
||||
- "Filtered task reorder has DB-backed coverage for visible and hidden tasks."
|
||||
- "UAT gaps are diagnosed in 09-UAT.md and closed with a regression plus retest."
|
||||
requirements-completed: [ETAPE-01, ETAPE-02, ETAPE-03, ETAPE-04, ETAPE-05, ETAPE-06]
|
||||
completed: 2026-05-15
|
||||
---
|
||||
|
||||
# Plan 09-04 Summary
|
||||
|
||||
**Etape reorder hardening, count refresh fixes, and final UAT closure**
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Added DB-backed regression coverage proving task reorder preserves `etape_id`, keeps hidden filtered tasks intact, and remains stable under active etape filters.
|
||||
- Fixed task reorder behavior so existing etape assignments are preserved through single-task and Sortable-style reorder paths.
|
||||
- Fixed task create and delete HTMX responses to refresh the etape strip out-of-band, keeping chip counts current after mutations.
|
||||
- Completed Phase 9 UAT with five user-facing checkpoints: filters, create assignment, etape management, edit assignment, and filtered reorder.
|
||||
- Diagnosed and fixed the UAT gap where task creation could use the active filter etape instead of the visible selector value.
|
||||
|
||||
## Task Commits
|
||||
|
||||
1. **Task 1: Add reorder preservation regression tests** - `55263e4`
|
||||
2. **Task 2: Preserve etape assignment through reorder** - `3a3ecf5`
|
||||
3. **Task 2 hardening: DB-backed reorder regressions** - `cf07c29`
|
||||
4. **UAT fix: Refresh counts on task create** - `0c95049`
|
||||
5. **UAT fix: Refresh counts on task delete** - `ee62ff9`
|
||||
6. **UAT record: Complete Phase 9 UAT with one diagnosed issue** - `c5513df`
|
||||
7. **UAT gap fix: Honor selected etape on task create** - `f9fc7a1`
|
||||
|
||||
## Verification
|
||||
|
||||
- `cd backend && just generate`
|
||||
- `cd backend && TEST_DATABASE_URL='postgres://xtablo:xtablo@localhost:5432/xtablo?sslmode=disable' go test ./internal/web -run 'TestTaskCreateUsesSelectedEtapeOverActiveFilter|TestTaskCreateRefreshesEtapeCounts|TestTaskCreateAssignsEtape' -count=1`
|
||||
- `cd backend && TEST_DATABASE_URL='postgres://xtablo:xtablo@localhost:5432/xtablo?sslmode=disable' go test ./... -count=1`
|
||||
- `git diff --check`
|
||||
- Browser UAT in `.planning/phases/09-etapes/09-UAT.md` retested successfully after the create-assignment fix.
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
Plan 09-04 included final browser verification. Browser UAT found two count-refresh issues and one assignment-precedence issue, so the plan expanded to include focused fixes and regression coverage before closure.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
- Task create initially did not refresh etape chip counts after HTMX insert; fixed with an out-of-band `#etape-strip` refresh.
|
||||
- Task delete initially did not refresh etape chip counts after HTMX removal; fixed with an out-of-band `#etape-strip` refresh.
|
||||
- Task create could submit duplicate `etape_id` values because the form had both a hidden active-filter value and the visible selector; fixed so the selector value wins and the duplicate hidden field is removed.
|
||||
|
||||
## User Setup Required
|
||||
|
||||
None.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
Phase 9 execution is closed. Phase 9 is ready for the normal verification/security gates before moving to Phase 10 events.
|
||||
|
||||
## Self-Check: PASSED
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
status: diagnosed
|
||||
status: complete
|
||||
phase: 09-etapes
|
||||
source:
|
||||
- 09-01-SUMMARY.md
|
||||
|
|
@ -7,7 +7,7 @@ source:
|
|||
- 09-03-SUMMARY.md
|
||||
- 09-04-PLAN.md
|
||||
started: 2026-05-15T21:38:18Z
|
||||
updated: 2026-05-15T21:46:09Z
|
||||
updated: 2026-05-15T21:46:58Z
|
||||
---
|
||||
|
||||
## Current Test
|
||||
|
|
@ -22,9 +22,10 @@ result: pass
|
|||
|
||||
### 2. Create Task with Etape Assignment
|
||||
expected: Creating a task from the Tasks tab lets you choose an etape or No etape. After submit, the task appears in the right kanban column, the selected etape count refreshes immediately, and the active filter state stays coherent.
|
||||
result: issue
|
||||
result: pass
|
||||
reported: "even when selecting the etape, the created task ends up in the current etape viewed in the etape search param"
|
||||
severity: major
|
||||
resolution: "Fixed in f9fc7a1 and retested as pass."
|
||||
|
||||
### 3. Manage Etapes
|
||||
expected: Etape edit updates the chip label, Up/Down controls reorder chips, and delete shows the warning that tasks stay in the tablo and move to Unassigned. After confirming delete, affected tasks remain visible under Unassigned.
|
||||
|
|
@ -41,8 +42,8 @@ result: pass
|
|||
## Summary
|
||||
|
||||
total: 5
|
||||
passed: 4
|
||||
issues: 1
|
||||
passed: 5
|
||||
issues: 0
|
||||
pending: 0
|
||||
skipped: 0
|
||||
blocked: 0
|
||||
|
|
@ -50,7 +51,7 @@ blocked: 0
|
|||
## Gaps
|
||||
|
||||
- truth: "Creating a task from the Tasks tab lets you choose an etape or No etape. After submit, the task appears in the right kanban column, the selected etape count refreshes immediately, and the active filter state stays coherent."
|
||||
status: failed
|
||||
status: resolved
|
||||
reason: "User reported: even when selecting the etape, the created task ends up in the current etape viewed in the etape search param"
|
||||
severity: major
|
||||
test: 2
|
||||
|
|
@ -67,3 +68,5 @@ blocked: 0
|
|||
- "Read the last submitted etape_id defensively when duplicate values are present."
|
||||
- "Add a regression for creating a task while filtered to one etape but selecting another."
|
||||
debug_session: "inline:$gsd-verify-work-09/test-2"
|
||||
fix_commit: "f9fc7a1"
|
||||
retest: pass
|
||||
|
|
|
|||
Loading…
Reference in a new issue