Skip to content

fix(mobile): export authorization gate plus composer/draft exact mentions - #236

Closed
only21mil wants to merge 1 commit into
mainfrom
cursor/wave1-p05-mobile-export-95e4
Closed

only21mil wants to merge 1 commit into
mainfrom
cursor/wave1-p05-mobile-export-95e4

Conversation

@only21mil

Copy link
Copy Markdown
Owner

Summary

Wave 1 P05 mobile lane, two parts:

  • UD-2 export authorization (feat(mobile): require device authentication for identity export block/buzz#5116 port): fresh local device auth mints short-lived (120s), single-use grants bound to community, identity, action, confirmed peer, and pairing transcript. The nsec publishes only after both SAS confirmation and a consumed grant; cancel/unavailable/expired/peer-mismatch all abort without sending. Grants die on logout, community switch, background, and pairing teardown. Settings keeps pubkey-only copy. Android moves to FlutterFragmentActivity with all fork notification/permission callbacks kept plus a framework-only DeviceAuthBridge (no new deps); iOS gains an LAContext device-owner channel and the Face ID usage string.
  • Composer/draft remainder of d07457687 (fix(mobile): bind same-name mentions to exact selected identities block/buzz#7385) that P05b skipped: exact mention labels, composer resolution at send, draft mention_keys persistence with hydration/pruning, qualified-label rendering, adapted to the diverged fork composer. mention_bindings.dart taken byte-identical from P05b's frozen head as the shared compile base.

Related issue

N/A (wave-1 work package P05; upstream refs block#5116, block#7385, commit d07457687).

Testing

  • flutter analyze: clean.
  • Full mobile suite: 1902 tests green, including new export_authorization_test, export_platform_contract_test, extended pairing recovery tests, settings pubkey test, and upstream exact_mention_tests (14 scenarios).
  • Kotlin/Swift reviewed but not compiled on this VM; native proof stays with P11/P12 device acceptance.
Open in Web Open in Cursor 

…ions

Ports UD-2 (block#5116): fresh local device auth mints short-lived,
single-use grants bound to community, identity, peer, and pairing
transcript; the nsec publishes only after both SAS confirmation and a
consumed grant, and every failure aborts without sending. MainActivity
moves to FlutterFragmentActivity with fork notification callbacks kept;
iOS gains an LAContext device-auth channel and the Face ID usage string.
Settings keeps pubkey-only copy.

Ports the composer/draft remainder of d074576 (block#7385): exact mention
labels, composer resolution, draft mention_keys persistence with
hydration and pruning, and qualified-label rendering, adapted to the
diverged fork composer.

flutter analyze clean; full mobile suite green (1902 tests).

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: only21mil <only21mil@users.noreply.github.com>
@only21mil only21mil closed this Sep 13, 2026
@only21mil
only21mil deleted the cursor/wave1-p05-mobile-export-95e4 branch September 13, 2026 20:15
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.

2 participants