Log P4d2 (release assets link to receipts) as done d82f153bdf7e
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-29 08:24 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
d82f153bdf7ec85655f2255741daa84f072ccfa93fb6563bfe47b51be6efa3c7- Depends on
- 28fee1c9eb6c 75036530b621 9df6217f5f47
- Depended on by
- 4960d87af58b
- In bookmarks
- agents-in-readme bare-hashes carried-not-removed carry-identical doctor-trust identical-sides keyless-tags main merge-remote-bookmark only-help-103 paths-for-resolutions-and-amend push-notes show-stat subrepo-pin-state switch-says
- In tags
- v0.1.0 v0.10.0 v0.11.0 v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.5.0 v0.5.1 v0.6.0 v0.7.0 v0.8.0 v0.9.0
- Edits
- 3 atoms, 0 tree operations, 1 file
Browse the tree at this change
modified docs/backlog-overnight-2.md +7 −2
| … | 107 unchanged lines |
||
| 108 | 108 | - [x] P4a The `receipt` object and attestation in the Oxygen spec and oxy-core: a signed receipt verifies on its own; the repository keeps receipts by state; `oxy receipt list|show|export|verify|import` (first part of P4, below). |
|
| 109 | 109 | - [x] P4c The runner signs each receipt with its own identity; the hub verifies it against its known runner keys, keeps it in the repository, and shows it on the run, the check and the change. |
|
| 110 | 110 | - [x] P4d1 Flow `output` and artifacts: a job's declared outputs become repository blobs named by its signed receipt, listed and downloadable on the run page. |
|
| 111 | - | - [ ] P4d2 A release asset links to the receipt that built it (by content), and an artifact can be attached to a release from its run. |
|
| 112 | - | - [ ] P4 **Signed Flow receipts**: |
|
| 111 | + | - [x] P4d2 A release asset links to the receipt that built it (by content), and an artifact can be attached to a release from its run. |
|
| 112 | + | - [x] P4 **Signed Flow receipts**: |
|
| 113 | 113 | - A `receipt` object type in the Oxygen spec. |
|
| 114 | 114 | - A runner identity whose key (composite Ed25519 + ML-DSA-65) signs each receipt. |
|
| 115 | 115 | - Receipts stored in the repository and verified by the hub. |
|
| … | 602 unchanged lines |
||
| 718 | 718 | - **Hub:** uploads go through `POST /api/v1/flow/jobs/{id}/artifacts/{name}` and must be declared. The hub keeps each one as a repository blob and records it in `flow_artifacts` (path, size, BLAKE3). A receipt must name exactly the uploaded blobs. Run pages list artifacts and link `/flow/{n}/artifacts/{job}/{name}`. |
|
| 719 | 719 | - **Dogfood:** oxygen's build job keeps `target/release/oxy`. Live, run 67's 16 MB binary downloads and runs, and the build job's signed receipt names it as its output. |
|
| 720 | 720 | - **Tests:** parsing, debugfs read-back from an ext4 image, and a hub end-to-end test. All runs are green. |
|
| 721 | + | - 2026-09-29 **P4d2 done** (oxygenhub#39). P4 is complete (P4a, P4c, P4d1, P4d2). |
|
| 722 | + | - **Built by:** a release asset links to the passed job whose artifact has the same BLAKE3 (`flow_artifacts.content`, indexed). A job with a kept signed receipt comes first, then the newest run. The release page shows the run, job, signed receipt and signer, and the API gives `built_by` on each asset (hub-api `AssetBuild`). |
|
| 723 | + | - **Attach:** on the run page, writers can attach an artifact to a release. It becomes an asset named after the artifact's path. |
|
| 724 | + | - **Tests:** the hub artifacts end-to-end test now also signs in, attaches through the form, and checks the release page and the API. The hub run is green. |
|
| 725 | + | - **Not tried live:** oxygen has no releases on Earth yet, and I did not create one on Andy's repositories. |