NGINX 1.31.8-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/nginx:1.31.8-CE-ubuntu24.04-r2 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/nginx:1.31.8-CE-ubuntu24.04-r2 - Index digestsha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf
- linux/amd64 digestsha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0
- Archive
ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now39d20efb1458177d77c44bc20557a730761cc36f19c5b3a79c1e13c6c812bf75
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-05T05:22:50Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductNGINX (nginx) [MANIFEST.json]
- Release tag1.31.8-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/nginx:1.31.8-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 [ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz (bytes 234211130) [MANIFEST.json]
- Archive sha256 at publish39d20efb1458177d77c44bc20557a730761cc36f19c5b3a79c1e13c6c812bf75 [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://github.com/nginx/nginx [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refrelease-1.31.8 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit140aa942711868a8daeb95810bc9a81f272ada72 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash30b1e300a9859801916b2aef8707f40ed7d489117582f461334f09b10c4b9190 (files 544) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:7e6817cca4fdebd00cde3779698804ee821cb700fda71de01e358cd0934d038d [ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1792592691 (utc 2026-10-21T14:24:51Z) [ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit f2b315730b18edeb7d76a7f9321303dc1de25083 · dirty yes · first drive 3496
- commit 2f6b3554016d791d4b4d9411529494f4e7df273f · dirty yes · first drive 3501
Why this release exists
Fully recorded- Chain817 (created 2026-11-05T04:27:10Z · trigger customer_request · upstream version 1.31.8) [chains, chains #817]
- Requestbuild request #498 (rebuild) (requested at 2026-11-05T04:21:07Z · requested by kitforge-agent · version 1.31.8) [build_requests, build_requests #498]
- Reasonrerelease agenda REVISION -> 1.31.8-CE-ubuntu24.04-r2 (decay loop, IMP-08) [build_requests, build_requests #498 request_reason]
- Supersedesreadystack/nginx:1.31.8-CE-ubuntu24.04-r1 (chain 717) [chains, chains #717]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 817 release · ready_to_ship
Created 2026-11-05T04:27:10Z, upstream 1.31.8, build request 498 [chains, chains #817]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3496 | 2026-11-05T04:27:31Z | 13.9 | build host 5 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #3496] |
| 3501 | 2026-11-05T05:19:01Z | — | build host 5 publish-held | not recorded [drive_runs, drive_runs #3501] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-05T04:27:42Z | 2026-11-05T04:27:43Z | 1 | 4
|
order_json 4e4914a64d74… |
acquire |
2026-11-05T04:27:47Z | 2026-11-05T04:27:48Z | 1 | 12
|
source_tree 2bd4e5411265…license_file 08845fe39e06…custody_inputs d5296c77d550…source_tree_hash cf0f25330e3f…source_file_manifest 290045106f13… |
plan |
2026-11-05T04:28:28Z | 2026-11-05T04:28:29Z | 1 | 10
|
recon_report 24d21c60cd75…input_pin_plan 7a817f8288a2…toolchain_lock ffaf18185f65… |
assemble_kit |
2026-11-05T04:30:41Z | 2026-11-05T04:30:42Z | 1 | 27
|
dockerfile 05f64c233133…build_recipe 2db997b45cf1…system_pinning f9e98658edf9…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health e54c1b6805bf…verify_offline_sh 3e8184ea230c…base_image_digests 686b9f7e1b04…dockerfile_offline 05f64c233133…first_build_digest 518182fafd66… |
remediate |
2026-11-05T04:31:29Z | 2026-11-05T04:31:30Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 48de9528aef4…security_report 1a988a726af1… |
build_kit |
2026-11-05T04:34:44Z | 2026-11-05T04:34:45Z | 1 | 9
|
cosign_stamp 1ca766b205a5…locked_digest 70d298079c6e…freeze_manifest 2fe93e00e545…offline_rebuild_transcript 65a3794daa06… |
verdict |
2026-11-05T04:35:34Z | 2026-11-05T04:35:35Z | 1 | 8
|
scout_verdict eb932b8547e4… |
publish_image |
2026-11-05T04:36:15Z | 2026-11-05T04:36:16Z | 1 | 7
|
hub_readme 43fac60266a3…promotion_record f021482394a7… |
boot_instance |
2026-11-05T04:36:22Z | 2026-11-05T04:36:25Z | 2 | 3
|
instance_handle a5d09f8c708b… |
sbom |
2026-11-05T04:36:38Z | 2026-11-05T04:36:39Z | 1 | 5
|
sbom_md 866276653a94…sbom_json f9ab6ee147a3… |
schema_discovery |
2026-11-05T04:36:41Z | 2026-11-05T04:36:42Z | 1 | 7
|
schema_hash 499a56abf9f1…dependency_tree 98582bd18ff0…table_classification 4cad56f5de2e… |
admin_handbook |
2026-11-05T04:36:53Z | 2026-11-05T04:36:54Z | 1 | 7
|
api_map 00f816c804e4…admin_handbook c3958864a264… |
db_handbook |
2026-11-05T04:37:08Z | 2026-11-05T04:37:09Z | 1 | 8
|
db_handbook 39c51922728a…seed_isolation 208647f15d9e… |
seed_data |
2026-11-05T04:37:15Z | 2026-11-05T04:37:16Z | 1 | 6
|
seed_data_sql a90f8d1a27f9…seed_cases_json 75815e8b1bb3… |
seed_validate |
2026-11-05T04:37:18Z | 2026-11-05T04:37:19Z | 1 | 3
|
seed_data_contract fd1d30c36232… |
usecase_validate |
2026-11-05T04:37:35Z | 2026-11-05T04:37:36Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 5b61bd179564…test_results 3e0568c655c8…usecase_contract 24e49561991c… |
finalize_docs |
2026-11-05T04:37:41Z | 2026-11-05T04:37:42Z | 1 | 9
|
defects_json e4928b839d89…release_notes 2c0b3778c0bc…api_integration_guide 348c60a965a6… |
package_archive invalidated 2026-11-05T05:18:01Z |
2026-11-05T04:41:24Z | 2026-11-05T04:41:26Z | 1 | 34 (final gate PASS)
|
sale_tar 04b208ef0e0a…checksums f9b2a82157da…verify_md 1270a9df5bed…rebuild_md 200569ef18c3…manifest_txt 5b0ba6afe865…actions_jsonl 8781662a1d77…provenance_md c26d269995a5…assetchain_log_md e9eccaec0c0f…assetchain_log_json 4e92dbcf268f… |
[stage_runs]
Rewinds
- 2026-11-05T05:18:01Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #22711]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-05T04:41:26Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 9013 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 11938 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1572 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.26 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-05T04:41:58Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1396] | $0.26 | 3 rounds, $40.00 | 04b208ef0e0a… |
Defects
Fully recorded- Ledger entries0 [defects, defects where product_slug=nginx and this tag or chain]
- Disclosed in the archive0 [docs/defects/defects.json, entries]
0 ledger entries.
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 · published digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 78) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, trademark_shipped, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · docker grade B · docker percent 83 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-05T05:19:26Z · failing Docker Scout counts 96 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component). · corrections No outdated base images) [SCOUT_EVIDENCE.json, docker_scout_policy.corrected]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-05T05:19:12Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3692564703 · transparency-log entry
- log index 3692564761 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3692622352 · transparency-log entry · integrated 2026-11-05T05:21:48Z) [ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf · state attached · log index 3692622430 · transparency-log entry
- kind sbom · digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf · state attached · log index 3692622574 · transparency-log entry
- kind vsa · digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf · state attached · log index 3692622736 · transparency-log entry
- kind provenance · digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 · state attached · log index 3692622893 · transparency-log entry
- kind sbom · digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 · state attached · log index 3692623000 · transparency-log entry
- kind vsa · digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 · state attached · log index 3692623187 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/nginx/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-05T04:42:01Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 [clean-room rebuild ledger, runs[580]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-05T04:36:16Z [stage_runs, stage_runs chain 817 stage publish_image]
- Archive manifests written2026-11-05T05:20:33Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 743 · probed 2026-11-05T04:33:06Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-05T05:22:50Z generated: by KitForge release/build_trail.py · generator commit 2f6b3554016d791d4b4d9411529494f4e7df273f
- 2026-11-05T05:24:03Z publication: promoted at 2026-11-05T05:23:20Z · promoted digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 313 · checklist status complete · checklist at 2026-11-05T05:24:03Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/nginx/1.31.8-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/nginx/1.31.8-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/nginx/1.31.8-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/nginx/1.31.8-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/nginx/1.31.8-CE-ubuntu24.04-r2/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 498 |
chains | sadb, ReadyStack's engine database (not published) | 817 |
defects | sadb, ReadyStack's engine database (not published) | nginx 1.31.8-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 817 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 817 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 817 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 817 |
release_images | sadb, ReadyStack's engine database (not published) | nginx 1.31.8-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 817 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 817 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |