| 1 | LIVE https://todo-go.bfj.oncarlos.com 8a42c8d |
| 2 | |
| 3 | ## Checks (review round, 8a42c8d) |
| 4 | |
| 5 | - `make test` passes, including new tests for unissued cookies and the lists migration. |
| 6 | - Shared suite locally: 67 passed, 3 skipped. Boot-check: `/healthz` 200, `/api/version` 200 `8a42c8d`, clean exit on SIGTERM. |
| 7 | - `make deploy` swapped to `8a42c8d`; `/api/version` reads `8a42c8d`. Shared suite against the live host: 67 passed, 3 skipped. No errors in `carlos errors`. |
| 8 | |
| 9 | ## Review findings fixed |
| 10 | |
| 11 | 1. **Unissued cookies accepted.** Issued lists are now recorded in a new |
| 12 | `todo_lists` table (migration 2, additive). A cookie whose hash isn't |
| 13 | there gets a fresh random cookie and an empty list. The migration |
| 14 | copies in every list that already held todos, so existing visitors |
| 15 | keep theirs. |
| 16 | 2. **Mid-edit redraw discarded the draft.** `swap()` in `app.js` now |
| 17 | carries any open, not-yet-saving edit (its draft, focus and cursor) |
| 18 | into the redrawn list, and ignores the focusout that removing the |
| 19 | old field can fire. Checked in a browser: with a toggle's response |
| 20 | held back, editing another item and then letting the response land |
| 21 | keeps the edit open with its draft, and Enter saves it. |
| 22 | |
| 23 | ## Review findings not fixed |
| 24 | |
| 25 | None. |
| 26 | |
| 27 | ## Checks (first build, 475f799) |
| 28 | |
| 29 | - `make test`: passes (stylesheet byte check, `go vet`, Go tests for the store and the handlers). |
| 30 | - Shared suite on a local build at 475f799: 67 passed, 3 skipped (the two JS-only edit tests with JS off, and the screenshot test with JS off). |
| 31 | - `scripts/boot-check.sh dist/app-linux-arm64`: `/healthz` 200, `/api/version` 200 `475f799`, clean exit on SIGTERM. |
| 32 | - `make deploy`: shipped, promoted to `edge` and swapped. `/api/version` and `X-Carlos-Version` both read `475f799`. |
| 33 | - Shared suite against the live host: 67 passed, 3 skipped. `carlos errors` and `carlos availability` show nothing in the last hour. |
| 34 | |
| 35 | ## Notes |
| 36 | |
| 37 | - The app and its instance already existed from a superseded pilot, |
| 38 | serving `d9bf9fc` with a 2.2 MB database. That database wasn't |
| 39 | touched. This build's tables are named `todo_items` and |
| 40 | `todo_migrations` so they can't collide with whatever the pilot |
| 41 | created, and a test covers opening beside foreign tables. |
| 42 | - `carlos apps build-probe /api/version` was set again (it's |
| 43 | idempotent). `apps create` and `instances enable/create` weren't |
| 44 | needed. |
| 45 | |