Node.js 26.13.0-CE-ubuntu24.04-r1 build trail
How ReadyStack built readystack/nodejs:26.13.0-CE-ubuntu24.04-r1 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/nodejs:26.13.0-CE-ubuntu24.04-r1 - Index digestsha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8
- linux/amd64 digestsha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943
- Archive
ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz - Archive SHA-256 now25b1f778a50aeb19332eea96203c0ad6d5c6c80b977f94597d1b74a3b34de517
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-08T22:57:16Z 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-nodejs-26.13.0-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductNode.js (nodejs) [MANIFEST.json]
- Release tag26.13.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Imagereadystack/nodejs:26.13.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Image index digestsha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 [ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz (bytes 520780312) [MANIFEST.json]
- Archive sha256 at publish25b1f778a50aeb19332eea96203c0ad6d5c6c80b977f94597d1b74a3b34de517 [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/nodejs/node [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv26.13.0 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit18b32a3b1552e199a01f1a8d9fd64aa756d3b75b [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash5b74fd4dea3b1f65df90f73fb2bff5c1579cf286773347aa1bee1b76ea423964 (files 52284) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:567608e043c0a35d4e9cae321108a8e4df0ce0f75f4e01c4e0ae516efd8a4aa1 [ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1792774666 (utc 2026-10-23T16:57:46Z) [ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.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-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json, engine]
- Engine commit(s)
- commit c5454541988413acee973d174dd436e17d7a9974 · dirty yes · first drive 3685
- commit a4b28057068da07708eb51f7599b8594be6751f1 · dirty yes · first drive 3807
- commit edd32e786d675d8f83a945524410699b1345c30c · dirty yes · first drive 3866
- commit 4fc20b1dd82ce3fb06f82028c10f9893f9cd45ef · dirty yes · first drive 3893
Why this release exists
Fully recorded- Chain867 (created 2026-11-08T04:15:01Z · trigger customer_request · upstream version 26.13.0) [chains, chains #867]
- Requestbuild request #549 (new_product) (requested at 2026-11-08T03:55:41Z · requested by agent · version 26.13.0) [build_requests, build_requests #549]
- Reasonce.rodeo package ranking (api.ce.rodeo/v1/projects by total pulls, read 2026-11-08); owner 2026-11-08 'expand our core give more', 'make sure you are using the ce.rodeo ranking of packages to choose the next five' [build_requests, build_requests #549 request_reason]
The path through the harness
Fully recorded1 chain · 4 drives · 18 stages · 2 rewinds
Chain 867 release · ready_to_ship
Created 2026-11-08T04:15:01Z, upstream 26.13.0, build request 549 [chains, chains #867]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3685 | 2026-11-08T04:15:17Z | 270.2 | build host 2 withhold-publish | stage_failed at verdict; first failed check scout_verdict:release_check_passed; 7 ticks [drive_runs, drive_runs #3685] |
| 3807 | 2026-11-08T13:15:53Z | 267 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 15 ticks [drive_runs, drive_runs #3807] |
| 3866 | 2026-11-08T18:55:57Z | 95.2 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3866] |
| 3893 | 2026-11-08T22:47:50Z | — | build host 2 publish-held | not recorded [drive_runs, drive_runs #3893] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T04:15:29Z | 2026-11-08T04:15:30Z | 1 | 4
|
order_json c62043155ca0… |
acquire |
2026-11-08T04:15:50Z | 2026-11-08T04:15:56Z | 1 | 12
|
source_tree 2840299847b1…license_file 8e603aa87c70…custody_inputs 6226a321cf08…source_tree_hash d3b42bb57054…source_file_manifest 7156e96295fc… |
plan |
2026-11-08T04:16:22Z | 2026-11-08T04:16:23Z | 1 | 10
|
recon_report e66a57bddec5…input_pin_plan 785fc3dc8cf3…toolchain_lock bc491cfff187… |
assemble_kit |
2026-11-08T05:45:27Z | 2026-11-08T14:45:53Z | 2 | 27
|
dockerfile d2898dc26c8b…build_recipe fc049e026002…system_pinning 30b90438c3de…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 7a7c86cf1462…verify_offline_sh 3e8184ea230c…base_image_digests b15471b44645…dockerfile_offline d2898dc26c8b…first_build_digest a7bdee20321e… |
remediate |
2026-11-08T05:46:11Z | 2026-11-08T14:45:57Z | 2 | 8
|
vendored_apt e3b0c44298fc…remediation_log ed6acff3e9bf…security_report eb6fcc5b5178… |
build_kit |
2026-11-08T08:44:03Z | 2026-11-08T17:37:44Z | 2 | 9
|
cosign_stamp 46e256f097d4…locked_digest e559ee284f12…freeze_manifest 7fa7da72b16d…offline_rebuild_transcript 8d6f7d2c37ec… |
verdict |
2026-11-08T08:45:26Z | 2026-11-08T17:38:45Z | 2 | 8
|
scout_verdict 7670c1cb2cda… |
publish_image |
2026-11-08T17:39:28Z | 2026-11-08T17:39:29Z | 1 | 7
|
hub_readme e64299c1b7e0…promotion_record fc2b59c71214… |
boot_instance |
2026-11-08T17:39:34Z | 2026-11-08T17:39:38Z | 2 | 3
|
instance_handle 5202283ca0ae… |
sbom |
2026-11-08T17:39:58Z | 2026-11-08T17:39:59Z | 1 | 5
|
sbom_md 6dcfd546c4e9…sbom_json abe233704ba4… |
schema_discovery |
2026-11-08T17:40:01Z | 2026-11-08T17:40:02Z | 1 | 7
|
schema_hash 32df9c3daa3f…dependency_tree dd081259160e…table_classification 5719756b5c4f… |
admin_handbook |
2026-11-08T17:40:12Z | 2026-11-08T17:40:13Z | 1 | 7
|
api_map 65602101d895…admin_handbook 571b59e194d5… |
db_handbook |
2026-11-08T17:40:17Z | 2026-11-08T17:40:17Z | 1 | 8
|
db_handbook d0e9194260b9…seed_isolation 2e6fbe1e261c… |
seed_data |
2026-11-08T17:40:30Z | 2026-11-08T17:40:31Z | 1 | 6
|
seed_data_sql b53dfb5280bd…seed_cases_json e90e2baa58ec… |
seed_validate |
2026-11-08T17:40:34Z | 2026-11-08T17:40:34Z | 1 | 3
|
seed_data_contract 23b9ea6d316b… |
usecase_validate |
2026-11-08T17:41:00Z | 2026-11-08T17:41:00Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 6ad1be1494a1…test_results 2e2b5a5996fd…usecase_contract 16e16f210d8c… |
finalize_docs |
2026-11-08T17:41:08Z | 2026-11-08T17:41:08Z | 1 | 9
|
defects_json 91b92c326827…release_notes f44726d95487…api_integration_guide 3e9111b7195a… |
package_archive invalidated 2026-11-08T22:47:25Z |
2026-11-08T17:42:55Z | 2026-11-08T20:31:07Z | 2 | 34 (final gate PASS)
|
sale_tar 1e455acd6832…checksums 8bab10b87865…verify_md ddee4e2ea3ec…rebuild_md 2005835418c1…manifest_txt a60a6d006af3…actions_jsonl e60b9b4f0c3e…provenance_md 1e68fe8437e8…assetchain_log_md e9eccaec0c0f…assetchain_log_json df8d2d22064f… |
[stage_runs]
Rewinds
- 2026-11-08T13:15:59Z:
verdicttoassemble_kiton strategy_changed (strategy changed (34d6094d0e8f -> 1a6dfc5ddecf)) [stage_events, stage_events #26351] - 2026-11-08T22:47:25Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27451]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-08T20:31:07Z.
4 calls over 2 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 5509 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 10035 | L-A08, L-038, L-036, L-034, L-032 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.81 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-08T20:32:11Z | 0 | 0 | 2 | clean to publish [held_rounds, held_rounds #1550] | $0.81 | 3 rounds, $40.00 | 1e455acd6832… |
Defects
Fully recorded- Ledger entries2 [defects, defects where product_slug=nodejs and this tag or chain]
- Disclosed in the archive2 [docs/defects/defects.json, entries]
2 ledger entries: by severity low 2; by status fixed-before-release 2.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-nodejs-e1415a8089Admin handbook: 'manual pages' are listed as not included, but the image ships node.1 under /opt/node/share/man. [defects, defects #187016] | low | fixed-before-release | held review (review model) | — |
RSD-nodejs-c10ade7be1Admin handbook: The 'up to two hours on a 4-core host' bound is unsupported by any record and contradicts the measured 85 minutes on 8 CPUs (roughly 170 minutes at 4 cores). [defects, defects #187017] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 · published digest sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 5118) [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-08T22:48:16Z · failing Docker Scout counts 83 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-08T22:48:01Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3758381342 · transparency-log entry
- log index 3758381424 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3759434958 · transparency-log entry · integrated 2026-11-08T22:55:46Z) [ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8 · state attached · log index 3759439524 · transparency-log entry
- kind sbom · digest sha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8 · state attached · log index 3759440936 · transparency-log entry
- kind vsa · digest sha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8 · state attached · log index 3759442663 · transparency-log entry
- kind provenance · digest sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 · state attached · log index 3759444180 · transparency-log entry
- kind sbom · digest sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 · state attached · log index 3759445501 · transparency-log entry
- kind vsa · digest sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 · state attached · log index 3759446943 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/nodejs/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-08T20:32:16Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:9eef4e36180646c91b9f0ccccc2ed60a341e1dd2f16b530ecb64bde999912943 [clean-room rebuild ledger, runs[671]]
- 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-08T17:39:29Z [stage_runs, stage_runs chain 867 stage publish_image]
- Archive manifests written2026-11-08T22:52:50Z [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 724 · probed 2026-11-08T07:13:23Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-08T22:57:16Z generated: by KitForge release/build_trail.py · generator commit 4fc20b1dd82ce3fb06f82028c10f9893f9cd45ef
- 2026-11-08T22:59:05Z publication: promoted at 2026-11-08T22:57:48Z · promoted digest sha256:232920d9c55e5092592171b8ce6cef976a16ea129bfb4a655c84b0872c5cf9f8 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 394 · checklist status complete · checklist at 2026-11-08T22:59:05Z · 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-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/nodejs/26.13.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/nodejs/26.13.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json | beside the archive (prodasset /data/production/nodejs/26.13.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-nodejs-26.13.0-CE-ubuntu24.04-r1.rebuild.json.sigstore | beside the archive (prodasset /data/production/nodejs/26.13.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/nodejs/26.13.0-CE-ubuntu24.04-r1/), 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) | 549 |
chains | sadb, ReadyStack's engine database (not published) | 867 |
defects | sadb, ReadyStack's engine database (not published) | nodejs 26.13.0-CE-ubuntu24.04-r1 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 867 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 867 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 867 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 867 |
release_images | sadb, ReadyStack's engine database (not published) | nodejs 26.13.0-CE-ubuntu24.04-r1 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 867 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 867 |
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) | — |