Paperless-ngx v3.4.1-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/paperlessngx:v3.4.1-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/paperlessngx:v3.4.1-CE-ubuntu24.04-r2 - Index digestsha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd
- linux/amd64 digestsha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3
- Archive
ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now1f27b4bc700bf113f415592c9860ab5aa05cd1da633d79168508ab36809f5c2b
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-08T18:17:51Z 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-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductPaperless-ngx (paperlessngx) [MANIFEST.json]
- Release tagv3.4.1-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/paperlessngx:v3.4.1-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 [ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz (bytes 2449002897) [MANIFEST.json]
- Archive sha256 at publish1f27b4bc700bf113f415592c9860ab5aa05cd1da633d79168508ab36809f5c2b [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/paperless-ngx/paperless-ngx [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv3.4.1 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commitb67cfdf3fdfcde4883c4ac136c8545835f679d21 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashf0bda158ccfdec9da49c6c8e55f649135208b554b3653074858c364c3c3d0828 (files 1558) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:f61bbe2d705a80b2e84c6886fa8fc4f6813d5b309249ac7ad92ed1469e758961 [ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1793424031 (utc 2026-10-31T05:20:31Z) [ReadyStack-paperlessngx-v3.4.1-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-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json, engine]
- Engine commit(s)
- commit 678cbcb0bbd61a6d885eab3d9776ddcdf7ce640d · dirty yes · first drive 3823
- commit 7c6b61ce76feba4df822395cea465de0973154b4 · dirty yes · first drive 3850
Why this release exists
Fully recorded- Chain889 (created 2026-11-08T15:02:17Z · trigger customer_request · upstream version v3.4.1) [chains, chains #889]
- Requestbuild request #572 (rebuild) (requested at 2026-11-08T07:25:48Z · requested by kitforge-agent · version v3.4.1) [build_requests, build_requests #572]
- Reasonrerelease agenda REVISION -> v3.4.1-CE-ubuntu24.04-r2 (decay loop, IMP-08) [build_requests, build_requests #572 request_reason]
- Supersedesreadystack/paperlessngx:v3.4.1-CE-ubuntu24.04-r1 (chain 810) [chains, chains #810]
The path through the harness
Fully recorded1 chain · 2 drives · 18 stages · 1 rewind
Chain 889 release · ready_to_ship
Created 2026-11-08T15:02:17Z, upstream v3.4.1, build request 572 [chains, chains #889]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 3823 | 2026-11-08T15:02:57Z | 106.5 | build host 4 withhold-publish | ready_to_ship at package_archive; 19 ticks [drive_runs, drive_runs #3823] |
| 3850 | 2026-11-08T17:56:52Z | — | build host 4 publish-held | not recorded [drive_runs, drive_runs #3850] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-08T15:03:08Z | 2026-11-08T15:03:09Z | 1 | 4
|
order_json 074b297993e2… |
acquire |
2026-11-08T15:03:14Z | 2026-11-08T15:03:15Z | 1 | 12
|
source_tree 4178654137f3…license_file d62f065830aa…custody_inputs 94b07a7e5264…source_tree_hash ada7d70a8740…source_file_manifest 69db9887ae5d… |
plan |
2026-11-08T15:03:43Z | 2026-11-08T15:03:44Z | 1 | 10
|
recon_report e015749d48b7…input_pin_plan a79af2e9a1c6…toolchain_lock 1bdc9db06659… |
assemble_kit |
2026-11-08T15:34:05Z | 2026-11-08T15:34:06Z | 1 | 27
|
dockerfile c8a48a792625…build_recipe d928af5216f5…system_pinning 01ba4719c80b…build_offline_sh 6633aa31b6b4…generate_sbom_sh ce0f1e6f1e70…first_boot_health 3e2ab5035749…verify_offline_sh 3e8184ea230c…base_image_digests d119481183e4…dockerfile_offline c8a48a792625…first_build_digest 678a74772d7a… |
remediate |
2026-11-08T15:34:43Z | 2026-11-08T15:34:44Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log bda8badeb625…security_report 5eb3c59aa20d… |
build_kit |
2026-11-08T16:07:04Z | 2026-11-08T16:07:05Z | 1 | 9
|
cosign_stamp 4e9b352628b5…locked_digest 7dfaaadb7c6c…freeze_manifest 3d39dea9a042…offline_rebuild_transcript bff55bbb4a1b… |
verdict |
2026-11-08T16:13:54Z | 2026-11-08T16:13:55Z | 1 | 8
|
scout_verdict a611b7f1ab87… |
publish_image |
2026-11-08T16:16:29Z | 2026-11-08T16:16:29Z | 1 | 7
|
hub_readme bec497f99be0…promotion_record cc9c518028ee… |
boot_instance |
2026-11-08T16:17:33Z | 2026-11-08T16:17:36Z | 2 | 3
|
instance_handle 2b74579e00c8… |
sbom |
2026-11-08T16:19:10Z | 2026-11-08T16:19:11Z | 1 | 5
|
sbom_md 83242631944f…sbom_json 61f7019b8981… |
schema_discovery |
2026-11-08T16:19:14Z | 2026-11-08T16:19:14Z | 1 | 7
|
schema_hash 4dfc3b7cae3b…dependency_tree 15e293ecbc78…table_classification f42640c4dcea… |
admin_handbook |
2026-11-08T16:19:19Z | 2026-11-08T16:19:20Z | 1 | 7
|
api_map 113e0fe1a605…admin_handbook 8f85d0fb5f94… |
db_handbook |
2026-11-08T16:19:28Z | 2026-11-08T16:19:29Z | 1 | 8
|
db_handbook 1f80f3addf0f…seed_isolation 659c5035d18f… |
seed_data |
2026-11-08T16:19:52Z | 2026-11-08T16:19:52Z | 1 | 6
|
seed_data_sql cc049929728b…seed_cases_json 2fa0c45ece25… |
seed_validate |
2026-11-08T16:19:55Z | 2026-11-08T16:19:56Z | 1 | 3
|
seed_data_contract a06a3485daf9… |
usecase_validate |
2026-11-08T16:20:32Z | 2026-11-08T16:20:33Z | 1 | 10
|
failed_tests b2247b16f5f7…passed_tests 327b743167ab…test_results dd63de1daf5a…usecase_contract bfdb53d62762… |
finalize_docs |
2026-11-08T16:20:38Z | 2026-11-08T16:20:39Z | 1 | 9
|
defects_json 1f382c0f279e…release_notes 8f05ac8064be…api_integration_guide eb840a5c10d1… |
package_archive invalidated 2026-11-08T17:56:22Z |
2026-11-08T16:49:21Z | 2026-11-08T16:49:28Z | 1 | 34 (final gate PASS)
|
sale_tar d26f827846b8…checksums 827d1da17b4b…verify_md 155428cab2fd…rebuild_md 8332d64b9bd7…manifest_txt 5a8d3b389325…actions_jsonl 3b3ec00822c8…provenance_md 214545069d8d…assetchain_log_md e9eccaec0c0f…assetchain_log_json 190e6cfbf6ef… |
[stage_runs]
Rewinds
- 2026-11-08T17:56:22Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #26947]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-08T16:49:28Z.
6 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 5896 | — |
remediate | 2 | 0 | 0 | 1 | 0 | 8847 | L-A08, L-038, L-036, L-034, L-032 |
usecase_validate | 2 | 0 | 0 | 1 | 0 | 4078 | — |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
1 round, 1 counted, $0.31 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-08T16:50:36Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #1524] | $0.31 | 3 rounds, $40.00 | d26f827846b8… |
Defects
Fully recorded- Ledger entries8 [defects, defects where product_slug=paperlessngx and this tag or chain]
- Disclosed in the archive0 [docs/defects/defects.json, entries]
8 ledger entries: by severity low 8; by status fixed-in-release 8.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-paperlessngx-ad8fdb8b11API guide: Round-2 minor only half corrected: the example above is now the administrator PATCH of another user's account, but the sentence still tells the reader to use their own ID. [defects, defects #181947] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-55e77f2d1fAPI guide: Round-2 minor not corrected: 'token generation' is ambiguous. [defects, defects #181948] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-8b1865241cAPI guide: Residual of the round-2 throttling major: the paragraph above (line 1836) now names the web sign-in lockout, but this sentence still says every listed endpoint except the token endpoint has only… [defects, defects #181949] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-e5f86cb490API guide: Round-2 minor (first-start time contradiction) only fixed in the DB handbook: this guide gives 45-85 s for the first start, the Admin Handbook says 'a few minutes' (lines 323, 683, 722) and the DB… [defects, defects #181950] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-34df2de621Admin handbook: Same first-start time contradiction inside the Admin Handbook: 55 to 105 s here and at lines 335, 407 and 936, 'a few minutes' / 'several minutes' at lines 323, 683, 722. [defects, defects #181951] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-e48ed446cbDatabase handbook: Self-contradictory, and contradicts line 115 ('You provide the PostgreSQL and Redis services') and the Operating facts: the customer must run both containers; without them the container never… [defects, defects #181952] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-738679d7c2Database handbook: Upstream's documentation describes SQLite as Paperless-ngx's default database, so 'undocumented' is false; the Admin Handbook (line 1797) says 'not intended for production use'. [defects, defects #181953] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
RSD-paperlessngx-e4494a34d7Admin handbook: Contradicts the DB handbook (lines 977-983: put PAPERLESS_OCR_LANGUAGE in paperlessngx.env and recreate the container to apply it). [defects, defects #181954] | low | fixed-in-release | held review (review model) | v3.4.1-CE-ubuntu24.04-r2 |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 · published digest sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 803) [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-08T17:58:47Z · failing Docker Scout counts 214 packages with copyleft licences (AGPL, GPL, LGPL, MPL), 204 of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component). AGPL: fonts-urw-base35, ghostscript, jbig2dec, libgs-common, libgs10. · 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-08T17:57:03Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3757224148 · transparency-log entry
- log index 3757226664 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3758502195 · transparency-log entry · integrated 2026-11-08T18:15:23Z) [ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd · state attached · log index 3758502544 · transparency-log entry
- kind sbom · digest sha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd · state attached · log index 3758502626 · transparency-log entry
- kind vsa · digest sha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd · state attached · log index 3758502763 · transparency-log entry
- kind provenance · digest sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 · state attached · log index 3758502853 · transparency-log entry
- kind sbom · digest sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 · state attached · log index 3758502934 · transparency-log entry
- kind vsa · digest sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 · state attached · log index 3758503025 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/paperlessngx/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-08T16:50:50Z on build host 4 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:f09b74d1398599815b60f1da03ba1ab6e22b749ca713b1084a91a41988df32d3 [clean-room rebuild ledger, runs[659]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-08T16:16:29Z [stage_runs, stage_runs chain 889 stage publish_image]
- Archive manifests written2026-11-08T18:06:13Z [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 1671 · probed 2026-11-08T15:53:26Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-08T18:17:51Z generated: by KitForge release/build_trail.py · generator commit b90ed12453313e2b8d7014fc17d463e8fff7eda8
- 2026-11-08T18:21:58Z publication: promoted at 2026-11-08T18:18:56Z · promoted digest sha256:eb6fb517dc394977c165c76395917a1c33435ed445b5413a6cf5898648ccb6bd · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 383 · checklist status complete · checklist at 2026-11-08T18:21:58Z · 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-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/paperlessngx/v3.4.1-CE-ubuntu24.04-r2/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/paperlessngx/v3.4.1-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/paperlessngx/v3.4.1-CE-ubuntu24.04-r2/), as staged for publishing | — |
ReadyStack-paperlessngx-v3.4.1-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/paperlessngx/v3.4.1-CE-ubuntu24.04-r2/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/paperlessngx/v3.4.1-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) | 572 |
chains | sadb, ReadyStack's engine database (not published) | 889 |
defects | sadb, ReadyStack's engine database (not published) | paperlessngx v3.4.1-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 889 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 889 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 889 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 889 |
release_images | sadb, ReadyStack's engine database (not published) | paperlessngx v3.4.1-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 889 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 889 |
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) | — |