NATS v2.15.3-CE-ubuntu24.04-r1 build trail

How ReadyStack built readystack/nats:v2.15.3-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
  • Imagereadystack/nats:v2.15.3-CE-ubuntu24.04-r1
  • Index digestsha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662
  • linux/amd64 digestsha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73
  • ArchiveReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz
  • Archive SHA-256 nowdfc3b5016e4c04af6976c2f0df78c2d81dd5adc2b3c53b945e056daabbc3ca10
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-12T08:07:49Z 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-nats-v2.15.3-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.trail.json

IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level

Identity

Fully recorded
  • ProductNATS (nats) [MANIFEST.json]
  • Release tagv2.15.3-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Imagereadystack/nats:v2.15.3-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Image index digestsha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662 [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz (bytes 462063643) [MANIFEST.json]
  • Archive sha256 at publishdfc3b5016e4c04af6976c2f0df78c2d81dd5adc2b3c53b945e056daabbc3ca10 [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/nats-io/nats-server [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream refv2.15.3 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commit2a9066eb57ff4aa50d8e6a979bdfbd6a8b9db251 [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hash5b9cc2ec65654263c7b6900c150bd7fcbc5496b880f245a3d82459e96b491718 (files 598) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:8244c0e7b637134ccb795d88906a866eee4173dc4f601bda19c9c86e50d47ddd [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1794439359 (utc 2026-11-11T23:22:39Z) [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref golang:1.27.4-bookworm@sha256:4fa7c968ba93f1635670522dbb01a2c78150443e1385746924566079f36570ea · platform digest sha256:fb7cceb528b47141eccd9b60bf3cbd27d5ef5f8cf5b7d338bec866da495b50dc
    • ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
    [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json, engine]
  • Engine commit(s)
    • commit b3c5568cae9b84968afbee651687d74459ff409a · dirty yes · first drive 4322
    • commit bc58aeba5e54c10417ad8d63e707fff94089dd1e · dirty yes · first drive 4360
    • commit f797cdae453e92790f99eb2f40f256494c09f039 · dirty yes · first drive 4365
    • commit 9efab228d712a2a7e9bb2eb226729f7f532c3d6a · dirty yes · first drive 4371
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain988 (created 2026-11-11T23:23:47Z · trigger customer_request · upstream version v2.15.3) [chains, chains #988]
  • Requestbuild request #683 (rebuild) (requested at 2026-11-11T23:22:51Z · requested by kitforge-agent · version v2.15.3) [build_requests, build_requests #683]
  • Reasonretarget to v2.15.3: a newer upstream release (rule 1) [build_requests, build_requests #683 request_reason]
  • Supersedesreadystack/nats:v2.15.2-CE-ubuntu24.04-r2 (chain 743) [chains, chains #743]

The path through the harness

Fully recorded

1 chain · 4 drives · 18 stages · 2 rewinds

Chain 988 release · ready_to_ship

Created 2026-11-11T23:23:47Z, upstream v2.15.3, build request 683 [chains, chains #988]

DriveStartedMinutesBuild hostHow it stopped
43222026-11-11T23:24:09Z29.8build host 5 withhold-publish stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #4322]
43602026-11-12T06:27:38Z5.1build host 5 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4360]
43652026-11-12T07:12:44Z2.8build host 5 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4365]
43712026-11-12T08:03:46Z—build host 5 publish-held not recorded [drive_runs, drive_runs #4371]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-11T23:24:20Z2026-11-11T23:24:21Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json 861f01f3ca4e…
acquire 2026-11-11T23:24:25Z2026-11-11T23:24:26Z1
12
  • exists:source_tree
  • exists:source_tree_hash
  • exists:source_file_manifest
  • exists:custody_inputs
  • exists:license_file
  • source_tree:dir_nonempty
  • source_tree_hash:json_parses
  • source_file_manifest:json_parses
  • custody_inputs:json_parses
  • license_file:file_nonempty
  • produces_paths_exist
  • custody_inputs:json_true:ce_audit.ce_only
source_tree 89e90c09ae3b…
license_file c71d239df917…
custody_inputs 98a3020fe500…
source_tree_hash 1f9404f5720d…
source_file_manifest 864b3398b61c…
plan 2026-11-11T23:24:52Z2026-11-11T23:24:53Z1
10
  • exists:recon_report
  • exists:input_pin_plan
  • exists:toolchain_lock
  • recon_report:md_min_sections:3
  • recon_report:no_forbidden_placeholders
  • input_pin_plan:md_min_sections:2
  • input_pin_plan:no_forbidden_placeholders
  • toolchain_lock:file_nonempty
  • toolchain_lock:no_forbidden_placeholders
  • produces_paths_exist
recon_report 09d30613a6ff…
input_pin_plan 300ec18b64e1…
toolchain_lock 2d62f2d14a18…
assemble_kit 2026-11-11T23:27:02Z2026-11-11T23:27:03Z1
27
  • exists:dockerfile
  • exists:base_image_digests
  • exists:system_pinning
  • exists:build_recipe
  • exists:first_build_digest
  • exists:first_boot_health
  • exists:dockerfile_offline
  • exists:verify_offline_sh
  • exists:build_offline_sh
  • exists:generate_sbom_sh
  • dockerfile:file_nonempty
  • dockerfile:no_forbidden_placeholders
  • base_image_digests:file_nonempty
  • system_pinning:file_nonempty
  • build_recipe:json_parses
  • first_build_digest:file_nonempty
  • first_boot_health:file_nonempty
  • dockerfile_offline:file_nonempty
  • dockerfile_offline:no_forbidden_placeholders
  • verify_offline_sh:file_nonempty
  • verify_offline_sh:no_forbidden_placeholders
  • build_offline_sh:file_nonempty
  • build_offline_sh:no_forbidden_placeholders
  • generate_sbom_sh:file_nonempty
  • generate_sbom_sh:no_forbidden_placeholders
  • produces_paths_exist
  • first_boot_health:file_contains:healthy=True
dockerfile 189e7eaf713b…
build_recipe c92bb9cd6a82…
system_pinning aa8db05a9a8a…
build_offline_sh 6ab4f08a6ec7…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health 4d539e95682b…
verify_offline_sh 3e8184ea230c…
base_image_digests 9e1e8267e2c7…
dockerfile_offline 189e7eaf713b…
first_build_digest f3de15dfa29e…
remediate 2026-11-11T23:27:28Z2026-11-11T23:27:29Z1
8
  • exists:vendored_apt
  • exists:remediation_log
  • exists:security_report
  • vendored_apt:dir_exists
  • remediation_log:json_parses
  • security_report:md_min_sections:2
  • security_report:no_forbidden_placeholders
  • produces_paths_exist
vendored_apt e3b0c44298fc…
remediation_log fddd19bb91d6…
security_report e3ba75d90fd2…
build_kit 2026-11-11T23:32:00Z2026-11-11T23:32:01Z1
9
  • exists:freeze_manifest
  • exists:locked_digest
  • exists:cosign_stamp
  • exists:offline_rebuild_transcript
  • freeze_manifest:json_parses
  • locked_digest:file_nonempty
  • cosign_stamp:file_nonempty
  • offline_rebuild_transcript:json_parses
  • produces_paths_exist
cosign_stamp 0d11c445a5d4…
locked_digest 2c9e2b2d5e9b…
freeze_manifest 38878171ff87…
offline_rebuild_transcript aaf8d5ca8a73…
verdict 2026-11-11T23:32:33Z2026-11-11T23:32:34Z1
8
  • exists:scout_verdict
  • scout_verdict:json_parses
  • produces_paths_exist
  • scout_verdict:release_check_passed
  • scout_verdict:nonroot_green
  • scout_verdict:zero_fixable_crit_high
  • scout_verdict:osv_clean
  • scout_verdict:no_baked_secrets
scout_verdict 65396390d6ab…
publish_image 2026-11-11T23:33:08Z2026-11-11T23:33:09Z1
7
  • exists:promotion_record
  • exists:hub_readme
  • promotion_record:json_parses
  • hub_readme:md_min_sections:2
  • hub_readme:no_forbidden_placeholders
  • produces_paths_exist
  • promotion_record:json_true:signed
hub_readme 881c8a82a8b5…
promotion_record 0537381b23f2…
boot_instance 2026-11-11T23:33:15Z2026-11-11T23:33:21Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle 1318dbffacea…
sbom 2026-11-11T23:33:30Z2026-11-11T23:33:31Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 7924de59e272…
sbom_json ba77ccd16d38…
schema_discovery 2026-11-11T23:33:33Z2026-11-11T23:33:34Z1
7
  • exists:dependency_tree
  • exists:table_classification
  • exists:schema_hash
  • dependency_tree:json_parses
  • table_classification:json_parses
  • schema_hash:file_nonempty
  • produces_paths_exist
schema_hash c6c0641213c6…
dependency_tree 574f5689a696…
table_classification 9861cf2bd975…
admin_handbook 2026-11-11T23:40:06Z2026-11-11T23:40:07Z1
7
  • exists:admin_handbook
  • exists:api_map
  • admin_handbook:md_min_sections:10
  • admin_handbook:no_forbidden_placeholders
  • api_map:json_parses
  • produces_paths_exist
  • admin_handbook:command_transcripts_clean
api_map b372f477314d…
admin_handbook 6215077b9cf6…
db_handbook 2026-11-11T23:44:25Z2026-11-11T23:44:26Z1
8
  • exists:db_handbook
  • exists:seed_isolation
  • db_handbook:md_min_sections:5
  • db_handbook:no_forbidden_placeholders
  • seed_isolation:md_min_sections:1
  • seed_isolation:no_forbidden_placeholders
  • produces_paths_exist
  • db_handbook:command_transcripts_clean
db_handbook 1b1b40e81c94…
seed_isolation 2cc15ca13cc7…
seed_data 2026-11-11T23:44:42Z2026-11-11T23:44:43Z1
6
  • exists:seed_data_sql
  • exists:seed_cases_json
  • seed_data_sql:sql_parses
  • seed_data_sql:no_forbidden_placeholders
  • seed_cases_json:json_parses
  • produces_paths_exist
seed_data_sql 588a37a91869…
seed_cases_json 2c4a7e208f90…
seed_validate 2026-11-11T23:44:46Z2026-11-11T23:44:46Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract 73959cce77a6…
usecase_validate 2026-11-11T23:45:13Z2026-11-11T23:45:14Z1
10
  • exists:usecase_contract
  • exists:passed_tests
  • exists:failed_tests
  • exists:test_results
  • usecase_contract:json_parses
  • passed_tests:md_min_sections:1
  • failed_tests:md_min_sections:1
  • test_results:json_parses
  • produces_paths_exist
  • test_results:usecase_thresholds:80,70
failed_tests b2247b16f5f7…
passed_tests 7d9c8906eff3…
test_results 52a8125becb4…
usecase_contract 0ba8f1eb3a5f…
finalize_docs 2026-11-11T23:51:07Z2026-11-11T23:51:08Z1
9
  • exists:api_integration_guide
  • exists:release_notes
  • exists:defects_json
  • api_integration_guide:md_min_sections:3
  • api_integration_guide:no_forbidden_placeholders
  • release_notes:md_min_sections:3
  • release_notes:no_forbidden_placeholders
  • defects_json:json_parses
  • produces_paths_exist
defects_json 752022c33b51…
release_notes 0f44f7d56f54…
api_integration_guide d9bd220743b6…
package_archive invalidated 2026-11-12T08:03:19Z 2026-11-11T23:53:56Z2026-11-12T07:15:30Z3
36 (final gate PASS)
  • exists:checksums
  • exists:verify_md
  • exists:rebuild_md
  • exists:provenance_md
  • exists:manifest_txt
  • exists:assetchain_log_md
  • exists:assetchain_log_json
  • exists:actions_jsonl
  • exists:sale_tar
  • checksums:file_nonempty
  • verify_md:md_min_sections:2
  • verify_md:no_forbidden_placeholders
  • rebuild_md:md_min_sections:2
  • rebuild_md:no_forbidden_placeholders
  • provenance_md:md_min_sections:2
  • provenance_md:no_forbidden_placeholders
  • manifest_txt:file_nonempty
  • assetchain_log_md:md_min_sections:1
  • assetchain_log_json:json_parses
  • actions_jsonl:file_nonempty
  • sale_tar:file_nonempty
  • produces_paths_exist
  • G8 cosign
  • G8 scan_grade
  • G8 tag_base_os
  • G8 thread_exit
  • G8 vex_shipped
  • G8 cpu_baseline
  • G8 unpack_files
  • G8 scout_grade_a
  • G8 script_copies
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 trademark_shipped
  • G8 assetchain_coverage
sale_tar f4e89f5ce40d…
checksums 1a251caf7ecf…
verify_md 3f51bd550d67…
rebuild_md b86effae86aa…
manifest_txt d5620d65178b…
actions_jsonl 35b9da249858…
provenance_md 8abbcf861e72…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 9366242a3c29…

[stage_runs]

Rewinds

  • 2026-11-12T06:54:28Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33190]
  • 2026-11-12T08:03:19Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33239]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-12T07:15:30Z.

95 calls over 6 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 05878 L-A183, L-A15
remediate2001 05958 L-A183, L-A15
admin_handbook361303 5211397 L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15, L-A14
db_handbook20403 0103132 L-A180, L-A181, L-A182, L-A183, L-A184, L-A114, L-A15
usecase_validate1001 02015 L-A59
finalize_docs341103 2185013 L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

2 rounds, 2 counted, $2.52 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-12T06:33:23Z 027 findings to repackage [held_rounds, held_rounds #1785] $1.00 3 rounds, $40.00 15a07550ff2b…
22026-11-12T07:16:11Z 0017 clean to publish [held_rounds, held_rounds #1787] $1.52 3 rounds, $40.00 f4e89f5ce40d…

Defects

Fully recorded
  • Ledger entries25 [defects, defects where product_slug=nats and this tag or chain]
  • Disclosed in the archive25 [docs/defects/defects.json, entries]

25 ledger entries: by severity medium 1, high 2, low 22; by status open 1, fixed-before-release 24.

DefectSeverityStatusFound byFixed in
RSD-nats-999de6e6f5
Unauthenticated HTTP monitoring port 8222 by default [defects, defects #255137]
mediumopenbuild strategy record—
RSD-nats-cf16f3990d
Admin handbook: The documented config-check command does not check anything: -T=false only turns off log timestamps, so nats-server starts normally (and the command has no -v mount for my.conf, so as written it… [defects, defects #259509]
highfixed-before-releaseheld review (review model)—
RSD-nats-b6bfe61ef9
API guide: -m is nats-server's --http_port option, not a connection limit; following the example moves monitoring off 8222 so the documented health check and /healthz URLs stop working. [defects, defects #259510]
highfixed-before-releaseheld review (review model)—
RSD-nats-6276ae1cbe
Admin handbook: The run command above uses --env-file, not -e NATS_PASSWORD; the parenthesis describes a command the document does not contain (same sentence in DB_HANDBOOK.md:73). [defects, defects #259511]
lowfixed-before-releaseheld review (review model)—
RSD-nats-9eb35b3708
Database handbook: Same as ADMIN_HANDBOOK.md:158: the run command has no -e. [defects, defects #259512]
lowfixed-before-releaseheld review (review model)—
RSD-nats-c2fbd27bd0
Database handbook: Repeat of the prior-round finding: says the client listener must be defined (4222 is the default) and omits the http and jetstream blocks a custom configuration lacks; contradicts the Tls section… [defects, defects #259513]
lowfixed-before-releaseheld review (review model)—
RSD-nats-f25f322218
Database handbook: False: the custom-configuration commands at lines 97, 185, 343 and 493 do not publish 8222, and the sentence reads as description where the section's own advice is to restrict the port. [defects, defects #259514]
lowfixed-before-releaseheld review (review model)—
RSD-nats-6f29c759ce
Database handbook: The HEALTHCHECK command ends `|| exit 1`: the probe exits, the container keeps running and its health becomes unhealthy. [defects, defects #259515]
lowfixed-before-releaseheld review (review model)—
RSD-nats-de59fdd441
API guide: IMAGE_BINARIES.txt lists sh, tar, sed, tr, head, tail etc. [defects, defects #259516]
lowfixed-before-releaseheld review (review model)—
RSD-nats-44e5c52574
API guide: Contradicts lines 265 and 304 of the same guide ('Stream list is not included'). [defects, defects #259517]
lowfixed-before-releaseheld review (review model)—
RSD-nats-7fa1ca0441
Admin handbook: Contradicts IMAGE_BINARIES.txt, the documented backup (image tar) and API_INTEGRATION_GUIDE.md:578; same defect as the round-1 minor, only partly fixed. [defects, defects #259897]
lowfixed-before-releaseheld review (review model)—
RSD-nats-948531d576
Admin handbook: Contradicts IMAGE_BINARIES.txt, the documented backup (image tar) and API_INTEGRATION_GUIDE.md:578; same defect as the round-1 minor, only partly fixed. [defects, defects #259898]
lowfixed-before-releaseheld review (review model)—
RSD-nats-833b9fc804
Admin handbook: Contradicts IMAGE_BINARIES.txt, the documented backup (image tar) and API_INTEGRATION_GUIDE.md:578; same defect as the round-1 minor, only partly fixed. [defects, defects #259899]
lowfixed-before-releaseheld review (review model)—
RSD-nats-ec5749a681
API guide: Contradicts IMAGE_BINARIES.txt, the documented backup (image tar) and API_INTEGRATION_GUIDE.md:578; same defect as the round-1 minor, only partly fixed. [defects, defects #259900]
lowfixed-before-releaseheld review (review model)—
RSD-nats-8a862dc995
API guide: Contradicts IMAGE_BINARIES.txt, the documented backup (image tar) and API_INTEGRATION_GUIDE.md:578; same defect as the round-1 minor, only partly fixed. [defects, defects #259901]
lowfixed-before-releaseheld review (review model)—
RSD-nats-758179a1e6
Admin handbook: The block as written still fails: ran `docker run --rm --entrypoint nats-server <image> -c /etc/nats/my.conf -t` -> "nats-server: open /etc/nats/my.conf: no such file or directory", rc=1. [defects, defects #259902]
lowfixed-before-releaseheld review (review model)—
RSD-nats-cd3802eaf8
Admin handbook: Security-relevant overstatement: the unpublished monitoring port is reachable from the host and from containers on the same network (measured). [defects, defects #259903]
lowfixed-before-releaseheld review (review model)—
RSD-nats-e500410f93
Admin handbook: Same overstatement as ADMIN_HANDBOOK.md:349. [defects, defects #259904]
lowfixed-before-releaseheld review (review model)—
RSD-nats-ff6877e1d3
Database handbook: Same overstatement; and the "via docker exec" route needs rs-probe because the image has no curl. [defects, defects #259905]
lowfixed-before-releaseheld review (review model)—
RSD-nats-52abe2a220
API guide: Same overstatement. [defects, defects #259906]
lowfixed-before-releaseheld review (review model)—
RSD-nats-fe82dc74ef
Database handbook: Contradicts DB_HANDBOOK.md:63, 602 and 620 (account names) and the measured response: GET /accountz returned only {"server_id","now","system_account":"$SYS","accounts":["$SYS","$G"]}; no counts or… [defects, defects #259907]
lowfixed-before-releaseheld review (review model)—
RSD-nats-be94d35ab9
Database handbook: False as an absolute: with a stream s1 present, `curl "localhost:18222/jsz?accounts=true&streams=true"` returned "stream_detail":[{"name":"s1",...}] (same limitation wording at… [defects, defects #259908]
lowfixed-before-releaseheld review (review model)—
RSD-nats-b2d0f6f19e
API guide: The image has no `id` program: `docker exec <container> id` -> OCI runtime exec failed: exec: "id": executable file not found in $PATH; IMAGE_BINARIES.txt does not list it. [defects, defects #259909]
lowfixed-before-releaseheld review (review model)—
RSD-nats-ac7bdd8ef4
API guide: The sentence says to mount a configuration and entrypoint, but the command shown only sets --entrypoint to a program already in the image (nothing is mounted). [defects, defects #259910]
lowfixed-before-releaseheld review (review model)—
RSD-nats-3081537a3d
Admin handbook: JetStream is not served on port 8222; the sentence ties it to the monitoring port. [defects, defects #259911]
lowfixed-before-releaseheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 · published digest sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 118) [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, thread_exit, trademark_shipped, unpack_files, vex_shipped) [g8_result.json, result]
  • Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T08:04:10Z · failing Docker Scout counts 11 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).) [SCOUT_EVIDENCE.json, docker_scout_policy]
  • Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T08:03:56Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
  • Image signature transparency-log entries [deliverables/provenance/PROMOTION_RECORD.json, sign_stdout_tail]
  • rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3828403978 · transparency-log entry · integrated 2026-11-12T08:06:39Z) [ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662 · state attached · log index 3828405210 · transparency-log entry
    • kind sbom · digest sha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662 · state attached · log index 3828406116 · transparency-log entry
    • kind vsa · digest sha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662 · state attached · log index 3828407474 · transparency-log entry
    • kind provenance · digest sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 · state attached · log index 3828408656 · transparency-log entry
    • kind sbom · digest sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 · state attached · log index 3828409483 · transparency-log entry
    • kind vsa · digest sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 · state attached · log index 3828410564 · transparency-log entry
    (at 2026-11-12T08:06:40Z) [attestations.json, results]
  • Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/nats/recipe) [docs/provenance/PINS.json]

Offline clean-room rebuilds

  • 2026-11-12T06:33:27Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:4a647a79faa3b34b0599968379ee77fca624cdb09850d9e63e073f456e086a73 [clean-room rebuild ledger, runs[778]]
  • 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-11T23:33:09Z [stage_runs, stage_runs chain 988 stage publish_image]
  • Archive manifests written2026-11-12T08:05:31Z [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 62 · probed 2026-11-11T23:29:40Z · source build_kit) [release_images, isa_level_hard]

History

2 events
  • 2026-11-12T08:07:49Z generated: by KitForge release/build_trail.py · generator commit 9efab228d712a2a7e9bb2eb226729f7f532c3d6a
  • 2026-11-12T08:09:07Z publication: promoted at 2026-11-12T08:08:26Z · promoted digest sha256:dd38ebda68441592a3aec42a2e7d8459f7a5acdcddae3183457d09a07ec8d662 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 491 · checklist status complete · checklist at 2026-11-12T08:09:07Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json

Records

25 records
RecordWhere it isRows
docs/defects/defects.jsoninside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/PINS.jsoninside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.tar.gz)—
MANIFEST.jsonbeside the archive (prodasset /data/production/nats/v2.15.3-CE-ubuntu24.04-r1/), as staged for publishing—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/nats/v2.15.3-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.jsonbeside the archive (prodasset /data/production/nats/v2.15.3-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-nats-v2.15.3-CE-ubuntu24.04-r1.rebuild.json.sigstorebeside the archive (prodasset /data/production/nats/v2.15.3-CE-ubuntu24.04-r1/), as staged for publishing—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/nats/v2.15.3-CE-ubuntu24.04-r1/), as staged for publishing—
clean-room rebuild ledgerthe clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published)—
build_requestssadb, ReadyStack's engine database (not published)683
chainssadb, ReadyStack's engine database (not published)988
defectssadb, ReadyStack's engine database (not published)nats v2.15.3-CE-ubuntu24.04-r1
drive_runssadb, ReadyStack's engine database (not published)chain 988
held_roundssadb, ReadyStack's engine database (not published)chain 988
lesson_recallssadb, ReadyStack's engine database (not published)chain 988
micro_step_runssadb, ReadyStack's engine database (not published)chain 988
release_imagessadb, ReadyStack's engine database (not published)nats v2.15.3-CE-ubuntu24.04-r1
stage_eventssadb, ReadyStack's engine database (not published)chain 988
stage_runssadb, ReadyStack's engine database (not published)chain 988
attestations.jsonthe chain's workspace on the controller (not published)—
deliverables/provenance/PROMOTION_RECORD.jsonthe chain's workspace on the controller (not published)—
g8_result.jsonthe chain's workspace on the controller (not published)—