OXYGENHUB

Log P4b (release trust and audit); add H12 runner management fd3f920f0b24

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 10:43 UTC
Signature
✔ signed by Andy McCall
Hash
fd3f920f0b24acaaa1be76e5824a474ed08d409229303b5107201deb2c2316a7
Depends on
03571027793e 28fee1c9eb6c 4960d87af58b 75036530b621
Depended on by
a5d2fbe7c10d e811b0813473 a707df24e576
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
4 atoms, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-2.md +15 −1
…
113 unchanged lines
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.
116 116
  - Flow `output` and artifacts, so a release asset links to the receipt that built it.
117 -
- [ ] P4b **Trust dashboard** (item 4): per release and asset, a graph of authors' identities and signatures, the runner and its pinned environment, inputs (state, scope hash), and receipts, with a one-click audit view and export.
117 +
- [x] P4b **Trust dashboard** (item 4): per release and asset, a graph of authors' identities and signatures, the runner and its pinned environment, inputs (state, scope hash), and receipts, with a one-click audit view and export.
118 118
- [x] H11 Run pipeline without a push, made easy (Andy): a primary button on the Flow tab, reasons shown when it is missing, and Run pipeline beside each bookmark and on change pages (runs the change's own state); `POST /flow/runs` takes `{"change"}`.
119 +
- [ ] H12 **Runner management** (Andy; oxygenhub#41), in parts:
120 +
  - H12a Runners in the database: registration from the UI (`flow runner register`) with the signing key bound at registration, replacing hub.toml tokens. A Runners page (status, key, architecture, tiers, labels, capacity, current jobs) with each runner's job history, and drain, disable and remove.
121 +
  - H12b Scopes: site, organisation or repository runners. Claims only return in-scope jobs, and repositories and organisations get Settings → Runners.
122 +
  - H12c Labels and architecture: `runs-on` in pipelines (oxygenflow), with runners reporting labels and architecture in claims.
123 +
  - H12d Queue view (why each job waits) and the runners API.
124 +
  - H12e Bring up Plex (x86_64) as a second microVM runner, and a VisionFive 2 Lite (riscv64). The JH7110 has no hypervisor extension, so it needs a non-microVM tier first. Andy will say how to reach them.
119 125
- [ ] H10 `oh`, a command-line client for OxygenHub like GitHub's `gh`: a crate `crates/oh` in the oxygenhub workspace on hub-api. First slice: `oh auth login`, `oh issue list|view|create`, `oh proposal list|view|create|land`, `oh run list|view|watch`, `oh release list|create|upload`, with `--json`.
120 126
- [ ] P5 **Web workspaces** (item 2), in parts:
121 127
  - P5a: flow-casfs, a read-only FUSE mount of a state from CAS chunks, measured.
…
614 unchanged lines
736 742
  - **Run pipeline:** now a primary button on the Flow tab. Viewers who cannot use it are told why: Flow is off, they are not signed in, or they lack write access.
737 743
  - **Bookmarks and changes:** each bookmark has Run pipeline beside it. On a change page it runs the state whose only head is that change; such runs carry no bookmark and are labelled "change". `POST /flow/runs` accepts `{"change"}`, and the empty-state text mentions manual runs.
738 744
  - **Tests and deploy:** the manual-run test covers a change run, an unknown change, the reasons text and the missing buttons. Deployed; the hub run is green.
745 +
- 2026-09-29 **P4b done** (oxygenhub#42; Andy's item 4).
746 +
  - **Page:** `/{o}/{n}/releases/trust/{tag}`, linked from each release as "Trust and audit".
747 +
  - **Contents:** the tag's signer and signature; the authors of the changes since the previous release, with signed, sealed, unsigned, invalid and revoked counts and linked accounts; and each asset's build: run, job, runner key (and whether one of this hub's runner tokens signs with it), tier, rootfs and environment hashes, inputs (state, pipeline, scope), and the signed receipt, verified again.
748 +
  - **Graph and audit:** an SVG graph (authors → tag → jobs → assets, dashed for a build from another state), and a pass/warn/fail audit of each claim.
749 +
  - **Export:** `?format=json` and `GET /api/v1/repos/{o}/{n}/releases/trust/{tag}` carry the signed receipts as hex for offline `oxy receipt verify`.
750 +
  - **Tests and deploy:** a hub end-to-end test with a signed tag, a signed-receipt build and a hand upload. Deployed; the hub run is green.
751 +
- 2026-09-29 **Andy asked for runner management** (see, assign per site, organisation or repository). Filed as oxygenhub#41 and added as H12a–e. Plex and VisionFive 2 Lites are available for remote runner tests.
752 +
- 2026-09-29 **P5c in progress.** The importer fix (oxygen#25) is committed. The full 166 412-commit import runs locally on Sarturn under disk and 16 GB RSS watchdogs; Andy said to move heavy jobs to Earth if they cause trouble.