changedetection.io 0.60.10-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/changedetection:0.60.10-CE-ubuntu24.04-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- Image
readystack/changedetection:0.60.10-CE-ubuntu24.04-r2 - Index digestsha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c
- linux/amd64 digestsha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc
- Archive
ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now84a90220e1ca9ea5868114ce2097fc2234c938ee4433bd80d7c26359fb756d38
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-08T13:32:25Z 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-changedetection-0.60.10-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- Productchangedetection.io (changedetection) [MANIFEST.json]
- Release tag0.60.10-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/changedetection:0.60.10-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc [ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz (bytes 426970350) [MANIFEST.json]
- Archive sha256 at publish84a90220e1ca9ea5868114ce2097fc2234c938ee4433bd80d7c26359fb756d38 [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/dgtlmoon/changedetection.io [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream ref0.60.10 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit16974bf351cd68b1978af9494082b75efadaa8e0 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashf45413f0584911392b7aae2cff7d933ce697c000566cabb4b87d72192731af38 (files 1175) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:d62f7a90b4a347df12cc2bc87b75bbbcc634278f852726b0545863d0c5305939 [ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1793015953 (utc 2026-10-26T11:59:13Z) [ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.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-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit 6a0c6c5f7eda9bf939476cbe90b2b4c99cba667b · dirty yes · first drive 3800
- commit 43614f6e1c70e630532585a5268e240cff598e0d · dirty yes · first drive 3810
Why this release exists
Fully recorded- Chain799 (created 2026-10-30T16:53:20Z · trigger customer_request · upstream version 0.60.10) [chains, chains #799]
- Requestbuild request #478 (rebuild) (requested at 2026-10-30T10:00:56Z · requested by kitforge-agent · version 0.60.10) [build_requests, build_requests #478]
- Reasonrerelease agenda REVISION -> 0.60.10-CE-ubuntu24.04-r2 (decay loop, IMP-08) [build_requests, build_requests #478 request_reason]
- Supersedesreadystack/changedetection:0.60.10-CE-ubuntu24.04-r1 (chain 709) [chains, chains #709]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 799 release · ready_to_ship
Created 2026-10-30T16:53:20Z, upstream 0.60.10, build request 478 [chains, chains #799]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3800 | 2026-11-08T12:36:13Z | 37 | build host 4 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #3800] |
| 3810 | 2026-11-08T13:25:19Z | — | build host 4 publish-held | not recorded [drive_runs, drive_runs #3810] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T12:36:28Z | 2026-11-08T12:36:29Z | 1 | 4
|
order_json a532149c2cee… |
acquire |
2026-11-08T12:36:35Z | 2026-11-08T12:36:36Z | 1 | 12
|
source_tree 948a9b3a0b78…license_file 94819497b44f…custody_inputs c20683d1e565…source_tree_hash 7be1943bfc38…source_file_manifest 6e916fd916bc… |
plan |
2026-11-08T12:37:09Z | 2026-11-08T12:37:09Z | 1 | 10
|
recon_report 3161cc670d7b…input_pin_plan 6fd8c509d0e1…toolchain_lock 3a535bc52a09… |
assemble_kit |
2026-11-08T12:46:40Z | 2026-11-08T12:46:41Z | 1 | 27
|
dockerfile b1b065d1cdbc…build_recipe 7ee1bdef936d…system_pinning 5c8a2c451455…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health e42668ba898c…verify_offline_sh 3e8184ea230c…base_image_digests 0a5c9a05a950…dockerfile_offline b1b065d1cdbc…first_build_digest c2e876a97063… |
remediate |
2026-11-08T12:47:14Z | 2026-11-08T12:47:15Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 7368c15fdbd4…security_report 3fbad2e3c327… |
build_kit |
2026-11-08T12:57:54Z | 2026-11-08T12:57:55Z | 1 | 9
|
cosign_stamp 6a59b58fdeb0…locked_digest 3a22bd4d8858…freeze_manifest 35bb04880773…offline_rebuild_transcript e6729e966340… |
verdict |
2026-11-08T13:00:23Z | 2026-11-08T13:00:24Z | 1 | 8
|
scout_verdict 1cd73759b32e… |
publish_image |
2026-11-08T13:01:47Z | 2026-11-08T13:01:48Z | 1 | 7
|
hub_readme d3ba61dd649a…promotion_record db57b4cc3ce7… |
boot_instance |
2026-11-08T13:02:00Z | 2026-11-08T13:02:03Z | 2 | 3
|
instance_handle 6867ac978c68… |
sbom |
2026-11-08T13:02:31Z | 2026-11-08T13:02:32Z | 1 | 5
|
sbom_md e70788a9524d…sbom_json 187a9d2327ed… |
schema_discovery |
2026-11-08T13:02:35Z | 2026-11-08T13:02:36Z | 1 | 7
|
schema_hash fa672ec95cc1…dependency_tree 7d1216fd66fa…table_classification 9bf4cfc2104b… |
admin_handbook |
2026-11-08T13:02:44Z | 2026-11-08T13:02:45Z | 1 | 7
|
api_map d7c0e1a3fd57…admin_handbook 267efbba1cc3… |
db_handbook |
2026-11-08T13:02:54Z | 2026-11-08T13:02:55Z | 1 | 8
|
db_handbook 104cd004cd15…seed_isolation e3137cd57d42… |
seed_data |
2026-11-08T13:03:01Z | 2026-11-08T13:03:02Z | 1 | 6
|
seed_data_sql 0d95f40a2a91…seed_cases_json c88a430e8def… |
seed_validate |
2026-11-08T13:03:05Z | 2026-11-08T13:03:06Z | 1 | 3
|
seed_data_contract 5c161703248b… |
usecase_validate |
2026-11-08T13:03:22Z | 2026-11-08T13:03:23Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests b7db484e1e7d…test_results 6db3d52449af…usecase_contract 2d7ee927a364… |
finalize_docs |
2026-11-08T13:03:29Z | 2026-11-08T13:03:30Z | 1 | 9
|
defects_json ad329cf1ef4a…release_notes d0123a7e5494…api_integration_guide 1ed54889e67b… |
package_archive invalidated 2026-11-08T13:24:52Z |
2026-11-08T13:13:12Z | 2026-11-08T13:13:14Z | 1 | 34 (final gate PASS)
|
sale_tar a297bcd53f96…checksums e36a8d59f22f…verify_md 4c7595d5e584…rebuild_md c990255e557d…manifest_txt bce7e2aa022a…actions_jsonl d41d902acc5c…provenance_md b067c2a876cf…assetchain_log_md e9eccaec0c0f…assetchain_log_json a24f944db382… |
[stage_runs]
Rewinds
- 2026-11-08T13:24:52Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26363]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-08T13:13:14Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 8057 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 10622 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1579 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.49 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-08T13:14:02Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1513] | $0.49 | 3 rounds, $40.00 | a297bcd53f96… |
Defects
Fully recorded- Ledger entries3 [defects, defects where product_slug=changedetection and this tag or chain]
- Disclosed in the archive3 [docs/defects/defects.json, entries]
3 ledger entries: by severity high 1, low 2; by status open 3.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-changedetection-ff88b9957cUnauthenticated access by default [defects, defects #177332] | high | open | build strategy record | — |
RSD-changedetection-e75e55296fThe Fetch Method choice offers WebDriver Chrome/Javascript, but the image lacks the Python imaging library (PIL) that fetcher needs: a watch set to it fails every check with `No module named 'PIL'` [defects, defects #177333] | low | open | held review (review model) | — |
RSD-changedetection-1559b2508eThe image sets LC_ALL=en_US.UTF-8 but contains no en_US.UTF-8 locale (only C, C.utf8 and POSIX), so the setting has no effect and every start logs a locale warning [defects, defects #177334] | low | open | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc · published digest sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 269) [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-08T13:26:05Z · failing Docker Scout counts 120 packages with copyleft licences (EPL, GPL, LGPL, MPL), 116 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-08T13:25:29Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3755629192 · transparency-log entry
- log index 3755631495 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3755880602 · transparency-log entry · integrated 2026-11-08T13:31:07Z) [ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c · state attached · log index 3755880685 · transparency-log entry
- kind sbom · digest sha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c · state attached · log index 3755880799 · transparency-log entry
- kind vsa · digest sha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c · state attached · log index 3755880897 · transparency-log entry
- kind provenance · digest sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc · state attached · log index 3755881002 · transparency-log entry
- kind sbom · digest sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc · state attached · log index 3755881148 · transparency-log entry
- kind vsa · digest sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc · state attached · log index 3755881381 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/changedetection/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-08T13:14:06Z on build host 4 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:e2281cebda4f315b8e897f0ca574338bd3d476f929a41bcdf071f6a8536eadfc [clean-room rebuild ledger, runs[651]]
- 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-08T13:01:48Z [stage_runs, stage_runs chain 799 stage publish_image]
- Archive manifests written2026-11-08T13:27:54Z [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 993 · probed 2026-11-08T12:53:11Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-08T13:32:25Z generated: by KitForge release/build_trail.py · generator commit 43614f6e1c70e630532585a5268e240cff598e0d
- 2026-11-08T13:34:12Z publication: promoted at 2026-11-08T13:32:55Z · promoted digest sha256:9523c8becd69d754c8087566a3481222bf13a31a721caf5e806f7234e5b3aa7c · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 374 · checklist status complete · checklist at 2026-11-08T13:34:12Z · 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-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/changedetection/0.60.10-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/changedetection/0.60.10-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/changedetection/0.60.10-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-changedetection-0.60.10-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/changedetection/0.60.10-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/changedetection/0.60.10-CE-ubuntu24.04-r2/), 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) | 478 |
chains | sadb, ReadyStack's engine database (not published) | 799 |
defects | sadb, ReadyStack's engine database (not published) | changedetection 0.60.10-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 799 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 799 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 799 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 799 |
release_images | sadb, ReadyStack's engine database (not published) | changedetection 0.60.10-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 799 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 799 |
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) | — |