Mastodon v4.7.5-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/mastodon:v4.7.5-CE-ubuntu24.04-r2 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/mastodon:v4.7.5-CE-ubuntu24.04-r2 - Index digestsha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa
- linux/amd64 digestsha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e
- Archive
ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 nowfb71a758824869109ed431456591e9de7c8eb2719f2c912b7cca427e71758ead
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-11T20:16:44Z 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-mastodon-v4.7.5-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductMastodon (mastodon) [MANIFEST.json]
- Release tagv4.7.5-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/mastodon:v4.7.5-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e [ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz (bytes 666016544) [MANIFEST.json]
- Archive sha256 at publishe32167fea65d3cf5ac04383f36f1abc2702fc6f1ea873f4f6769d81b19f6e9b9 [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/mastodon/mastodon [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv4.7.5 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit24cd1c875a1ac393e587421726394d5692ff5496 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash66fa0a9ee21b341cf1bde47e22d905c3296233c69d950ee483bbcb7209929066 (files 9932) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:85fb99072e57f45824930bf76bc724175662249fecbcf27ccaaa39929c1f1faa [ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794383383 (utc 2026-11-11T07:49:43Z) [ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.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-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit 7f59566f2ae65f85cbb2d38b9576654acd74c34e · dirty yes · first drive 4273
- commit 8b9397c8fbab54f3f85ed59b45a70a50332e26f5 · dirty yes · first drive 4289
Why this release exists
Fully recorded- Chain965 (created 2026-11-11T08:07:30Z · trigger customer_request · upstream version v4.7.5) [chains, chains #965]
- Requestbuild request #646 (rebuild) (requested at 2026-11-11T08:06:01Z · requested by kitforge-agent · version v4.7.5) [build_requests, build_requests #646]
- Reasonrevision v4.7.5-CE-ubuntu24.04-r2 (Rails 8.1.4.1; #359) [build_requests, build_requests #646 request_reason]
- Supersedesreadystack/mastodon:v4.7.5-CE-ubuntu24.04-r1 (chain 896) [chains, chains #896]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 965 release · ready_to_ship
Created 2026-11-11T08:07:30Z, upstream v4.7.5, build request 646 [chains, chains #965]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4273 | 2026-11-11T08:08:02Z | 84.8 | build host 4 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4273] |
| 4289 | 2026-11-11T20:07:17Z | — | build host 4 publish-held | not recorded [drive_runs, drive_runs #4289] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-11T08:08:13Z | 2026-11-11T08:08:14Z | 1 | 4
|
order_json 4d83671f13a8… |
acquire |
2026-11-11T08:08:22Z | 2026-11-11T08:08:23Z | 1 | 12
|
source_tree 1f5ecaa253d0…license_file 57c8ff33c9c0…custody_inputs 2ff15224a384…source_tree_hash b09cc8edbbc1…source_file_manifest ae1d85af5508… |
plan |
2026-11-11T08:09:12Z | 2026-11-11T08:09:13Z | 1 | 10
|
recon_report effc99ab67a6…input_pin_plan 7410d683e3b5…toolchain_lock e272cb4f30d9… |
assemble_kit |
2026-11-11T08:36:31Z | 2026-11-11T08:36:32Z | 1 | 27
|
dockerfile 95252e9e46ff…build_recipe ea655fcac0aa…system_pinning b15de43eae5a…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 095a9cdf00b3…verify_offline_sh 3e8184ea230c…base_image_digests 0cfd6c80e90e…dockerfile_offline 95252e9e46ff…first_build_digest bee253628b56… |
remediate |
2026-11-11T08:37:31Z | 2026-11-11T08:37:32Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 2008d7e2c03f…security_report 5947995d1409… |
build_kit |
2026-11-11T09:05:28Z | 2026-11-11T09:05:29Z | 1 | 9
|
cosign_stamp a9e9143f59a6…locked_digest 503939d6190d…freeze_manifest 2f0423dd8ead…offline_rebuild_transcript 66bbd909fc6e… |
verdict |
2026-11-11T09:07:44Z | 2026-11-11T09:07:44Z | 1 | 8
|
scout_verdict 03ee15ae46df… |
publish_image |
2026-11-11T09:08:57Z | 2026-11-11T09:08:58Z | 1 | 7
|
hub_readme f35686b68d2c…promotion_record 6bc73600ade0… |
boot_instance |
2026-11-11T09:09:45Z | 2026-11-11T09:09:48Z | 2 | 3
|
instance_handle cb4d5c4b7c4b… |
sbom |
2026-11-11T09:10:19Z | 2026-11-11T09:10:20Z | 1 | 5
|
sbom_md 6ecde474f5d3…sbom_json 450c9350db7a… |
schema_discovery |
2026-11-11T09:10:22Z | 2026-11-11T09:10:23Z | 1 | 7
|
schema_hash 97be38c90291…dependency_tree 11d991c2107e…table_classification e517c4ee2100… |
admin_handbook |
2026-11-11T09:10:38Z | 2026-11-11T09:10:39Z | 1 | 7
|
api_map 9d8e86b6cacb…admin_handbook b4164cebc680… |
db_handbook |
2026-11-11T09:10:56Z | 2026-11-11T09:10:57Z | 1 | 8
|
db_handbook a7dbe3c7c873…seed_isolation 7cb70bb06348… |
seed_data |
2026-11-11T09:11:29Z | 2026-11-11T09:11:30Z | 1 | 6
|
seed_data_sql 0156ce36d3d6…seed_cases_json aceeba6bf54c… |
seed_validate |
2026-11-11T09:11:33Z | 2026-11-11T09:11:34Z | 1 | 3
|
seed_data_contract 683752014888… |
usecase_validate |
2026-11-11T09:11:59Z | 2026-11-11T09:11:59Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 952b4f8543bb…test_results bdfcdce65243…usecase_contract 20984c91587c… |
finalize_docs |
2026-11-11T09:12:05Z | 2026-11-11T09:12:06Z | 1 | 9
|
defects_json 269d86a3c48f…release_notes 5e8fc0c8ade3…api_integration_guide c28134068d85… |
package_archive invalidated 2026-11-11T20:06:41Z |
2026-11-11T09:32:49Z | 2026-11-11T09:32:51Z | 1 | 35 (final gate PASS)
|
sale_tar 59c080f70850…checksums 0827fd56ae99…verify_md dbbdf90f396d…rebuild_md 13494442de22…manifest_txt 368f94a480ac…actions_jsonl c655084f5e63…provenance_md 0b38028cd306…assetchain_log_md e9eccaec0c0f…assetchain_log_json 6ddbdfffd5fd… |
[stage_runs]
Rewinds
- 2026-11-11T20:06:41Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #31764]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-11T09:32:51Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 13902 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 17735 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1951 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.33 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-11T09:35:14Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1746] | $0.33 | 3 rounds, $40.00 | 59c080f70850… |
Defects
Fully recorded- Ledger entries0 [defects, defects where product_slug=mastodon and this tag or chain]
- Disclosed in the archive0 [docs/defects/defects.json, entries]
0 ledger entries.
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e · published digest sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 794) [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:08:06Z · failing Docker Scout counts 120 packages with copyleft licences (AGPL, GPL, LGPL, MPL), 114 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component). AGPL: @mastodon/mastodon, @mastodon/streaming. · 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:07:30Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3806805847 · transparency-log entry
- log index 3806807179 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3817220098 · transparency-log entry · integrated 2026-11-11T20:14:58Z) [ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa · state attached · log index 3817224891 · transparency-log entry
- kind sbom · digest sha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa · state attached · log index 3817227179 · transparency-log entry
- kind vsa · digest sha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa · state attached · log index 3817229203 · transparency-log entry
- kind provenance · digest sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e · state attached · log index 3817230928 · transparency-log entry
- kind sbom · digest sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e · state attached · log index 3817232847 · transparency-log entry
- kind vsa · digest sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e · state attached · log index 3817235808 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/mastodon/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-11T09:35:20Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:2e476af90057492b9b8341e35d710ac5d57d7858e24e797bb154538bcacace8e [clean-room rebuild ledger, runs[747]]
- 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:08:58Z [stage_runs, stage_runs chain 965 stage publish_image]
- Archive manifests written2026-11-11T20:11:42Z [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 998 · probed 2026-11-11T08:51:59Z · source build_kit) [release_images, isa_level_hard]
History
3 events- 2026-11-11T20:16:44Z generated: by KitForge release/build_trail.py · generator commit 0f21a2ab03d2b97a51c73491893df1ff5fee29e1
- 2026-11-11T20:18:40Z publication: promoted at 2026-11-11T20:17:22Z · promoted digest sha256:022cce894cf2b9e14cfcbbbd916dbd6ffe0c0248e5d119825c9b399dcd9c33aa · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 473 · checklist status complete · checklist at 2026-11-11T20:18:40Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
- 2026-11-12T02:32:32Z repack: previous sha256 e32167fea65d3cf5ac04383f36f1abc2702fc6f1ea873f4f6769d81b19f6e9b9 · sha256 fb71a758824869109ed431456591e9de7c8eb2719f2c912b7cca427e71758ead · 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| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/mastodon/v4.7.5-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/mastodon/v4.7.5-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/mastodon/v4.7.5-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-mastodon-v4.7.5-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/mastodon/v4.7.5-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/mastodon/v4.7.5-CE-ubuntu24.04-r2/), 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) | 646 |
chains | sadb, ReadyStack's engine database (not published) | 965 |
defects | sadb, ReadyStack's engine database (not published) | mastodon v4.7.5-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 965 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 965 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 965 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 965 |
release_images | sadb, ReadyStack's engine database (not published) | mastodon v4.7.5-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 965 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 965 |
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) | — |