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- Image
readystack/frappecrm:v1.90.0-CE-ubuntu24.04-r4 - Index digestsha256:1fc38d0278087f9202e8882ff12e8428f253e39083a56dbf914a81cd0b3f31e1
- linux/amd64 digestsha256:7887951283833bb6b56ec8a717ca2c7f3881a035bf191918d6bb3e8d55178ae0
- Archive
ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz - Archive SHA-256 nowcee9a6406d3606d5e2c26317c904c06c449cdb9c61b93a041031d8fb0af4a2f4
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin 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
- 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
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 recorded1 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]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4427 | 2026-11-12T13:20:11Z | 53.1 | build host 2 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4427] |
| 4466 | 2026-11-12T20:20:48Z | — | build host 2 publish-held | not recorded [drive_runs, drive_runs #4466] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-12T13:20:21Z | 2026-11-12T13:20:22Z | 1 | 4
|
order_json e0de18428376… |
acquire |
2026-11-12T13:20:29Z | 2026-11-12T13:20:30Z | 1 | 12
|
source_tree 67e50e500a2c…license_file 20b067f86de3…custody_inputs 4b35c8c00baa…source_tree_hash 3a572655fe1a…source_file_manifest 0a226ccbd4c7… |
plan |
2026-11-12T13:21:13Z | 2026-11-12T13:21:14Z | 1 | 10
|
recon_report 7f45ac4f7274…input_pin_plan 103c3e387dcc…toolchain_lock 0c7ee85849d6… |
assemble_kit |
2026-11-12T13:36:58Z | 2026-11-12T13:36:59Z | 1 | 27
|
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:39Z | 2026-11-12T13:37:40Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 4538283e1a92…security_report ded30a7113b0… |
build_kit |
2026-11-12T13:50:23Z | 2026-11-12T13:50:24Z | 1 | 9
|
cosign_stamp d19bef9ee1da…locked_digest a725f53f3ff0…freeze_manifest 1b687144531c…offline_rebuild_transcript 65de8c0d0cad… |
verdict |
2026-11-12T13:53:32Z | 2026-11-12T13:53:32Z | 1 | 8
|
scout_verdict 28e45dab19d8… |
publish_image |
2026-11-12T13:55:00Z | 2026-11-12T13:55:00Z | 1 | 7
|
hub_readme f4d4ca71fcf1…promotion_record 85e6c23ced9d… |
boot_instance |
2026-11-12T13:56:43Z | 2026-11-12T13:56:47Z | 2 | 3
|
instance_handle f51fc3397d83… |
sbom |
2026-11-12T13:57:34Z | 2026-11-12T13:57:35Z | 1 | 5
|
sbom_md 62f3b4bccd28…sbom_json eac17878b17a… |
schema_discovery |
2026-11-12T13:57:37Z | 2026-11-12T13:57:38Z | 1 | 7
|
schema_hash db941ebd9478…dependency_tree 3bd7e63ecf0e…table_classification 00df8d55cd36… |
admin_handbook |
2026-11-12T13:57:45Z | 2026-11-12T13:57:45Z | 1 | 7
|
api_map 8ded4c9bb54b…admin_handbook fb3d1c503d09… |
db_handbook |
2026-11-12T13:57:54Z | 2026-11-12T13:57:55Z | 1 | 8
|
db_handbook 591df0479061…seed_isolation d2b3c6f5b498… |
seed_data |
2026-11-12T13:58:00Z | 2026-11-12T13:58:00Z | 1 | 6
|
seed_data_sql a1482b188b4e…seed_cases_json de32467e98c5… |
seed_validate |
2026-11-12T13:58:03Z | 2026-11-12T13:58:04Z | 1 | 3
|
seed_data_contract 7eb501c51e12… |
usecase_validate |
2026-11-12T13:58:21Z | 2026-11-12T13:58:22Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests cecb137678ac…test_results e42d77e11d23…usecase_contract 60d0fe5ec801… |
finalize_docs |
2026-11-12T13:58:28Z | 2026-11-12T13:58:29Z | 1 | 9
|
defects_json 9c9252a998bf…release_notes bf0196933f4d…api_integration_guide b592d7a3e08c… |
package_archive invalidated 2026-11-12T20:20:23Z |
2026-11-12T14:13:12Z | 2026-11-12T14:13:15Z | 1 | 37 (final gate PASS)
|
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_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #34470]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-12T14:13:15Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 9462 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 9697 | L-A183, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1737 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.47 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-12T14:14:33Z | 0 | 0 | 0 | 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.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-frappecrm-18c8918609Secret written in plain text or to the log by default [defects, defects #269527] | medium | open | build strategy record | — |
RSD-frappecrm-58a6c93354Admin 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] | low | open | held review (review model) | — |
RSD-frappecrm-41a52cc351Admin 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] | low | open | held 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
- log index 3833620555 · transparency-log entry
- log index 3833621757 · transparency-log entry
- 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
- 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| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r4.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside 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 | beside 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.sigstore | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r4/), 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) | 680 |
chains | sadb, ReadyStack's engine database (not published) | 1026 |
defects | sadb, ReadyStack's engine database (not published) | frappecrm v1.90.0-CE-ubuntu24.04-r4 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 1026 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 1026 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 1026 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 1026 |
release_images | sadb, ReadyStack's engine database (not published) | frappecrm v1.90.0-CE-ubuntu24.04-r4 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 1026 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 1026 |
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) | — |