Theorem v1.0.4
Pre-release
Pre-release
Added
- Sync-daemon bundled as Tauri sidecar — The
sync-daemonbinary is now built and bundled inside deb/rpm/AppImage packages. On startup, the app launches it as a child process for 24/7 background sync. - One-command Linux install —
curl -fsSL https://raw.githubusercontent.com/fundaments-work/Theorem/main/scripts/install-linux.sh | bashauto-detects the distro, downloads the latest release, installs the app, extracts the sync-daemon, and creates a systemd user service (theorem-daemon.service) for persistent background sync. - Systemd user service —
theorem-daemon.serviceruns the sync-daemon as a user service, auto-starts on login, and survives app restart/quit/reboot. Enable manually:systemctl --user enable --now theorem-daemon. - Android notification permission request — On Android 13+,
POST_NOTIFICATIONSis now properly requested before the foreground service starts. The system dialog appears when enabling sync, making the persistent notification visible. - Android ProGuard/R8 keep rules —
proguard-rules.pronow keeps allwork.fundamentals.theorem.syncworker.*classes so R8 doesn't strip reflectively-called plugin methods in release builds.
Changed
- Build scripts —
makepackage-linux.shbuilds the sync-daemon beforepnpm tauri buildso it's included in the bundle.release.ymlCI does the same. - Install script overhaul —
install-linux.shnow downloads from GitHub, detects the distro (deb/rpm/AppImage), installs the app + daemon + systemd service in one command.
Fixed
- Android foreground notification not showing —
SyncWorkerPlugin.startWorker()now callsrequestPermissionForAliases("notifications")on Android 13+ before starting the service. Previously it only checked and logged. - Android R8 stripping —
consumerProguardFilesnow points to the existingproguard-rules.proinstead of the missingconsumer-rules.pro. Includes-keep class work.fundamentals.theorem.syncworker.** { *; }.