docs: track :gl divergence rebase in v0.9, note supersede in v0.7

This commit is contained in:
Julien Calixte
2026-07-14 13:27:37 +02:00
parent 75f25433ec
commit d47230c7a1
2 changed files with 18 additions and 0 deletions

View File

@@ -78,6 +78,12 @@ the tree was unchanged).
the background. Snackbar: `pulled <oid>` / `up to date` /
`ahead - :sync to publish` / `diverged - resolve on a computer` /
`pull: <reason>`.
- **Superseded (v0.9):** divergence is no longer refused — `:gl` now rebases
the device's local commit(s) onto origin (`rebase_local_onto`,
last-writer-wins per note, no content merge) and ends `LocalAhead` for
`:gp` to publish. The `diverged - resolve on a computer` snackbar is
replaced by `rebased <oid> - :gp to publish`. See
[v0.9-robustness.md](v0.9-robustness.md).
Memory + connection work landed here (2026-07-14, forced by the run-2 crash;
all three compose):

View File

@@ -17,6 +17,18 @@
phase at ~3.5 s ≪ the ~30 s idle window; a multi-pack or cold-cache
state could still lose it — see the
[real-repo-sync kaizen](kaizen/real-repo-sync.md))
- [ ] `:gl` recovers from a divergence by rebasing — instead of refusing (the
v0.7 ff-only behavior), the pull replants the device's local commit(s)
onto origin's tip (`rebase_local_onto`: splice the `merge_base..HEAD`
paths from the card onto origin's tree, last-writer-wins per note, no
content merge) and ends `LocalAhead` for `:gp` to publish. The branch ref
moves **last**, after the merged tree is applied to the card, so a
power-pull mid-rebase leaves HEAD at the old tip and the next `:gl`
recomputes the identical commit idempotently. Snackbar `rebased <oid> -
:gp to publish`. Core done 2026-07-14 (`git_sync.rs`, full build green);
**on-device verification pending** — needs a real divergence to
reproduce (a stranded local commit plus a foreign push to the same
branch)
- [ ] Eradicate the paint-during-sync DMA allocation failure: persistent
internal DMA scratch in `Epd` (safety net + allocation-free repaints
shipped; see the