carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

| 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.

  1. P1 — Task 5, Step 5: the commit omits a required implementation file. Plan:1957–1963 adds allowTemporaryCreate to internal/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 with s.allowTemporaryCreate undefined. Fix: include internal/console/svcprincipal.go in Task 5’s staging command.
  1. 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 breaks TestAPITrashTwiceKeepsTheClock at internal/console/apicli_test.go:2155 and the successful retry in TestAPITrashUnconfirmedWindowIsRefused at :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.
  1. P2 — Task 7, Steps 3–4: changed refusal messages leave existing assertions failing. Plan:3572 changes the retry phrase to Try again., while internal/console/apicli_test.go:2208 requires lowercase try again. Plan:3583 replaces the restored-app refusal, while TestPurgeRefusesARestoredAppBeforeTouchingItsStore requires not in the trash at internal/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.