ledger
1 file changed,
+4
−0
.superpowers/sdd/2026-08-23-idear/progress.md+4 −0
diff --git a/.superpowers/sdd/2026-08-23-idear/progress.md b/.superpowers/sdd/2026-08-23-idear/progress.md| index 347fd0e..05abd60 100644 |
| --- a/.superpowers/sdd/2026-08-23-idear/progress.md |
| +++ b/.superpowers/sdd/2026-08-23-idear/progress.md |
| @@ -73,3 +73,7 @@ Task 3: Ruling: ALSO fix the UTC exposure the reviewer found while checking the |
| Task 3: Ruling: ALSO do Minor 1 (Claim's atomic INSERT ... SELECT WHERE NOT EXISTS) and Minor 2 (a NAMED round-trip test in schema_test.go). Claim is currently correct only because db.Open caps the writer pool at one connection — correctness that depends on an unrelated config elsewhere is what breaks two releases later. Minor 2 is the lesson of the whole TEXT/DATETIME episode: Task 2's schema test proved only that CREATE TABLE parses. |
| Task 3: cross-task note for Task 6: checkInviteRole is strictly-below, so an Admin may grant only Member. The role selector must not offer Admin to an Admin or every such submit 403s. |
| Task 3: fix round 1 dispatched (resume original implementer, opus), FIX_BASE efd00f8 |
| +Task 3: fix round 1/5 (7 addressed, 0 open; commits efd00f8..5707e39) |
| +Task 3: minor (deferred): classErr's comparability is safe only while every `class` field holds a comparable error type — true as shipped (all are errors.New results), unenforced by the compiler. Worth a doc note or compile-time guard if the taxonomy grows. Final review to triage. |
| +Task 3: complete (commits 98288b1..5707e39, review clean) |
| +Task 4: dispatched (sonnet), BASE 5707e39 — middleware + the two identity adapters |