Releases: nocoo/shrike
Releases · nocoo/shrike
v0.1.3
Security & Reliability Fixes
- Sync concurrency lock — Prevents UI and webhook from triggering parallel rsync runs (AtomicBool guard)
- Path traversal protection —
destination_path()rejects..,/,.and empty strings inbackup_dir_nameandmachine_name - Empty Google Drive path guard — Sync refuses to run when gdrive_path is not configured
Improvements
- Webhook /status truthfulness — Reports actual sync state (Idle/Running) instead of hardcoded Idle
- Frontend error feedback — User-visible toast notifications replace silent
console.errorcalls - Webhook integration tests — 19 real HTTP tests via
DataStoretrait abstraction (no Tauri runtime needed)
Testing
289 automated tests (116 Rust UT + 26 Rust E2E + 147 TypeScript)
v0.1.2
What's New
- Dark theme — auto-detect system preference, manual override (Auto/Light/Dark)
- i18n — Chinese and English UI, auto-detect system language (Auto/中文/English)
- Appearance section in Settings with theme and language selectors
- Dynamic version in About page (reads from Tauri API)
- Sync log overflow fix — long paths now wrap within container
Testing
268 automated tests (147 TypeScript + 109 Rust UT + 12 Rust E2E)
v0.1.1
What's Changed
Added
- Dropdown menu on + button for separate "Add Files" / "Add Folders" selection
- Standalone About page with logo, version, and GitHub link
- Sync log as dedicated page with formatted summary
- Separate file and directory counts in sync results
- File list entries grouped by directory with full-path headers
- Quick Add wizard redesigned with collapsible file tree and smart folding
- Per-device backup subfolder via machine name setting
Fixed
- Sync no longer blocks the UI (trigger_sync made async with spawn_blocking)
- rsync directory recursion restored with explicit
-rflag when using--files-from - File list refreshes when navigating back from wizard
- Checkbox checked prop always boolean to avoid React warning
- Scrollbar thumb visibility improved
- About page logo upgraded to higher resolution (160x160)
- Shell permission added for opening external links
Testing
- 264 automated tests (109 Rust UT + 12 Rust E2E + 143 TypeScript)
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Shrike v0.1.0 — Initial Release
A lightweight macOS menu bar utility that syncs files and folders to Google Drive using rsync.
Features
- Drag & drop files and folders to build a sync list
- Quick Add wizard — auto-detect coding configs (Cursor, Claude, Aider) for one-click backup
- rsync-powered sync — incremental, efficient, preserves directory structure
- Google Drive integration — auto-detects Google Drive path (including localized names)
- Webhook API — trigger sync remotely via HTTP (Bearer token auth)
- Hide Dock icon — optional setting to keep Shrike out of the Dock and Cmd+Tab switcher
- Launch at Login — auto-start on macOS boot
Downloads
Shrike_0.1.0_aarch64.dmg— macOS Apple Silicon (arm64)
Test Coverage
- 186 tests (73 TypeScript + 101 Rust unit + 12 Rust E2E)