Coder v2.39.0-CE-ubuntu24.04-r1 build trail

How ReadyStack built readystack/coder:v2.39.0-CE-ubuntu24.04-r1 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/coder:v2.39.0-CE-ubuntu24.04-r1
  • Index digestsha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e
  • linux/amd64 digestsha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac
  • ArchiveReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz
  • Archive SHA-256 nowc58e7e90b882312af969e7776b86962844dbc207cece3f55dc643d812d523784
  • Pins recorddocs/PINS.md, docs/provenance/PINS.json in the archive (since generated)
  • Generated2026-11-09T20:06:00Z 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-r1.trail.json.sigstore ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.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-r1 [MANIFEST.json]
  • Imagereadystack/coder:v2.39.0-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Image index digestsha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz (bytes 983105859) [MANIFEST.json]
  • Archive sha256 at publishc58e7e90b882312af969e7776b86962844dbc207cece3f55dc643d812d523784 [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:142158bebfc06996ef75d64c8aea251d0d8bee702f744b0a18545b949280c21c [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1793704648 (utc 2026-11-03T11:17:28Z) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af · platform digest sha256:88750ccdd0f2a77fcc00a14b1a48d6409bd8ddb5d7c2dd6ec0b4a2e916daf9d9
    • ref ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
    [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json, engine]
  • Engine commit(s)
    • commit 0ce62a3a548f16cde73a6e8600cacfdd38930d4d · dirty yes · first drive 3872
    • commit 3129b4dca8b836efd047cb995ff6df15301a7ff6 · dirty yes · first drive 3957
    • commit 5d0ff967b304c4cd787659a1843c76de2a7e8063 · dirty yes · first drive 4091
    • commit 10982cf25e2cf6f07b769d1049f3d19c062fb1f9 · dirty yes · first drive 4101
    • commit f6b63223855de8122a091d366a851068149a517f · dirty yes · first drive 4110
    [drive_runs, engine_sha]

Why this release exists

Fully recorded
  • Chain899 (created 2026-11-08T20:13:58Z · trigger customer_request · upstream version v2.39.0) [chains, chains #899]
  • Requestbuild request #591 (rebuild) (requested at 2026-11-08T15:09:00Z · requested by kitforge-agent · version v2.39.0) [build_requests, build_requests #591]
  • Reasonretarget to v2.39.0: a newer upstream release (rule 1) [build_requests, build_requests #591 request_reason]
  • Supersedesreadystack/coder:v2.38.3-CE-ubuntu24.04-r3 (chain 887) [chains, chains #887]

The path through the harness

Fully recorded

1 chain · 5 drives · 18 stages · 3 rewinds

Chain 899 release · ready_to_ship

Created 2026-11-08T20:13:58Z, upstream v2.39.0, build request 591 [chains, chains #899]

DriveStartedMinutesBuild hostHow it stopped
38722026-11-08T20:14:49Z64.1build host 1 withhold-publish stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #3872]
39572026-11-09T05:09:57Z17.1build host 1 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #3957]
40912026-11-09T18:29:08Z10.4build host 1 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4091]
41012026-11-09T19:18:14Z9.4build host 1 withhold-publish ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4101]
41102026-11-09T19:54:49Z—build host 1 publish-held not recorded [drive_runs, drive_runs #4110]

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-11-08T20:15:00Z2026-11-08T20:15:01Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
order_json ab4f0665865b…
acquire 2026-11-08T20:15:12Z2026-11-08T20:15:14Z1
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 f07a865390d3…
license_file 8486a10c4393…
custody_inputs 15abf6039dc8…
source_tree_hash c0710ef7ba58…
source_file_manifest 2e5882adff2d…
plan 2026-11-08T20:15:57Z2026-11-08T20:15:58Z1
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 f877b17f62ce…
input_pin_plan 1f2c94647a83…
toolchain_lock 26d26fd9eb19…
assemble_kit 2026-11-08T20:28:53Z2026-11-08T20:28:54Z1
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 c18036395a0a…
build_recipe e31ea406b378…
system_pinning 5d069a5705dc…
build_offline_sh 6633aa31b6b4…
generate_sbom_sh ce0f1e6f1e70…
first_boot_health 706761ca1665…
verify_offline_sh 3e8184ea230c…
base_image_digests 5b86187c32ea…
dockerfile_offline c18036395a0a…
first_build_digest 6568807894bc…
remediate 2026-11-08T20:29:46Z2026-11-08T20:29:47Z1
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 b8e1d9ae9e31…
security_report 64a8c1e8f344…
build_kit 2026-11-08T20:39:52Z2026-11-08T20:39:53Z1
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 c68a26d5780d…
locked_digest 63a122eefa8f…
freeze_manifest f1b74809de98…
offline_rebuild_transcript 637960b51097…
verdict 2026-11-08T20:41:07Z2026-11-08T20:41:08Z1
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 c7021708fc64…
publish_image 2026-11-08T20:41:53Z2026-11-08T20:41:54Z1
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 fe2a88c7d1a7…
promotion_record 4320f01103cd…
boot_instance 2026-11-08T20:42:14Z2026-11-08T20:42:18Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
instance_handle f363d40fab9c…
sbom 2026-11-08T20:42:36Z2026-11-08T20:42:36Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
sbom_md 2b66c67a21d7…
sbom_json a3a961e2ef8f…
schema_discovery 2026-11-08T20:42:39Z2026-11-08T20:42:40Z1
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 84d6a2346922…
dependency_tree 9b4a46907a93…
table_classification 2a94f7936568…
admin_handbook 2026-11-08T20:57:07Z2026-11-08T20:57:08Z1
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 c7f842b541c8…
admin_handbook 879559038fa4…
db_handbook 2026-11-08T21:07:00Z2026-11-08T21:07:00Z1
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 f081c0bd6561…
seed_isolation 70eb8a0244c4…
seed_data 2026-11-08T21:07:06Z2026-11-08T21:07:07Z1
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 8de0c954c863…
seed_cases_json 419456d0fc4c…
seed_validate 2026-11-08T21:07:09Z2026-11-08T21:07:10Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
seed_data_contract a87f45892abe…
usecase_validate 2026-11-08T21:07:25Z2026-11-08T21:07:26Z1
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 7464b9a4913a…
test_results ac975c67fea8…
usecase_contract 9b060052eb63…
finalize_docs 2026-11-08T21:07:31Z2026-11-08T21:07:32Z1
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 afa0b376952c…
release_notes 41c8fdc33fe0…
api_integration_guide d1dfc44a6dfe…
package_archive invalidated 2026-11-09T19:54:22Z 2026-11-08T21:18:56Z2026-11-09T19:27:37Z4
35 (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 scout_grade_a
  • G8 script_copies
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 trademark_shipped
  • G8 assetchain_coverage
sale_tar 6dbd8a2a0ca9…
checksums 38d1aebbb63d…
verify_md 2c974c755e22…
rebuild_md 520d0c3ba254…
manifest_txt ffb7ba54e084…
actions_jsonl 829c54aa2cac…
provenance_md 185541173413…
assetchain_log_md e9eccaec0c0f…
assetchain_log_json fd6d041855e5…

[stage_runs]

Rewinds

  • 2026-11-09T06:27:38Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #28104]
  • 2026-11-09T19:16:57Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29677]
  • 2026-11-09T19:54:22Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #29789]

Model work per stage

Fully recorded

Role: writer model. Calls up to 2026-11-09T19:27:37Z.

166 calls over 5 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 012132 —
remediate2001 016198 L-A08, L-038, L-036, L-034, L-032
admin_handbook1025203 21993301 —
db_handbook592503 5483915 —
usecase_validate1001 01573 —

[micro_step_runs] [lesson_recalls]

Review

Fully recorded

Role: review model.

3 rounds, 3 counted, $5.53 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-11-09T05:28:12Z 059 findings to repackage [held_rounds, held_rounds #1588] $1.99 3 rounds, $40.00 da24b11a3bbd…
22026-11-09T18:40:00Z 048 findings to repackage [held_rounds, held_rounds #1662] $1.92 3 rounds, $40.00 90be8c121965…
32026-11-09T19:28:07Z 003 clean to publish [held_rounds, held_rounds #1667] $1.62 3 rounds, $40.00 6dbd8a2a0ca9…

Defects

Fully recorded
  • Ledger entries30 [defects, defects where product_slug=coder and this tag or chain]
  • Disclosed in the archive30 [docs/defects/defects.json, entries]

30 ledger entries: by severity low 20, high 10; by status wont-fix-by-design 1, open 2, fixed-before-release 27.

DefectSeverityStatusFound byFixed in
RSD-coder-66a6db1996
Enterprise / non-open-source components are removed from the source before the build: enterprise, LICENSE.enterprise [defects, defects #185029]
lowwont-fix-by-designbuild strategy record—
RSD-coder-97fce325bb
First visitor can claim the administrator account until setup is completed [defects, defects #185030]
highopenbuild strategy record—
RSD-coder-822bf41b78
Admin handbook: Readiness advice contradicts measured behaviour and other sections: buildinfo is not a database check. [defects, defects #197928]
highfixed-before-releaseheld review (review model)—
RSD-coder-db5809a69b
Admin handbook: buildinfo is unauthenticated and does not check the database, yet it is offered as a database-readiness check. [defects, defects #197929]
highfixed-before-releaseheld review (review model)—
RSD-coder-8d3912f619
Admin handbook: Same buildinfo-as-readiness class; the preceding sentence says healthz does not verify the database, implying buildinfo does. [defects, defects #197930]
highfixed-before-releaseheld review (review model)—
RSD-coder-5ec9d822b4
Database handbook: Readiness instruction followed by GET /api/v2/buildinfo contradicts the handbook's Health Checking section and measured behaviour. [defects, defects #197931]
highfixed-before-releaseheld review (review model)—
RSD-coder-fc29b7ff49
Database handbook: Listed under 'The image sets these environment variables' but the image does not set it. [defects, defects #197932]
highfixed-before-releaseheld review (review model)—
RSD-coder-bdb9a39c70
Admin handbook: The log line the customer is told to look for does not exist. [defects, defects #197933]
lowfixed-before-releaseheld review (review model)—
RSD-coder-634724d811
Admin handbook: Cross-section contradiction: -Fc is not the pg_dump default. [defects, defects #197934]
lowfixed-before-releaseheld review (review model)—
RSD-coder-dd72bed5e2
Admin handbook: reset-password does validate strength. [defects, defects #197935]
lowfixed-before-releaseheld review (review model)—
RSD-coder-78eda96ee5
Admin handbook: The two messages differ; 'the same message' is wrong and contradicts the Operating facts. [defects, defects #197936]
lowfixed-before-releaseheld review (review model)—
RSD-coder-cb76b4564c
Admin handbook: Contradicts the encoding rule in every other section. [defects, defects #197937]
lowfixed-before-releaseheld review (review model)—
RSD-coder-6279798e87
Admin handbook: 'identical' is false; the limitation appears only in the DB handbook. [defects, defects #197938]
lowfixed-before-releaseheld review (review model)—
RSD-coder-3323849043
Admin handbook: Organization-level role claim is not what the command does. [defects, defects #197939]
lowfixed-before-releaseheld review (review model)—
RSD-coder-c50fb839af
Database handbook: Unsupported claim about how owner privileges are granted. [defects, defects #197940]
lowfixed-before-releaseheld review (review model)—
RSD-coder-da77259f4d
Docker 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 #197941]
lowopenheld review (review model)—
RSD-coder-ac2cde4f6b
Admin handbook: Same buildinfo-as-readiness class as round 1: ADMIN_HANDBOOK.md:659 says buildinfo 'does not touch the database'. [defects, defects #222733]
highfixed-before-releaseheld review (review model)—
RSD-coder-e529cc808b
Admin handbook: In the rewritten section 'Starting and Stopping the Container': 'Alternatively' offers buildinfo as a second way 'to confirm that the database is reachable', while the same sentence says it answers… [defects, defects #222734]
highfixed-before-releaseheld review (review model)—
RSD-coder-1161366d6e
Admin handbook: Ran the image with CODER_PG_CONNECTION_URL pointing at an unresolvable host: the first log line is 'Started HTTP listener at http://0.0.0.0:3000', followed by 11 'ping postgres: retrying' warnings… [defects, defects #222735]
highfixed-before-releaseheld review (review model)—
RSD-coder-704e13ef71
Admin handbook: Measured with an unreachable database: for 30 s `curl -m3 localhost:3001/healthz` timed out (curl exit 28, connection accepted, 0 bytes) and only then, after the container exited, was refused (exit… [defects, defects #222736]
lowfixed-before-releaseheld review (review model)—
RSD-coder-e612a27eef
Admin handbook: Ran the Optional HTTPS procedure with a freshly generated key (mode 600, owner uid 1000) mounted at /tls: server exits with 'configure tls: load certificates: load TLS key pair 0 ("/tls/cert.pem",… [defects, defects #222737]
highfixed-before-releaseheld review (review model)—
RSD-coder-85c9f887c2
Admin handbook: Rewritten section contradicts itself: the next paragraph says docker stop followed by docker start preserves data. [defects, defects #222738]
lowfixed-before-releaseheld review (review model)—
RSD-coder-c56336ebc1
Admin handbook: Follows the create-admin-user command. [defects, defects #222739]
lowfixed-before-releaseheld review (review model)—
RSD-coder-dbb5e2810e
Admin handbook: Ran coder reset-password with raw characters in CODER_PG_CONNECTION_URL: 'a%zzb' -> 'invalid URL escape "%zz"'; 'a?b' -> 'invalid port ":a" after host'; 'a^b' -> 'net/url: invalid userinfo'. [defects, defects #222740]
lowfixed-before-releaseheld review (review model)—
RSD-coder-350545089e
Admin handbook: Contradicts the Operating facts ('On every start of a fresh container ... [defects, defects #222741]
lowfixed-before-releaseheld review (review model)—
RSD-coder-175bc4eeaa
Admin handbook: IMAGE_BINARIES.txt lists `coder`; `coder version` is in the Live Verification appendix and every procedure here runs `docker exec coder coder ...`. [defects, defects #222742]
lowfixed-before-releaseheld review (review model)—
RSD-coder-cd65eebb3d
Database handbook: Same as ADMIN_HANDBOOK.md:1820: `coder` is on PATH (IMAGE_BINARIES.txt) and used by every documented procedure; only the /bin/coder-linux-amd64 download is absent (404). [defects, defects #222743]
lowfixed-before-releaseheld review (review model)—
RSD-coder-7c0a47d71f
Docker Hub README: Round-1 price contradiction still stands: this line and line 97 ('a free download for any registered account') vs bundle/MANIFEST.json chain_price_cents 1000, free_release false,… [defects, defects #222744]
lowfixed-before-releaseheld review (review model)—
RSD-coder-9c8a928bdd
Admin handbook: Wrong error text: users/first does not answer 'Internal error.' when the database is down. [defects, defects #224294]
lowfixed-before-releaseheld review (review model)—
RSD-coder-114beabfb5
Database 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 #224295]
lowfixed-before-releaseheld review (review model)—

Verification

1 item not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac · published digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 271) [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-09T19:55:17Z · 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-09T19:55:03Z) [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 3769362206 · transparency-log entry · integrated 2026-11-09T20:03:59Z) [ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e · state attached · log index 3769364864 · transparency-log entry
    • kind sbom · digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e · state attached · log index 3769366225 · transparency-log entry
    • kind vsa · digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e · state attached · log index 3769367857 · transparency-log entry
    • kind provenance · digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac · state attached · log index 3769370042 · transparency-log entry
    • kind sbom · digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac · state attached · log index 3769372092 · transparency-log entry
    • kind vsa · digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac · state attached · log index 3769374429 · transparency-log entry
    (at 2026-11-09T20:04:00Z) [attestations.json, results]
  • 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-09T05:28:24Z on build host 1 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac [clean-room rebuild ledger, runs[686]]
  • 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-08T20:41:54Z [stage_runs, stage_runs chain 899 stage publish_image]
  • Archive manifests written2026-11-09T20:00:09Z [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-09T18:38:40Z · source g8) [release_images, isa_level_hard]

History

2 events
  • 2026-11-09T20:06:00Z generated: by KitForge release/build_trail.py · generator commit f6b63223855de8122a091d366a851068149a517f
  • 2026-11-09T20:08:17Z publication: promoted at 2026-11-09T20:06:42Z · promoted digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 435 · checklist status complete · checklist at 2026-11-09T20:08:17Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json

Records

25 records
RecordWhere it isRows
docs/defects/defects.jsoninside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/PINS.jsoninside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.tar.gz)—
MANIFEST.jsonbeside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r1/), as staged for publishing—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.jsonbeside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r1/), as staged for publishing—
ReadyStack-coder-v2.39.0-CE-ubuntu24.04-r1.rebuild.json.sigstorebeside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r1/), as staged for publishing—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/coder/v2.39.0-CE-ubuntu24.04-r1/), 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)591
chainssadb, ReadyStack's engine database (not published)899
defectssadb, ReadyStack's engine database (not published)coder v2.39.0-CE-ubuntu24.04-r1
drive_runssadb, ReadyStack's engine database (not published)chain 899
held_roundssadb, ReadyStack's engine database (not published)chain 899
lesson_recallssadb, ReadyStack's engine database (not published)chain 899
micro_step_runssadb, ReadyStack's engine database (not published)chain 899
release_imagessadb, ReadyStack's engine database (not published)coder v2.39.0-CE-ubuntu24.04-r1
stage_eventssadb, ReadyStack's engine database (not published)chain 899
stage_runssadb, ReadyStack's engine database (not published)chain 899
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)—