Frappe CRM v1.90.0-CE-ubuntu24.04-r3 build trail

How ReadyStack built readystack/frappecrm:v1.90.0-CE-ubuntu24.04-r3 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/frappecrm:v1.90.0-CE-ubuntu24.04-r3
  • Index digestsha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146
  • linux/amd64 digestsha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41
  • ArchiveReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz
  • Archive SHA-256 nowfe4e1770b8b2ecac26273b0c351701630dc1fabb9aecc7fb569bdec9513e6b0e
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-08T17:02:36Z 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-frappecrm-v1.90.0-CE-ubuntu24.04-r3.trail.json.sigstore ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.trail.json

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

Identity

Fully recorded
  • ProductFrappe CRM (frappecrm) [MANIFEST.json]
  • Release tagv1.90.0-CE-ubuntu24.04-r3 [MANIFEST.json]
  • Imagereadystack/frappecrm:v1.90.0-CE-ubuntu24.04-r3 [MANIFEST.json]
  • Image index digestsha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146 [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz (bytes 743304507) [MANIFEST.json]
  • Archive sha256 at publishfe4e1770b8b2ecac26273b0c351701630dc1fabb9aecc7fb569bdec9513e6b0e [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/frappe/crm [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream refv1.90.0 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commit36bd8859f2a6345a620477bc708d0546e8c3f08a [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hashbf0aa1f01cdb2aad41ae55d77ead24f1399f77b93c61cdc99c0baf7c48d8ceca (files 1111) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:59502feef85e6ca24be086c5685d0d73de67398706ab00b65406b894d5447feb [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1793289492 (utc 2026-10-29T15:58:12Z) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
    [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json, engine]
  • Engine commit(s)
    • commit fb3d89dbdf1a4d4d5e6b01f0cfad0b5ef4a697f2 · dirty yes · first drive 3830
    • commit c20aa19bc0ab8c9fef7ff40e1f6a18c4169b166e · dirty yes · first drive 3837
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain891 (created 2026-11-08T15:44:01Z · trigger customer_request · upstream version v1.90.0) [chains, chains #891]
  • Requestbuild request #574 (rebuild) (requested at 2026-11-08T07:25:59Z · requested by kitforge-agent · version v1.90.0) [build_requests, build_requests #574]
  • Reasonrerelease agenda REVISION -> v1.90.0-CE-ubuntu24.04-r3 (decay loop, IMP-08) [build_requests, build_requests #574 request_reason]
  • Supersedesreadystack/frappecrm:v1.90.0-CE-ubuntu24.04-r2 (chain 808) [chains, chains #808]

The path through the harness

Fully recorded

1 chain · 2 drives · 18 stages · 1 rewind

Chain 891 release · ready_to_ship

Created 2026-11-08T15:44:01Z, upstream v1.90.0, build request 574 [chains, chains #891]

DriveStartedMinutesBuild hostHow it stopped
38302026-11-08T15:44:28Z53.2build host 1 withhold-publish ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #3830]
38372026-11-08T16:51:45Z—build host 1 publish-held not recorded [drive_runs, drive_runs #3837]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-08T15:44:40Z2026-11-08T15:44:41Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json 9458f681406d…
acquire 2026-11-08T15:44:47Z2026-11-08T15:44:47Z1
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 67e50e500a2c…
license_file 20b067f86de3…
custody_inputs 4b35c8c00baa…
source_tree_hash 3a572655fe1a…
source_file_manifest 0a226ccbd4c7…
plan 2026-11-08T15:45:39Z2026-11-08T15:45:40Z1
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 eebc684e0787…
input_pin_plan b4b5cba1a756…
toolchain_lock 1fa80610f46a…
assemble_kit 2026-11-08T16:01:44Z2026-11-08T16:01:44Z1
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 0c508490dcd8…
build_recipe 9f8a6f8a9396…
system_pinning 01ba4719c80b…
build_offline_sh 6633aa31b6b4…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health b9d86f2559fb…
verify_offline_sh 3e8184ea230c…
base_image_digests 26a28f4c1919…
dockerfile_offline 0c508490dcd8…
first_build_digest 663f6dfff1ad…
remediate 2026-11-08T16:02:39Z2026-11-08T16:02:39Z1
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 dae6f9b466f9…
security_report 1d2de033b586…
build_kit 2026-11-08T16:15:08Z2026-11-08T16:15:09Z1
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 8a854c07f5d5…
locked_digest 769c4d5d90de…
freeze_manifest 63e4c2a0de95…
offline_rebuild_transcript b8392f9bcc50…
verdict 2026-11-08T16:18:18Z2026-11-08T16:18:19Z1
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 d1aeb90760f2…
publish_image 2026-11-08T16:19:44Z2026-11-08T16:19:45Z1
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 2a4c934bae76…
promotion_record 26a509b56224…
boot_instance 2026-11-08T16:21:22Z2026-11-08T16:21:26Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle f911cb1fc526…
sbom 2026-11-08T16:22:10Z2026-11-08T16:22:11Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 79ad40016aae…
sbom_json 977d24852028…
schema_discovery 2026-11-08T16:22:13Z2026-11-08T16:22:14Z1
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 db941ebd9478…
dependency_tree 3bd7e63ecf0e…
table_classification 00df8d55cd36…
admin_handbook 2026-11-08T16:22:20Z2026-11-08T16:22:21Z1
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 8ded4c9bb54b…
admin_handbook 412c4b380ae6…
db_handbook 2026-11-08T16:22:30Z2026-11-08T16:22:31Z1
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 4ed0e2454fe0…
seed_isolation d2b3c6f5b498…
seed_data 2026-11-08T16:22:36Z2026-11-08T16:22:37Z1
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 a1482b188b4e…
seed_cases_json ae24449b9c95…
seed_validate 2026-11-08T16:22:40Z2026-11-08T16:22:40Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract d106d0356016…
usecase_validate 2026-11-08T16:22:57Z2026-11-08T16:22:58Z1
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 3b9581e78d5a…
test_results 0b1ae69a7dd2…
usecase_contract e00ba93560be…
finalize_docs 2026-11-08T16:23:04Z2026-11-08T16:23:04Z1
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 a19e642ae29b…
release_notes ac522db07f79…
api_integration_guide e6fe5284dc3d…
package_archive invalidated 2026-11-08T16:51:19Z 2026-11-08T16:37:36Z2026-11-08T16:37:39Z1
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 7572384aeace…
checksums 1ca77e28c9b2…
verify_md e6401f08c765…
rebuild_md 628c1a9dbc7b…
manifest_txt 73067b13c112…
actions_jsonl 50b58454c56f…
provenance_md dd8b38f34713…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 97d249b826a0…

[stage_runs]

Rewinds

  • 2026-11-08T16:51:19Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26810]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-08T16:37:39Z.

5 calls over 3 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 010602 —
remediate2001 013826 L-A08, L-038, L-036, L-034, L-032
usecase_validate1001 01675 —

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

1 round, 1 counted, $0.24 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-08T16:38:42Z 000 clean to publish [held_rounds, held_rounds #1523] $0.24 3 rounds, $40.00 7572384aeace…

Defects

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

3 ledger entries: by severity medium 1, low 2; by status open 3.

DefectSeverityStatusFound byFixed in
RSD-frappecrm-61275954db
Secret written in plain text or to the log by default [defects, defects #179393]
mediumopenbuild strategy record—
RSD-frappecrm-b70e07502c
Admin handbook: Contradicts the Site name bullet two lines above: a volume the upstream image wrote is used as it is only when its site is named frontend; otherwise it is not served. [defects, defects #179394]
lowopenheld review (review model)—
RSD-frappecrm-30f4250a52
Admin handbook: The section frames itself as the single canonical statement of this release's operating facts, but omits the 'cli' fact that strategies/frappecrm.json's doc_facts/operating_facts designates for… [defects, defects #179395]
lowopenheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 · published digest sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 308) [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 94 · docker grade B · docker percent 83 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-08T16:52:39Z · failing Docker Scout counts 160 packages with copyleft licences (GPL, LGPL, MPL), 155 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-08T16:51:56Z) [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 3758288668 · transparency-log entry · integrated 2026-11-08T17:01:10Z) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146 · state attached · log index 3758289188 · transparency-log entry
    • kind sbom · digest sha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146 · state attached · log index 3758289399 · transparency-log entry
    • kind vsa · digest sha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146 · state attached · log index 3758289662 · transparency-log entry
    • kind provenance · digest sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 · state attached · log index 3758289950 · transparency-log entry
    • kind sbom · digest sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 · state attached · log index 3758290292 · transparency-log entry
    • kind vsa · digest sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 · state attached · log index 3758290708 · transparency-log entry
    (at 2026-11-08T17:01:10Z) [attestations.json, results]
  • Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/frappecrm/recipe) [docs/provenance/PINS.json]

Offline clean-room rebuilds

  • 2026-11-08T16:38:47Z on build host 1 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41 [clean-room rebuild ledger, runs[658]]
  • 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-08T16:19:45Z [stage_runs, stage_runs chain 891 stage publish_image]
  • Archive manifests written2026-11-08T16:56:45Z [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 1181 · probed 2026-11-08T16:09:45Z · source build_kit) [release_images, isa_level_hard]

History

2 events
  • 2026-11-08T17:02:36Z generated: by KitForge release/build_trail.py · generator commit c20aa19bc0ab8c9fef7ff40e1f6a18c4169b166e
  • 2026-11-08T17:04:45Z publication: promoted at 2026-11-08T17:03:11Z · promoted digest sha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 379 · checklist status complete · checklist at 2026-11-08T17:04:45Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json

Records

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