Skip to content

refactor: extract syncfu-core + headless server + monorepo restructure - #2

Merged
sujithatzackriya merged 6 commits into
mainfrom
fix/install-review-findings
Mar 26, 2026
Merged

refactor: extract syncfu-core + headless server + monorepo restructure#2
sujithatzackriya merged 6 commits into
mainfrom
fix/install-review-findings

Conversation

@sujithatzackriya

Copy link
Copy Markdown
Contributor

Summary

  • Extract syncfu-core crate — types, notification manager, waiters, webhook, HTTP server with zero Tauri dependency
  • Add UiNotifier trait — decouples server from UI layer. Desktop implements with Tauri (NSPanel overlay + events), headless uses NoopNotifier
  • Add syncfu serve CLI command — runs headless HTTP server for CI/CD, containers, and quick testing without desktop app
  • CLI auto-launch — if server is down, tries macOS app bundle first, falls back to spawning headless server
  • Monorepo restructurecore/ (shared lib), cli/ (CLI binary), desktop/ (Tauri app with src-tauri/ + frontend/)
  • Harden install scripts and CI from code review findings
  • Replace placeholder icons with panda branding

Test plan

  • cargo test -p syncfu-core — all 49 core tests pass
  • cargo build -p syncfu-cli — CLI builds clean
  • cargo check -p syncfu — desktop crate compiles
  • syncfu serve starts headless server on port 9868
  • syncfu send -t "Test" "hello" works against headless server
  • syncfu health / syncfu list / syncfu dismiss-all work
  • Desktop app (cd desktop && npx tauri dev) launches with overlay
  • syncfu send --wait blocks and returns action/dismissed/timeout

🤖 Generated with Claude Code

@sujithatzackriya
sujithatzackriya force-pushed the fix/install-review-findings branch from e09ec39 to a1416ac Compare March 26, 2026 16:37
Builds Tauri desktop bundles (macOS .dmg, Windows NSIS, Linux AppImage)
alongside CLI binaries in a single release pipeline triggered on v* tags.
Downloads and installs the desktop app (.dmg on macOS, .AppImage on Linux)
plus CLI binary. Starts the tray app after install so the server is
immediately available on port 9868. Falls back to --cli-only if desktop
download fails.
Downloads NSIS installer for the desktop app (silent install) plus CLI
binary. Starts the tray app after install. Adds -CliOnly switch for
headless/CI environments.
Replaced by release.yml which builds both desktop app and CLI.
Converted to manual workflow_dispatch to prevent duplicate releases.
@sujithatzackriya
sujithatzackriya merged commit 35e1f26 into main Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant