diff --git a/tools/local-dev/Makefile b/tools/local-dev/Makefile index c0efd73..d4444c8 100644 --- a/tools/local-dev/Makefile +++ b/tools/local-dev/Makefile @@ -36,7 +36,7 @@ help: up: build-engine prune-broken-engines $(COMPOSE) up -d --wait -rebuild: build-engine +rebuild: build-engine prune-broken-engines $(COMPOSE) build --no-cache backend gateway $(COMPOSE) up -d --wait diff --git a/tools/local-dev/README.md b/tools/local-dev/README.md index f21ec2e..d1efab5 100644 --- a/tools/local-dev/README.md +++ b/tools/local-dev/README.md @@ -239,6 +239,19 @@ make status docker compose ps the cancelled tile and provisions a fresh sandbox with a brand new state directory. To run the cleanup by hand without restarting the rest of the stack, `make prune-broken-engines`. + + The cycle relies on the backend image carrying the pre-bootstrap + reconciler tick (`backend/cmd/backend/main.go`). `make up` reuses + the cached image, so after pulling this commit the first time you + must `make rebuild` once to bake the fix in. Future `make up` + cycles will heal in one shot. + + If after the heal cycle the lobby still shows only a `cancelled` + sandbox tile and no running game, the running backend image + predates the pre-bootstrap reconciler tick — the periodic ticker + cancels the orphan after bootstrap has already returned, leaving + the lobby in the half-baked state. `make rebuild` recreates the + image and then `make up` lands a fresh sandbox. - **`make up` reports a build error mentioning `pkg/cronutil`** — upstream module list drifted; copy any new `pkg//` line into the local-dev `backend.Dockerfile` / `gateway.Dockerfile` to match