Support mid-sync abort for external GUIs - #1198
Conversation
If applied, this change will enable external GUIs to trigger mid-sync abort via Callback.register. It has no behavior impact on calling apps. It just expands what external GUIs can hook into.
Moves the abortAll item out of "resolved as won't-do" — a human-authored version was submitted to bcpierce00/unison#1198. Records the retirement plan: if it merges, drop patches/0001-… and the make apply-patches step once the vendored blob is rebuilt from an upstream that includes it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
I am unclear if our CI does any useful tests, so I wonder what the state of the in-tree mac gui was, and if you have run it after. (I get it that one can reason it must not be harmed; I'm asking if we know that's true.) I myself do not use the unison GUIs at all. I enabled the CI run; sorry for not hitting that earlier but I didn't realize it wouldn't run (for some definition of "new contributor", it only runs if I hit "approve running CI"). |
|
Thanks for enabling CI. I built and ran the app from this branch. Built I also looked into the CI failure. Both red jobs are the Windows builds, failing at the |
|
The CI setup is a bit flaky; jobs randomly fail to fetch packages that must be installed. I just usually rerun them. Thanks for testing/reporting. |
|
Windows CI is failing reliably, and it's not about your change. |
The OCaml to Cocoa bridge in uimacbridge.ml doesn't expose a way for the macOS Cocoa frontend to abort an in-progress sync. This change registers an abortAll callback that calls the existing Abort.all, so Cocoa frontends can hook into it. This change is purely additive. No behavior change for existing callers.