Record Forge hot-loop production proof

bd6c808eb5a9 · AtlantisPleb · · parent b3ae6c61ddec

Record Forge hot-loop production proof

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

built
1 modules in 18.2 s
deployed
live · 1 module on 3 nodes · push→live 54.0 s

Changed files

  • modified docs/operations/forge-hot-loop.md

Diff

1 file changed, +24 -2

docs/operations/forge-hot-loop.md modified +24 -2

@@ -247,6 +247,25 @@ The 2026-08-22 activation established this baseline:

247 247
  once with the new builder and settled that no-byte-change target against
248 248
  the already-running image. This records a manifest whose compiler source
249 249
  paths use the stable repository workspace before measuring direct loads.
250
- The final structural baseline is `4b08e65`, application digest
251
  `sha256:3e0ca5b88f9d2d8c198e38028f0a76323ddb6eae24890da84283f9b59212a0b4`,
252
  and builder digest
253
  `sha256:04a44da1679c3d693143130c5da38dbc788ce3c1046f72f59161565f4303a628`.
254
  Its exact-SHA release gate passed all 13 stages and 2,043 tests. All three
255
  nodes reported boot convergence ready, complete cluster membership, and
256
  that exact structural image before the direct-load proof.
257
- Revision `b3ae6c6` then changed the status LiveView and reached all three
258
  nodes through the automated direct-load path. The deployment loaded two
259
  BEAM modules without an image roll and recorded `push_to_live_ms: 84299`.
260
  `/status` exposes that measured duration and the default fallback order as
261
  `direct,relup,rolling`.
262
- After the direct load, the operator restarted one production node. Boot
263
  convergence restored the two-module artifact from its local durable cache
264
  on the first attempt, held the node until it was ready, and rejoined both
265
  peers. This proves that a node restart does not discard the hot revision.
266
- Forge and GitHub exposed `b3ae6c6` as `main`, and the public status endpoint
267
  reported the mirror `current`. Every node also reported the same hot
268
  artifact digest and target SHA.
250 269
- Forge classified the activation change as `needs_rolling_replace`, and the
251 270
  operator settled it as `live` only after every node reported revision
252 271
  `3479f12`, complete cluster membership, and local health. Later compatible

@@ -261,8 +280,11 @@ The 2026-08-22 activation established this baseline:

261 280
  repository-owned fleet template now remove those retired containers and
262 281
  replace the disposable builder sidecar before pulling a new builder image.
263 282
264
The activation did not change the application version from `0.2.0`. Do not
265
increment a release version merely to record a source commit.
283
The activation did not change the application version from `0.2.0`. Keep that
284
version for direct loads. For full compatible packages, increment only the
285
patch component. Change the minor component only for a planned compatibility
286
boundary, and never increment a release version merely to record a source
287
commit.
266 288
267 289
After a rollout or storage repair, force convergence before validating the
268 290
mirror:

This page updates live while a promote is in flight · changelog