---
status: complete
phase: 09-etapes
source:
  - 09-01-SUMMARY.md
  - 09-02-SUMMARY.md
  - 09-03-SUMMARY.md
  - 09-04-PLAN.md
started: 2026-05-15T21:38:18Z
updated: 2026-05-15T21:46:58Z
---

## Current Test

[testing complete]

## Tests

### 1. Etape Strip and Filters
expected: In a tablo's Tasks tab, the etape strip shows All, Unassigned, and each etape chip with task counts. Clicking an etape filters the existing kanban columns to that etape, and clicking Unassigned shows only tasks without an etape.
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: 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.
result: pass

### 4. Edit Task Etape Assignment
expected: Opening a task edit form shows an Etape selector with No etape first. Saving can assign the task to another etape or clear it, and the task remains in its existing status and position while counts refresh.
result: pass

### 5. Reorder with Etape Filters
expected: While an etape filter is active, dragging a visible task across columns changes only its status and position. Its etape assignment is preserved, hidden filtered-out tasks remain intact, and chip counts still match after the reorder settles.
result: pass

## Summary

total: 5
passed: 5
issues: 0
pending: 0
skipped: 0
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: 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
  root_cause: "The task create form rendered a hidden etape_id for the active filter before the visible Etape selector. TaskCreateHandler used PostFormValue(\"etape_id\"), which returns the first submitted value, so the active filter could override the user's selected etape."
  artifacts:
    - path: "backend/templates/tasks.templ"
      issue: "TaskCreateFormFragment emitted duplicate etape_id controls."
    - path: "backend/internal/web/handlers_tasks.go"
      issue: "TaskCreateHandler read the first etape_id value from duplicated form fields."
    - path: "backend/internal/web/handlers_tasks_test.go"
      issue: "No regression covered selected etape winning over the active filter."
  missing:
    - "Remove the hidden etape_id input from the create form."
    - "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
