Commit ce3928e
Add first-install iCloud pairing prompt with main-device auto-surface
When a fresh install finds another device's identity in the iCloud-synced
keychain backup, prompt "Pair <device>?" and run the standard joiner
pairing handshake against it - the found inbox id becomes this device's
identity. The invite is minted locally, signed by the backed-up key, so
the joiner's slug and identity-share verification hold unchanged and no
QR is scanned.
The main device now auto-surfaces incoming requests: StreamProcessor
verifies the join request's slug against its own identity key (only a
device sharing the iCloud keychain can mint one) and presents the
initiator PIN sheet directly when foregrounded, or posts a local
"<device> is requesting to pair" notification otherwise.
Includes QA test 42 (two-simulator clone seeding via the
CONVOS_QA_WIPE_PRIMARY_IDENTITY launch hook), accessibility ids and QA
events for automation, and unit tests for invite signing, backup
filtering, and the coordinator's respond entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 687f22c commit ce3928e
25 files changed
Lines changed: 1722 additions & 84 deletions
File tree
- ConvosCore
- Sources/ConvosCore
- Pairing
- Sessions
- Syncing
- Tests/ConvosCoreTests
- Convos
- Config
- Conversations List
- Devices
- qa
- tests
- structured
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
310 | 310 | | |
311 | 311 | | |
312 | 312 | | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
313 | 333 | | |
314 | 334 | | |
315 | 335 | | |
| |||
325 | 345 | | |
326 | 346 | | |
327 | 347 | | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
| 348 | + | |
333 | 349 | | |
334 | 350 | | |
335 | 351 | | |
336 | 352 | | |
337 | 353 | | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
338 | 368 | | |
339 | 369 | | |
340 | 370 | | |
| |||
0 commit comments