mirror of
https://github.com/bulwarkmail/native.git
synced 2026-10-31 16:06:32 +00:00
90b78da8c89189da663feb35e6b709c216c52a94
Four smaller calendar changes that Stalwart 1.0 needs. - Time zone: 1.0 fails every CalendarEvent get and query whose timeZone its database lacks, with invalidArguments "Invalid timeZone". It matches IANA names case-sensitively and knows no offsets, so a "+01:00" or "europe/berlin" that Intl accepts empties the calendar. 0.16 reads such a zone as UTC. The zone is now checked with a get of no events that rides along with the first calendar list; once refused, reads ask in UTC and log one warning, and a read refused before the check answered is repeated once in UTC. The comment that said Stalwart ignores bad values is corrected. - Default alerts: 1.0 fills a calendar's default alerts into the alerts of an event that uses them. The editor wrote them back with useDefaultAlerts false on every save, freezing today's defaults into the event. It now writes nothing while the reminders are unchanged; a change turns the defaults off and saves the alerts under ids of their own, since 1.0 drops alerts saved under a default alert's id. - Calendar colour: renaming sent the colour along, and 1.0 accepts only #rgb, #rrggbb or a CSS name, so a calendar another client coloured with an 8-digit hex could not be renamed. The edit sheet and the iCal subscription settings now send only the fields that changed. - Reply stubs: 0.16 stored an attendee's answer to one occurrence without a title, place or description, and 1.0 builds that occurrence from the override alone. Hydration now takes a missing title from the series, and the place and description when the override removes the title.
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%