| 01 | qa/tests/01-onboarding.md | Fresh onboarding flow (requires simulator erase) |
| 02 | qa/tests/02-send-receive-messages.md | Send and receive text, emoji, attachment, and link preview messages |
| 03 | qa/tests/03-invite-join-deep-link.md | Join a conversation via deep link URL |
| 04 | qa/tests/04-invite-join-paste.md | Join a conversation by pasting invite URL in scan view |
| 05 | qa/tests/05-reactions.md | React to all message content types |
| 06 | qa/tests/06-replies.md | Reply to messages from app and CLI |
| 07 | qa/tests/07-profile-update.md | Update display name in a conversation |
| 08 | qa/tests/08-lock-conversation.md | Lock conversation and verify invites invalidated |
| 09 | qa/tests/09-explode-conversation.md | Explode (destroy) a conversation |
| 10 | qa/tests/10-pin-conversation.md | Pin and unpin conversations |
| 11 | qa/tests/11-mute-conversation.md | Mute and unmute conversations |
| 12 | qa/tests/12-create-conversation-from-app.md | Create conversation from app and invite others |
| 13 | qa/tests/13-migration.md | Database migration from main branch to current branch |
| 14 | qa/tests/14-profile.md | Global profile auto-apply on new convos, App Settings edit, activate-sync into existing convos, per-conversation override isolation |
| 15 | qa/tests/15-performance.md | Performance baselines: conversation open, create, join timings |
| 16 | qa/tests/16-conversation-filters.md | Unread filter, clear filter, empty state, filter persistence |
| 17 | qa/tests/17-swipe-actions.md | Mark read/unread via swipe and context menu |
| 18 | qa/tests/18-delete-all-data.md | Delete all data flow, confirmation, progress, completion |
| 19 | qa/tests/19-profile-photo.md | Profile photo, group photo, sync to other participants |
| 20 | qa/tests/20-send-receive-photos.md | Send photos from app, receive from CLI, context menu |
| 21 | qa/tests/21-message-gestures.md | All message gestures: double-tap, swipe reply, long-press menu, link tap, avatar tap |
| 22 | qa/tests/22-rejoin-existing-conversation.md | Rejoin existing conversation via deep link or paste in scanner |
| 23 | qa/tests/23-pending-invites-home-view.md | Pending invites appear in home view, filter, swipe/context restrictions, approval transition |
| 25 | qa/tests/25-conversations-list-baseline.md | Conversations list baseline for UICollectionView migration - captures all UI states and interactions |
| 26 | qa/tests/26-failed-message-send.md | Failed message send: "Not Delivered" state, retry, and delete |
| 27 | qa/tests/27-send-receive-video.md | Send and receive video messages, inline playback, context menu, size limit |
| 28 | qa/tests/28-receive-file-attachments.md | Receive file attachments (PDF, text, CSV, JSON), file bubble display, QuickLook preview, Save to Files |
| 28b | qa/tests/28-app-icon-badge-count.md | App icon badge count for unread conversations |
| 29 | qa/tests/29-typing-indicators.md | Typing indicators: receive, dismiss, message-arrival clearing, grouping, expiry |
| 30 | qa/tests/30-verified-assistants.md | Verified assistant UI: badges, labels, skills button, agent vs assistant distinction |
| 32 | qa/tests/32-voice-memo-transcription.md | Voice memo transcription: receive voice memo, on-device transcript appears, expand/collapse, persistence across relaunch, retry on failure |
| 33 | qa/tests/33-read-receipts.md | Read receipts: send on view, display avatars, opt-out setting |
| 42 | qa/tests/42-agent-builder-attachment-summary.md | Agent builder: create agent with prompt + photo attachment, verify summary card renders the photo thumbnail (pre- and post-rehydration) |
| 43 | qa/tests/43-long-message-rendering.md | Long-message UX: short renders unchanged, long shows Read More + inline expand, pathological pushes MessageDetailView (Back/Copy/Reply), no-hang guard |
| 44 | qa/tests/44-icloud-pairing-prompt.md | First-install iCloud pairing prompt: Pair ? sheet from a synced keychain backup, Skip persistence, and the full no-QR pair handshake (two simulators; Device B is a clone of Device A) |
| 44b | qa/tests/44b-pairing-prompt-ordering.md | Pairable-backup ordering rule: backups newer than this install's own key are never offered; verified both directions via the restamp launch hook (single disposable clone) |
| 45 | qa/tests/45-reinstall-message-continuity.md | Delete + reinstall while actively chatting: same inbox resumes from the keychain, old installation auto-revoked, and messages flow both ways with the CLI in every prior conversation (erased disposable clone) |
| 46 | qa/tests/46-devices-icloud-section.md | Devices screen iCloud section: paired/iCloud footers, Main-device designation on the oldest key, targeted initiator sheet from an iCloud row, escalated delete-all copy on the main device (single disposable clone) |