Skip to content

Track nteract desktop Automerge patches#1

Draft
rgbkrk wants to merge 9 commits intomainfrom
desktop-patches
Draft

Track nteract desktop Automerge patches#1
rgbkrk wants to merge 9 commits intomainfrom
desktop-patches

Conversation

@rgbkrk
Copy link
Copy Markdown
Member

@rgbkrk rgbkrk commented May 4, 2026

Summary

This is the nteract desktop patch branch for Automerge. Keep main close to upstream automerge/automerge, and use this branch for patches desktop needs before they land upstream.

Included patch stack:

  • fix fork_at dependency traversal so repeated dependencies are scheduled once, avoiding the MissingOps failure reproduced from the desktop sync/fork path
  • propagate several change-collector/import errors instead of panicking
  • document and test the actor-sequence invariant around concurrent forks
  • run fork CI on pushes and PRs for desktop-patches, with workflow_dispatch available for manual runs

Upstream PRs:

Local verification

  • git diff --check
  • cargo fmt --all -- --check
  • cargo test -p automerge --test fork_actor_invariant
  • cargo test -p automerge --test test test_fork_at_historical_heads_after_sync
  • cargo test -p automerge --test test import_obj_with_bad_hex_returns_err_not_panic
  • cargo test -p automerge op_set2::change::collector::tests
  • cargo test -p automerge --doc
  • RUSTDOCFLAGS="-D warnings" cargo doc -p automerge --no-deps

rgbkrk added 9 commits May 4, 2026 08:41
Three internal call sites that unwrap fallible operations on
user-reachable paths. No root-cause fixes here, just stopping
panics on sync/save/parse paths.

OpEncoderStrategy::finish: missing dep index now returns
Error::ChangesOutOfOrder. The FIXME comment already called this out.

ChangeCollector::unbundle: builders[i].finish() can fail. The
function already returns Result<_, Error>, so propagate it.

Automerge::import_obj: hex::decode panicked on non-hex actor
suffixes. Map to AutomergeError::InvalidObjIdFormat. Regression
test added.
fix(rust): tolerate stale inactive patch logs during sync
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant