|
@@ -1309,6 +1309,19 @@ is gone — see `src/Auth/BootstrapAdmin.php`.
|
|
|
contract. Tests: 211 / 562 (was 202 / 533). Ninth fix from
|
|
contract. Tests: 211 / 562 (was 202 / 533). Ninth fix from
|
|
|
`doc/REVIEW_01.md`.
|
|
`doc/REVIEW_01.md`.
|
|
|
|
|
|
|
|
|
|
+- [x] **R01-N10 — Bind sprint_id with placeholder in MAX(sort_order)
|
|
|
|
|
+ lookups** (`c1dbfc1`). Three repo-level read paths previously
|
|
|
|
|
+ interpolated an integer route parameter directly into SQL
|
|
|
|
|
+ (`'... WHERE sprint_id = ' . $sprintId`). The route layer
|
|
|
|
|
+ int-casts the value, so this was not exploitable today, but the
|
|
|
|
|
+ contract was implicit — one careless future caller passing an
|
|
|
|
|
+ unvalidated string would have made the repo accept it. Switched
|
|
|
|
|
+ `TaskRepository::create`, `TaskRepository::moveToSprint`, and
|
|
|
|
|
+ `SprintWorkerRepository::add` to prepared statements with `?`
|
|
|
|
|
+ placeholders. Mechanical refactor, behaviour identical, no new
|
|
|
|
|
+ tests (existing `tests/Cascade` + `tests/Controllers` already
|
|
|
|
|
+ exercise these paths). Tenth fix from `doc/REVIEW_01.md`.
|
|
|
|
|
+
|
|
|
- [x] **New sprint form: drop weeks input + task list row hover**
|
|
- [x] **New sprint form: drop weeks input + task list row hover**
|
|
|
(`3728106`). The `/sprints/new` form no longer collects an
|
|
(`3728106`). The `/sprints/new` form no longer collects an
|
|
|
`n_weeks` value — the week count is derived from `start_date` /
|
|
`n_weeks` value — the week count is derived from `start_date` /
|
|
@@ -1425,6 +1438,8 @@ before acting — nothing here is load-bearing once it grows stale.
|
|
|
## 13. Git history (as of this writing)
|
|
## 13. Git history (as of this writing)
|
|
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
+c1dbfc1 Fix R01-N10: bind sprint_id with placeholder in MAX(sort_order) lookups
|
|
|
|
|
+a8ed6af Docs: mark R01-N08 fixed, refresh SPEC §9 / §11 / §13
|
|
|
bc745cd Fix R01-N08: idle session timeout + CSRF rotation on login
|
|
bc745cd Fix R01-N08: idle session timeout + CSRF rotation on login
|
|
|
a2e77ea Fix R01-N05 + R01-N07: trusted-proxy aware HTTPS + client IP
|
|
a2e77ea Fix R01-N05 + R01-N07: trusted-proxy aware HTTPS + client IP
|
|
|
f565c86 Fix R01-N03: explicit env-bootstrap for the first OIDC admin
|
|
f565c86 Fix R01-N03: explicit env-bootstrap for the first OIDC admin
|