Qdrant v1.20.0-CE-ubuntu24.04-r1 build trail

How ReadyStack built readystack/qdrant:v1.20.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/qdrant:v1.20.0-CE-ubuntu24.04-r1
  • Index digestsha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9
  • linux/amd64 digestsha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc
  • ArchiveReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz
  • Archive SHA-256 now501ee337c4f4df81cacfb4104388b1df6ea5d10b35667f064a9b7d8a59e94f30
  • Generated2026-11-02T23:33:35Z by KitForge release/build_trail.py
  • Sections9 sections, 4 fully recorded; 11 items 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-qdrant-v1.20.0-CE-ubuntu24.04-r1.trail.json.sigstore ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.trail.json

IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level

Identity

1 item not recorded
  • ProductQdrant (qdrant) [MANIFEST.json]
  • Release tagv1.20.0-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Imagereadystack/qdrant:v1.20.0-CE-ubuntu24.04-r1 [MANIFEST.json]
  • Image index digestsha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9 [docs/provenance/LOCKED_DIGEST.txt]
  • linux/amd64 image digestsha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json, subject.image_manifest_digest]
  • ArchiveReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz (bytes 957887528) [MANIFEST.json]
  • Archive sha256 at publishce262cc0713342fe319b3e1c1e5c6090f25c7da059756503120b863ac48c39c0 [MANIFEST.json, repack_history[0].previous_tarball_sha256]
  • Archive sha256 now501ee337c4f4df81cacfb4104388b1df6ea5d10b35667f064a9b7d8a59e94f30 [MANIFEST.json, tarball_sha256]
  • Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
  • Repack history
    • at 2026-11-01 · label kitfix · reason customer kit files brought up to the current engine: BUILD_OFFLINE.sh (kit root, docs/offline, docs/docker); the header of BUILD_OFFLINE.sh no longer says a --provenance rebuild meets a SLSA build level, comment lines only; not image inputs; image and every build input unchanged · previous sha256 ce262cc0713342fe319b3e1c1e5c6090f25c7da059756503120b863ac48c39c0 · sha256 501ee337c4f4df81cacfb4104388b1df6ea5d10b35667f064a9b7d8a59e94f30 · replaced BUILD_OFFLINE.sh, docs/docker/BUILD_OFFLINE.sh, docs/offline/BUILD_OFFLINE.sh, rebuild.json
    [MANIFEST.json, repack_history]
  • Upstream repositoryhttps://github.com/qdrant/qdrant [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream refv1.20.0 [docs/provenance/SOURCE_TREE_HASH.json]
  • Upstream commit222b2e44ab1c3f17e8246396ead6558e45041df7 [docs/provenance/SOURCE_TREE_HASH.json]
  • Source tree hashbc30416de080085f7fc15dc32f93166d53e4197246b8ba11c766383fb9df7f2a (files 2556) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
  • Kit tree hashsha256:2318dbd5541aa42e061cfff691c9c1d52d517841f46b8ed4f3d1f2b6935f3a2a [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json, inputs.tree_hash]
  • SOURCE_DATE_EPOCH1792604709 (utc 2026-10-21T17:45:09Z) [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json, inputs.source_date_epoch]
  • Base images
    • ref rust:1.98.1-bookworm@sha256:93ce27a88655056a51dbdd8f5f2d7ddc071c7b0070fb288a37b5a285fc83971e · platform digest sha256:c49256cbe5ea0188bc658a689500d70c41eb51f009a7a7be209caf60a944f3ec
    • ref ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
    [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json, bases]
  • BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json, engine]
  • Not recorded: the engine commit(s) that built it (drive_runs records them for drives from 2026-11-02; this release's drives were rebuilt from line logs, which do not name it)

Why this release exists

Fully recorded
  • Chain705 (created 2026-10-27T15:38:04Z · trigger customer_request · upstream version v1.20.0) [chains, chains #705]
  • Requestbuild request #382 (rebuild) (requested at 2026-10-27T04:35:06Z · requested by kitforge-agent · version v1.20.0) [build_requests, build_requests #382]
  • Reasonretarget to v1.20.0: a newer upstream release (rule 1) [build_requests, build_requests #382 request_reason]
  • Supersedesreadystack/qdrant:v1.19.2-CE-ubuntu24.04-r1 (chain 456) [chains, chains #456]

The path through the harness

2 items not recorded

1 chain · 5 drives · 18 stages · 4 rewinds

Chain 705 release · shipped

Created 2026-10-27T15:38:04Z, upstream v1.20.0, build request 382 [chains, chains #705]

DriveStartedMinutesBuild hostHow it stopped
4462026-10-27T15:38:38Z150.9build host 2 withhold-publish ready_to_ship [drive_runs, drive_runs #446] rebuilt from a build line's log
4622026-10-28T01:17:07Z6.2build host 2 withhold-publish ready_to_ship [drive_runs, drive_runs #462] rebuilt from a build line's log
4662026-10-28T02:27:02Z5.8build host 2 withhold-publish ready_to_ship [drive_runs, drive_runs #466] rebuilt from a build line's log
4692026-10-28T03:07:26Z6.9build host 2 withhold-publish ready_to_ship [drive_runs, drive_runs #469] rebuilt from a build line's log
4952026-10-29T18:45:38Z41.7build host 2 publish-held shipped [drive_runs, drive_runs #495] rebuilt from a build line's log

Stages, in order

StageFirst startPassedAttemptsGate checks passedArtifacts (SHA-256)
intake 2026-10-27T15:38:44Z2026-10-27T15:38:45Z1
4
  • exists:order_json
  • order_json:json_parses
  • order_json:no_forbidden_placeholders
  • produces_paths_exist
—
acquire 2026-10-27T15:38:49Z2026-10-27T15:38:50Z1
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
—
plan 2026-10-27T15:39:18Z2026-10-27T15:39:18Z1
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
—
assemble_kit 2026-10-27T16:15:24Z2026-10-27T16:15:25Z1
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
—
remediate 2026-10-27T16:15:59Z2026-10-27T16:16:00Z1
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
—
build_kit 2026-10-27T17:20:09Z2026-10-27T17:20:10Z1
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
—
verdict 2026-10-27T17:21:00Z2026-10-27T17:21:01Z1
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
—
publish_image 2026-10-27T17:21:40Z2026-10-27T17:21:41Z1
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
—
boot_instance 2026-10-27T17:21:46Z2026-10-27T17:21:47Z2
3
  • exists:instance_handle
  • instance_handle:json_parses
  • produces_paths_exist
—
sbom 2026-10-27T17:21:58Z2026-10-27T17:21:59Z1
5
  • exists:sbom_json
  • exists:sbom_md
  • sbom_json:json_parses
  • sbom_md:md_min_sections:1
  • produces_paths_exist
—
schema_discovery 2026-10-27T17:22:01Z2026-10-27T17:22:02Z1
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
—
admin_handbook 2026-10-27T17:25:59Z2026-10-27T17:26:00Z1
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
—
db_handbook 2026-10-27T17:29:59Z2026-10-27T17:30: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
—
seed_data 2026-10-27T17:30:04Z2026-10-27T17:30:05Z1
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_validate 2026-10-27T17:30:07Z2026-10-27T17:30:08Z1
3
  • exists:seed_data_contract
  • seed_data_contract:json_parses
  • produces_paths_exist
—
usecase_validate 2026-10-27T17:30:26Z2026-10-27T17:30:27Z1
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
—
finalize_docs 2026-10-27T17:30:31Z2026-10-27T17:30: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
—
package_archive 2026-10-27T18:09:27Z2026-10-29T19:27:17Z5
33 (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 vex_shipped
  • G8 scout_grade_a
  • G8 script_copies
  • G8 three_way_sha
  • G8 offline_rebuild
  • G8 rebuild_manifest
  • G8 artifact_coverage
  • G8 assetchain_coverage
—

[stage_runs]

Rewinds

  • 2026-10-27T19:01:38Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py) [stage_events, stage_events #2213]
  • 2026-10-28T01:39:18Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py) [stage_events, stage_events #2214]
  • 2026-10-28T02:47:08Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py) [stage_events, stage_events #2215]
  • 2026-10-29T18:45:10Z: package_archive to package_archive on docs_redo (scripts/redo-docs.py) [stage_events, stage_events #577]
  • Not recorded: each drive's ticks and first failed check (drive_runs records them for drives from 2026-11-02; these drives were rebuilt from line logs)
  • Not recorded: the sha256 of each stage's artifacts (stage_events records them for stages passed from 2026-11-02; this chain's events were rebuilt from stage_runs and logs) — the archive's CHECKSUMS.sha256 lists the sha256 of every file it ships

Model work per stage

3 items not recorded

Role: writer model. Calls up to 2026-10-29T19:27:17Z.

45 calls over 5 stages

StageCallsRefusedErrorsMax attemptForced commitsReal tokensLesson rules shown
plan2001 not recordednot recorded —
remediate2001 not recordednot recorded —
admin_handbook19102 not recordednot recorded —
db_handbook21403 not recordednot recorded —
usecase_validate1001 not recordednot recorded —

[micro_step_runs]

  • Not recorded: forced commits (micro_step_runs records them for calls from 2026-11-02)
  • Not recorded: real token counts (recorded per call from 2026-11-02; earlier rows hold only an estimate, which is not shown)
  • Not recorded: the lesson rules shown to the writer model (lesson_recalls holds no rows for this chain: its recorder was silent from 2026-06-06 to 2026-11-02)

Review

3 items not recorded

Role: review model.

4 rounds, 4 counted, $5.05 recorded cost

RoundStartedCriticalMajorMinorVerdictCostCap in forceArchive reviewed
12026-10-27T18:11:33Z 0312 findings to repackage [held_rounds, held_rounds #153] rebuilt from a held-review state file $1.57 not recorded not recorded
22026-10-28T01:25:06Z 106 findings to repackage [held_rounds, held_rounds #154] rebuilt from a held-review state file $1.22 not recorded not recorded
32026-10-28T02:33:30Z 018 findings to repackage [held_rounds, held_rounds #155] rebuilt from a held-review state file $1.50 not recorded not recorded
42026-10-29T17:54:13Z 003 clean to publish [held_rounds, held_rounds #156] rebuilt from a held-review state file $0.76 not recorded not recorded

Overrides

  • max_rounds: — to 5; by not recorded; why: not recorded predates override recording (2026-11-02): found in runstate/held-auto/qdrant.json, last written 2026-10-29T18:17Z; who set it, why, when and the value before are not known [review_overrides, review_overrides #16]
  • Not recorded: the sha256 of the archive each round reviewed (held_rounds records it for rounds from 2026-11-02; these rounds were rebuilt from state files)
  • Not recorded: the round cap in force at each round (the state files did not keep it)
  • Not recorded: who raised max_rounds to 5 and why (review_overrides #16 was backfilled from a state file; overrides are recorded with who and why from 2026-11-02)

Defects

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

36 ledger entries: by severity high 5, medium 2, low 28, critical 1; by status open 1, fixed-before-release 34, fixed-in-release 1.

DefectSeverityStatusFound byFixed in
RSD-qdrant-78ff9fd379
Unauthenticated access by default [defects, defects #116999]
highopenbuild strategy record—
RSD-qdrant-975e6de00a
The archive calls Qdrant v1.19.2 a source build without saying its web dashboard is upstream's prebuilt release [defects, defects #117000]
mediumfixed-before-releaseheld review (review model)—
RSD-qdrant-f2b4fe6ed8
Admin handbook: The example that follows (line 496) keeps -v qdrant_storage:/qdrant/storage but sets the storage path to /tmp/s, so a customer who copies it runs against an empty, non-persistent directory and the… [defects, defects #117973]
highfixed-before-releaseheld review (review model)—
RSD-qdrant-8dda69b1b8
Database handbook: Same example as the admin handbook (lines 571-576): volume at /qdrant/storage, storage path /tmp/s. [defects, defects #117974]
highfixed-before-releaseheld review (review model)—
RSD-qdrant-3941cf1c89
Database handbook: Presents /tmp/s as a storage location to move to; /tmp/s is inside the container layer and is lost with the container. [defects, defects #117975]
highfixed-before-releaseheld review (review model)—
RSD-qdrant-495de702a7
Database handbook: The sample command (line 613) is the persistent-container form that the Operating facts say never to keep; the section gives no warning, so it contradicts the Snapshots paragraph. [defects, defects #117976]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-c938e36bd4
Admin handbook: tar does not fail silently; it prints an error and exits 2. [defects, defects #117977]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-9720adc56d
Admin handbook: 'fails silently' is wrong (tar reports the failure); only Qdrant's start is silent. [defects, defects #117978]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-0e5b22cfa2
Admin handbook: No storage path is exposed on the host; the sentence contradicts the 'use named volumes, not host directories' guidance. [defects, defects #117979]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-a4221bf82a
Admin handbook: Recurrence of the round-2 finding: 'every request' is contradicted by the unauthenticated dashboard page, and the next paragraph lists only the health endpoints as exempt. [defects, defects #117980]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-cd56400bfb
Admin handbook: The bodies are not the same; /readyz reports shard readiness. [defects, defects #117981]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-9547a081fc
Admin handbook: 'while Qdrant is running, stop the container' is self-contradictory and blurs the stopped-volume backup with the running-server snapshot API. [defects, defects #117982]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-9f29bcb28f
Database handbook: The example omits that the published port and the HEALTHCHECK (hard-coded to 127.0.0.1:6333) no longer match; only the TLS case mentions the HEALTHCHECK. [defects, defects #117983]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-6bbf898f82
Database handbook: Snapshots are not written to /qdrant/storage; the next sentence and the Operating facts say they are in /qdrant/snapshots only. [defects, defects #117984]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-bc7d137307
Database handbook: A customer who changes a -e setting cannot apply it with docker restart; the sentence contradicts the Operating facts. [defects, defects #117985]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-f02a972a79
Database handbook: An instruction not to mount the path contradicts the recommendation to mount it (lines 98, 388, 460). [defects, defects #117986]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-1f2c59e93c
API guide: The table says every listed request returned the status shown, but this one depends on the build's seeded `demo` collection; the settings caveat names only HOST and TELEMETRY. [defects, defects #117987]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-711326fe66
Database handbook: The 'Overriding Storage Paths' example (lines 424-429) mounts a fresh named volume at /custom/path and points STORAGE_PATH there. [defects, defects #125955]
criticalfixed-before-releaseheld review (review model)—
RSD-qdrant-18995e69d1
Database handbook: Paraphrase of the round-1 finding that the endpoints are not identical: /readyz reports shard readiness (different body) while /healthz and /livez answer 'healthz check passed'. [defects, defects #125956]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-b1e2ecaf38
Database handbook: Kubernetes does not read the image's HEALTHCHECK instruction; a customer relying on it would have no probe. [defects, defects #125957]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-952f4f2afe
Database handbook: Contradicts the Authentication text in the admin handbook (lines 455 and 495): /dashboard answers 200 without a key; only the API calls need it. [defects, defects #125958]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-362fab647d
Database handbook: Absolute prohibition contradicts line 406, which allows a host directory owned by UID 999. [defects, defects #125959]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-bcd0df2706
Admin handbook: 'Lives inside the container' contradicts the next paragraph and the Operating facts: state is in the named volume and survives removal of the container. [defects, defects #125960]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-23dab5286b
Admin handbook: 'Slowing snapshot operations' is not in the records; the Operating facts state only the disk growth and that later snapshots grow the same way. [defects, defects #125961]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-5c44e21564
Admin handbook: A customer who upserts with POST, as this line says, gets a 400 error and no data is written; on this route POST retrieves points. [defects, defects #127375]
highfixed-before-releaseheld review (review model)—
RSD-qdrant-2f62776461
Admin handbook: Paraphrase of the round-2 dashboard finding: 'requires the key' contradicts the Authentication section, where /dashboard answers 200 without a key and only the API calls need it. [defects, defects #127376]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-fc2bae3f60
Database handbook: Absolute prohibition (round-2 minor, paraphrased in the Deployment Model sections) contradicts lines 406 and 460, which allow a host directory writable by uid 999. [defects, defects #127377]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-a0372d19f6
Database handbook: Same absolute prohibition as line 704, contradicting DB_HANDBOOK.md lines 406 and 460. [defects, defects #127378]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-2850c5fc02
Admin handbook: Absolute prohibition contradicts line 539 of the same handbook (round-2 minor paraphrased elsewhere). [defects, defects #127379]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-a46d0af770
Admin handbook: Overstates: a named volume is root-owned when mounted at a path that does not exist in the image, and host directories work when writable by uid 999. [defects, defects #127380]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-a195808352
Admin handbook: 'Stored in the container' contradicts the Operating facts and the Storage sections: the data lives in the named volume and survives container removal (round-2 minor, same wording survives here). [defects, defects #127381]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-5a9a8df139
Admin handbook: The example name has the pre-1.20 shape (dated 2026-09-27, no trailing counter); v1.20.0 appends a unique counter (-0). [defects, defects #127382]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-a478be6043
Admin handbook: Absolute prohibition ('never a host directory') contradicts line 539 of the same handbook and DB_HANDBOOK.md lines 406 and 460, which allow a host directory writable by uid 999 (round-3 minor,… [defects, defects #136192]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-62d989a963
Database handbook: 'must run with a named volume' is an absolute requirement; the same handbook (lines 406, 460, 704, 787) says a host directory writable by uid 999 works. [defects, defects #136193]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-166812e9ab
Database handbook: 'works only if it is owned by uid 999' overstates: what matters is that uid 999 can write to the directory (group or other write permission also suffices); line 352 of the same handbook says… [defects, defects #136194]
lowfixed-before-releaseheld review (review model)—
RSD-qdrant-7e8ae46339
CVE-2026-111497 in libbrotli1 1.1.0-2build2 is on CISA's Known Exploited Vulnerabilities list [defects, defects #137842]
mediumfixed-in-releaseimage scanv1.20.0-CE-ubuntu24.04-r1

Verification

2 items not recorded
  • Reproduced before publishingyes (rebuilt digest sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc · published digest sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 1868) [docs/provenance/REPRO_VERIFICATION.json, verified]
  • Final contract gate (G8)PASS (checks cosign, scan_grade, tag_base_os, vex_shipped, scout_grade_a, script_copies, three_way_sha, offline_rebuild, rebuild_manifest, artifact_coverage, assetchain_coverage) [stage_runs, stage_runs chain 705 package_archive gate_result.g8.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-10-29T18:45:59Z · failing Docker Scout counts 96 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]
  • First own scan of the releaseA (at 2026-10-29T19:27:33Z · score 100 · rubric cerodeo-v1 · fixable critical 0 · fixable high 0 · syft 1.54.1 · grype 0.120.1 · grype db v6.1.10@2026-10-29T06:23:34Z) [image_scans, image_scans #1563]
  • Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-10-29T18:45:46Z) [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 3628944267 · transparency-log entry · integrated 2026-11-01T11:59:56Z) [ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
  • Signed attestations
    • kind provenance · digest sha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9 · state attached · log index 3574632810 · transparency-log entry
    • kind sbom · digest sha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9 · state attached · log index 3574635278 · transparency-log entry
    • kind vsa · digest sha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9 · state attached · log index 3574638349 · transparency-log entry
    • kind provenance · digest sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc · state attached · log index 3574642707 · transparency-log entry
    • kind sbom · digest sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc · state attached · log index 3574644959 · transparency-log entry
    • kind vsa · digest sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc · state attached · log index 3574647575 · transparency-log entry
    (at 2026-10-29T19:24:05Z) [attestations.json, results]

Offline clean-room rebuilds

  • 2026-10-27T18:11:37Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
    rebuilt sha256:11453dc65b02207448d3caad2c61880302e69b7fc2b72e87dc361d6076ab7bbc [clean-room rebuild ledger, runs[480]]
  • 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)
  • Not recorded: the pins record (docs/PINS.md is not in this archive as generated; a repack that adds it is appended to this trail's history)

Publication

Fully recorded
  • Image pushed (internal tag), publish_image passed2026-10-27T17:21:41Z [stage_runs, stage_runs chain 705 stage publish_image]
  • Release tag promoted2026-10-29T19:26:39Z (method imagetools_create_retag_by_digest_no_rebuild · digest sha256:525efd5dc93148a82e7bc63afc66c78a5d24a6473414c89f1bf951c6d47fc8e9 · tag readystack/qdrant:v1.20.0-CE-ubuntu24.04-r1) [deliverables/provenance/PROMOTION_RECORD.json, promoted_at]
  • Archive manifests written2026-10-29T18:49:09Z [PUBLISH_MANIFEST.json, published_at]
  • Archive cut over on prodasset, package_archive passed2026-10-29T19:27:17Z [stage_runs, stage_runs chain 705 stage package_archive]
  • Cut-over markerpresent (chain 705) [.cutover.json]
  • Release checklist and site event2026-10-29T19:27:15Z (status complete · site event 287 · steps grade a verified done · release tag promoted done · cosign signed done · release evidence recorded done · contract gate passed done · archive published done · hub readme live done · reproducibility recorded done · defects ledger published done · catalog available done · build request fulfilled done · seo regenerated skipped · site catalogue refreshed done · site grade recorded done · site queue synced done · customer requests charged done · owners notified done) [deliverables/provenance/RELEASE_CHECKLIST.json, run_at]

Packages and CPU level

Fully recorded
  • Packages in the image110 (scanned 2026-11-02T06:30:04Z · source backfill:daily-scan) [release_images, package_count]
  • x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 743 · probed 2026-11-02T17:03:52Z · source backfill) [release_images, isa_level_hard]

History

1 event
  • 2026-11-02T23:33:35Z generated: by KitForge release/build_trail.py · generator commit 916780cc218cf013bd623a8c085aaf73d3b053d0 · note backfill: built after the release from its records

Records

26 records
RecordWhere it isRows
docs/defects/defects.jsoninside the archive (ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/IMAGE_EVIDENCE.jsoninside the archive (ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/LOCKED_DIGEST.txtinside the archive (ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/REPRO_VERIFICATION.jsoninside the archive (ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz)—
docs/provenance/SOURCE_TREE_HASH.jsoninside the archive (ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.tar.gz)—
.cutover.jsonbeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
MANIFEST.jsonbeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
PUBLISH_MANIFEST.jsonbeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.jsonbeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
ReadyStack-qdrant-v1.20.0-CE-ubuntu24.04-r1.rebuild.json.sigstorebeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
SCOUT_EVIDENCE.jsonbeside the archive (prodasset /data/production/qdrant/v1.20.0-CE-ubuntu24.04-r1/)—
clean-room rebuild ledgerthe clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published)—
build_requestssadb, ReadyStack's engine database (not published)382
chainssadb, ReadyStack's engine database (not published)705
defectssadb, ReadyStack's engine database (not published)qdrant v1.20.0-CE-ubuntu24.04-r1
drive_runssadb, ReadyStack's engine database (not published)chain 705
held_roundssadb, ReadyStack's engine database (not published)chain 705
image_scanssadb, ReadyStack's engine database (not published)1563
micro_step_runssadb, ReadyStack's engine database (not published)chain 705
release_imagessadb, ReadyStack's engine database (not published)qdrant v1.20.0-CE-ubuntu24.04-r1
review_overridessadb, ReadyStack's engine database (not published)16
stage_eventssadb, ReadyStack's engine database (not published)chain 705
stage_runssadb, ReadyStack's engine database (not published)chain 705
attestations.jsonthe chain's workspace on the controller (not published)—
deliverables/provenance/PROMOTION_RECORD.jsonthe chain's workspace on the controller (not published)—
deliverables/provenance/RELEASE_CHECKLIST.jsonthe chain's workspace on the controller (not published)—