Skip to content

Releases: nocoo/shrike

v0.1.3

19 Feb 21:06

Choose a tag to compare

Security & Reliability Fixes

  • Sync concurrency lock — Prevents UI and webhook from triggering parallel rsync runs (AtomicBool guard)
  • Path traversal protectiondestination_path() rejects .., /, . and empty strings in backup_dir_name and machine_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.error calls
  • Webhook integration tests — 19 real HTTP tests via DataStore trait abstraction (no Tauri runtime needed)

Testing

289 automated tests (116 Rust UT + 26 Rust E2E + 147 TypeScript)

v0.1.2

18 Feb 11:37

Choose a tag to compare

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

18 Feb 09:51

Choose a tag to compare

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 -r flag 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

18 Feb 02:58

Choose a tag to compare

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)