OXYGENHUB

Backlog: M11 and M12 done; M13, M14 from new feedback 2dd42fa169c8

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-28 23:02 UTC
Signature
✔ signed by Andy McCall
Hash
2dd42fa169c86ca5ce98f71fd045a2cd45d1e305813b775740e8135819a857c5
Depends on
75036530b621 c1fe1fb25021 f8c695764c95
Depended on by
93e7f1d9ef1c
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 +21 −1
…
66 unchanged lines
67 67
- [x] M1 (metalgear feedback 1, reported by Andy) Bookmarks with `/` in their names could not be pushed: attestation and checkpoint files are now flat, escaped names (oxygen#12). The hub is pinned to the fix and deployed.
68 68
- [x] M2 Flow on/off per repository in the hub (Andy's request; feedback 10): a switch in repository settings for site admins, with hub.toml's `[flow] repos` as the default; no restart.
69 69
- [x] M11 (feedback 12, Andy: urgent) Flow runs numbered per repository, not by the hub-wide id; existing runs renumbered and their check links rewritten by migration 0019 (oxygenhub#23).
70 -
- [ ] M12 (Andy) Delete a bookmark on a remote: `oxy push REMOTE --delete NAME` (a signed, attested deletion the server checks like any update; never the default bookmark), and a delete button on the hub's bookmarks page for writers.
70 +
- [x] M12 (Andy; feedback 14a) Delete a bookmark on a remote: `oxy push REMOTE --delete NAME` (a signed, attested deletion the server checks like any update; never the default bookmark), and a delete button on the hub's bookmarks page for writers.
71 +
- [ ] M13 (feedback 3a) `oxy bookmark switch --carry`: take uncommitted work to the other bookmark when it applies cleanly there (and `bookmark create --switch` moving the working copy onto a new bookmark at its base, changes and all).
72 +
- [ ] M14 (feedback 7a) `oxy show`'s summary lists every path the change touches with its kind (added, modified, removed, renamed, mode), not only additions.
71 73
- [ ] M3 Start a run without moving a bookmark (feedback 9): "Run pipeline" on a state and "Re-run" on a finished run, in the web and the API.
72 74
- [ ] M4 Guest `/dev/fd`, `/dev/stdin|stdout|stderr` links in flow-init (feedback 15), and job variables `FLOW_STATE`, `FLOW_HEADS`, `FLOW_BOOKMARK`, `FLOW_RUN`, `FLOW_REPO` (feedback 17).
73 75
- [ ] M5 Sandbox-level `env` in pipeline.kdl, and the image's environment kept through `flow rootfs import` (feedback 16).
…
389 unchanged lines
463 465
    - My edit of hub.toml on Earth was refused by the permission check, so I did not make it.
464 466
    - The line `"doomsdayone/metalgear"` is now in `[flow] repos`, added outside this loop, and run #37 there passed.
465 467
    - From now on the new setting does this without editing hub.toml.
468 +
- 2026-09-28 **M11 done** (oxygenhub#23; Andy asked for it urgently). Flow runs are numbered per repository.
469 +
  - Run list, run page (`/flow/{number}`), live view, stamp and check links all use the number.
470 +
  - Migration 0019 numbered the existing runs per repository in creation order and rewrote the links of existing flow checks.
471 +
  - I tried it first on a read-only copy of Earth's runs and checks: 160 of 185 links changed, and every link names a run of its own repository.
472 +
  - Live: metalgear's run is #1, oxygen's #1 to #19. Hub run green.
473 +
- 2026-09-29 **M12 done** (oxygen#13, oxygenhub#24; Andy asked, and feedback 14a).
474 +
  - **`oxy push REMOTE --delete NAME`** sends an update to the zero state.
475 +
    - Checked like any update: the bookmark must exist at `old_state`, and a policy needs an authorized key.
476 +
    - The deletion's attestation stays the bookmark's latest, so an old one cannot be replayed to bring it back.
477 +
    - So a bookmark new to a remote starts its serial at the clock in milliseconds.
478 +
    - The local bookmark is kept.
479 +
  - **The default bookmark is never deleted.**
480 +
    - A non-bare repository protects its checked-out bookmark.
481 +
    - For a bare one, the host says which is the default through `Backend::default_bookmark`: `oxy serve` uses the configured bookmark, the hub its setting.
482 +
  - **Hub:** a DELETE button (with a confirmation) for writers on every bookmark but the default. It goes through the same checks, is logged on the pushes page and sent to webhooks as a push.
483 +
  - **Tests:** core, HTTP and hub, one each. Spec §16.4 (Draft 0.8l) and hub spec updated. Deployed; all three OxygenFlow runs green.
484 +
  - metalgear's `flow-first-run` can now be deleted; I left that to its project.
485 +
  - **Feedback file:** new items 3a and 7a became M13 (`bookmark switch --carry`) and M14 (`oxy show` summary lists every kind).