Distribution Registry v3.1.2-CE-ubuntu24.04-r7 build trail
How ReadyStack built readystack/registry:v3.1.2-CE-ubuntu24.04-r7 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/registry:v3.1.2-CE-ubuntu24.04-r7 - Index digestsha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766
- linux/amd64 digestsha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc
- Archive
ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz - Archive SHA-256 now38ea0358b7afb702928931db6c760ddefd65a6f1cb5a230973c92d58cef8bdc0
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-09T10:41:56Z 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-registry-v3.1.2-CE-ubuntu24.04-r7.trail.json.sigstore ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductDistribution Registry (registry) [MANIFEST.json]
- Release tagv3.1.2-CE-ubuntu24.04-r7 [MANIFEST.json]
- Imagereadystack/registry:v3.1.2-CE-ubuntu24.04-r7 [MANIFEST.json]
- Image index digestsha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc [ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz (bytes 479051784) [MANIFEST.json]
- Archive sha256 at publish38ea0358b7afb702928931db6c760ddefd65a6f1cb5a230973c92d58cef8bdc0 [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/distribution/distribution [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv3.1.2 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit3220848f15d9279c66a41aa0a257469e6aede1e9 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashb7cd43949374362404d0782d67aca2c20279b89570b5d1401291180757d4d899 (files 4599) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:1d2149ac2d52219b909994fae6dd9786c709d912710bf5b0f0195ba45271e044 [ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1790250209 (utc 2026-09-24T11:43:29Z) [ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af · platform digest sha256:88750ccdd0f2a77fcc00a14b1a48d6409bd8ddb5d7c2dd6ec0b4a2e916daf9d9
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json, engine]
- Engine commit(s)
- commit de82d9f15f2f16d4019ffa4fd6872481dac1dbe0 · dirty yes · first drive 3670
- commit 25f176d1e4c68bf0eaed5fe5103af4b3ad61b7fd · dirty yes · first drive 3764
- commit 9297e5f1902d782e43b6ebf8fe9b54eba0e82889 · dirty yes · first drive 3858
- commit 4875c2406708ae99fbe7b89aa07055d421a931c1 · dirty yes · first drive 3906
- commit 36f5326faa9c012737f04b0c87a1a5edeb6dd870 · dirty yes · first drive 3972
- commit 55866b6001949e70404e9d5146b06b3d82f15175 · dirty yes · first drive 3980
- commit 9e1e08daa6fd77ad7901229048721017ec2e4d84 · dirty yes · first drive 3986
- commit bfc2c69cad25a084895a177f0ea769362fac34dc · dirty yes · first drive 3992
- commit 0e6d2dd94eeb1339a0c2a974a3cb5125871ca557 · dirty yes · first drive 3996
Why this release exists
Fully recorded- Chain864 (created 2026-11-08T02:56:44Z · trigger customer_request · upstream version v3.1.2) [chains, chains #864]
- Requestbuild request #540 (rebuild) (requested at 2026-11-08T02:54:49Z · requested by kitforge-agent · version v3.1.2) [build_requests, build_requests #540]
- Reasonrevision v3.1.2-CE-ubuntu24.04-r7: same upstream version rebuilt on the chiselled slim base (Core slim batch, PR #195; retarget.py --rev-bump) [build_requests, build_requests #540 request_reason]
- Supersedesreadystack/registry:v3.1.2-CE-ubuntu24.04-r6 (chain 836) [chains, chains #836]
The path through the harness
Fully recorded1 chain · 9 drives · 18 stages · 4 rewinds
Chain 864 release · ready_to_ship
Created 2026-11-08T02:56:44Z, upstream v3.1.2, build request 540 [chains, chains #864]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3670 | 2026-11-08T02:57:10Z | 74.1 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #3670] |
| 3764 | 2026-11-08T10:23:21Z | 21.2 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 1 tick [drive_runs, drive_runs #3764] |
| 3858 | 2026-11-08T18:25:27Z | 20 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 1 tick [drive_runs, drive_runs #3858] |
| 3906 | 2026-11-09T00:23:17Z | 20 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 1 tick [drive_runs, drive_runs #3906] |
| 3972 | 2026-11-09T06:28:26Z | 6.5 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3972] |
| 3980 | 2026-11-09T08:04:32Z | 4.8 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3980] |
| 3986 | 2026-11-09T08:59:48Z | 2.9 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3986] |
| 3992 | 2026-11-09T10:06:15Z | 2.9 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3992] |
| 3996 | 2026-11-09T10:37:58Z | — | build host 2 publish-held | not recorded [drive_runs, drive_runs #3996] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T02:57:21Z | 2026-11-08T02:57:22Z | 1 | 4
|
order_json adbaad6f0dbe… |
acquire |
2026-11-08T02:57:28Z | 2026-11-08T02:57:29Z | 1 | 12
|
source_tree ddcd139d1670…license_file cb5e8e7e5f4a…custody_inputs 6a5c96dbb28a…source_tree_hash ba888dab5412…source_file_manifest c29b0fe5b8c2… |
plan |
2026-11-08T02:57:59Z | 2026-11-08T02:57:59Z | 1 | 10
|
recon_report 479b5367f337…input_pin_plan c7b384a1836c…toolchain_lock f00eaad4df88… |
assemble_kit |
2026-11-08T03:00:39Z | 2026-11-08T03:00:39Z | 1 | 27
|
dockerfile d67e56b1a51c…build_recipe 4beb3dd196ef…system_pinning fa091140511e…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health a362b50456b3…verify_offline_sh 3e8184ea230c…base_image_digests af50099de4bd…dockerfile_offline d67e56b1a51c…first_build_digest dfa70c87c05d… |
remediate |
2026-11-08T03:01:04Z | 2026-11-08T03:01:05Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 6d782c9a04d1…security_report 107fb4a81d01… |
build_kit |
2026-11-08T03:04:30Z | 2026-11-08T03:04:31Z | 1 | 9
|
cosign_stamp 546c52ae52ce…locked_digest f556b93275b1…freeze_manifest 9545ce8c6208…offline_rebuild_transcript 71a0d910f7ab… |
verdict |
2026-11-08T03:05:01Z | 2026-11-08T03:05:02Z | 1 | 8
|
scout_verdict 6e26ba96b36d… |
publish_image |
2026-11-08T03:05:32Z | 2026-11-08T03:05:32Z | 1 | 7
|
hub_readme 6ef8a2ce2e59…promotion_record d2416f49ae95… |
boot_instance |
2026-11-08T03:05:38Z | 2026-11-08T03:05:42Z | 2 | 3
|
instance_handle 956642b04e1a… |
sbom |
2026-11-08T03:05:50Z | 2026-11-08T03:05:51Z | 1 | 5
|
sbom_md 7c74b974d26b…sbom_json 7dd3660b8d12… |
schema_discovery |
2026-11-08T03:05:53Z | 2026-11-08T03:05:54Z | 1 | 7
|
schema_hash 0d42df0f8948…dependency_tree da81f263714f…table_classification baf9701ff510… |
admin_handbook |
2026-11-08T03:24:20Z | 2026-11-08T03:24:20Z | 1 | 7
|
api_map 8a112ecad2a4…admin_handbook 12172d774658… |
db_handbook |
2026-11-08T03:41:35Z | 2026-11-08T03:41:37Z | 1 | 8
|
db_handbook 6fe0cc86b280…seed_isolation 5fa93ac554b8… |
seed_data |
2026-11-08T03:41:52Z | 2026-11-08T03:41:53Z | 1 | 6
|
seed_data_sql 251a88e60706…seed_cases_json 5c833c8af5c3… |
seed_validate |
2026-11-08T03:41:59Z | 2026-11-08T03:42:00Z | 1 | 3
|
seed_data_contract 06c574998b94… |
usecase_validate |
2026-11-08T03:42:48Z | 2026-11-08T03:42:50Z | 1 | 10
|
failed_tests bec0d99c2293…passed_tests c1c34c783ba9…test_results ca9bcd0317aa…usecase_contract 7120b82ae823… |
finalize_docs |
2026-11-08T03:43:03Z | 2026-11-08T03:43:06Z | 1 | 9
|
defects_json cded594b4523…release_notes 3bf60ba1fa19…api_integration_guide 65840d1fced4… |
package_archive invalidated 2026-11-09T10:37:34Z |
2026-11-08T04:11:18Z | 2026-11-09T10:09:06Z | 8 | 35 (final gate PASS)
|
sale_tar b98ec2f0e8e3…checksums 0c04acad8e5e…verify_md 343d565cdd4d…rebuild_md 03d0635ee101…manifest_txt ae124677f921…actions_jsonl 18634849420f…provenance_md 4421d493ef82…assetchain_log_md e9eccaec0c0f…assetchain_log_json ddb4f7451b60… |
[stage_runs]
Rewinds
- 2026-11-09T07:13:47Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28188] - 2026-11-09T08:36:26Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28422] - 2026-11-09T09:31:13Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28581] - 2026-11-09T10:37:34Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28706]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-09T10:09:06Z.
411 calls over 5 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 8317 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 8453 | L-A183, L-A15 |
admin_handbook | 214 | 127 | 0 | 3 | 54 | 2232172 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15, L-A14 |
db_handbook | 192 | 112 | 0 | 3 | 51 | 1723957 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A114, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 2027 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
4 rounds, 4 counted, $9.06 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-09T06:35:38Z | 0 | 10 | 21 | findings to repackage [held_rounds, held_rounds #1594] | $2.48 | 3 rounds, $40.00 | eefb97ede569… |
| 2 | 2026-11-09T08:10:05Z | 0 | 9 | 12 | findings to repackage [held_rounds, held_rounds #1600] | $2.14 | 3 rounds, $40.00 | 42f0919752e9… |
| 3 | 2026-11-09T09:03:07Z | 0 | 1 | 7 | findings to repackage [held_rounds, held_rounds #1602] | $2.24 | 3 rounds, $40.00 | e880156940f4… |
| 4 | 2026-11-09T10:09:48Z | 0 | 0 | 5 | clean to publish [held_rounds, held_rounds #1606] | $2.21 | 3 rounds, $40.00 | b98ec2f0e8e3… |
Defects
Fully recorded- Ledger entries66 [defects, defects where product_slug=registry and this tag or chain]
- Disclosed in the archive66 [docs/defects/defects.json, entries]
66 ledger entries: by severity low 46, high 20; by status open 1, fixed-before-release 65.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-registry-3638dd51eeThe comment at the top of the shipped config.yml does not mention that upload purging differs from upstream [defects, defects #198928] | low | open | held review (review model) | — |
RSD-registry-e8211ec960Admin handbook: The TLS push example uses a URL scheme in the image reference; docker rejects it as an invalid reference. [defects, defects #200122] | high | fixed-before-release | held review (review model) | — |
RSD-registry-1712d499b6Admin handbook: The TLS test push example uses a URL scheme in the image reference; docker rejects it as an invalid reference. [defects, defects #200123] | high | fixed-before-release | held review (review model) | — |
RSD-registry-57a46b9d0aAdmin handbook: The debug-listener publish example uses a CIDR range as the host address in -p, which docker refuses. [defects, defects #200124] | high | fixed-before-release | held review (review model) | — |
RSD-registry-ec0ad92c22Admin handbook: The run command reads a file named env.conf that the steps never create. [defects, defects #200125] | low | fixed-before-release | held review (review model) | — |
RSD-registry-5f9f5ad2b1Admin handbook: The replica htpasswd-sharing procedure copies the file into containers that have not started; docker cp fails because auth/ does not exist yet in a new volume. [defects, defects #200126] | high | fixed-before-release | held review (review model) | — |
RSD-registry-b43c87d8a4Admin handbook: The procedure order (copy before the replicas start) cannot work. [defects, defects #200127] | high | fixed-before-release | held review (review model) | — |
RSD-registry-647ae4c70fAdmin handbook: The handbook says the image has no shells, but it has /bin/sh and the handbook's user-management procedure runs it. [defects, defects #200128] | high | fixed-before-release | held review (review model) | — |
RSD-registry-f8243005e5Admin handbook: The sentence attributes the image's shell to the container runtime, contradicting the image contents and line 475. [defects, defects #200129] | low | fixed-before-release | held review (review model) | — |
RSD-registry-3735e30150Database handbook: The sentence says the image has no shell, contradicting the tested user-management procedure that runs sh. [defects, defects #200130] | high | fixed-before-release | held review (review model) | — |
RSD-registry-d0b4287279Database handbook: The runtime user is named docker; it is registry. [defects, defects #200131] | high | fixed-before-release | held review (review model) | — |
RSD-registry-1977c661d4Database handbook: The sentence says the configuration file lives in the data volume, which would make customers expect edits to survive container re-creation; it does not. [defects, defects #200132] | high | fixed-before-release | held review (review model) | — |
RSD-registry-686a97475dAdmin handbook: The sentence says configuration changes persist in the volume; they do not, and the next paragraph says they are lost on re-creation. [defects, defects #200133] | high | fixed-before-release | held review (review model) | — |
RSD-registry-326ed63579Admin handbook: The sentence offers only rebuilding the image or environment variables and omits the documented mounted-file option. [defects, defects #200134] | low | fixed-before-release | held review (review model) | — |
RSD-registry-73e38eea70Database handbook: The overview says users are managed through API requests; there is no such API. [defects, defects #200135] | low | fixed-before-release | held review (review model) | — |
RSD-registry-cb1940a366Admin handbook: Recovery needs one successful check, not three consecutive ones; the threshold of 3 applies to failures only. [defects, defects #200136] | low | fixed-before-release | held review (review model) | — |
RSD-registry-7fc86c67f7Database handbook: Same false recovery rule: one successful check clears the 503, not three. [defects, defects #200137] | low | fixed-before-release | held review (review model) | — |
RSD-registry-66270e7b7dDatabase handbook: The sentence is garbled and contradicts the threshold behaviour (three failures start the 503, one success ends it). [defects, defects #200138] | low | fixed-before-release | held review (review model) | — |
RSD-registry-8b9ca966d8Admin handbook: The sentence says / does not verify storage while the next paragraph (and line 194) say a failing storage check turns / into 503. [defects, defects #200139] | low | fixed-before-release | held review (review model) | — |
RSD-registry-75fade703cAdmin handbook: The sentence ties publishing the debug listener to TLS, which has nothing to do with it; the real step is REGISTRY_HTTP_DEBUG_ADDR. [defects, defects #200140] | low | fixed-before-release | held review (review model) | — |
RSD-registry-7dd5111765Admin handbook: Step 6 repeats the docker run of step 5 under the same container name without telling the customer to remove the first container. [defects, defects #200141] | low | fixed-before-release | held review (review model) | — |
RSD-registry-4c73f9cb3cDatabase handbook: Only /debug/health refuses HEAD; the other debug endpoints answer it. [defects, defects #200142] | low | fixed-before-release | held review (review model) | — |
RSD-registry-02bf643154Database handbook: The password is 43 characters (32 bytes encoded), not 32 characters. [defects, defects #200143] | low | fixed-before-release | held review (review model) | — |
RSD-registry-51165070e4Database handbook: The blob-by-digest route has no PUT; uploads go through blobs/uploads/. [defects, defects #200144] | low | fixed-before-release | held review (review model) | — |
RSD-registry-eb5ff93566Database handbook: The namespaced blob-by-digest route has no PUT. [defects, defects #200145] | low | fixed-before-release | held review (review model) | — |
RSD-registry-7120f50dd0Database handbook: The command shown prints nothing, so there is no 'response status of 200' to read. [defects, defects #200146] | low | fixed-before-release | held review (review model) | — |
RSD-registry-cfbef2b940Database handbook: The publish flag shown exposes the unauthenticated debug listener on all interfaces, against the advice in the same paragraph. [defects, defects #200147] | low | fixed-before-release | held review (review model) | — |
RSD-registry-44daa95f3bAdmin handbook: The count says eight modules; seven are listed everywhere in the handbook. [defects, defects #200148] | low | fixed-before-release | held review (review model) | — |
RSD-registry-23f27806d7Admin handbook: The repeat instruction keeps the same host port and the same volume, contradicting the earlier statement that each replica needs its own volume. [defects, defects #200149] | low | fixed-before-release | held review (review model) | — |
RSD-registry-2a6497a80cAdmin handbook: The sentence says token authentication is unsupported; line 2307 (and the DB handbook) say it is only not configured. [defects, defects #200150] | low | fixed-before-release | held review (review model) | — |
RSD-registry-f1331e3b20Admin handbook: Empty heading left by the section rewrite (recurs from last round's finding). [defects, defects #200151] | low | fixed-before-release | held review (review model) | — |
RSD-registry-3545d974d2Database handbook: Empty heading left by the section rewrite (recurs from last round's finding). [defects, defects #200152] | low | fixed-before-release | held review (review model) | — |
RSD-registry-9bf218fe1aAdmin handbook: Claim that the load balancer can route upload requests to any backend is false for the documented topology (one volume per replica): tested 404 BLOB_UPLOAD_UNKNOWN. [defects, defects #202083] | high | fixed-before-release | held review (review model) | — |
RSD-registry-f02e0483d1Admin handbook: Same false promise: the secret alone does not give seamless uploads across replicas with separate volumes (tested 404 BLOB_UPLOAD_UNKNOWN). [defects, defects #202084] | high | fixed-before-release | held review (review model) | — |
RSD-registry-6357f34138Admin handbook: False failure condition for the documented single-file config mount (tested healthy with the file in a 700 host directory). [defects, defects #202085] | high | fixed-before-release | held review (review model) | — |
RSD-registry-d78f01c405Admin handbook: Parent-directory search requirement is false for a single-file bind mount. [defects, defects #202086] | high | fixed-before-release | held review (review model) | — |
RSD-registry-82ba423a90Admin handbook: The example mounts a single file (-v /path/to/config.yml:...); the directory-search requirement is false for it. [defects, defects #202087] | high | fixed-before-release | held review (review model) | — |
RSD-registry-f381126fcaAdmin handbook: Same false requirement in Troubleshooting (single-file mount works from a 700 directory). [defects, defects #202088] | high | fixed-before-release | held review (review model) | — |
RSD-registry-77d881881dDatabase handbook: False: single-file mount of a config.yml in a 700 host directory starts healthy; a 600 file owned by the host user fails because of the file mode, not the directory. [defects, defects #202089] | high | fixed-before-release | held review (review model) | — |
RSD-registry-040d000042Database handbook: Same false directory requirement for the `-v /path/to/config.yml:/etc/distribution/config.yml:ro` example. [defects, defects #202090] | high | fixed-before-release | held review (review model) | — |
RSD-registry-394e87b5fdDatabase handbook: Same false directory requirement for the single-file mount in Container Runtime. [defects, defects #202091] | high | fixed-before-release | held review (review model) | — |
RSD-registry-d15529db0aDatabase handbook: Parent directories do not need to be searchable or writable by uid 999. [defects, defects #202092] | low | fixed-before-release | held review (review model) | — |
RSD-registry-60a0785480Database handbook: Wrong error text for a certificate permission failure; contradicts Operating facts. [defects, defects #202093] | low | fixed-before-release | held review (review model) | — |
RSD-registry-c7f33035c5Database handbook: Wrong error text. [defects, defects #202094] | low | fixed-before-release | held review (review model) | — |
RSD-registry-5c3930f6ceDatabase handbook: An unreadable configuration file is a configuration error (exit 1), not a panic (exit 2); contradicts Operating facts. [defects, defects #202095] | low | fixed-before-release | held review (review model) | — |
RSD-registry-1301751989Database handbook: Wrong cause: login does not stop the password being printed. [defects, defects #202096] | low | fixed-before-release | held review (review model) | — |
RSD-registry-a5055ca347Database handbook: The shown command uses `>`, which overwrites; repeating it as written loses the earlier users. [defects, defects #202097] | low | fixed-before-release | held review (review model) | — |
RSD-registry-ac01054bf7Admin handbook: Sentence contradicts the next one and the behaviour. [defects, defects #202098] | low | fixed-before-release | held review (review model) | — |
RSD-registry-aa5cd5ca55Admin handbook: In the documented procedure the docker user does exist in the shared file (registry1's); the paragraph says it is removed. [defects, defects #202099] | low | fixed-before-release | held review (review model) | — |
RSD-registry-0dcc9ff827Admin handbook: Status is 404 BLOB_UPLOAD_INVALID, not 500. [defects, defects #202100] | low | fixed-before-release | held review (review model) | — |
RSD-registry-f91d31e96dAdmin handbook: Container names differ between the two procedures of the same section. [defects, defects #202101] | low | fixed-before-release | held review (review model) | — |
RSD-registry-fe811b1004Admin handbook: Unsupported version claim. [defects, defects #202102] | low | fixed-before-release | held review (review model) | — |
RSD-registry-8c53c9bbeaAdmin handbook: The image has no entrypoint script that hands off; the entrypoint is the registry binary. [defects, defects #202103] | low | fixed-before-release | held review (review model) | — |
RSD-registry-8c694f53eeAdmin handbook: Reintroduces the round-1/2 false promise that the load balancer can route to any backend. [defects, defects #202725] | high | fixed-before-release | held review (review model) | — |
RSD-registry-565247bcf5Admin handbook: A missing volume does not make the registry exit: it starts healthy on the writable layer, as lines 876 and 927 of the same documents say. [defects, defects #202726] | low | fixed-before-release | held review (review model) | — |
RSD-registry-110afcdd1cAdmin handbook: Sentence contradicts itself and the Operating facts (stop the registry, then archive); an archive of a running registry is not supported by any record. [defects, defects #202727] | low | fixed-before-release | held review (review model) | — |
RSD-registry-139fd628cbAdmin handbook: --insecure-registry is a dockerd option, not a flag of the Docker client commands (docker login/push); the sentence sends the customer to a flag that does not exist where it is named. [defects, defects #202728] | low | fixed-before-release | held review (review model) | — |
RSD-registry-a4a449d6f8Admin handbook: Backwards: the filtered form (2>&1 | grep level=error) never shows access lines; they appear only in the unfiltered form. [defects, defects #202729] | low | fixed-before-release | held review (review model) | — |
RSD-registry-afe12e12b7Admin handbook: The registry has one name pattern; a multi-component name works on the plain {name} paths too. [defects, defects #202730] | low | fixed-before-release | held review (review model) | — |
RSD-registry-8fdaf86b72Database handbook: The header is shown with literal backslashes; the registry sends Basic realm="Registry". [defects, defects #202731] | low | fixed-before-release | held review (review model) | — |
RSD-registry-50fdbe50dbDatabase handbook: 'One respect' is false: the shipped file also turns authentication on, binds the debug listener to loopback and sets log level info; contradicts the file's own comment and the Operating facts. [defects, defects #202732] | low | fixed-before-release | held review (review model) | — |
RSD-registry-f1ca90e77fAdmin handbook: The Routes table labels the plain {name} paths 'single-component repository' (lines 638, 640-643) and the {namespace}/{name} paths 'namespaced repository' (639, 644-647), implying a multi-component… [defects, defects #203992] | low | fixed-before-release | held review (review model) | — |
RSD-registry-92d56ab46aAdmin handbook: The touch/chmod block is printed after the tar block (lines 764 then 770) although the sentence says it comes first. [defects, defects #203993] | low | fixed-before-release | held review (review model) | — |
RSD-registry-afbacc6c76Database handbook: The endpoint answers Content-Type text/plain; version=0.0.4 (Prometheus text format), not OpenMetrics; no record shows OpenMetrics is served. [defects, defects #203994] | low | fixed-before-release | held review (review model) | — |
RSD-registry-cd67600ad2Database handbook: `docker logs` prints both streams; stderr is simply not carried through a pipe. [defects, defects #203995] | low | fixed-before-release | held review (review model) | — |
RSD-registry-4013e46721Database handbook: A volume is an option of docker run: `docker restart` keeps the mounts of the existing container, and re-running the edited run command fails with the name `registry` already in use; the container… [defects, defects #203996] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc · published digest sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 98) [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, 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-09T10:38:19Z · failing Docker Scout counts 12 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-09T10:38:09Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3747908429 · transparency-log entry
- log index 3747908779 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3763282609 · transparency-log entry · integrated 2026-11-09T10:40:50Z) [ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766 · state attached · log index 3763283678 · transparency-log entry
- kind sbom · digest sha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766 · state attached · log index 3763284715 · transparency-log entry
- kind vsa · digest sha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766 · state attached · log index 3763285861 · transparency-log entry
- kind provenance · digest sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc · state attached · log index 3763286709 · transparency-log entry
- kind sbom · digest sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc · state attached · log index 3763287499 · transparency-log entry
- kind vsa · digest sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc · state attached · log index 3763289003 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/registry/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-09T06:35:44Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:5f04c71c049e55ba4d5ff16ae84225340b32ca9b42991e99b5d02c1cc767aacc [clean-room rebuild ledger, runs[688]]
- 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-08T03:05:32Z [stage_runs, stage_runs chain 864 stage publish_image]
- Archive manifests written2026-11-09T10:39:39Z [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 69 · probed 2026-11-09T09:02:19Z · source g8) [release_images, isa_level_hard]
History
2 events- 2026-11-09T10:41:56Z generated: by KitForge release/build_trail.py · generator commit 689d6317d30e65d62baa6df3341eadc3f62cb7de
- 2026-11-09T10:43:07Z publication: promoted at 2026-11-09T10:42:28Z · promoted digest sha256:8a39c46f3fb35d90da573e8d03706321904dc68f874279e4f62798e13b2c6766 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 409 · checklist status complete · checklist at 2026-11-09T10:43:07Z · 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-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/registry/v3.1.2-CE-ubuntu24.04-r7/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/registry/v3.1.2-CE-ubuntu24.04-r7/), as staged for publishing | — |
ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json | beside the archive (prodasset /data/production/registry/v3.1.2-CE-ubuntu24.04-r7/), as staged for publishing | — |
ReadyStack-registry-v3.1.2-CE-ubuntu24.04-r7.rebuild.json.sigstore | beside the archive (prodasset /data/production/registry/v3.1.2-CE-ubuntu24.04-r7/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/registry/v3.1.2-CE-ubuntu24.04-r7/), 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) | 540 |
chains | sadb, ReadyStack's engine database (not published) | 864 |
defects | sadb, ReadyStack's engine database (not published) | registry v3.1.2-CE-ubuntu24.04-r7 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 864 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 864 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 864 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 864 |
release_images | sadb, ReadyStack's engine database (not published) | registry v3.1.2-CE-ubuntu24.04-r7 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 864 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 864 |
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) | — |