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- Image
readystack/frappecrm:v1.90.0-CE-ubuntu24.04-r3 - Index digestsha256:7d73972e6972bac8be6d0f45fa254cda89163125a010755f4cfe0c172388a146
- linux/amd64 digestsha256:380a9a5f9b1a8408e72b063960bd4f264413e20a1b843d7f22702c1da383fc41
- Archive
ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz - Archive SHA-256 nowfe4e1770b8b2ecac26273b0c351701630dc1fabb9aecc7fb569bdec9513e6b0e
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin 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
- 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
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 recorded1 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]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3830 | 2026-11-08T15:44:28Z | 53.2 | build host 1 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #3830] |
| 3837 | 2026-11-08T16:51:45Z | — | build host 1 publish-held | not recorded [drive_runs, drive_runs #3837] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T15:44:40Z | 2026-11-08T15:44:41Z | 1 | 4
|
order_json 9458f681406d… |
acquire |
2026-11-08T15:44:47Z | 2026-11-08T15:44:47Z | 1 | 12
|
source_tree 67e50e500a2c…license_file 20b067f86de3…custody_inputs 4b35c8c00baa…source_tree_hash 3a572655fe1a…source_file_manifest 0a226ccbd4c7… |
plan |
2026-11-08T15:45:39Z | 2026-11-08T15:45:40Z | 1 | 10
|
recon_report eebc684e0787…input_pin_plan b4b5cba1a756…toolchain_lock 1fa80610f46a… |
assemble_kit |
2026-11-08T16:01:44Z | 2026-11-08T16:01:44Z | 1 | 27
|
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:39Z | 2026-11-08T16:02:39Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log dae6f9b466f9…security_report 1d2de033b586… |
build_kit |
2026-11-08T16:15:08Z | 2026-11-08T16:15:09Z | 1 | 9
|
cosign_stamp 8a854c07f5d5…locked_digest 769c4d5d90de…freeze_manifest 63e4c2a0de95…offline_rebuild_transcript b8392f9bcc50… |
verdict |
2026-11-08T16:18:18Z | 2026-11-08T16:18:19Z | 1 | 8
|
scout_verdict d1aeb90760f2… |
publish_image |
2026-11-08T16:19:44Z | 2026-11-08T16:19:45Z | 1 | 7
|
hub_readme 2a4c934bae76…promotion_record 26a509b56224… |
boot_instance |
2026-11-08T16:21:22Z | 2026-11-08T16:21:26Z | 2 | 3
|
instance_handle f911cb1fc526… |
sbom |
2026-11-08T16:22:10Z | 2026-11-08T16:22:11Z | 1 | 5
|
sbom_md 79ad40016aae…sbom_json 977d24852028… |
schema_discovery |
2026-11-08T16:22:13Z | 2026-11-08T16:22:14Z | 1 | 7
|
schema_hash db941ebd9478…dependency_tree 3bd7e63ecf0e…table_classification 00df8d55cd36… |
admin_handbook |
2026-11-08T16:22:20Z | 2026-11-08T16:22:21Z | 1 | 7
|
api_map 8ded4c9bb54b…admin_handbook 412c4b380ae6… |
db_handbook |
2026-11-08T16:22:30Z | 2026-11-08T16:22:31Z | 1 | 8
|
db_handbook 4ed0e2454fe0…seed_isolation d2b3c6f5b498… |
seed_data |
2026-11-08T16:22:36Z | 2026-11-08T16:22:37Z | 1 | 6
|
seed_data_sql a1482b188b4e…seed_cases_json ae24449b9c95… |
seed_validate |
2026-11-08T16:22:40Z | 2026-11-08T16:22:40Z | 1 | 3
|
seed_data_contract d106d0356016… |
usecase_validate |
2026-11-08T16:22:57Z | 2026-11-08T16:22:58Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 3b9581e78d5a…test_results 0b1ae69a7dd2…usecase_contract e00ba93560be… |
finalize_docs |
2026-11-08T16:23:04Z | 2026-11-08T16:23:04Z | 1 | 9
|
defects_json a19e642ae29b…release_notes ac522db07f79…api_integration_guide e6fe5284dc3d… |
package_archive invalidated 2026-11-08T16:51:19Z |
2026-11-08T16:37:36Z | 2026-11-08T16:37:39Z | 1 | 34 (final gate PASS)
|
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_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26810]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-08T16:37:39Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 10602 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 13826 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1675 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.24 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-08T16:38:42Z | 0 | 0 | 0 | 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.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-frappecrm-61275954dbSecret written in plain text or to the log by default [defects, defects #179393] | medium | open | build strategy record | — |
RSD-frappecrm-b70e07502cAdmin 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] | low | open | held review (review model) | — |
RSD-frappecrm-30f4250a52Admin 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] | low | open | held 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
- log index 3757330780 · transparency-log entry
- log index 3757333571 · transparency-log entry
- 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
- 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| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-frappecrm-v1.90.0-CE-ubuntu24.04-r3.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r3/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside 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 | beside 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.sigstore | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r3/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/frappecrm/v1.90.0-CE-ubuntu24.04-r3/), 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) | 574 |
chains | sadb, ReadyStack's engine database (not published) | 891 |
defects | sadb, ReadyStack's engine database (not published) | frappecrm v1.90.0-CE-ubuntu24.04-r3 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 891 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 891 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 891 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 891 |
release_images | sadb, ReadyStack's engine database (not published) | frappecrm v1.90.0-CE-ubuntu24.04-r3 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 891 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 891 |
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) | — |