Commit Graph

2 Commits

Author SHA1 Message Date
monster
b13750f88a deploy: gapless additive deploys, and verify the bundle not just the page
The outage: deploy did rm -rf on the web root, THEN docker cp. Anyone loading
in that window — or holding a cached index.html from before it — asked for a
hashed bundle that no longer existed, and nginx answered with HTML: "Failed to
load module script... MIME type of text/html". Exactly what got reported.

Two changes:
- Merge instead of swap. Hashed bundles never collide, so old builds' assets
  stay alive for stale HTML while the new index.html takes over. No gap, no
  orphaned caches. Disk is a few MB per deploy; prune by hand if it ever
  matters.
- The verify step now follows the chain the browser follows: fetch the live
  index.html, extract the script src, and assert it serves as
  application/javascript. A 200 on the page proved nothing — the page was
  200 all through the outage.

Verified live: page → index-CmCk0pc0.js → application/javascript, and the
game boots to the title screen on partly.party/toastsim.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 11:04:57 +10:00
type-two
8f5641a57f Pieces render true to pattern: dice = chunk grid, wedges = exploded sectors
Dice show the criss-cross (drawn 1.6x true size — honest proportions
vanish against the board at game camera distance); wedges explode 0.28
from center so gaps and uneven angles read. Slices keep the fan. Plus
scripts/deploy.sh (partly.party/toastsim, cratewars pattern) — pending
an ssh permission grant to run the final docker cp step.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 15:13:21 +10:00