carlos / todomvc-bakeoff Public

Clone
git clone https://amadan.net/carlos/todomvc-bakeoff

Plain git — no account needed to clone.

Download

Download this file

1LIVE 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
111. **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.
162. **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
25None.
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