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

How ReadyStack built readystack/frappecrm:v1.90.0-CE-ubuntu24.04-r4 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-r4
  • Index digestsha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1
  • linux/amd64 digestsha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0
  • ArchiveReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz
  • Archive SHA-256 nowcee9a6406d3606d5e2c26317c904c06c449cdb9c61b93a041031d8fb0af4a2f4
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-12T20:31:11Z 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-r4.trail.json.sigstore ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.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-r4 [MANIFEST.json]
  • Imagereadystack/frappecrm:v1.90.0-CE-ubuntu24.04-r4 [MANIFEST.json]
  • Image index digestsha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1 [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz (bytes 745180337) [MANIFEST.json]
  • Archive sha256 at publishcee9a6406d3606d5e2c26317c904c06c449cdb9c61b93a041031d8fb0af4a2f4 [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:697599d75bfaee9242d6eb8f21110de96a161a68c339545e4aa4e5c724e4f538 [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1794391209 (utc 2026-11-11T10:00:09Z) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref ubuntu:24.04@sha256:2198e4c65076e9cb0b3d695219df667c0e3b0072da64ca3c2648aca17dcecaf5 · platform digest sha256:77eb101c607d6e3d4f5ad0c8a02c2136c689b98aba1f359e6502ba517e5c57ec
    [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json, engine]
  • Engine commit(s)
    • commit 27badbefbe8aac72eb90e98ea8f843a03c177b52 · dirty yes · first drive 4427
    • commit 89246b3fdf7ea046df3d0e48f836a371a0c3bdf9 · dirty yes · first drive 4466
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain1026 (created 2026-11-12T13:19:42Z · trigger customer_request · upstream version v1.90.0) [chains, chains #1026]
  • Requestbuild request #680 (rebuild) (requested at 2026-11-11T10:00:11Z · requested by kitforge-agent · version v1.90.0) [build_requests, build_requests #680]
  • Reasonrerelease agenda REVISION -> v1.90.0-CE-ubuntu24.04-r4 (decay loop, IMP-08) [build_requests, build_requests #680 request_reason]
  • Supersedesreadystack/frappecrm:v1.90.0-CE-ubuntu24.04-r3 (chain 891) [chains, chains #891]

The path through the harness

Fully recorded

1 chain · 2 drives · 18 stages · 1 rewind

Chain 1026 release · ready_to_ship

Created 2026-11-12T13:19:42Z, upstream v1.90.0, build request 680 [chains, chains #1026]

DriveStartedMinutesBuild hostHow it stopped
44272026-11-12T13:20:11Z53.1build host 2 withhold-publish ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4427]
44662026-11-12T20:20:48Z—build host 2 publish-held not recorded [drive_runs, drive_runs #4466]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-12T13:20:21Z2026-11-12T13:20:22Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json e0de18428376…
acquire 2026-11-12T13:20:29Z2026-11-12T13:20:30Z1
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-12T13:21:13Z2026-11-12T13:21:14Z1
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 7f45ac4f7274…
input_pin_plan 103c3e387dcc…
toolchain_lock 0c7ee85849d6…
assemble_kit 2026-11-12T13:36:58Z2026-11-12T13:36:59Z1
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 7800c4fc2fa0…
build_recipe 1bc8e3bcfa7e…
system_pinning 01ba4719c80b…
build_offline_sh 6ab4f08a6ec7…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health f9419d27d72d…
verify_offline_sh 3e8184ea230c…
base_image_digests 26a28f4c1919…
dockerfile_offline 7800c4fc2fa0…
first_build_digest 924d7dbf4fdd…
remediate 2026-11-12T13:37:39Z2026-11-12T13:37:40Z1
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 4538283e1a92…
security_report ded30a7113b0…
build_kit 2026-11-12T13:50:23Z2026-11-12T13:50:24Z1
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 d19bef9ee1da…
locked_digest a725f53f3ff0…
freeze_manifest 1b687144531c…
offline_rebuild_transcript 65de8c0d0cad…
verdict 2026-11-12T13:53:32Z2026-11-12T13:53:32Z1
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 28e45dab19d8…
publish_image 2026-11-12T13:55:00Z2026-11-12T13:55:00Z1
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 f4d4ca71fcf1…
promotion_record 85e6c23ced9d…
boot_instance 2026-11-12T13:56:43Z2026-11-12T13:56:47Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle f51fc3397d83…
sbom 2026-11-12T13:57:34Z2026-11-12T13:57:35Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 62f3b4bccd28…
sbom_json eac17878b17a…
schema_discovery 2026-11-12T13:57:37Z2026-11-12T13:57:38Z1
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-12T13:57:45Z2026-11-12T13:57:45Z1
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 fb3d1c503d09…
db_handbook 2026-11-12T13:57:54Z2026-11-12T13:57:55Z1
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 591df0479061…
seed_isolation d2b3c6f5b498…
seed_data 2026-11-12T13:58:00Z2026-11-12T13:58:00Z1
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 de32467e98c5…
seed_validate 2026-11-12T13:58:03Z2026-11-12T13:58:04Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract 7eb501c51e12…
usecase_validate 2026-11-12T13:58:21Z2026-11-12T13:58:22Z1
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 cecb137678ac…
test_results e42d77e11d23…
usecase_contract 60d0fe5ec801…
finalize_docs 2026-11-12T13:58:28Z2026-11-12T13:58:29Z1
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 9c9252a998bf…
release_notes bf0196933f4d…
api_integration_guide b592d7a3e08c…
package_archive invalidated 2026-11-12T20:20:23Z 2026-11-12T14:13:12Z2026-11-12T14:13:15Z1
37 (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 unpack_files
  • G8 scout_grade_a
  • G8 script_copies
  • G8 upgrade_check
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 trademark_shipped
  • G8 assetchain_coverage
sale_tar df6696d31a5f…
checksums 7eb2a28427ce…
verify_md d852e82cbb48…
rebuild_md 8640981f4b55…
manifest_txt 1f2c61a095e3…
actions_jsonl 96cfc772cef6…
provenance_md ecfcfef6d147…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json 9cd0184fd113…

[stage_runs]

Rewinds

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

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-12T14:13:15Z.

5 calls over 3 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 09462 L-A183, L-A15
remediate2001 09697 L-A183, L-A15
usecase_validate1001 01737 L-A59

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

1 round, 1 counted, $0.47 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-12T14:14:33Z 000 clean to publish [held_rounds, held_rounds #1821] $0.47 3 rounds, $40.00 df6696d31a5f…

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-18c8918609
Secret written in plain text or to the log by default [defects, defects #269527]
mediumopenbuild strategy record—
RSD-frappecrm-58a6c93354
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 #269528]
lowopenheld review (review model)—
RSD-frappecrm-41a52cc351
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 #269529]
lowopenheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 · published digest sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 314) [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, unpack_files, upgrade_check, vex_shipped) [g8_result.json, result]
  • Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T20:21:34Z · 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).) [SCOUT_EVIDENCE.json, docker_scout_policy]
  • Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T20:20:58Z) [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 3839112519 · transparency-log entry · integrated 2026-11-12T20:29:34Z) [ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1 · state attached · log index 3839115869 · transparency-log entry
    • kind sbom · digest sha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1 · state attached · log index 3839119177 · transparency-log entry
    • kind vsa · digest sha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1 · state attached · log index 3839123028 · transparency-log entry
    • kind provenance · digest sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 · state attached · log index 3839125636 · transparency-log entry
    • kind sbom · digest sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 · state attached · log index 3839127615 · transparency-log entry
    • kind vsa · digest sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 · state attached · log index 3839129884 · transparency-log entry
    (at 2026-11-12T20:29:35Z) [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-12T14:14:39Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0 [clean-room rebuild ledger, runs[795]]
  • 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-12T13:55:00Z [stage_runs, stage_runs chain 1026 stage publish_image]
  • Archive manifests written2026-11-12T20:25:29Z [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-12T13:44:54Z · source build_kit) [release_images, isa_level_hard]

History

2 events
  • 2026-11-12T20:31:11Z generated: by KitForge release/build_trail.py · generator commit 89246b3fdf7ea046df3d0e48f836a371a0c3bdf9
  • 2026-11-12T20:33:25Z publication: promoted at 2026-11-12T20:31:50Z · promoted digest sha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 517 · checklist status complete · checklist at 2026-11-12T20:33:25Z · 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-r4.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz)—
docs/provenance/PINS.jsoninside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz)—
MANIFEST.jsonbeside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing—
ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.jsonbeside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing—
ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.rebuild.json.sigstorebeside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), 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)680
chainssadb, ReadyStack's engine database (not published)1026
defectssadb, ReadyStack's engine database (not published)frappecrm v1.90.0-CE-ubuntu24.04-r4
drive_runssadb, ReadyStack's engine database (not published)chain 1026
held_roundssadb, ReadyStack's engine database (not published)chain 1026
lesson_recallssadb, ReadyStack's engine database (not published)chain 1026
micro_step_runssadb, ReadyStack's engine database (not published)chain 1026
release_imagessadb, ReadyStack's engine database (not published)frappecrm v1.90.0-CE-ubuntu24.04-r4
stage_eventssadb, ReadyStack's engine database (not published)chain 1026
stage_runssadb, ReadyStack's engine database (not published)chain 1026
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)—