OXYGENHUB

Backlog: P1e done 1d27d0a2b3c1

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 05:34 UTC
Signature
✔ signed by Andy McCall
Hash
1d27d0a2b3c117ce6bd52053632913c64054ad409b9e90b1b0fe9f9dc70e947a
Depends on
0cded3d844e4 75036530b621 7f64236d2829
Depended on by
fc1a466a1e66 31f64699c8aa
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 +9 −1
…
85 unchanged lines
86 86
- [x] P1a Text conflicts resolved region by region on OxygenHub (first part of P1, below).
87 87
- [x] P1c Name conflicts on the resolver: keep one candidate, which takes the name as a move.
88 88
- [x] P1d "Resolve in VS Code": the resolver hands a conflict to oxygen-vscode (a vscode:// URI the extension handles: clone or open, switch to the bookmark, open the file).
89 -
- [ ] P1e Replace conflicts of binary files: oxy-core cannot yet resolve one by keeping an existing candidate (writing a candidate's bytes counts as no change); make that a resolution, then offer it on the resolver.
89 +
- [x] P1e Replace conflicts of binary files: oxy-core cannot yet resolve one by keeping an existing candidate (writing a candidate's bytes counts as no change); make that a resolution, then offer it on the resolver.
90 90
- [ ] P1 **Conflict resolution on OxygenHub** (Andy's list, item 1). A resolver page for a conflicted state:
91 91
  - Per conflict region: pick a side, several sides, or none; edit freely; tree conflicts too (keep a candidate).
92 92
  - 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.
…
554 unchanged lines
647 647
  - Parsing and matching are in `src/handoff.ts`, with tests; `npm run check` passes (`ℹ fail 0`).
648 648
  - Installed in both profiles; hub deployed; both runs green.
649 649
  - **Fixed on the way:** P1c's name-conflict test found the kept candidate by the first occurrence of a word anywhere on the page, which failed now and then. It now reads the candidates' previews; six passes in a row.
650 +
- 2026-09-29 **P1e done** (oxygen#21, hub refs; Draft 0.8m).
651 +
  - **Core.** A change that writes an opaque file with a replace conflict settles it when the caller names the path.
652 +
    - One `Replace` goes from each live blob to the chosen one, depending on each change that made a candidate live, so all are superseded (§9.3).
653 +
    - Hosted edits name the paths the user writes. A plain snapshot never settles one, since a checkout writes a candidate at the path.
654 +
  - **Hub.** The resolver offers a binary file's versions, each labelled with its change. Keeping one commits the resolution, and the conflicts page links them.
655 +
  - **Tests.** A core test (conflict via merge, snapshot leaves it, keeping a candidate or new bytes settles it) and a hub end-to-end test (five passes in a row).
656 +
  - Pinned and deployed; all three runs green.
657 +
  - **P1 is complete apart from P1b** (live collaboration).