Images (C1-images.txt). Frontend v0.12.1: no image healthcheck, node only at /nodejs/bin/node (not on the PATH);
v0.13.0: its own healthcheck (node on the PATH → /usr/bin/node, fetching /health). No single exec path works on
both → the override is DROPPED. Backends: same entrypoint and CMD, ijson 3.3.0 in both, the same file
countries+regions+states-v3.1.json in /code/media.
The cut-off file (C2-truncated-file.txt). With the data already imported, v0.13.0 does not read the file ("Latest data
already imported") — a cut-off file does no harm there (measured, step 2). With an import PENDING (fresh database) and the
file cut to half, the image's own start crash-looped 10 times in 150 s on IncompleteJSONError; with the template's
set-aside step the file was renamed ….cutoff-<time>, downloaded again (46,724,025 B) and the app was healthy; a second
start set nothing aside. The update's first start does NOT repair the file; the template does.
Bench (apps/adventurelog/bench/): FROM healthy (world data downloaded by v0.12.1); TO healthy in 217 s, "Latest data
already imported", 6 migration lines, seed ✓, anon peaks backend 73.0 %, frontend 37.9 %; 0 restarts.
Box 9202 (apps/adventurelog/box/): first press under the drill's 90 s health wait → the backend was still starting →
UNDONE correctly in 36 s, seed intact (move.txt). With the product's default 5-min wait → done in 204 s, the file reused,
seed ✓, all three healthy (move2-5m.txt). The fresh install got backing-up first — R-699 working.
Catalog 06ea7da: the move, the dropped override and the set-aside step in ONE commit.