Protesters in India are using Bitchat to communicate when the internet is shut down.
I know nothing about him (besides he was involved in twitter and is rich) but it’s interesting to see a billionaire making GitHub issues on a Bluetooth messenger. Good for him I guess.
opened 12:24PM - 31 Jul 26 UTC
closed 01:43PM - 31 Jul 26 UTC
RC frozen at `6f323637` (main, July 31). Version already 1.7.1 in `Configs/Relea… se.xcconfig`. This issue tracks the field pass gating the App Store submission.
**Ordering matters: do the upgrade-in-place first, before any wipes.** Rig: 2–3 devices, at least one carrying a real 1.7.0 store install with identity, favorites, and DM history.
### Device pass
- [x] **1. Upgrade-in-place from 1.7.0** (device A): install RC over the store build. Identity/nickname/favorites/DM history intact; keychain migrates silently on first unlock (#1431); no re-handshake storm against device B.
- [x] **2. Fresh install** (device B): onboarding, nickname set, discovery.
- [x] **3. Mesh core** (A↔B): announce/discovery both ways → public chat → DM handshake with verified seal → image + voice note both directions (reveal taps work) → PTT live in DM and public.
- [x] **4a. Rotation — dual-link ghost (#1554, never field-verified)**: with A and B connected, triple-tap panic on B → B's old identity must vanish from A entirely (no ghost row); new identity binds and chats normally.
- [x] **4b. Rotation — rotated-restore (#1566, never field-verified)**: after B's rotation, background/foreground B (or toggle Bluetooth on A); reconnect settles without retire↔reconnect oscillation — peer list stable, no flapping.
- [x] **5. Locked-device background receive** (validates #1552's protection class): lock A, send it an image from B over mesh → arrives and is readable after unlock.
- [x] **6. Panic wipe end-state** (device B, last): triple-tap → instant wipe (no confirm is the default) → relaunch clean, old identity gone everywhere, media directories empty.
- [x] **7. Internet legs**: geohash channel over Tor (watch bootstrap), geo DM, Tor-off recovery, one bridge/courier drop leg if a third device is available.
- [x] **8. Language picker**: switch to Persian, confirm RTL rendering on main surfaces, switch back.
4a/4b are the only never-field-verified items; the rest is regression confirmation.
### Submission steps (after the pass)
- [ ] Tag `v1.7.1` (SOURCE-MANIFEST.txt generates automatically via `.github/workflows/source-manifest.yml`)
- [ ] Publish GitHub release (curated security/reliability header + auto changelog); release notes MUST carry the #1431 device-bound keychain copy — identity no longer survives device migration or reinstall
- [ ] Archive, upload, submit with the App Store "what's new" copy
🤖 Generated with [Claude Code](https://claude.com/claude-code)