Changelog
Documentation for Apps
Vitto Desktop App — Changelog
Current version: 0.4.0 Identifier: space.gograb.vitto Signing: Developer ID Application: GoGrab LLC (SFG3Z4GLEB) Update endpoint: https://vitto-updater.gograb.space/latest.json Config: apps/vitto-desktop/src-tauri/tauri.conf.json Version source: apps/vitto-desktop/src-tauri/Cargo.toml (
versionfield)
How to check installed version
- In tray: Right-click tray icon → "About Vitto" (shows version)
- In app: Settings or
/vitto/debugroute shows build info - In code:
Cargo.tomlline 3 is the source of truth - Updater: App checks
vitto-updater.gograb.space/latest.jsonautomatically
How to build & install
# 1. Build Angular frontend first
nx build gograb-ai --configuration=production
# 2. Build Tauri app
cd apps/vitto-desktop && cargo tauri build
# 3. Install from dist
# macOS: open src-tauri/target/release/bundle/dmg/Vitto_*.dmg
[0.3.0] — Pre-release
Features
- Tauri v2 with Angular
gograb-aifrontend - System tray with 3 states (idle/active/error)
- Global hotkey
Cmd+Ctrl+Vto show/hide - Close-to-tray (window hides, process continues)
- Autostart via macOS LaunchAgent (
tauri-plugin-autostart) - Deep links (
vitto://protocol) - Auto-updater with Ed25519 signature verification
- 13 native Rust commands (shell, files, screenshot, AppleScript, clipboard, system info)
- Start hidden (daemon mode) —
visible: false - Code-signed for macOS distribution
Plugins
tauri-plugin-global-shortcut— hotkey registrationtauri-plugin-notification— native notificationstauri-plugin-autostart— launch on logintauri-plugin-shell— command executiontauri-plugin-deep-link—vitto://URL handlingtauri-plugin-updater— auto-update from endpointtauri-plugin-opener— open URLs/filestauri-plugin-positioner— tray-relative window positioning
Known Gaps (for next version)
- WebSocket reconnection is finite (10 retries, should be infinite)
[0.4.0] — 2026-03-19 (S238.5)
Features
- Smart heartbeat with native idle detection (system-wide, not window-only)
- Version display in tray menu ("About Vitto v0.4.0" — disabled display-only item)
- Native notification dispatch for actionable heartbeat findings
- New Rust command
get_system_idle_time— uses IOKit HIDIdleTime on macOS
Improvements
- Heartbeat only fires proactive check when user is idle (>5 min system-wide via IOKit)
- No interruptions during active work — native idle detection tracks ALL input devices
- JS mousemove/keydown listeners retained as fallback when native detection unavailable
- Heartbeat async-probes for native idle on init, logs detection mode to console
Rule: Every Tauri release bumps the version in
Cargo.toml, updates this changelog, and pushes tovitto-updater.gograb.space.