Discourse v2026.10.0-CE-ubuntu24.04-r1 build trail
How ReadyStack built readystack/discourse:v2026.10.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/discourse:v2026.10.0-CE-ubuntu24.04-r1 - Index digestsha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47
- linux/amd64 digestsha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d
- Archive
ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz - Archive SHA-256 now2b520f1b3c7ceadd65250a10b48be3f58a361d9c3c1ab97fa7f03338ab98a268
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-09T17:31:55Z 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-discourse-v2026.10.0-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductDiscourse (discourse) [MANIFEST.json]
- Release tagv2026.10.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Imagereadystack/discourse:v2026.10.0-CE-ubuntu24.04-r1 [MANIFEST.json]
- Image index digestsha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d [ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz (bytes 814120898) [MANIFEST.json]
- Archive sha256 at publish2b520f1b3c7ceadd65250a10b48be3f58a361d9c3c1ab97fa7f03338ab98a268 [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/discourse/discourse [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv2026.10.0 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit05445c3bf999c5502ccbe1e13539a15e88d9c9a9 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash4e2da653e487bc468597492afa6122a4e0e40d7341c2fae2a95c219d64ec4ab5 (files 27245) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:09126c46e9d09454e7c81ede5632ab026fc1867933345dfbbd4881653276b761 [ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1793107151 (utc 2026-10-27T13:19:11Z) [ReadyStack-discourse-v2026.10.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-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json, engine]
- Engine commit(s)
- commit 922849de97bd401ff8a7dc2992e850e3f4ceafcb · dirty yes · first drive 3867
- commit b29f462ba272213173a4375440fb6180b85d1510 · dirty yes · first drive 3915
- commit 434a55e850a489c150f712aaeb0c27ba0de1ef61 · dirty yes · first drive 3925
- commit 07a570ed33498a9ef37c19dafd05812f040ee87f · dirty yes · first drive 4012
- commit 2e925c4ba6397efc51c0a48c281a06ea1514ae75 · dirty yes · first drive 4023
- commit ad5c12c5506f316c76f0e1747a166906e1a38407 · dirty yes · first drive 4036
- commit 16501077e41ede63bd7f496f3616822a9889eef5 · dirty yes · first drive 4040
- commit 762b14205276731d25047ecbc7e53d9425b5b471 · dirty yes · first drive 4068
- commit 49b8a9812548c03a5a25fdd4d6b6009aa6d12aab · dirty yes · first drive 4079
Why this release exists
Fully recorded- Chain897 (created 2026-11-08T18:57:54Z · trigger customer_request · upstream version v2026.10.0) [chains, chains #897]
- Requestbuild request #593 (rebuild) (requested at 2026-11-08T15:09:04Z · requested by kitforge-agent · version v2026.10.0) [build_requests, build_requests #593]
- Reasonretarget to v2026.10.0: a newer upstream release (rule 1) [build_requests, build_requests #593 request_reason]
- Supersedesreadystack/discourse:v2026.9.1-CE-ubuntu24.04-r1 (chain 712) [chains, chains #712]
The path through the harness
Fully recorded1 chain · 9 drives · 18 stages · 6 rewinds
Chain 897 release · ready_to_ship
Created 2026-11-08T18:57:54Z, upstream v2026.10.0, build request 593 [chains, chains #897]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3867 | 2026-11-08T18:58:30Z | 13.1 | build host 1 withhold-publish | stage_failed at assemble_kit; first failed check exists:first_build_digest; 4 ticks [drive_runs, drive_runs #3867] |
| 3915 | 2026-11-09T01:17:32Z | 50 | build host 1 withhold-publish | stage_failed at assemble_kit; first failed check first_boot_health:file_contains:healthy=True; 1 tick [drive_runs, drive_runs #3915] |
| 3925 | 2026-11-09T02:16:26Z | 110.8 | build host 1 withhold-publish | ready_to_ship at package_archive; 16 ticks [drive_runs, drive_runs #3925] |
| 4012 | 2026-11-09T12:08:33Z | 11.4 | build host 1 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4012] |
| 4023 | 2026-11-09T13:28:48Z | 10.6 | build host 1 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4023] |
| 4036 | 2026-11-09T14:20:42Z | 0.4 | build host 1 withhold-publish | stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #4036] |
| 4040 | 2026-11-09T14:34:35Z | 10.5 | build host 1 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4040] |
| 4068 | 2026-11-09T16:08:06Z | 10.5 | build host 1 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4068] |
| 4079 | 2026-11-09T17:19:45Z | — | build host 1 publish-held | not recorded [drive_runs, drive_runs #4079] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T18:58:43Z | 2026-11-08T18:58:44Z | 1 | 4
|
order_json b904efef5d38… |
acquire |
2026-11-08T18:58:57Z | 2026-11-08T18:59:00Z | 1 | 12
|
source_tree 695747dee07b…license_file 8177f9751321…custody_inputs cc3605d04a74…source_tree_hash 962d249412a0…source_file_manifest 1a6fd99e1873… |
plan |
2026-11-08T19:00:02Z | 2026-11-08T19:00:02Z | 1 | 10
|
recon_report 7bead8200933…input_pin_plan a888fd0983b0…toolchain_lock 196fe25745a1… |
assemble_kit |
2026-11-08T19:11:36Z | 2026-11-09T02:46:49Z | 3 | 27
|
dockerfile a13aab8fe54b…build_recipe 5881c5d2c251…system_pinning 40d8a43134ec…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 5d2910c0dd93…verify_offline_sh 3e8184ea230c…base_image_digests 1dc5394664a9…dockerfile_offline a13aab8fe54b…first_build_digest bfec38feea62… |
remediate |
2026-11-09T02:47:56Z | 2026-11-09T02:47:57Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log b328effdd95f…security_report 55fcc8e350a6… |
build_kit |
2026-11-09T03:19:37Z | 2026-11-09T03:19:38Z | 1 | 9
|
cosign_stamp 8578ac33b520…locked_digest f96fcea72a6a…freeze_manifest 5eede587a9c8…offline_rebuild_transcript 631252d314b0… |
verdict |
2026-11-09T03:22:51Z | 2026-11-09T03:22:52Z | 1 | 8
|
scout_verdict 633885c6ac3e… |
publish_image |
2026-11-09T03:24:18Z | 2026-11-09T03:24:19Z | 1 | 7
|
hub_readme cb180b2096e5…promotion_record e255caacc502… |
boot_instance |
2026-11-09T03:25:48Z | 2026-11-09T03:25:52Z | 2 | 3
|
instance_handle d1c22a0bbdb3… |
sbom |
2026-11-09T03:26:36Z | 2026-11-09T03:26:37Z | 1 | 5
|
sbom_md e6d0b1c2ce7d…sbom_json 7c0ad2a1a0e8… |
schema_discovery |
2026-11-09T03:26:39Z | 2026-11-09T03:26:40Z | 1 | 7
|
schema_hash 4a3a2bf9af21…dependency_tree 310e04e8741a…table_classification e8a9dafbbee4… |
admin_handbook |
2026-11-09T03:31:10Z | 2026-11-09T03:31:10Z | 1 | 7
|
api_map 08a1baa8e8d3…admin_handbook 4350c606f85d… |
db_handbook |
2026-11-09T03:35:29Z | 2026-11-09T03:35:30Z | 1 | 8
|
db_handbook 6ad89e1143e7…seed_isolation 992d6d5ee521… |
seed_data |
2026-11-09T03:35:36Z | 2026-11-09T03:35:37Z | 1 | 6
|
seed_data_sql 723da3c4289f…seed_cases_json 82e8a02bb814… |
seed_validate |
2026-11-09T03:35:40Z | 2026-11-09T03:35:40Z | 1 | 3
|
seed_data_contract f32831b39438… |
usecase_validate |
2026-11-09T03:35:59Z | 2026-11-09T03:36:00Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 23ef666c724d…test_results 2ee8210faa31…usecase_contract e99931915db0… |
finalize_docs |
2026-11-09T03:40:44Z | 2026-11-09T03:40:45Z | 1 | 9
|
defects_json cb773277e754…release_notes 3a7f94fed87e…api_integration_guide 2ff8ddd44458… |
package_archive invalidated 2026-11-09T17:19:18Z |
2026-11-09T04:07:12Z | 2026-11-09T16:18:38Z | 6 | 35 (final gate PASS)
|
sale_tar e1142dc5941a…checksums f472b430e5ad…verify_md 6ae4927fbb10…rebuild_md 55550073b073…manifest_txt f5486a5c9f92…actions_jsonl 95332549f73f…provenance_md 37ec5f4f340f…assetchain_log_md e9eccaec0c0f…assetchain_log_json 10bef192ba50… |
[stage_runs]
Rewinds
- 2026-11-09T05:11:40Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28031] - 2026-11-09T13:09:56Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28924] - 2026-11-09T14:07:57Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29074] - 2026-11-09T14:28:36Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29122] - 2026-11-09T15:08:13Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29243] - 2026-11-09T17:19:18Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29475]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-09T16:18:38Z.
76 calls over 6 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 15375 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 18785 | L-A08, L-038, L-036, L-034, L-032 |
admin_handbook | 23 | 3 | 0 | 2 | 0 | 124377 | — |
db_handbook | 21 | 3 | 0 | 2 | 0 | 109391 | — |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1589 | — |
finalize_docs | 27 | 0 | 0 | 1 | 0 | 137096 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
5 rounds, 5 counted, $8.03 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-09T04:08:35Z | 0 | 3 | 14 | findings to repackage [held_rounds, held_rounds #1581] | $1.51 | 3 rounds, $40.00 | 3b356ecfbef2… |
| 2 | 2026-11-09T12:20:31Z | 0 | 1 | 11 | findings to repackage [held_rounds, held_rounds #1617] | $1.90 | 3 rounds, $40.00 | 2734d723031a… |
| 3 | 2026-11-09T13:39:55Z | 0 | 1 | 2 | findings to repackage [held_rounds, held_rounds #1623] | $1.16 | 3 rounds, $40.00 | 6215a99b63d4… |
| 4 | 2026-11-09T14:46:10Z | 0 | 1 | 11 | findings to repackage [held_rounds, held_rounds #1633] | $1.51 | 3 rounds, $40.00 | 8d5e2fb13484… |
| 5 | 2026-11-09T16:19:09Z | 0 | 0 | 5 | clean to publish [held_rounds, held_rounds #1652] | $1.96 | 3 rounds, $40.00 | e1142dc5941a… |
Defects
Fully recorded- Ledger entries47 [defects, defects where product_slug=discourse and this tag or chain]
- Disclosed in the archive46 [docs/defects/defects.json, entries]
47 ledger entries: by severity critical 1, high 5, low 41; by status fixed-in-release 1, fixed-before-release 46.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-discourse-b84f3b9abcCVE-2026-97229 in ruby 3.4.11 is on CISA's Known Exploited Vulnerabilities list [defects, defects #191805] | critical | fixed-in-release | image scan | v2026.10.0-CE-ubuntu24.04-r1 |
RSD-discourse-a3a7f7b093Admin handbook: problem: the host variable is named DISCOURSE_DISCOURSE_DB_HOST, which Discourse does not read. [defects, defects #194882] | high | fixed-before-release | held review (review model) | — |
RSD-discourse-4e898d8f44Database handbook: problem: the sentence says Admin > Backups uses the host's pg_dump and tells the customer to use pg_dump 17+, which the container does not have. [defects, defects #194883] | high | fixed-before-release | held review (review model) | — |
RSD-discourse-cfbd006777Database handbook: problem: the documented restore procedure silently does nothing on the shipped default (allow_restore=false); the handbook does not say how to enable it. [defects, defects #194884] | high | fixed-before-release | held review (review model) | — |
RSD-discourse-4ac479db3aDatabase handbook: problem: points to a file that is not in the container. [defects, defects #194885] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-30195ee8c8Admin handbook: problem: points to a file that is not in the image; contradicts line 955. [defects, defects #194886] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-56bbe89129Admin handbook: problem: unsupported claim that Discourse reads the file at initialization. [defects, defects #194887] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-1247d561b6Admin handbook: problem: says the worker count cannot be changed by configuration; the shipped config reads UNICORN_WORKERS. [defects, defects #194888] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-370076d216Admin handbook: problem: wrong status code for an unauthenticated request. [defects, defects #194889] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-93fe43c15aAdmin handbook: problem: says --entrypoint is how admin:create is run; contradicts every admin:create procedure that uses docker exec. [defects, defects #194890] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-ee25ed0c35API guide: problem: unauthenticated GET /session/current.json is a 404, not a guest session; ADMIN_HANDBOOK.md:946 says 403, a third version. [defects, defects #194891] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-74480326e2API guide: problem: sign-in matched an email address in a different case. [defects, defects #194892] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-1ca2203723API guide: problem: during migrations there is no HTTP server to answer 500. [defects, defects #194893] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-d545725e4cAPI guide: problem: says Redis is not checked; the same guide says elsewhere it is, and it is. [defects, defects #194894] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-ff3c0ab28bAPI guide: problem: claims pagination metadata that the only list endpoint does not return. [defects, defects #194895] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-ffdfe385d5API guide: problem: names license and upstream project details that the response lacks. [defects, defects #194896] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-e22248cb64API guide: problem: Sidekiq is its own process, not part of Pitchfork's process. [defects, defects #194897] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-5b20a9f8a1API guide: problem: limits the developer-email path to 'no administrator exists' where the records say it works at any time. [defects, defects #194898] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-6dd9085790Admin handbook: Restore instruction omits that allow_restore (off by default) must be on; on the shipped default the restore silently does nothing. [defects, defects #207413] | high | fixed-before-release | held review (review model) | — |
RSD-discourse-2b50efbc79Database handbook: False: script/discourse (backup, restore, enable_restore) ships in the image and works. [defects, defects #207414] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-d9b361a98fDatabase handbook: Reverses the relationship: Pitchfork supervises Sidekiq, not the other way round. [defects, defects #207415] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-e32219ae25Database handbook: Overstates and contradicts the docker exec -u root instructions elsewhere. [defects, defects #207416] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-a96947f71aAPI guide: site.json has no title or description fields. [defects, defects #207417] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-4e012463e4API guide: The entrypoint does not supervise anything; Pitchfork does. [defects, defects #207418] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-605897ce5eAPI guide: Contradicts line 842 and the upstream defaults. [defects, defects #207419] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-ca11b477f6Admin handbook: No localhost default exists for the database host. [defects, defects #207420] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-7532b4bab0API guide: Both name and username have the default discourse. [defects, defects #207421] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-a4bc3e2b3bAdmin handbook: Arguments replace the default command; they are not passed to Pitchfork. [defects, defects #207422] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-36a52e97a0Admin handbook: "Only the web server" contradicts the Redis check stated elsewhere. [defects, defects #207423] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-30e357c910Admin handbook: Misattributes maintenance of the image. [defects, defects #207424] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-916e06c432API guide: Says arguments are passed to the default command; they replace it. [defects, defects #210274] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-362ce91d22Admin handbook: Claims mail jobs retry indefinitely; Sidekiq stops after 25 retries. [defects, defects #210275] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-5b2b8d8e26Release notes: The upgrade procedure in the release notes is a customer procedure that no record shows run; it must be run (old release, write a value, back up, replace the container, check the value and the… [defects, defects #213693] | high | fixed-before-release | held review (review model) | — |
RSD-discourse-09dd50f1ccAdmin handbook: Paraphrase of the round-3 finding: `docker run IMAGE bin/rails c` does run a different program; the sentence says it does not. [defects, defects #213694] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-c9c0288fbeAdmin handbook: Contradicts the corrected statement at :223/:963; the words are the command the entrypoint executes. [defects, defects #213695] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-2a397a4422Database handbook: Read with the preceding sentence it says arguments still get migrations and the web server; they replace the default command. [defects, defects #213696] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-6cb0e948b9Admin handbook: The restore use of DISCOURSE_SKIP_MIGRATE=1 is not in the entrypoint's purpose and no record shows it; the restore procedures documented elsewhere do not set it. [defects, defects #213697] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-667d258e02Database handbook: The restore use of DISCOURSE_SKIP_MIGRATE=1 is not in the entrypoint's purpose and no record shows it; the restore procedures documented elsewhere do not set it. [defects, defects #213698] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-99aa65a1a4Database handbook: The restore use of DISCOURSE_SKIP_MIGRATE=1 is not in the entrypoint's purpose and no record shows it; the restore procedures documented elsewhere do not set it. [defects, defects #213699] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-5ebb999966API guide: The restore use of DISCOURSE_SKIP_MIGRATE=1 is not in the entrypoint's purpose and no record shows it; the restore procedures documented elsewhere do not set it. [defects, defects #213700] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-75453fc4f0Admin handbook: Operating facts say admin:create needs only 10 characters; for a listed address and for resetting an existing administrator's password it needs 15 (source-grounded, not re-run). [defects, defects #213701] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-7c2306adfdAPI guide: Contradicts :339 and the validator. [defects, defects #213702] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-c1dd229c3bAPI guide: The image's HEALTHCHECK string was pasted as a host command. [defects, defects #213703] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-91b0180b70Admin handbook: Operating facts still state 10 characters only for admin:create; the 15-character rule for a listed address is in a later subsection (Administrator password), so this sentence contradicts it for the… [defects, defects #220116] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-74f6908928Admin handbook: States the 10-character minimum for the example address that the start command lists, where 15 applies. [defects, defects #220117] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-ab4ffc77edAPI guide: Same unqualified 10-character minimum (also :234, :473, :611, :940) for the documented example address, which needs 15. [defects, defects #220118] | low | fixed-before-release | held review (review model) | — |
RSD-discourse-b60fccf916API guide: Contradicts the guide's own statement that /about.json, /site.json and /srv/status need no authentication. [defects, defects #220119] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d · published digest sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 887) [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 · docker grade B · docker percent 83 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-09T17:20:52Z · failing Docker Scout counts 163 packages with copyleft licences (AGPL, CDDL, GPL, LGPL, MPL), 153 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component). AGPL: fonts-urw-base35. · 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-09T17:19:56Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3760675164 · transparency-log entry
- log index 3760675780 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3767379728 · transparency-log entry · integrated 2026-11-09T17:30:16Z) [ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47 · state attached · log index 3767381637 · transparency-log entry
- kind sbom · digest sha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47 · state attached · log index 3767382196 · transparency-log entry
- kind vsa · digest sha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47 · state attached · log index 3767382605 · transparency-log entry
- kind provenance · digest sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d · state attached · log index 3767382890 · transparency-log entry
- kind sbom · digest sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d · state attached · log index 3767383158 · transparency-log entry
- kind vsa · digest sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d · state attached · log index 3767383504 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/discourse/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-09T04:08:41Z on build host 1 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:7a34430f785872496b1c5cb24776ef8a3fab0525de7143c388a21990935fac2d [clean-room rebuild ledger, runs[685]]
- 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-09T03:24:19Z [stage_runs, stage_runs chain 897 stage publish_image]
- Archive manifests written2026-11-09T17:25:26Z [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 1293 · probed 2026-11-09T12:19:23Z · source g8) [release_images, isa_level_hard]
History
2 events- 2026-11-09T17:31:55Z generated: by KitForge release/build_trail.py · generator commit 12b2b288aa48f48d3d1572934777edf0602849d6
- 2026-11-09T17:34:28Z publication: promoted at 2026-11-09T17:32:35Z · promoted digest sha256:3ed7ed17832fbdeb3dc6b87b6ffcb47b80329450d7133eb37d9328c4a70a3f47 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 426 · checklist status complete · checklist at 2026-11-09T17:34:28Z · 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-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/discourse/v2026.10.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/discourse/v2026.10.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json | beside the archive (prodasset /data/production/discourse/v2026.10.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
ReadyStack-discourse-v2026.10.0-CE-ubuntu24.04-r1.rebuild.json.sigstore | beside the archive (prodasset /data/production/discourse/v2026.10.0-CE-ubuntu24.04-r1/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/discourse/v2026.10.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) | 593 |
chains | sadb, ReadyStack's engine database (not published) | 897 |
defects | sadb, ReadyStack's engine database (not published) | discourse v2026.10.0-CE-ubuntu24.04-r1 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 897 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 897 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 897 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 897 |
release_images | sadb, ReadyStack's engine database (not published) | discourse v2026.10.0-CE-ubuntu24.04-r1 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 897 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 897 |
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) | — |