carlos / platform Public
| Earlier finding | Disposition | |---|---| | R1.1 — Manual purge omits settlement | Fixed: Task 7 settles and re-reads before purge prerequisites and teardown. | | R1.2 — Destructive handlers retain pre-lock decisions | Fixed: Task 7 rechecks existence and protection under the lock. New retry regression below. | | R1.3 — ErrNotTrashed tests bypass recovery | Fixed: the hook removes the marker on its second read; tests assert recovery executes. | | R1.4 — Static-instance test accepts unrelated failures | Fixed: requires 201 and verifies the stored record. | | R1.5 — Empty --ttl selects ordinary deployment | Fixed: flag presence is passed explicitly, with CLI-entry-point tests. |
Reviewed b6081315. Plan references below mean docs/superpowers/plans/2026-09-26-temporary-static-sites.md. Static review only; no files changed or tests run.
- P1 — Task 5, Step 5: the commit omits a required implementation file. Plan:1957–1963 adds
allowTemporaryCreatetointernal/console/svcprincipal.go, but the staging command at plan:2490 omits that file. No later commit command includes it. Following these commands leaves the helper uncommitted: local checks can pass, while the pushed branch fails to compile withs.allowTemporaryCreate undefined. Fix: includeinternal/console/svcprincipal.goin Task 5’s staging command.
- P2 — Task 7, Step 3: settlement breaks the existing trash-retry contract. At plan:3580,
recheckUnderLock(..., wantTrashed=false)rejects a row that settlement just marked trashed. A headless trash, or a previous request whose row update failed, therefore changes a retry from 200 with the original deadline to 404. This breaksTestAPITrashTwiceKeepsTheClockatinternal/console/apicli_test.go:2155and the successful retry inTestAPITrashUnconfirmedWindowIsRefusedat:2226. The latter failure also prevents the normal success path’s serial bump. Fix: retain the under-lock existence and protection checks, but treat an existing marker discovered during settlement as an idempotent trash success. Return its unchanged deadline and complete the success path without rewriting the marker.
- P2 — Task 7, Steps 3–4: changed refusal messages leave existing assertions failing. Plan:3572 changes the retry phrase to
Try again., whileinternal/console/apicli_test.go:2208requires lowercasetry again. Plan:3583 replaces the restored-app refusal, whileTestPurgeRefusesARestoredAppBeforeTouchingItsStorerequiresnot in the trashatinternal/console/deletion_test.go:770. Neither assertion is updated, despite Step 4 promising these tests pass. Fix: explicitly update both tests for the approved copy while preserving their substantive checks: retryable status, no leaked storage details, and no estate destruction.
Verdict: revise.