Coder v2.39.0-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/coder:v2.39.0-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/coder:v2.39.0-CE-ubuntu24.04-r2 - Index digestsha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5
- linux/amd64 digestsha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64
- Archive
ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now617f99dfa3426c373e55c5b13e1466e7c36e68167dbca04b5c6413240aac1594
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-11T08:17:33Z 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-coder-v2.39.0-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductCoder (coder) [MANIFEST.json]
- Release tagv2.39.0-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/coder:v2.39.0-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz (bytes 985039011) [MANIFEST.json]
- Archive sha256 at publish9f9da8d4a10efe893379db1870ab9dabe55b2bf5053152be58e4c61273f22ae2 [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/coder/coder [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv2.39.0 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit8d897357dd61b3c564463356fdba40c64658e6e7 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash613869759691244f624021286a3aa912ec22f232d7b88d4806ac104e29b1d4fc (files 12858) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:bf8fd7dffe941425dc7d07e93d07080e8a5d7efd609c81b2bf0f054a7a29747e [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794380449 (utc 2026-11-11T07:00:49Z) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.26.11-bookworm@sha256:dc40a13b61304647ed7e5d581d246b86413dfc29d63c6d018310feb93cd98fc0 · platform digest sha256:79ecd0a7157c7a4cf3b281ced8465350591bf54fedab540e75374a003e1fde7e
- ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit 8ff362fa42dca5575ef92fdd7601d43149a85f02 · dirty yes · first drive 4268
- commit 7f59566f2ae65f85cbb2d38b9576654acd74c34e · dirty yes · first drive 4272
Why this release exists
Fully recorded- Chain961 (created 2026-11-11T07:02:48Z · trigger customer_request · upstream version v2.39.0) [chains, chains #961]
- Requestbuild request #641 (rebuild) (requested at 2026-11-11T07:00:51Z · requested by kitforge-agent · version v2.39.0) [build_requests, build_requests #641]
- Reasonrerelease agenda REVISION -> v2.39.0-CE-ubuntu24.04-r2 (decay loop, IMP-08) [build_requests, build_requests #641 request_reason]
- Supersedesreadystack/coder:v2.39.0-CE-ubuntu24.04-r1 (chain 899) [chains, chains #899]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 961 release · ready_to_ship
Created 2026-11-11T07:02:48Z, upstream v2.39.0, build request 641 [chains, chains #961]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4268 | 2026-11-11T07:03:48Z | 44.7 | build host 3 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #4268] |
| 4272 | 2026-11-11T08:05:58Z | — | build host 3 publish-held | not recorded [drive_runs, drive_runs #4272] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-11T07:03:59Z | 2026-11-11T07:04:00Z | 1 | 4
|
order_json 0111ac248adc… |
acquire |
2026-11-11T07:04:12Z | 2026-11-11T07:04:14Z | 1 | 12
|
source_tree f07a865390d3…license_file 8486a10c4393…custody_inputs 15abf6039dc8…source_tree_hash c0710ef7ba58…source_file_manifest 2e5882adff2d… |
plan |
2026-11-11T07:05:00Z | 2026-11-11T07:05:00Z | 1 | 10
|
recon_report bd89a05f0c56…input_pin_plan c584d0ddeead…toolchain_lock 79c07e167f70… |
assemble_kit |
2026-11-11T07:18:22Z | 2026-11-11T07:18:23Z | 1 | 27
|
dockerfile 0fd02bafc037…build_recipe 1ecaaaed4303…system_pinning 5d069a5705dc…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 7989657a51c3…verify_offline_sh 3e8184ea230c…base_image_digests e5c2364308a6…dockerfile_offline 0fd02bafc037…first_build_digest ff38b25c268b… |
remediate |
2026-11-11T07:19:14Z | 2026-11-11T07:19:15Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log 7caf4c85ecec…security_report 9eedc5430fe2… |
build_kit |
2026-11-11T07:29:58Z | 2026-11-11T07:29:59Z | 1 | 9
|
cosign_stamp b9f80e2d93b4…locked_digest 534db5056f6a…freeze_manifest 51abb456af60…offline_rebuild_transcript 7fdecc499ac2… |
verdict |
2026-11-11T07:31:15Z | 2026-11-11T07:31:15Z | 1 | 8
|
scout_verdict 26308fda0003… |
publish_image |
2026-11-11T07:32:02Z | 2026-11-11T07:32:03Z | 1 | 7
|
hub_readme ab273fe1967b…promotion_record 45d60175e62a… |
boot_instance |
2026-11-11T07:32:22Z | 2026-11-11T07:32:25Z | 2 | 3
|
instance_handle 89c5d1f07c84… |
sbom |
2026-11-11T07:32:44Z | 2026-11-11T07:32:45Z | 1 | 5
|
sbom_md 20203673e634…sbom_json 647b1feb33ac… |
schema_discovery |
2026-11-11T07:32:47Z | 2026-11-11T07:32:48Z | 1 | 7
|
schema_hash 84d6a2346922…dependency_tree 9b4a46907a93…table_classification 2a94f7936568… |
admin_handbook |
2026-11-11T07:32:56Z | 2026-11-11T07:32:56Z | 1 | 7
|
api_map c7f842b541c8…admin_handbook 4024dd7c6ff9… |
db_handbook |
2026-11-11T07:33:05Z | 2026-11-11T07:33:06Z | 1 | 8
|
db_handbook 06f890a66aec…seed_isolation 70eb8a0244c4… |
seed_data |
2026-11-11T07:33:12Z | 2026-11-11T07:33:12Z | 1 | 6
|
seed_data_sql 8de0c954c863…seed_cases_json 47176c65220d… |
seed_validate |
2026-11-11T07:33:15Z | 2026-11-11T07:33:16Z | 1 | 3
|
seed_data_contract 72c50cb7d47c… |
usecase_validate |
2026-11-11T07:33:33Z | 2026-11-11T07:33:34Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests e3c1778806b6…test_results 0ebc38e4f34d…usecase_contract 59e7a2c14c54… |
finalize_docs |
2026-11-11T07:33:38Z | 2026-11-11T07:33:39Z | 1 | 9
|
defects_json 78c58ac0c712…release_notes d1b2c8797318…api_integration_guide e9012a50e3fe… |
package_archive invalidated 2026-11-11T08:05:10Z |
2026-11-11T07:48:29Z | 2026-11-11T07:48:32Z | 1 | 35 (final gate PASS)
|
sale_tar 0a39a2a9e2ac…checksums 2279e25cff71…verify_md 2cfb838332d8…rebuild_md 4ffb0b66f337…manifest_txt 1c5c35e81e9c…actions_jsonl 2d9c4e7c6533…provenance_md 19ac0cb96d3d…assetchain_log_md e9eccaec0c0f…assetchain_log_json 234dd6ec35c6… |
[stage_runs]
Rewinds
- 2026-11-11T08:05:10Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #31392]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-11T07:48:32Z.
5 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 12604 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 16348 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1583 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.38 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-11T07:49:33Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1740] | $0.38 | 3 rounds, $40.00 | 0a39a2a9e2ac… |
Defects
Fully recorded- Ledger entries6 [defects, defects where product_slug=coder and this tag or chain]
- Disclosed in the archive5 [docs/defects/defects.json, entries]
6 ledger entries: by severity low 4, high 1, medium 1; by status wont-fix-by-design 1, open 4, fixed-in-release 1.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-coder-0060cdbb2cEnterprise / non-open-source components are removed from the source before the build: enterprise, LICENSE.enterprise [defects, defects #248803] | low | wont-fix-by-design | build strategy record | — |
RSD-coder-f4f84e7225First visitor can claim the administrator account until setup is completed [defects, defects #248804] | high | open | build strategy record | — |
RSD-coder-88593e80e4CVE-2026-123158 in openssh-client 1:9.6p1-3ubuntu13.20 is on CISA's Known Exploited Vulnerabilities list [defects, defects #248805] | medium | open | image scan | — |
RSD-coder-6dcd2ebcc6Docker Hub README: Round-1/2 price contradiction still stands (also line 15 'free with an account'): the MANIFEST prices the kit at $10 and says the release is not free. [defects, defects #248806] | low | open | held review (review model) | — |
RSD-coder-f3c4e6f922Admin handbook: Wrong error text: users/first does not answer 'Internal error.' when the database is down. [defects, defects #249095] | low | fixed-in-release | held review (review model) | v2.39.0-CE-ubuntu24.04-r2 |
RSD-coder-aa079e7564Database handbook: The TLS paragraph lists the variables but not that the files must be mounted and readable by uid 999 (the Admin Handbook's Optional HTTPS says so); a customer with a mode-600 key owned by another… [defects, defects #249096] | low | open | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 · published digest sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 289) [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, 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-11T08:06:27Z · failing Docker Scout counts 106 packages with copyleft licences (GPL, LGPL, MPL), all 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-11T08:06:11Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3805410682 · transparency-log entry
- log index 3805412158 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3806113062 · transparency-log entry · integrated 2026-11-11T08:15:29Z) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5 · state attached · log index 3806119801 · transparency-log entry
- kind sbom · digest sha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5 · state attached · log index 3806121751 · transparency-log entry
- kind vsa · digest sha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5 · state attached · log index 3806123785 · transparency-log entry
- kind provenance · digest sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 · state attached · log index 3806125600 · transparency-log entry
- kind sbom · digest sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 · state attached · log index 3806126853 · transparency-log entry
- kind vsa · digest sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 · state attached · log index 3806128406 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/coder/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-11T07:49:40Z on build host 3 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:fa6c3b1161e38eb49487703b8ba4b60d8d88bf4febe7200551e1136f0ab0ec64 [clean-room rebuild ledger, runs[745]]
- 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-11T07:32:03Z [stage_runs, stage_runs chain 961 stage publish_image]
- Archive manifests written2026-11-11T08:11:52Z [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 830 · probed 2026-11-11T07:24:45Z · source build_kit) [release_images, isa_level_hard]
History
3 events- 2026-11-11T08:17:33Z generated: by KitForge release/build_trail.py · generator commit 1f76800133d462c9f58a282b5f9153f473942968
- 2026-11-11T08:19:56Z publication: promoted at 2026-11-11T08:18:15Z · promoted digest sha256:f130c67c662984f9f57b7fc6f66aa6639f556c247cea400c36edb217ff8900d5 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 469 · checklist status complete · checklist at 2026-11-11T08:19:56Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
- 2026-11-11T23:30:04Z repack: previous sha256 9f9da8d4a10efe893379db1870ab9dabe55b2bf5053152be58e4c61273f22ae2 · sha256 617f99dfa3426c373e55c5b13e1466e7c36e68167dbca04b5c6413240aac1594 · reason customer kit files brought up to the current engine: BUILD_OFFLINE.sh (kit root, docs/offline, docs/docker); README.md and FILE_MODES.tsv at the archive root (release/kit_unpack.py), BUILD_OFFLINE.sh putting back the packed file modes, REBUILD.md unpacking with -p and keeping the key and signature outside the kit, and the verifier naming what differs; not image inputs; image and every build input unchanged · label kitfix · replaced BUILD_OFFLINE.sh, docs/REBUILD.md, docs/docker/BUILD_OFFLINE.sh, docs/offline/BUILD_OFFLINE.sh, docs/rebuild-bundle/rebuild_bundle.py · added FILE_MODES.tsv, README.md · record MANIFEST.json repack_history
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/coder/v2.39.0-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) | 641 |
chains | sadb, ReadyStack's engine database (not published) | 961 |
defects | sadb, ReadyStack's engine database (not published) | coder v2.39.0-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 961 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 961 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 961 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 961 |
release_images | sadb, ReadyStack's engine database (not published) | coder v2.39.0-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 961 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 961 |
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) | — |