Skip to content

ProtoFS v0.4.3

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Oct 15:48
· 1 commit to main since this release
Immutable release. Only release title and notes can be modified.

πŸš€ Added

  • Desktop System Tray Integration & Taskbar Hiding:
    • Added desktop system tray icon with left-click show/hide toggle and right-click context menu (Open ProtoFS, Exit ProtoFS) via tauri::tray in crates/protofs-tauri/src/lib.rs.
    • Updated minimize_window_command in crates/protofs-tauri/src/commands/settings.rs to hide window completely to the notification area (system tray), removing the app from the taskbar just like qBittorrent/Telegram.
  • Configurable Window Close Behavior & Action Prompt:
    • Added interactive CloseAppModal dialog when clicking the window close button (X), allowing users to choose between Minimize to System Tray (keeps background sync & active transfers running) and Exit Application (cleanly unmounts virtual drives and terminates).
    • Added a "Remember my choice" checkbox to persist the preference in useSettingsStore (closeAction: 'prompt' | 'minimize' | 'exit').
    • Added interactive 3-way toggle in Settings -> General Tab (GeneralTab.tsx) allowing users to update or reset their close behavior anytime between Always Ask, Minimize to Tray, and Exit Application.
    • Added exit_app_command backend Tauri command in settings.rs to ensure graceful virtual drive unmounting and clean process exit.
  • Multi-ABI and Universal Android Release Workflow:
    • Configured Android Gradle ABI splits (arm64-v8a, armeabi-v7a) with isUniversalApk = true in build.gradle.kts.
    • Streamlined GitHub Release packaging in .github/workflows/release.yml to bundle and publish standalone ProtoFS_v${VERSION}_universal.apk, ProtoFS_v${VERSION}_arm64-v8a.apk, and ProtoFS_v${VERSION}_armv7.apk release assets.

πŸ› Fixed

  • In-Place Telegram Pinned Manifest Editing & Deduplication:
    • Upgraded candidate manifest lookup in manifest.rs to use a robust multi-strategy search (InputMessagesFilterPinned, channels::GetFullChannel pinned ID lookup, earliest channel messages, caption #protofs_manifest_v1, and document filename).
    • Ensured update_pinned_manifest edits the existing pinned manifest message in-place rather than sending a new message after batch uploads, cleans up any previous duplicate manifest messages, and guarantees that only one pinned message remains in the Telegram storage channel.