OXYGENHUB

Backlog 3: correctness items from metalgear first b9c2d543933b

refs #36, refs #37, refs #38, refs #29
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 21:13 UTC
Signature
✔ signed by Andy McCall
Hash
b9c2d543933b967929643e39cb05bb3b2c7f74905fe30f7591b1e040a59bbeff
Depends on
33e77a5526fa
Depended on by
1681323d1dff
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
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified docs/backlog-overnight-3.md +10 −0
…
73 unchanged lines
74 74
  `systemd-run --user --scope -p MemoryMax=8G`, and
75 75
  `CARGO_INCREMENTAL=0` (the disk is nearly full).
76 76
77 +
## Correctness first (from metalgear, 2026-09-29)
78 +
79 +
A working copy that silently becomes the wrong tree is worse than any
80 +
slowness, so these come before everything else.
81 +
82 +
- [ ] C1 **Working-copy writes hold the workspace lock** (oxygen#36). Checkout, bookmark switch (with --carry), pull's checkout, undo, discard and commit hold the lock from reading the head until their operation is recorded. `merge_views` never lets a working-copy change based on a replaced one win. Test: a snapshot concurrent with a checkout never records the checkout's writes as edits.
83 +
- [ ] C2 **`bookmark create NAME CHANGE` refuses a partial state** (oxygen#37). When CHANGE is one of the current state's heads but not all of them, it refuses and explains, unless given --only. `bookmark switch` summarises a wide tree difference. The guide explains that bookmarks name states, not ancestry.
84 +
- [ ] C3 **A parent's switch never rolls a subrepo's bookmark back** (oxygen#38).
85 +
- [ ] C4 **`pull` says "Already up to date" while one behind** (oxygen#29). Reproduce it with a test, then fix it.
86 +
77 87
## Memory
78 88
79 89
- [ ] M0 **Tools to see memory.** Add a counting global allocator behind
…
71 unchanged lines