iOS
Messaging
Screenshot pending — see prompt sync-sf-ios-screenshot-capture.md.
Starting a private message
To send a message to another member:
- Tap the compose button in the conversation list.
- Select a member from your organisation’s approved member list.
- Type your message in the input field at the bottom of the conversation.
- Tap Send.
Your message is encrypted on your device before it leaves. The recipient decrypts it on their device.
Group messages
Group threads appear in your conversation list like private threads. To send a message to a group:
- Open the group conversation.
- Type your message.
- Tap Send.
Each member device receives its own encrypted copy of the group message. SemaFore does not use a shared group key for group threads.
File sharing
To attach and send a file:
- Tap the attachment icon in the message input area.
- Select a file from your device.
- The file is encrypted on your device before upload.
- Complete the send action to deliver the file.
Broadcasts
Broadcasts appear in your conversation list, marked as broadcasts. Broadcasts are read-only. Organisation administrators send them to all approved members, and members cannot reply inside the broadcast thread.
For the portal workflow that sends broadcasts, see Broadcast. For the delivery model behind them, see Broadcast Messages.
Delivery and read state
SemaFore shows message delivery state in private threads. Delivery and read receipts are metadata-only events; they do not change the end-to-end encryption model or expose message content to the server.
Notifications and quick reply
You can open a thread by tapping its notification. Where iOS supports it, you can also send a quick reply directly from the notification surface.
If a notification belongs to a different organisation from the one you are currently viewing, SemaFore switches into the correct organisation before opening the thread.
Thread actions
You can mute a thread if you do not want visible notifications for it. You can also pull to refresh the conversation list or a thread view to force a sync if you suspect you are missing recent activity.
What the server can see
The server receives only encrypted messages and the routing metadata needed to deliver them. Your message content and file attachments are encrypted on your device using the Signal Protocol. The server cannot decrypt or read your conversations.
Multi-device behaviour
A single account can be active on multiple devices. Each recipient device receives its own encrypted copy of every message.
This means:
- adding a second device does not decrypt older content from your first device onto the new one
- revoking one device does not revoke the entire account
- delivery state is tracked per device copy, not through a shared plaintext mailbox
Message expiry
If your organisation has a message-retention policy, expired content is replaced in the conversation view with a placeholder:
[Content removed]for expired message text[Attachment removed]for expired files