Woodpecker v3.19.0-CE-ubuntu24.04-r2 build trail
How ReadyStack built readystack/woodpecker:v3.19.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/woodpecker:v3.19.0-CE-ubuntu24.04-r2 - Index digestsha256:a786fe80b1e39932f5e4ed9c8fe35febc1e85f47d32bc5682a55494e6dd02302
- linux/amd64 digestsha256:836c5f9ef4f115ef243e1823f3f421891bfdccb0f6a80e6b4d3f9e6f09cbc585
- Archive
ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz - Archive SHA-256 now8a5d2d3afdab3249285656d2a663dd29242400eb17aa8042a8aa9e91da3e8550
- Generated2026-11-02T23:33:35Z by KitForge release/build_trail.py
- Sections9 sections, 3 fully recorded; 13 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-woodpecker-v3.19.0-CE-ubuntu24.04-r2.trail.json.sigstore ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
1 item not recorded- ProductWoodpecker (woodpecker) [MANIFEST.json]
- Release tagv3.19.0-CE-ubuntu24.04-r2 [MANIFEST.json]
- Imagereadystack/woodpecker:v3.19.0-CE-ubuntu24.04-r2 [MANIFEST.json]
- Image index digestsha256:a786fe80b1e39932f5e4ed9c8fe35febc1e85f47d32bc5682a55494e6dd02302 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:836c5f9ef4f115ef243e1823f3f421891bfdccb0f6a80e6b4d3f9e6f09cbc585 [ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz (bytes 496893820) [MANIFEST.json]
- Archive sha256 at publishe03f5180a93a2397a0b29fa9f63889bb69c71633faa4cf82a4769bccc200d222 [MANIFEST.json, repack_history[0].previous_tarball_sha256]
- Archive sha256 now8a5d2d3afdab3249285656d2a663dd29242400eb17aa8042a8aa9e91da3e8550 [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 e03f5180a93a2397a0b29fa9f63889bb69c71633faa4cf82a4769bccc200d222 · sha256 8a5d2d3afdab3249285656d2a663dd29242400eb17aa8042a8aa9e91da3e8550 · replaced BUILD_OFFLINE.sh, docs/docker/BUILD_OFFLINE.sh, docs/offline/BUILD_OFFLINE.sh, rebuild.json
- Upstream repositoryhttps://github.com/woodpecker-ci/woodpecker [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv3.19.0 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit9f5568c20a1f7195d23c4194c49d53bd2580be41 [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash39b3ee913f31d444fd764101b3ce1fcbd9a1f7d1de409cc555bfcf1fbd0f02ba (files 1693) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:e6310f747807a5dd5dc3d314ab33d86edb820634f171249c1a96a0bafe311bd3 [ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1791396171 (utc 2026-10-07T18:02:51Z) [ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5 · platform digest sha256:fea12ba16096adec0f699ce1c4da2154d320450e56c1f63671f95d2a3551c77b
- ref ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c · platform digest sha256:78d4744ead1f5b19b04d0df558ab182a5300903900755e515b2ca4d10eb2044d
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.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- Chain694 (created 2026-10-27T13:10:05Z · trigger customer_request · upstream version v3.19.0) [chains, chains #694]
- Requestbuild request #371 (rebuild) (requested at 2026-10-27T02:37:24Z · requested by kitforge-agent · version v3.19.0) [build_requests, build_requests #371]
- Reasonrevision v3.19.0-CE-ubuntu24.04-r2: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #371 request_reason]
- Supersedesreadystack/woodpecker:v3.19.0-CE-ubuntu24.04-r1 (chain 561) [chains, chains #561]
The path through the harness
2 items not recorded1 chain · 4 drives · 18 stages · 3 rewinds
Chain 694 release · shipped
Created 2026-10-27T13:10:05Z, upstream v3.19.0, build request 371 [chains, chains #694]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 968 | 2026-10-27T13:10:28Z | 25.2 | build host 5 withhold-publish | ready_to_ship [drive_runs, drive_runs #968] rebuilt from a build line's log |
| 970 | 2026-10-27T14:22:25Z | 3.7 | build host 5 withhold-publish | ready_to_ship [drive_runs, drive_runs #970] rebuilt from a build line's log |
| 972 | 2026-10-27T14:50:23Z | 6.2 | build host 5 publish-held | stage_failed at package_archive [drive_runs, drive_runs #972] rebuilt from a build line's log |
| 977 | 2026-10-27T16:30:11Z | 6.3 | build host 5 publish-held | shipped [drive_runs, drive_runs #977] rebuilt from a build line's log |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-10-27T13:10:34Z | 2026-10-27T13:10:35Z | 1 | 4
|
— |
acquire |
2026-10-27T13:10:39Z | 2026-10-27T13:10:40Z | 1 | 12
|
— |
plan |
2026-10-27T13:11:07Z | 2026-10-27T13:11:08Z | 1 | 10
|
— |
assemble_kit |
2026-10-27T13:16:36Z | 2026-10-27T13:16:37Z | 1 | 27
|
— |
remediate |
2026-10-27T13:17:16Z | 2026-10-27T13:17:17Z | 1 | 8
|
— |
build_kit |
2026-10-27T13:23:42Z | 2026-10-27T13:23:43Z | 1 | 9
|
— |
verdict |
2026-10-27T13:24:34Z | 2026-10-27T13:24:35Z | 1 | 8
|
— |
publish_image |
2026-10-27T13:25:20Z | 2026-10-27T13:25:21Z | 1 | 7
|
— |
boot_instance |
2026-10-27T13:25:26Z | 2026-10-27T13:25:28Z | 2 | 3
|
— |
sbom |
2026-10-27T13:25:42Z | 2026-10-27T13:25:43Z | 1 | 5
|
— |
schema_discovery |
2026-10-27T13:25:49Z | 2026-10-27T13:25:50Z | 1 | 7
|
— |
admin_handbook |
2026-10-27T13:25:57Z | 2026-10-27T13:25:58Z | 1 | 7
|
— |
db_handbook |
2026-10-27T13:26:07Z | 2026-10-27T13:26:08Z | 1 | 8
|
— |
seed_data |
2026-10-27T13:26:15Z | 2026-10-27T13:26:16Z | 1 | 6
|
— |
seed_validate |
2026-10-27T13:26:19Z | 2026-10-27T13:26:20Z | 1 | 3
|
— |
usecase_validate |
2026-10-27T13:28:08Z | 2026-10-27T13:28:09Z | 1 | 10
|
— |
finalize_docs |
2026-10-27T13:28:14Z | 2026-10-27T13:28:15Z | 1 | 9
|
— |
package_archive |
2026-10-27T13:35:37Z | 2026-10-27T16:36:24Z | 4 | 33 (final gate PASS)
|
— |
[stage_runs]
Rewinds
- 2026-10-27T13:56:46Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #2294] - 2026-10-27T14:49:47Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #1151] - 2026-10-27T16:29:40Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #1158]
- 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 recordedRole: writer model. Calls up to 2026-10-27T16:36:24Z.
9 calls over 3 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
remediate | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
usecase_validate | 5 | 0 | 0 | 1 | not recorded | not 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
2 items not recordedRole: review model.
2 rounds, 2 counted, $0.87 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-27T13:37:04Z | 0 | 2 | 0 | findings to repackage [held_rounds, held_rounds #682] rebuilt from a held-review state file | $0.52 | not recorded | not recorded |
| 2 | 2026-10-27T14:27:01Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #683] rebuilt from a held-review state file | $0.35 | not recorded | not recorded |
- 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)
Defects
Fully recorded- Ledger entries110 [defects, defects where product_slug=woodpecker and this tag or chain]
- Disclosed in the archive10 [docs/defects/defects.json, entries]
110 ledger entries: by severity critical 10, high 35, low 65; by status fixed-before-release 82, fixed-in-release 24, open 4.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-woodpecker-ab37b146cdAdmin handbook: A locked-out administrator who follows this sentence sets the new WOODPECKER_ADMIN value and runs `docker restart`, which does not apply it; they stay locked out with no error. [defects, defects #45839] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-3301106fbaAdmin handbook: Operating-fact (strategy doc_facts.data_persistence) text copied into every handbook says the key encrypts secrets; fix the strategy fact, which also feeds DB_HANDBOOK.md:268 and the repeats at… [defects, defects #45840] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8b3a3f7af4Admin handbook: The documented way to admit users fails for the second login added in a row, with no mention in the handbook. [defects, defects #45841] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-faf4f7c182Admin handbook: A demotion that stays in force only if the old list is really gone: after `docker restart` the container still carries the old list, so the user is made administrator again at their next sign-in. [defects, defects #45842] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-9208eea266Admin handbook: Restarting does not apply the shortened list; the deleted user is re-created as an administrator at their next sign-in. [defects, defects #45843] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-6faa778e25Admin handbook: Same restart-does-not-apply-env error in the demotion procedure. [defects, defects #45844] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1e53639c96Admin handbook: Same restart-does-not-apply-env error in the user-removal procedure. [defects, defects #45845] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-1a65a8fca1Admin handbook: A stopped container's environment cannot be edited; 'update the environment variable and restart' leaves the old list in force, so the removed user returns as administrator. [defects, defects #45846] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-0e9b3be3bcAdmin handbook: Customers who set the key believe their secrets are encrypted; in this release they remain plain text. [defects, defects #45847] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5511e87d8cAdmin handbook: Describes the behaviour of an encryption that is not active in this release. [defects, defects #45848] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-4543381db5Admin handbook: Presents the key as a working encryption control. [defects, defects #45849] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-af18a48ac4API guide: Not fixed from the prior round: the endpoint reference presents POST /api/debug/pprof/symbol as a normal documented operation while the 'not served' list names only the GET paths, so an integrator… [defects, defects #45850] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-2b67d35b4bDatabase handbook: The Quick Start tells the customer to run an agent image that is not published: ReadyStack ships no woodpecker-agent repository, so the `docker run` fails with 'pull access denied / repository does… [defects, defects #45851] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-ea1316a7f1Database handbook: Offered as the way to 'pack the data directory into a tar file', but with no `-v wp-data:/var/lib/woodpecker` it archives the image's own empty /var/lib/woodpecker (no woodpecker.sqlite), so the… [defects, defects #45852] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b1bf59e06bDatabase handbook: The 'restore a database backup' example mounts no volume, so tar extracts into the throwaway container's own filesystem and exits 0; nothing reaches wp-data and a stopped container is left behind. [defects, defects #45853] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-16d532c812Database handbook: Describes decryption failures that cannot happen because nothing is encrypted; a wrong or absent key does not change anything. [defects, defects #45854] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-dfba94c5d0Database handbook: WOODPECKER_SERVER is a gRPC host:port address; with the http:// scheme the agent exits immediately, and the Quick Start (line 406) already uses the bare host:port form, so the two sections contradict. [defects, defects #45855] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-44bc62fbd9Database handbook: The tar restore procedure runs `docker rm woodpecker` at its start and then ends with `docker start woodpecker`, which fails because the container no longer exists; the restored server is never… [defects, defects #45856] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f101349fccDatabase handbook: False security statement: the shared WOODPECKER_AGENT_SECRET is stored in clear text in the agents table (and this handbook says so at lines 304 and 1844), so a backup file discloses the credential… [defects, defects #45857] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-52d3be13f8Admin handbook: The 'all other /api endpoints require a token' rule is false for GET /api/healthz, GET /api/version and GET /api/stream/events (the same statement is repeated in the other handbooks). [defects, defects #45858] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-025443e5feAdmin handbook: Contradicts the next sentence (a shell, tar) and every backup procedure, which run `tar`, `sh` and `sqlite3` from this image (same claim at DB_HANDBOOK.md:619, 739, 790). [defects, defects #45859] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-828d08f3dfAdmin handbook: 'The archive file' does not say which of the two archives BUILD_OFFLINE.sh writes can be loaded; the DB handbook (line 1556) names rebuilt.docker.tar. [defects, defects #45860] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-2aec928306Admin handbook: Contradicts lines 1122/1151 ('Tokens do not expire'). [defects, defects #45861] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8339b6aab5Admin handbook: Woodpecker server v3.19.0 has no email sending option, so 'links in emails' is unsupported. [defects, defects #45862] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-0c22f0d78aAdmin handbook: The pprof paths are listed as available endpoints with no note that at the default log level they return the web UI page. [defects, defects #45863] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-8c07ac96edAPI guide: 'This release does not route them' is false at debug log level; a customer who wants profiling is told it is impossible. [defects, defects #45864] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c6f0de98adDatabase handbook: Contradicts the backup procedures in the same handbook that run tar, sh and sqlite3 from the image. [defects, defects #45865] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b0dadcc1bcDatabase handbook: Same false 'only woodpecker-server' claim as line 619 (repeated at line 790). [defects, defects #45866] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-49590533f2Database handbook: Template restore command has neither -i (stdin never reaches tar) nor -v (nothing is restored into wp-data). [defects, defects #45867] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e2208158afDatabase handbook: Same unqualified pprof listing (also at line 1039). [defects, defects #45868] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f94127a444Database handbook: The server does not execute pipelines (agents do), so the stated use of /tmp is unsupported; the only documented use is the sqlite3 .backup temp file. [defects, defects #45869] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-db7e5451b5Admin handbook: Offers 'close registration' as a way to stop a deleted, still-listed administrator returning. [defects, defects #47718] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-d4874f5455Admin handbook: Same wrong alternative in the user-removal procedure: WOODPECKER_OPEN=false is the default and is exactly the configuration in which a listed user is re-created as an administrator, so 'close… [defects, defects #47719] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-3640b799aeAdmin handbook: Names a restore into the live data directory with `docker exec -i woodpecker <program>` as the way to run tar; it leaves the running server on the old data (and overwrites its open database file). [defects, defects #47720] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5e555d0349Database handbook: Calls the agent connection 'secure', but the image serves gRPC on 9000 without TLS in the documented run command; the agent secret and pipeline traffic cross the network in clear text. [defects, defects #47721] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cc14586e47Database handbook: Presents `docker exec -i woodpecker tar -xf - -C /var/lib/woodpecker` as how to restore a database backup. [defects, defects #47722] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f0b8497123Admin handbook: The exception list omits three endpoints that answer without a token; the handbook's Operating facts list them. [defects, defects #47723] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-639e4a95deAdmin handbook: 'For the first time' contradicts 'the next time they sign in' elsewhere and suggests an already-registered user can never be promoted this way. [defects, defects #47724] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-81fe169257Admin handbook: Same incomplete exception list in the 401 troubleshooting section. [defects, defects #47725] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5925aedf05Admin handbook: 'All other endpoints' is false for three endpoints, and the four-item list above it omits them. [defects, defects #47726] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-40f145442dDatabase handbook: Incomplete exception list, 'all other endpoints'. [defects, defects #47727] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f6a54d2340Database handbook: Same incomplete exception list. [defects, defects #47728] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a6204962feDatabase handbook: Same incomplete exception list. [defects, defects #47729] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-767bac372fDatabase handbook: Conflates two failures: it says the server cannot read the file but quotes the read-only-write error, which only appears when the file is readable. [defects, defects #47730] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-727ddf77d0Database handbook: The command as written (`docker exec woodpecker sh`) gives no shell; the Admin handbook line 1893 correctly uses `-it`. [defects, defects #47731] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fc0569acceDatabase handbook: The failure is not caused by 'different arguments'; with a forge configured the extra word does not stop the server (DB_HANDBOOK.md:749 states the real no-forge cause). [defects, defects #47732] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-f138864eb0Database handbook: The example cannot write any file from the container's data and leaves a stopped container behind; it is not a usable procedure. [defects, defects #47733] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-d9b7febbacDatabase handbook: 'The exceptions are' lists only four of seven. [defects, defects #47734] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fe0ded1fbfDatabase handbook: 'Except those listed below' omits three endpoints that answer without a token. [defects, defects #47735] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-548d379427Database handbook: 'Secure the communication channel' reads as transport encryption; the key only signs authentication tokens. [defects, defects #47736] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fc78015d66Database handbook: The reassuring 'no forge OAuth credentials' omits that every signed-in user's forge access token is stored in the database and so in every backup. [defects, defects #47737] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-39ab592adeAdmin handbook: The example that follows (`docker run --rm --entrypoint tar -i -v wp-data:/var/lib/woodpecker IMAGE -xvf - -C /var/lib/woodpecker`) extracts a backup into the same wp-data volume the running server… [defects, defects #48283] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cd8bd2d6ccDatabase handbook: Presents extraction into wp-data as how to restore a database backup, without stopping the server or using a new volume; contradicts the 'Do not restore a database this way' sentence at… [defects, defects #48284] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-c2ea64d141Database handbook: The following command (`docker run --rm -i --entrypoint tar -v wp-data:/var/lib/woodpecker IMAGE -xf - -C /var/lib/woodpecker`) extracts into the live wp-data volume; the server stays on the old… [defects, defects #48285] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a050a7d7baAdmin handbook: No record shows privilege escalation is blocked: no-new-privileges is not set and setuid binaries are present, so the sentence is unsupported. [defects, defects #48286] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e9727d09c6Admin handbook: Contradicts the message the same handbook gives at line 2509 and the measured output. [defects, defects #48287] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-da1d35c4c3Admin handbook: A malformed header returns 403, not 401, so the second half of the sentence is false (and the list above it, line 2271, only gives 'without the header'). [defects, defects #48288] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-43264fb6f1Database handbook: States a startup requirement the server does not enforce. [defects, defects #48289] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-e6bd3babe1Database handbook: A backup example that copies the live SQLite file from a running server, while every other section requires stopping it first (or using sqlite3 .backup). [defects, defects #48290] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-07ee762fdbAdmin handbook: Four-item list with no mention of the three others, unlike the same list at ADMIN_HANDBOOK.md:1507; same incomplete-exception-list class confirmed fixed elsewhere. [defects, defects #48291] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-17b7438c05Database handbook: Incomplete exception list; the three other token-less endpoints are listed elsewhere (DB_HANDBOOK.md:853) but not here. [defects, defects #48292] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-119a0f8d91Admin handbook: Absolute statement contradicts the DB handbook; a directory owned by uid 999 works. [defects, defects #48293] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-9c0fbfca01Admin handbook: Says the documented run command sets no WOODPECKER_ADMIN, directly beside/after a documented command that does; a customer is told to add a variable that is already there. [defects, defects #48294] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5a7b9d98fbAdmin handbook: Says the documented run command sets no WOODPECKER_ADMIN, directly beside/after a documented command that does; a customer is told to add a variable that is already there. [defects, defects #48295] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5643a69a0cDatabase handbook: Says the documented run command sets no WOODPECKER_ADMIN, directly beside/after a documented command that does; a customer is told to add a variable that is already there. [defects, defects #48296] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-d143d1c775Database handbook: States that the database holds no OAuth client secret. [defects, defects #48699] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-3936a32283Admin handbook: The documented command `curl ... [defects, defects #48700] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-5cfe4bbd9fAdmin handbook: Paraphrase of the round-3 class: implies the documented run command sets no WOODPECKER_ADMIN, which it does. [defects, defects #48701] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-b224565eccAdmin handbook: Presented under 'Server fails to start' as a startup requirement; the server starts and is healthy without it. [defects, defects #48702] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-21140ded44Database handbook: Items 2-4 (administrator, agent secret, public URL) are not enforced at startup; DB_HANDBOOK.md:233 itself says the server starts without WOODPECKER_ADMIN. [defects, defects #48703] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-a062e3cda9Admin handbook: Absolute statement; a world-writable or uid-999-owned directory works (the round-3 fix reached only line 1531). [defects, defects #48704] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-9c553f9251Database handbook: Same absolute-statement class; contradicts DB_HANDBOOK.md:593/1435/2117. [defects, defects #48705] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-38d8b992ccDatabase handbook: Absolute statement contradicted by the next paragraph (line 2117) and by the live test. [defects, defects #48706] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-2f290253feDatabase handbook: Attaches the 'sql: no rows' message to the refused reconnect; the same handbook (303, 1785, 1876) and ADMIN_HANDBOOK.md (359, 2451) give that message for the connected agent and 'agent could not… [defects, defects #48707] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-407c1a088aDatabase handbook: Unconditional claim that the container fails; with a forge configured it keeps running, as DB_HANDBOOK.md:708 says. [defects, defects #48708] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-7511c967f4Admin handbook: With the documented environment an unknown word does not cause an error or exit. [defects, defects #48709] | low | fixed-before-release | held review (review model) | — |
RSD-woodpecker-2515f6062cThe Docker Hub run example puts WOODPECKER_GITHUB_SECRET and WOODPECKER_AGENT_SECRET on the command line (-e), where the shell's history keeps them [defects, defects #109454] | low | fixed-before-release | agent case study | — |
RSD-woodpecker-3a6c572ef5The image's org.opencontainers.image.version label says 24.04 (inherited from the Ubuntu base), not this release [defects, defects #109455] | low | fixed-in-release | image scan | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-2d01c73007Admin handbook: The sentence tells the reader to write the secret as it is 'in woodpecker.env' without quotes, but no handbook defines woodpecker.env or --env-file; every run command in the handbooks passes the… [defects, defects #109858] | high | fixed-before-release | held review (review model) | — |
RSD-woodpecker-cdcd8a6e6bAdmin handbook: Measured: after the documented PATCH (admin=false) on a user, `GET /api/users` with that user's token returned 403 while `GET /api/user` returned 200, so only administrator endpoints are refused. [defects, defects #112672] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-99a614826eAdmin handbook: Unconditional claim. Measured: a mode-777 host directory bind-mounted into the image is writable by uid 999 (write succeeded); only a directory without uid-999 write permission fails ('cannot create… [defects, defects #112673] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-621da6d5bfDatabase handbook: Absolute statement that contradicts the next sentence of the same paragraph ('ensure it is world-writable or owned by UID 999') and lines 593/1435/2117. [defects, defects #112674] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-7ccd8e7521Database handbook: Measured on the image: `docker run --rm --entrypoint sh -v DIR:/d:ro IMAGE -c 'echo hi > /d/x'` prints 'sh: 1: cannot create /d/x: Read-only file system'; without :ro on a 755 directory owned by… [defects, defects #112675] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-1d77bd3132Admin handbook: Round-4 finding 'documented curl GET /api/user/token returns the web UI page' was fixed by appending an explanation (line 1110) after the unchanged GET command at 1105-1107, so the page still… [defects, defects #112676] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-3df70103b1Admin handbook: IMAGE_CONFIG.json: Healthcheck Interval 5s, StartPeriod 15s. [defects, defects #112677] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-5c97dba79eAdmin handbook: Measured on the image: `docker run --rm --entrypoint tar -v V:/var/lib/woodpecker IMAGE xf - -C /var/lib/woodpecker < wp-data.tar` printed 'tar: This does not look like a tar archive', exit 2; only… [defects, defects #112678] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-38d18a0c88Admin handbook: Measured: without -i the volume holds nothing (tar form) or a 0-byte woodpecker.sqlite (cat form); nothing is 'corrupted', and the tar form is not silent (error, exit 2). [defects, defects #112679] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-e7645fa7bbAdmin handbook: Same absolute-statement class as the round-3/4 findings. [defects, defects #112680] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-4231344e05Database handbook: A customer relying on this sentence would believe GET /api/forges and GET /api/signature/public-key require a personal access token; they do not, and this document's own line 640 already says so, so… [defects, defects #112681] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-c2c703278aDatabase handbook: A customer following this sentence literally to recover a locked-out administrator sets the new WOODPECKER_ADMIN value and runs `docker restart`, which does not apply it (Docker environment… [defects, defects #112682] | critical | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-7281a91d8eDatabase handbook: Same lockout as the line-1148 instance: `docker restart` does not pick up a new WOODPECKER_ADMIN value, so an administrator following this text remains locked out. [defects, defects #112683] | critical | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-165f4448a3Admin handbook: A customer reading only this list (immediately under the corrected paragraph naming GET /api/forges and GET /api/signature/public-key as the public endpoints) would conclude those two still need a… [defects, defects #112684] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-0278bbb942Database handbook: A customer rebuilding offline and choosing the 'docker import' alternative this sentence offers ends up with an image that has no ENTRYPOINT, no EXPOSE, and no HEALTHCHECK -- i.e. [defects, defects #112685] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-f23c6866b0API guide: An integrator who reads the 'Endpoint reference' heading for POST /api/debug/pprof/symbol and then checks this 'not served' list to see if it's safe to rely on would wrongly conclude the POST route… [defects, defects #112686] | high | open | held review (review model) | — |
RSD-woodpecker-b0fd82d5a8Database handbook: A customer following this bullet expects `docker exec <container> curl .../api/debug/pprof` (or a browser hit) to return profiling data; on the default log level it silently returns the web UI's… [defects, defects #112687] | low | open | held review (review model) | — |
RSD-woodpecker-9849329217Database handbook: A customer building a monitoring check or API client against this bullet expects GET /api/healthz to return health JSON/status; it returns the web UI's HTML fallback page (200) instead, which could… [defects, defects #112688] | low | open | held review (review model) | — |
RSD-woodpecker-f98536619fDatabase handbook: A customer building an API client against this bullet expects GET /api/version to return version data; it returns the web UI's HTML fallback page (200) instead of the {"source":...,"version":...}… [defects, defects #112689] | low | open | held review (review model) | — |
RSD-woodpecker-ba9912bf99Database handbook: Same false narrowing as line 1213 but with no exception clause at all ('All API requests must be authenticated'), directly contradicting line 640 in this same document and the live behavior of GET… [defects, defects #112690] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-66d39fecc8VERIFY.md: cosign's --key flag does not fetch a public key from a bare https:// URL; it takes a local file path, stdin, or a KMS-style URI. [defects, defects #112691] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-edbfacf2dfRelease notes: Same broken cosign invocation as VERIFY.md (missing the `<(curl -fsSL ...)` wrapper cosign's --key flag requires for a remote key). [defects, defects #112692] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fcd74c8ddcPROVENANCE.md: Same broken cosign invocation as VERIFY.md/RELEASE_NOTES.md — cosign cannot fetch a public key from a bare https:// URL passed to --key. [defects, defects #112693] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-fd177940acSecurity report: Same broken cosign invocation repeated in the security report — the document whose entire purpose is letting the customer independently confirm the signature. [defects, defects #112694] | critical | fixed-before-release | held review (review model) | — |
RSD-woodpecker-79bc516f40Admin handbook: False: the handler only accepts the token via the Authorization header as `Bearer <token>`; there is no query-parameter path at all. [defects, defects #112695] | critical | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-d3a8fc344bDatabase handbook: False. The forge's OAuth token is used only for the initial login redirect; it is never accepted as an API credential. API calls require a Woodpecker-issued personal access token (a JWT signed with… [defects, defects #112696] | critical | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-2740e84f47Database handbook: False: `docker build` with no `-t` does not invent a repository:tag — it produces an untagged image referenced only by its image ID. [defects, defects #112697] | critical | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-3eee527fc0Admin handbook: This URL does not exist on the upstream project's site — Woodpecker's real documentation is hosted at woodpecker-ci.org/docs/... [defects, defects #112698] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-1a7afaa613Database handbook: Same non-existent URL as in the admin handbook, repeated 6 more times in this file (lines 306, 501, 515, 551, 649, 905), again in place of this release's own bundled and version-matched API reference. [defects, defects #112699] | high | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-77219ae7a6Security report: "at least `latest`" is a nonsensical version floor — 'latest' is not a version. [defects, defects #112700] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-2fc188e87aSecurity report: PROMOTION_RECORD.json contains no dependency-version data whatsoever (only chain_id, release/internal tags, promotion status, and cosign sign/push output). [defects, defects #112701] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
RSD-woodpecker-a5a61cbc35Admin handbook: Incomplete: this exact release also supports Forgejo and Bitbucket/Bitbucket Data Center as forges (each with its own WOODPECKER_* enable flag and OAuth client/secret variables), but every… [defects, defects #112702] | low | fixed-in-release | held review (review model) | v3.19.0-CE-ubuntu24.04-r2 |
Verification
3 items not recorded- Reproduced before publishingyes (rebuilt digest sha256:836c5f9ef4f115ef243e1823f3f421891bfdccb0f6a80e6b4d3f9e6f09cbc585 · published digest sha256:836c5f9ef4f115ef243e1823f3f421891bfdccb0f6a80e6b4d3f9e6f09cbc585 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 194) [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 694 package_archive gate_result.g8.result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-10-27T16:30:30Z · failing Docker Scout counts 100 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).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- First own scan of the releaseA (at 2026-10-27T16:36:34Z · 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-27T06:30:41Z) [image_scans, image_scans #1343]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-10-27T16:30:17Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3517539049 · transparency-log entry
- log index 3517542219 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3632651063 · transparency-log entry · integrated 2026-11-01T14:33:45Z) [ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
Offline clean-room rebuilds
- 2026-10-27T13:37:07Z on build host 5 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:836c5f9ef4f115ef243e1823f3f421891bfdccb0f6a80e6b4d3f9e6f09cbc585 [clean-room rebuild ledger, runs[460]]
- 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 attestations' transparency-log entries (no attestation record in the release's workspace)
- 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
2 items not recorded- Image pushed (internal tag), publish_image passed2026-10-27T13:25:21Z [stage_runs, stage_runs chain 694 stage publish_image]
- Archive manifests written2026-10-27T16:32:25Z [PUBLISH_MANIFEST.json, published_at]
- Archive cut over on prodasset, package_archive passed2026-10-27T16:36:24Z [stage_runs, stage_runs chain 694 stage package_archive]
- Cut-over markerpresent (chain 694) [.cutover.json]
- Not recorded: when the release tag was promoted (the promotion record in the archive was written before the promotion, and the release's workspace no longer holds this chain)
- Not recorded: the site event's time (the release checklist is in the chain's workspace, which no longer holds this chain)
Packages and CPU level
Fully recorded- Packages in the image237 (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 747 · probed 2026-11-02T17:11:29Z · 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
23 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/PROMOTION_RECORD.json | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.tar.gz) | — |
.cutover.json | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
MANIFEST.json | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
ReadyStack-woodpecker-v3.19.0-CE-ubuntu24.04-r2.rebuild.json.sigstore | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/woodpecker/v3.19.0-CE-ubuntu24.04-r2/) | — |
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) | 371 |
chains | sadb, ReadyStack's engine database (not published) | 694 |
defects | sadb, ReadyStack's engine database (not published) | woodpecker v3.19.0-CE-ubuntu24.04-r2 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 694 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 694 |
image_scans | sadb, ReadyStack's engine database (not published) | 1343 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 694 |
release_images | sadb, ReadyStack's engine database (not published) | woodpecker v3.19.0-CE-ubuntu24.04-r2 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 694 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 694 |