mirror of
https://github.com/bulwarkmail/native.git
synced 2026-10-31 16:06:32 +00:00
198e952f61a388cfcdbe54e59e4c536907f3b707
Someone who writes to a calendar shared with them (read & write) changes the owner's meeting there on the owner's behalf: Stalwart sends the change from the addresses of the account the event is in. The app decided who organizes by the user's own addresses only, so it took the sharee for an attendee (0.16 and 1.0 alike): - the editor wrote no participants, hid "Send invitations" and sent nothing, so the attendees kept the old time and their answers - "All events" asked nobody again, and "This and following events" made the rest a new series that kept the old answers, which Stalwart sends to nobody who had answered The app now reads `isOrigin`, which both versions compute from the addresses of the account the event is in: true for the owner's meeting and every expanded occurrence of it, false for an invitation the owner got. `userOrganizes` counts such a copy as the organizer's; an invitation is still changed without messages. "This and following" asks by the old series, since the new one carries no `isOrigin` yet. The editor no longer leaves the user's own main address off the attendees it opens with, only the organizer's (or the user's, for an event that names none yet): a user who invited their main address to a meeting organized under an alias lost it on the next save.
Bulwark Mobile
Beta - work in progress. Many features are unfinished or rough. Expect bugs, missing functionality, and breaking changes between releases. Do not rely on this for primary email yet.
React Native (Expo SDK 54) client for Bulwark Webmail - a JMAP-based mail, calendar, and contacts app.
What works today
- Sign in to any JMAP server (e.g. Stalwart)
- Multiple accounts
- Email list, threads, compose
- Calendar (basic)
- Contacts (basic)
- Push notifications via the Bulwark relay - FCM by default, or UnifiedPush (e.g. ntfy) for devices without Google Play services
- In-app sideload updates from GitHub Releases
What's missing or rough
- iOS builds, but push notifications and client certificates are Android-only so far
- S/MIME, plugins, themes - UI stubs only (filters & rules, the vacation responder and file storage are real implementations)
- Calendar editing is partial; contacts editing is basic
- No Play Store distribution yet (sideload APK from Releases); iOS ships via TestFlight
Run locally
npm install
npx expo start
Then press a for Android, i for iOS, or scan the QR with Expo Go.
For release APK builds and signing see docs/android-release.md. For iOS builds and TestFlight distribution see docs/ios-release.md.
License
AGPL-3.0-only. See LICENSE.
Languages
TypeScript
95.9%
Kotlin
2.1%
JavaScript
0.9%
Swift
0.4%
HTML
0.4%
Other
0.2%