BookStack v26.09.2-CE-ubuntu24.04-r5 build trail
How ReadyStack built readystack/bookstack:v26.09.2-CE-ubuntu24.04-r5 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/bookstack:v26.09.2-CE-ubuntu24.04-r5 - Index digestsha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118
- linux/amd64 digestsha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89
- Archive
ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz - Archive SHA-256 now8dc188ea58a10ff7d94e702ffe2779100fbf5737fec74603767ec10c22353aa7
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-11T21:11:03Z 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-bookstack-v26.09.2-CE-ubuntu24.04-r5.trail.json.sigstore ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductBookStack (bookstack) [MANIFEST.json]
- Release tagv26.09.2-CE-ubuntu24.04-r5 [MANIFEST.json]
- Imagereadystack/bookstack:v26.09.2-CE-ubuntu24.04-r5 [MANIFEST.json]
- Image index digestsha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 [ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz (bytes 210394902) [MANIFEST.json]
- Archive sha256 at publish2b5df2509582d78e7c2ce0cd3eabda25e3dea3eb20b88b27e77868989bb625e7 [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/BookStackApp/BookStack [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv26.09.2 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit6265d5667dd6904b7aa0d05a8c60795cf104011b [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashb1b18202d7a1855977f8bb43e39c888676544c9c13b2c4d3f19f149354aeae9d (files 2622) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:f3bdff4ca67903b830604125cdb60a57d8738dde79c4ee89d8c738a077df2e08 [ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794391126 (utc 2026-11-11T09:58:46Z) [ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.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-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json, engine]
- Engine commit(s)
- commit ae5faa81ddbdd1abdce71edc331bd9fc28e20d96 · dirty yes · first drive 4296
- commit fb3c8c212feaeb8607d5b295a821989cf0ab3e1e · dirty yes · first drive 4301
Why this release exists
Fully recorded- Chain973 (created 2026-11-11T20:20:45Z · trigger customer_request · upstream version v26.09.2) [chains, chains #973]
- Requestbuild request #652 (rebuild) (requested at 2026-11-11T09:58:48Z · requested by kitforge-agent · version v26.09.2) [build_requests, build_requests #652]
- Reasonrerelease agenda REVISION -> v26.09.2-CE-ubuntu24.04-r5 (decay loop, IMP-08) [build_requests, build_requests #652 request_reason]
- Supersedesreadystack/bookstack:v26.09.2-CE-ubuntu24.04-r4 (chain 830) [chains, chains #830]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 973 release · ready_to_ship
Created 2026-11-11T20:20:45Z, upstream v26.09.2, build request 652 [chains, chains #973]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4296 | 2026-11-11T20:21:11Z | 19.8 | build host 3 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4296] |
| 4301 | 2026-11-11T21:05:35Z | — | build host 3 publish-held | not recorded [drive_runs, drive_runs #4301] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-11T20:21:24Z | 2026-11-11T20:21:25Z | 1 | 4
|
order_json b2781515c36d… |
acquire |
2026-11-11T20:21:31Z | 2026-11-11T20:21:32Z | 1 | 12
|
source_tree 09e02834b65a…license_file 5f4d63709572…custody_inputs ec60023ecc44…source_tree_hash f1d4ee3a9fe3…source_file_manifest 468c0d5528be… |
plan |
2026-11-11T20:22:12Z | 2026-11-11T20:22:13Z | 1 | 10
|
recon_report 28732faaac6b…input_pin_plan 9cf9ae2868a7…toolchain_lock fe8e567129be… |
assemble_kit |
2026-11-11T20:26:26Z | 2026-11-11T20:26:27Z | 1 | 27
|
dockerfile aaaeab91e220…build_recipe cda83e7937ed…system_pinning f9bd00f803b2…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 6c7421a13da5…verify_offline_sh 3e8184ea230c…base_image_digests 6064fa81846b…dockerfile_offline aaaeab91e220…first_build_digest 2e510f9311a0… |
remediate |
2026-11-11T20:27:05Z | 2026-11-11T20:27:06Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 2c17ea209310…security_report 229f95f82032… |
build_kit |
2026-11-11T20:31:25Z | 2026-11-11T20:31:26Z | 1 | 9
|
cosign_stamp b668d47679d6…locked_digest fffbcbf8de5c…freeze_manifest 2c770acd08ab…offline_rebuild_transcript 41c5bebaea68… |
verdict |
2026-11-11T20:32:35Z | 2026-11-11T20:32:36Z | 1 | 8
|
scout_verdict ca52f3007324… |
publish_image |
2026-11-11T20:33:20Z | 2026-11-11T20:33:21Z | 1 | 7
|
hub_readme cd20f69d2e5b…promotion_record bfc8d7af76a9… |
boot_instance |
2026-11-11T20:33:59Z | 2026-11-11T20:34:02Z | 2 | 3
|
instance_handle fab43d2ad676… |
sbom |
2026-11-11T20:34:17Z | 2026-11-11T20:34:18Z | 1 | 5
|
sbom_md 3a5dc02edd25…sbom_json 456290f1fa27… |
schema_discovery |
2026-11-11T20:34:21Z | 2026-11-11T20:34:22Z | 1 | 7
|
schema_hash 6f2fe42174d4…dependency_tree 0082e2bdd868…table_classification c765ed7cc25a… |
admin_handbook |
2026-11-11T20:34:31Z | 2026-11-11T20:34:32Z | 1 | 7
|
api_map 4ed9ae50faf6…admin_handbook c5bc2429ee93… |
db_handbook |
2026-11-11T20:34:45Z | 2026-11-11T20:34:46Z | 1 | 8
|
db_handbook d348f8c1bed8…seed_isolation 9525b459834a… |
seed_data |
2026-11-11T20:34:52Z | 2026-11-11T20:34:52Z | 1 | 6
|
seed_data_sql 21a60a0e5428…seed_cases_json 428c37052f7c… |
seed_validate |
2026-11-11T20:34:55Z | 2026-11-11T20:34:56Z | 1 | 3
|
seed_data_contract 6b13b031e1b2… |
usecase_validate |
2026-11-11T20:35:12Z | 2026-11-11T20:35:13Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 908aca2206c4…test_results 214d94c5b3c8…usecase_contract 53a6cb6cb824… |
finalize_docs |
2026-11-11T20:35:19Z | 2026-11-11T20:35:20Z | 1 | 9
|
defects_json 4f14322460f8…release_notes 3f997ddf708f…api_integration_guide a2758c44f4ec… |
package_archive invalidated 2026-11-11T21:05:07Z |
2026-11-11T20:40:57Z | 2026-11-11T20:40:58Z | 1 | 35 (final gate PASS)
|
sale_tar 8668e65f1ef3…checksums 0ae3910628fb…verify_md 1837239a679d…rebuild_md a17bd1b9b56d…manifest_txt 5e2b10fda0f5…actions_jsonl 826a6baf6109…provenance_md f9d6d837ceb8…assetchain_log_md e9eccaec0c0f…assetchain_log_json 89b34ec2aded… |
[stage_runs]
Rewinds
- 2026-11-11T21:05:07Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #31909]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-11T20:40:58Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 10575 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 13968 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1528 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.23 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-11T20:41:29Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1755] | $0.23 | 3 rounds, $40.00 | 8668e65f1ef3… |
Defects
Fully recorded- Ledger entries0 [defects, defects where product_slug=bookstack 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:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 · published digest sha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 90) [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-11T21:06:09Z · failing Docker Scout counts 139 packages with copyleft licences (GPL, LGPL, MPL), 133 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component). · 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-11T21:05:45Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3817533834 · transparency-log entry
- log index 3817534048 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3817954945 · transparency-log entry · integrated 2026-11-11T21:09:57Z) [ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118 · state attached · log index 3817956345 · transparency-log entry
- kind sbom · digest sha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118 · state attached · log index 3817957963 · transparency-log entry
- kind vsa · digest sha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118 · state attached · log index 3817959389 · transparency-log entry
- kind provenance · digest sha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 · state attached · log index 3817960485 · transparency-log entry
- kind sbom · digest sha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 · state attached · log index 3817961799 · transparency-log entry
- kind vsa · digest sha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 · state attached · log index 3817963593 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/bookstack/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-11T20:41:32Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:ba8b54f2128b2484cd212b34cd313d9782aea8a4cfbb3894fb0e1e5ca4eacd89 [clean-room rebuild ledger, runs[755]]
- 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-11T20:33:21Z [stage_runs, stage_runs chain 973 stage publish_image]
- Archive manifests written2026-11-11T21:08:01Z [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 1016 · probed 2026-11-11T20:29:39Z · source build_kit) [release_images, isa_level_hard]
History
3 events- 2026-11-11T21:11:03Z generated: by KitForge release/build_trail.py · generator commit fb3c8c212feaeb8607d5b295a821989cf0ab3e1e
- 2026-11-11T21:12:25Z publication: promoted at 2026-11-11T21:11:30Z · promoted digest sha256:197aaef5321946cb54530c124efdbe9e1b5baf8552608ac980d64b01eeed0118 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 478 · checklist status complete · checklist at 2026-11-11T21:12:25Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
- 2026-11-11T22:57:18Z repack: previous sha256 2b5df2509582d78e7c2ce0cd3eabda25e3dea3eb20b88b27e77868989bb625e7 · sha256 8dc188ea58a10ff7d94e702ffe2779100fbf5737fec74603767ec10c22353aa7 · 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-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/bookstack/v26.09.2-CE-ubuntu24.04-r5/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/bookstack/v26.09.2-CE-ubuntu24.04-r5/), as staged for publishing | — |
ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json | beside the archive (prodasset /data/production/bookstack/v26.09.2-CE-ubuntu24.04-r5/), as staged for publishing | — |
ReadyStack-bookstack-v26.09.2-CE-ubuntu24.04-r5.rebuild.json.sigstore | beside the archive (prodasset /data/production/bookstack/v26.09.2-CE-ubuntu24.04-r5/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/bookstack/v26.09.2-CE-ubuntu24.04-r5/), 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) | 652 |
chains | sadb, ReadyStack's engine database (not published) | 973 |
defects | sadb, ReadyStack's engine database (not published) | bookstack v26.09.2-CE-ubuntu24.04-r5 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 973 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 973 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 973 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 973 |
release_images | sadb, ReadyStack's engine database (not published) | bookstack v26.09.2-CE-ubuntu24.04-r5 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 973 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 973 |
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) | — |