Companion to keep PR privkeyio/keep#979 (dkg-cancel-run-identity), which scopes frost_cancel_dkg to a per-run identity.
Why
The keep-mobile FFI changes shape:
frost_cancel_dkg() → frost_cancel_dkg(run_id: u64) — cancel now targets a specific run.
- New
DkgProgressUpdate::Started { run_id }, emitted at run start, delivers the id the UI must use to cancel.
keep's android CI only asserts the bindings generate; it does not compile keep-android against them, so this break stays green in keep CI and only surfaces here when keep.version moves.
Required changes
Optional (UX)
AccountActions.kt:485 synthesises a Connecting state before the run starts, so the UI shows a cancellable state before Started delivers an id. A cancel pressed in that window has no id to target and is a no-op (not a regression — the old flag-reset discarded early cancels too). Consider queuing a pending cancel and applying it on Started.
Blocked
Cannot merge until #979 lands; keep.version must pin to its squash-merge SHA.
Companion to keep PR privkeyio/keep#979 (
dkg-cancel-run-identity), which scopesfrost_cancel_dkgto a per-run identity.Why
The keep-mobile FFI changes shape:
frost_cancel_dkg()→frost_cancel_dkg(run_id: u64)— cancel now targets a specific run.DkgProgressUpdate::Started { run_id }, emitted at run start, delivers the id the UI must use to cancel.keep's
androidCI only asserts the bindings generate; it does not compile keep-android against them, so this break stays green in keep CI and only surfaces here whenkeep.versionmoves.Required changes
AccountActions.kt:433—frostCancelDkg()no-arg call breaks; thread a capturedrun_id.run_idfromDkgProgressUpdate.Startedand hold per-run state (the current code has none).CreateGroupScreen.kt:972dkgStatusText— theelse-less exhaustivewhenoverDkgProgressUpdatestops compiling without aStartedbranch.AccountActions.kt:71— rewrite the stale comment describing the old process-wide flag.keep.versionto #979's merge SHA and regenerate bindings.Optional (UX)
AccountActions.kt:485synthesises aConnectingstate before the run starts, so the UI shows a cancellable state beforeStarteddelivers an id. A cancel pressed in that window has no id to target and is a no-op (not a regression — the old flag-reset discarded early cancels too). Consider queuing a pending cancel and applying it onStarted.Blocked
Cannot merge until #979 lands;
keep.versionmust pin to its squash-merge SHA.