Discourse v2026.10.1-CE-ubuntu24.04-r1 build trail

How ReadyStack built readystack/discourse:v2026.10.1-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/discourse:v2026.10.1-CE-ubuntu24.04-r1
  • Index digestsha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d
  • linux/amd64 digestsha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73
  • ArchiveReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz
  • Archive SHA-256 now29aa52a5cd4bb69e7c3755bb2df27fafb58e22c7c167dee96c4f23815d685aa1
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-11T20:33:54Z 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.1-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-discourse-v2026.10.1-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.1-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Imagereadystack/discourse:v2026.10.1-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Image index digestsha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz (bytes 816027909) [MANIFEST.json]
  • Archive sha256 at publishbcc4946f2b7d3090b19c0d2a614b0fe103392ee00375dc75af20710081a6ada6 [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.1 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commit8de4f93734dfc8682855dc9d85dd1294e0109f6c [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hashfee381bd7571857380c9b9269a5103bd822c9ca18daccf27817256a7f4350df1 (files 27269) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:630e0ac40e800bf738c04e14086509ee456a3757f6f877e9ca12cddfb6fcd9b6 [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1794383073 (utc 2026-11-11T07:44:33Z) [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
    [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json, engine]
  • Engine commit(s)
    • commit 7f59566f2ae65f85cbb2d38b9576654acd74c34e · dirty yes · first drive 4275
    • commit ae5faa81ddbdd1abdce71edc331bd9fc28e20d96 · dirty yes · first drive 4295
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain966 (created 2026-11-11T08:12:47Z · trigger customer_request · upstream version v2026.10.1) [chains, chains #966]
  • Requestbuild request #644 (rebuild) (requested at 2026-11-11T07:44:37Z · requested by kitforge-agent · version v2026.10.1) [build_requests, build_requests #644]
  • Reasonretarget to v2026.10.1: a newer upstream release (rule 1) [build_requests, build_requests #644 request_reason]
  • Supersedesreadystack/discourse:v2026.10.0-CE-ubuntu24.04-r1 (chain 897) [chains, chains #897]

The path through the harness

Fully recorded

1 chain · 2 drives · 18 stages · 1 rewind

Chain 966 release · ready_to_ship

Created 2026-11-11T08:12:47Z, upstream v2026.10.1, build request 644 [chains, chains #966]

DriveStartedMinutesBuild hostHow it stopped
42752026-11-11T08:13:24Z98.8build host 1 withhold-publish ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4275]
42952026-11-11T20:20:59Z—build host 1 publish-held not recorded [drive_runs, drive_runs #4295]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-11T08:13:36Z2026-11-11T08:13:37Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json 2688b2928906…
acquire 2026-11-11T08:13:51Z2026-11-11T08:13:55Z1
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 ba3c4669769d…
license_file 8177f9751321…
custody_inputs b88bbef6cebb…
source_tree_hash 43343f14669f…
source_file_manifest 02cf56cf4a37…
plan 2026-11-11T08:14:29Z2026-11-11T08:14:30Z1
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 dfe868eb720f…
input_pin_plan 67fab02f9b64…
toolchain_lock 66ee53d0f8f1…
assemble_kit 2026-11-11T08:45:28Z2026-11-11T08:45:29Z1
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 db20aaba1676…
build_recipe 163a07bffacd…
system_pinning 40d8a43134ec…
build_offline_sh 6633aa31b6b4…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health fdb1393eb205…
verify_offline_sh 3e8184ea230c…
base_image_digests 1dc5394664a9…
dockerfile_offline db20aaba1676…
first_build_digest 619467bdea84…
remediate 2026-11-11T08:46:00Z2026-11-11T08:46:00Z1
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 6674209ffe17…
security_report 4679d43c360d…
build_kit 2026-11-11T09:17:59Z2026-11-11T09:18:00Z1
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 71526a96c4c2…
locked_digest 82c20dc3f2e4…
freeze_manifest 5af576c01245…
offline_rebuild_transcript 715a39c03f56…
verdict 2026-11-11T09:21:15Z2026-11-11T09:21:16Z1
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 55a8ec62ea86…
publish_image 2026-11-11T09:22:45Z2026-11-11T09:22:46Z1
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 cdafbcab40eb…
promotion_record f6c8355b1792…
boot_instance 2026-11-11T09:24:28Z2026-11-11T09:24:31Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle a6155b7a1540…
sbom 2026-11-11T09:25:18Z2026-11-11T09:25:19Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 21b801b373db…
sbom_json afbf71859abc…
schema_discovery 2026-11-11T09:25:21Z2026-11-11T09:25:22Z1
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 4a3a2bf9af21…
dependency_tree 310e04e8741a…
table_classification e8a9dafbbee4…
admin_handbook 2026-11-11T09:25:29Z2026-11-11T09:25:30Z1
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 08a1baa8e8d3…
admin_handbook 80c0802f13ae…
db_handbook 2026-11-11T09:25:38Z2026-11-11T09:25:39Z1
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 1026a35baefa…
seed_isolation 992d6d5ee521…
seed_data 2026-11-11T09:25:45Z2026-11-11T09:25:46Z1
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 723da3c4289f…
seed_cases_json fd84c8291bc2…
seed_validate 2026-11-11T09:25:48Z2026-11-11T09:25:49Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract 3b859cecbf6c…
usecase_validate 2026-11-11T09:26:08Z2026-11-11T09:26:09Z1
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 27bbe85648a2…
test_results 04ff00ced685…
usecase_contract 6da33fe5b4e9…
finalize_docs 2026-11-11T09:26:15Z2026-11-11T09:26:16Z1
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 6126a7ae1b1f…
release_notes 6f72f5feec9f…
api_integration_guide 69d390f5bd8b…
package_archive invalidated 2026-11-11T20:20:34Z 2026-11-11T09:52:07Z2026-11-11T09:52:11Z1
35 (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 scout_grade_a
  • G8 script_copies
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 trademark_shipped
  • G8 assetchain_coverage
sale_tar 1c9b20b8eede…
checksums db65f28be83b…
verify_md 3d308b0a7f8b…
rebuild_md 542157ed664d…
manifest_txt cbff51afc0d9…
actions_jsonl e251cca9466d…
provenance_md c0859b296840…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 5b3aef108433…

[stage_runs]

Rewinds

  • 2026-11-11T20:20:34Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #31787]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-11T09:52:11Z.

5 calls over 3 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 013211 L-A183, L-A15
remediate2001 013683 L-A183, L-A15
usecase_validate1001 01661 L-A59

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

1 round, 1 counted, $0.30 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-11T09:53:50Z 000 clean to publish [held_rounds, held_rounds #1747] $0.30 3 rounds, $40.00 1c9b20b8eede…

Defects

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

5 ledger entries: by severity low 5; by status fixed-in-release 5.

DefectSeverityStatusFound byFixed in
RSD-discourse-6d2819284c
Admin 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 #252255]
lowfixed-in-releaseheld review (review model)v2026.10.1-CE-ubuntu24.04-r1
RSD-discourse-ed7331546f
Admin handbook: States the 10-character minimum for the example address that the start command lists, where 15 applies. [defects, defects #252256]
lowfixed-in-releaseheld review (review model)v2026.10.1-CE-ubuntu24.04-r1
RSD-discourse-9a7629b498
API guide: Same unqualified 10-character minimum (also :234, :473, :611, :940) for the documented example address, which needs 15. [defects, defects #252257]
lowfixed-in-releaseheld review (review model)v2026.10.1-CE-ubuntu24.04-r1
RSD-discourse-30c04ba853
API guide: Contradicts the guide's own statement that /about.json, /site.json and /srv/status need no authentication. [defects, defects #252258]
lowfixed-in-releaseheld review (review model)v2026.10.1-CE-ubuntu24.04-r1
RSD-discourse-0634ea93e6
API guide: The API guide's startup example still puts the database passwords on the command line (shell history keeps them), the exposure the other handbooks and the Docker Hub README now avoid with env files;… [defects, defects #252259]
lowfixed-in-releaseheld review (review model)v2026.10.1-CE-ubuntu24.04-r1

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 · published digest sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 908) [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-11T20:22:07Z · 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-11T20:21:13Z) [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 3817531675 · transparency-log entry · integrated 2026-11-11T20:32:17Z) [ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d · state attached · log index 3817533329 · transparency-log entry
    • kind sbom · digest sha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d · state attached · log index 3817533725 · transparency-log entry
    • kind vsa · digest sha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d · state attached · log index 3817534043 · transparency-log entry
    • kind provenance · digest sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 · state attached · log index 3817534391 · transparency-log entry
    • kind sbom · digest sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 · state attached · log index 3817534639 · transparency-log entry
    • kind vsa · digest sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 · state attached · log index 3817534949 · transparency-log entry
    (at 2026-11-11T20:32:18Z) [attestations.json, results]
  • 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-11T09:53:57Z on build host 4 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:b192ba183bd1eaaa2da8288e0d85dd0d804b5907dcf08cffd0569edd8e357a73 [clean-room rebuild ledger, runs[748]]
  • 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-11T09:22:46Z [stage_runs, stage_runs chain 966 stage publish_image]
  • Archive manifests written2026-11-11T20:27:18Z [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-11T09:02:34Z · source build_kit) [release_images, isa_level_hard]

History

3 events
  • 2026-11-11T20:33:54Z generated: by KitForge release/build_trail.py · generator commit fb3c8c212feaeb8607d5b295a821989cf0ab3e1e
  • 2026-11-11T20:36:34Z publication: promoted at 2026-11-11T20:34:38Z · promoted digest sha256:51badf976b430a66d6961f6c934350a50b144404d0c17249a45cb1ea5e2a4f1d · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 476 · checklist status complete · checklist at 2026-11-11T20:36:34Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
  • 2026-11-11T23:47:17Z repack: previous sha256 bcc4946f2b7d3090b19c0d2a614b0fe103392ee00375dc75af20710081a6ada6 · sha256 29aa52a5cd4bb69e7c3755bb2df27fafb58e22c7c167dee96c4f23815d685aa1 · reason customer kit files brought up to the current engine: BUILD_OFFLINE.sh (kit root, docs/offline, docs/docker); README.md and FILE_MODES.tsv at the archive root (release/kit_unpack.py), BUILD_OFFLINE.sh putting back the packed file modes, REBUILD.md unpacking with -p and keeping the key and signature outside the kit, and the verifier naming what differs; not image inputs; image and every build input unchanged · label kitfix · replaced BUILD_OFFLINE.sh, docs/REBUILD.md, docs/docker/BUILD_OFFLINE.sh, docs/offline/BUILD_OFFLINE.sh, docs/rebuild-bundle/rebuild_bundle.py · added FILE_MODES.tsv, README.md · record MANIFEST.json repack_history

Records

25 records
RecordWhere it isRows
docs/defects/defects.jsoninside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/PINS.jsoninside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.tar.gz)—
MANIFEST.jsonbeside the archive (prodasset /data/production/discourse/v2026.10.1-CE-ubuntu24.04-r1/), as staged for publishing—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/discourse/v2026.10.1-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.jsonbeside the archive (prodasset /data/production/discourse/v2026.10.1-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-discourse-v2026.10.1-CE-ubuntu24.04-r1.rebuild.json.sigstorebeside the archive (prodasset /data/production/discourse/v2026.10.1-CE-ubuntu24.04-r1/), as staged for publishing—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/discourse/v2026.10.1-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)644
chainssadb, ReadyStack's engine database (not published)966
defectssadb, ReadyStack's engine database (not published)discourse v2026.10.1-CE-ubuntu24.04-r1
drive_runssadb, ReadyStack's engine database (not published)chain 966
held_roundssadb, ReadyStack's engine database (not published)chain 966
lesson_recallssadb, ReadyStack's engine database (not published)chain 966
micro_step_runssadb, ReadyStack's engine database (not published)chain 966
release_imagessadb, ReadyStack's engine database (not published)discourse v2026.10.1-CE-ubuntu24.04-r1
stage_eventssadb, ReadyStack's engine database (not published)chain 966
stage_runssadb, ReadyStack's engine database (not published)chain 966
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)—