Skip to content

Theorem v1.0.4

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Jul 14:08
· 611 commits to main since this release

Added

  • Sync-daemon bundled as Tauri sidecar — The sync-daemon binary 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 installcurl -fsSL https://raw.githubusercontent.com/fundaments-work/Theorem/main/scripts/install-linux.sh | bash auto-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 servicetheorem-daemon.service runs 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_NOTIFICATIONS is now properly requested before the foreground service starts. The system dialog appears when enabling sync, making the persistent notification visible.
  • Android ProGuard/R8 keep rulesproguard-rules.pro now keeps all work.fundamentals.theorem.syncworker.* classes so R8 doesn't strip reflectively-called plugin methods in release builds.

Changed

  • Build scriptsmakepackage-linux.sh builds the sync-daemon before pnpm tauri build so it's included in the bundle. release.yml CI does the same.
  • Install script overhaulinstall-linux.sh now downloads from GitHub, detects the distro (deb/rpm/AppImage), installs the app + daemon + systemd service in one command.

Fixed

  • Android foreground notification not showingSyncWorkerPlugin.startWorker() now calls requestPermissionForAliases("notifications") on Android 13+ before starting the service. Previously it only checked and logged.
  • Android R8 strippingconsumerProguardFiles now points to the existing proguard-rules.pro instead of the missing consumer-rules.pro. Includes -keep class work.fundamentals.theorem.syncworker.** { *; }.