Backlog: metalgear feedback as M1 to M10; M1 and M2 done c1fe1fb25021
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-28 22:13 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
c1fe1fb2502163ba920d3a32d3f613f952f1c0f9c91e2e79d5abd4a912cdb398- Depends on
- 28fee1c9eb6c 57dfc51417fd 75036530b621 b037ade16953
- Depended on by
- ed5b9ef990a3 6a81dbab471d c2d790f9fa95 0bb901cbd059 08b388841556 73609c9f7f50 ce3e73ce9020 85ef828b6bf0 2dd42fa169c8 f8c695764c95
- 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
- 2 atoms, 0 tree operations, 1 file
Browse the tree at this change
modified docs/backlog-overnight-2.md +24 −0
| … | 63 unchanged lines |
||
| 64 | 64 | - [ ] F6 Faster runs: the runner takes one job at a time (oxygenhub is about 14.5 min to green, 8.5 of them the release build), so run independent jobs in parallel within the runner's CPU and memory, and reuse a build tree between jobs of one run (clippy, test and build compile the same crates). |
|
| 65 | 65 | - [x] F5 Required checks: each repository's default bookmark requires its pipeline's checks to land, and the work loop pushes and waits for green instead of gating only locally. |
|
| 66 | 66 | - [x] O10e Checkpoint payload version 2: large file graphs as shared blobs named from an index, read and decoded in parallel; readers accept both versions (spec §11). Agreed by Andy on 2026-09-28. |
|
| 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 | + | - [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 | + | - [ ] 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. |
|
| 70 | + | - [ ] 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). |
|
| 71 | + | - [ ] M5 Sandbox-level `env` in pipeline.kdl, and the image's environment kept through `flow rootfs import` (feedback 16). |
|
| 72 | + | - [ ] M6 Flow API: `GET /repos/{o}/{n}/flow/runs`, `/flow/runs/{n}` with jobs, a job's log; checks by head hash as well as state (feedback 11). JSON 404s under `/api/v1` (feedback 13). Per-repository run numbers, or a note (feedback 12). |
|
| 73 | + | - [ ] M7 Server push errors name the operation and bookmark and log the error chain (feedback 2). |
|
| 74 | + | - [ ] M8 `merge` updates a working copy that is clean against the pre-merge base; `checkout` tells "removed by you" from "not yet written"; `bookmark switch --help` says what happens to uncommitted work (feedback 3). |
|
| 75 | + | - [ ] M9 Small oxy items: `oxy describe` (tag, else bookmark + change, `+dirty`) and tags accepted where a change is (feedback 4); `commit -F` (6); `submodule status` shows added-but-unpinned and has `--json` (5, 7); doctor before the first commit (8). |
|
| 76 | + | - [ ] M10 Hub: say "signed by an unlinked key" on changes and in `/api/v1/user`, pointing at Settings (feedback 14). |
|
| 67 | 77 | - [ ] P1 **Conflict resolution on OxygenHub** (Andy's list, item 1). A resolver page for a conflicted state: |
|
| 68 | 78 | - Per conflict region: pick a side, several sides, or none; edit freely; tree conflicts too (keep a candidate). |
|
| 69 | 79 | - Commit the result as a `kind = resolution` change on the bookmark, through the web-edit path. Signing: sealed when the author next pushes, or "resolve in VS Code" hands off to oxygen-vscode. |
|
| … | 366 unchanged lines |
||
| 436 | 446 | - **Tests:** 3 new; 157 core tests pass, clippy is clean. |
|
| 437 | 447 | - **At 10 000 files:** a clean status takes 0.22 s instead of 0.55 s, and 51 MB instead of 259 MB. Log takes 0.38 s instead of about 0.75 s. Diff and commit are unchanged at about 0.57 s. |
|
| 438 | 448 | - **Split:** O10h (a lazy base for commit and diff, and cached materialized states) is added to the backlog. |
|
| 449 | + | - 2026-09-28 **Metalgear feedback.** Andy's other project reports what it finds in `~/oxygen_feedback.md`; I watch it and act on it. Its items are M1 to M10, placed ahead of P. |
|
| 450 | + | - **M1 done** (oxygen#12). Pushing a bookmark with `/` in its name failed with "No such file or directory". |
|
| 451 | + | - Cause: reference attestations and checkpoint pointers are files named after the bookmark, and nothing created the subdirectory. |
|
| 452 | + | - They are now one flat file each, with `/` escaped (`%2F`), so `feature` and `feature/x` coexist. |
|
| 453 | + | - A test pushes and checkpoints both. |
|
| 454 | + | - Pinned through oxygenflow into oxygenhub and deployed. All three OxygenFlow runs are green. |
|
| 455 | + | - **M2 done** (oxygenhub#22, Andy's request). Settings → OxygenFlow has on, off or site default (hub.toml's `[flow] repos`), and needs no restart. |
|
| 456 | + | - Site administrators change it; repository admins only see it. |
|
| 457 | + | - Audited as `repo.flow`; migration 0018. |
|
| 458 | + | - Two tests; hub gate green; deployed; run green. |
|
| 459 | + | - **Andy asked urgently** to enable Flow for doomsdayone/metalgear. |
|
| 460 | + | - My edit of hub.toml on Earth was refused by the permission check, so I did not make it. |
|
| 461 | + | - The line `"doomsdayone/metalgear"` is now in `[flow] repos`, added outside this loop, and run #37 there passed. |
|
| 462 | + | - From now on the new setting does this without editing hub.toml. |