virtctl v1.9.1-CE-scratch-r2 build trail

How ReadyStack built readystack/virtctl:v1.9.1-CE-scratch-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
  • Imagereadystack/virtctl:v1.9.1-CE-scratch-r2
  • Index digestsha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d
  • linux/amd64 digestsha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a
  • ArchiveReadyStack-virtctl-v1.9.1-CE-scratch-r2.tar.gz
  • Archive SHA-256 now3ebf853503561565ae90933f51ea6d778b02ecf7e6b84c33ad35583812e48aa3
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-09T01:48:24Z 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-virtctl-v1.9.1-CE-scratch-r2.trail.json.sigstore ReadyStack-virtctl-v1.9.1-CE-scratch-r2.trail.json

IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level

Identity

Fully recorded
  • Productvirtctl (virtctl) [MANIFEST.json]
  • Release tagv1.9.1-CE-scratch-r2 [MANIFEST.json]
  • Imagereadystack/virtctl:v1.9.1-CE-scratch-r2 [MANIFEST.json]
  • Image index digestsha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-virtctl-v1.9.1-CE-scratch-r2.tar.gz (bytes 1149109223) [MANIFEST.json]
  • Archive sha256 at publish3ebf853503561565ae90933f51ea6d778b02ecf7e6b84c33ad35583812e48aa3 [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/kubevirt/kubevirt [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream refv1.9.1 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commitc3d19093f9c7b843b3879b18dc088911c081c39e [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hashde7abf04e51b6cf004d0365dfe6d8c5251edeeb69bfa0caa3d8b366b85fe6f36 (files 12717) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:601750891ba79bf50e7a3341c16274096db331b81a7abd6ad65737831d911481 [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1791523273 (utc 2026-10-09T05:21:13Z) [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref quay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8 · platform digest sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8
    [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json, engine]
  • Engine commit(s)
    • commit 140ed2f441b69a1f7286874d7402f1794ec4e478 · dirty yes · first drive 3738
    • commit 51b2b16f817c9ef72f9eae92153faa98cb236aff · dirty yes · first drive 3782
    • commit 43614f6e1c70e630532585a5268e240cff598e0d · dirty yes · first drive 3811
    • commit 70e6bdff7c0e7d3ec863993e8fb01b616e6715cb · dirty yes · first drive 3833
    • commit c5e7dd5f5102b6513cc8599f893f62b82c80530d · dirty yes · first drive 3877
    • commit 4875c2406708ae99fbe7b89aa07055d421a931c1 · dirty yes · first drive 3907
    • commit e096654b128c357e9fe1dd849476982371534c0f · dirty yes · first drive 3918
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain879 (created 2026-11-08T09:05:55Z · trigger customer_request · upstream version v1.9.1) [chains, chains #879]
  • Requestbuild request #582 (rebuild) (requested at 2026-11-08T07:44:51Z · requested by kitforge-agent · version v1.9.1) [build_requests, build_requests #582]
  • ReasonKubeVirt v1.9.1 r2 security set: golang.org/x/net v0.62.0 (GO-2026-6860/6866, CVE-2026-78661), PR #225 [build_requests, build_requests #582 request_reason]
  • Supersedesreadystack/virtctl:v1.9.1-CE-scratch-r1 (chain 791) [chains, chains #791]

The path through the harness

Fully recorded

1 chain · 7 drives · 18 stages · 2 rewinds

Chain 879 release · ready_to_ship

Created 2026-11-08T09:05:55Z, upstream v1.9.1, build request 582 [chains, chains #879]

DriveStartedMinutesBuild hostHow it stopped
37382026-11-08T09:06:24Z6.2build host 5 withhold-publish stage_failed at assemble_kit; first failed check exists:first_build_digest; 4 ticks [drive_runs, drive_runs #3738]
37822026-11-08T11:34:49Z39.8build host 5 withhold-publish ready_to_ship at package_archive; 16 ticks [drive_runs, drive_runs #3782]
38112026-11-08T13:28:49Z0.4build host 5 withhold-publish stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3811]
38332026-11-08T16:32:41Z0.5build host 5 withhold-publish stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3833]
38772026-11-08T20:40:49Z0.7build host 5 withhold-publish stage_failed at package_archive; first failed check g8; 1 tick [drive_runs, drive_runs #3877]
39072026-11-09T00:24:29Z4.8build host 5 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3907]
39182026-11-09T01:41:44Z—build host 5 publish-held not recorded [drive_runs, drive_runs #3918]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-08T09:06:38Z2026-11-08T09:06:39Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json 7157dce86eda…
acquire 2026-11-08T09:06:50Z2026-11-08T09:06:52Z1
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 725922dbd71a…
license_file 5febf914b9f9…
custody_inputs ccc671aed9f8…
source_tree_hash b239515aad6b…
source_file_manifest 4c87dedf7e65…
plan 2026-11-08T09:07:26Z2026-11-08T09:07:27Z1
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 45163f3f5949…
input_pin_plan db05c4b25e8b…
toolchain_lock a421e73eec25…
assemble_kit 2026-11-08T09:12:34Z2026-11-08T11:45:01Z2
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 1f5ee0e8ef3d…
build_recipe 93357a731e3b…
system_pinning 01ba4719c80b…
build_offline_sh 6633aa31b6b4…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health 2ad5e707ba09…
verify_offline_sh 3e8184ea230c…
base_image_digests 092e5e79eec6…
dockerfile_offline 1f5ee0e8ef3d…
first_build_digest c24959f2bf38…
remediate 2026-11-08T11:45:52Z2026-11-08T11:45:53Z1
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 3cd335f23b87…
security_report b3d6c9ef6f8b…
build_kit 2026-11-08T12:00:16Z2026-11-08T12:00:17Z1
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 183160c58a72…
locked_digest 418c62afa083…
freeze_manifest c03239ffac42…
offline_rebuild_transcript e70c82aeaf7d…
verdict 2026-11-08T12:00:56Z2026-11-08T12:00:57Z1
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 7ea2ba349271…
publish_image 2026-11-08T12:02:16Z2026-11-08T12:02:17Z1
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 451195be8984…
promotion_record cc4c3067a804…
boot_instance 2026-11-08T12:02:19Z2026-11-08T12:02:20Z1
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle d9e44f9bbe79…
sbom 2026-11-08T12:02:30Z2026-11-08T12:02:31Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 5f2ec7a81732…
sbom_json d03d8e379597…
schema_discovery 2026-11-08T12:02:34Z2026-11-08T12:02:35Z1
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 6c776abfeddf…
dependency_tree 06532c05eca8…
table_classification e2136b0b2731…
admin_handbook 2026-11-08T12:02:37Z2026-11-08T12:02:38Z1
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 eb6b9ed0c57d…
admin_handbook ad7a6d36def6…
db_handbook 2026-11-08T12:02:41Z2026-11-08T12:02:42Z1
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 814022525c5f…
seed_isolation 76f4cb2b3d30…
seed_data 2026-11-08T12:02:44Z2026-11-08T12:02:45Z1
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 cd252d172a6f…
seed_cases_json dd7fa64ec13c…
seed_validate 2026-11-08T12:02:48Z2026-11-08T12:02:49Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract 3a434b05e06f…
usecase_validate 2026-11-08T12:02:51Z2026-11-08T12:02:52Z1
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 3202f9f978de…
passed_tests 2da8d1725c12…
test_results 676828f5701b…
usecase_contract 661935727c46…
finalize_docs 2026-11-08T12:02:56Z2026-11-08T12:02:57Z1
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 ac432efb67f9…
release_notes 537a804ee7f1…
api_integration_guide d51e129c5ef3…
package_archive invalidated 2026-11-09T01:41:12Z 2026-11-08T12:14:34Z2026-11-09T00:29:17Z5
34 (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 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 acae7cc3e1c0…
checksums 7a9e01c567a2…
verify_md df0e96f58793…
rebuild_md c1a7ea97c493…
manifest_txt b6103a60589c…
actions_jsonl e027fba0187a…
provenance_md ee9c5b67a20c…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 842bdddc4512…

[stage_runs]

Rewinds

  • 2026-11-08T12:40:45Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26204]
  • 2026-11-09T01:41:12Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #27809]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-09T00:29:17Z.

4 calls over 2 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 06469 —
remediate2001 010778 L-A08, L-038, L-036, L-034, L-032

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

2 rounds, 2 counted, $1.37 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-08T12:15:54Z 005 clean to repackage [held_rounds, held_rounds #1509] $0.83 3 rounds, $40.00 e99d1b955e2a…
22026-11-09T00:30:12Z 002 clean to publish [held_rounds, held_rounds #1556] $0.54 3 rounds, $40.00 acae7cc3e1c0…

Defects

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

7 ledger entries: by severity low 7; by status fixed-before-release 3, open 4.

DefectSeverityStatusFound byFixed in
RSD-virtctl-c18bd06d33
Docker Hub README: Same defect as the one the previous round recorded (RSD-virtctl-23c72d3233), still present verbatim. [defects, defects #135072]
lowfixed-before-releaseheld review (review model)—
RSD-virtctl-00cc1cf699
REBUILD.md: Second site of the same defect (RSD-virtctl-95a6cf8e03 / 00cc1cf699), still present. [defects, defects #135073]
lowopenheld review (review model)—
RSD-virtctl-23c72d3233
Docker Hub README: The sentence says the image runs only inside a cluster and that the admin guide shows how it is started there. [defects, defects #176818]
lowopenheld review (review model)—
RSD-virtctl-95a6cf8e03
REBUILD.md: virtctl is not a cluster component and does not run only inside a cluster; the statement contradicts the admin handbook and the strategy's deployment_model. [defects, defects #176819]
lowopenheld review (review model)—
RSD-virtctl-364415c465
REBUILD.md: Calls virtctl a cluster component that runs only inside a cluster; recorded in round 1 (RSD-virtctl-95a6cf8e03, 364415c465) and still present. [defects, defects #176969]
lowopenheld review (review model)—
RSD-virtctl-0ba816477e
API guide: The sentence says operators do not call virtctl, and that virtctl is driven through kubectl and virtctl (circular). [defects, defects #176970]
lowfixed-before-releaseheld review (review model)—
RSD-virtctl-fdaea792fb
Admin handbook: The handbook never names the image's runtime user (docs audit finding, true: IMAGE_CONFIG User=65532, the default-user table lists only node images) and says the stack runs virtctl, while the… [defects, defects #176971]
lowfixed-before-releaseheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a · published digest sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 403) [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, trademark_shipped, vex_shipped) [g8_result.json, result]
  • Grade at releaseA (percent 100 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-09T01:42:12Z) [SCOUT_EVIDENCE.json, docker_scout_policy]
  • Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-09T01:41:57Z) [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 3760084146 · transparency-log entry · integrated 2026-11-09T01:46:45Z) [ReadyStack-virtctl-v1.9.1-CE-scratch-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d · state attached · log index 3760084371 · transparency-log entry
    • kind sbom · digest sha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d · state attached · log index 3760084413 · transparency-log entry
    • kind vsa · digest sha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d · state attached · log index 3760084458 · transparency-log entry
    • kind provenance · digest sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a · state attached · log index 3760084558 · transparency-log entry
    • kind sbom · digest sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a · state attached · log index 3760084649 · transparency-log entry
    • kind vsa · digest sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a · state attached · log index 3760084709 · transparency-log entry
    (at 2026-11-09T01:46:45Z) [attestations.json, results]
  • Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/virtctl/recipe) [docs/provenance/PINS.json]

Offline clean-room rebuilds

  • 2026-11-08T12:16:02Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:a927e490ae9fb76f338ab6ba3aa61e653a37084b4a2eb7076bac76751bdd302a [clean-room rebuild ledger, runs[647]]
  • 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-08T12:02:17Z [stage_runs, stage_runs chain 879 stage publish_image]
  • Archive manifests written2026-11-09T01:44:38Z [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 1 · probed 2026-11-08T11:53:04Z · source build_kit) [release_images, isa_level_hard]

History

2 events
  • 2026-11-09T01:48:24Z generated: by KitForge release/build_trail.py · generator commit 54a51beb3cd0781e61763d145b8f962e0c479c45
  • 2026-11-09T01:50:13Z publication: promoted at 2026-11-09T01:49:07Z · promoted digest sha256:b95c5d1eb381990e1c4c5c5c6362dbcaee083125a3de20b084deab9d45edb93d · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 400 · checklist status complete · checklist at 2026-11-09T01:50:13Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json

Records

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