|
|
@@ -252,9 +252,17 @@ with a `BOOTSTRAP_ADMIN` audit row.
|
|
|
/users/{id}` with self-demote and last-admin guardrails. Pure static
|
|
|
`UserController::demoteGuardrail` is testable with no PDO/session
|
|
|
setup. +6 tests.
|
|
|
-- [x] **Phase 10 — Task list polish** (`c35a934`): multi-select owner
|
|
|
- filter (checkbox dropdown) and column-visibility toggle, both
|
|
|
- pure client-side with localStorage persistence per sprint.
|
|
|
+- [x] **Phase 10 — Task list polish** (`c35a934`, hotfix `7c298d3`):
|
|
|
+ multi-select owner filter (checkbox dropdown) and column-visibility
|
|
|
+ toggle, both pure client-side with localStorage persistence per
|
|
|
+ sprint. Hotfix `7c298d3` repairs a regression `c35a934` left in
|
|
|
+ `sprint-planner.js`: `ownerChoices()` still scraped the pre-Phase-10
|
|
|
+ `[data-owner-filter] option` selector (replaced by
|
|
|
+ `[data-owner-filter-opt]` checkboxes in this phase), so every
|
|
|
+ client-built task row (admin clicks "+ Add task") had an empty
|
|
|
+ owner dropdown until a page reload re-rendered it server-side.
|
|
|
+ Also affects the Phase 15 `/sprints/{id}/present` view since it
|
|
|
+ reuses the same toolbar markup + JS.
|
|
|
- [x] **Phase 11 — CSP hardening** (`ab9430b`): vendored Tailwind via
|
|
|
a Node css-builder Docker stage; inline onclick replaced by
|
|
|
`data-href` + `app.js`; CSP dropped `'unsafe-inline'` and the
|
|
|
@@ -426,6 +434,8 @@ before acting — nothing here is load-bearing once it grows stale.
|
|
|
## 13. Git history (as of this handoff)
|
|
|
|
|
|
```
|
|
|
+7c298d3 Fix: buildTaskRow owner dropdown was empty until a page refresh
|
|
|
+c70e442 HANDOFF.md: mark Phase 15 shipped
|
|
|
d1dda4f Phase 15: big-screen (beamer) task viewer at /sprints/{id}/present
|
|
|
48c56b7 HANDOFF.md: add Phase 15 plan (big-screen task viewer)
|
|
|
d59120c HANDOFF.md: mark Phase 14 shipped
|