Skip to content

Releases: encapsa-ai/dep-sync

dep-sync v0.2.1

Choose a tag to compare

@github-actions github-actions released this 26 Jul 08:11

See CHANGELOG.md for release notes.

Full Changelog: v0.2.0...v0.2.1

dep-sync 0.2.0 — Windows support

Choose a tag to compare

@github-actions github-actions released this 26 Jul 04:00

Windows 10/11 support and a set of cross-platform reliability improvements.

Added

  • Windows 10/11 (x64) support. NSIS installer, WebView2 bootstrapper embedded so the installer works on stripped-down Windows 10 images. Installs per-user under %LOCALAPPDATA% — no admin prompt.
  • Windows terminal integration. Open Terminal auto-detects Windows Terminal (wt.exe), then falls back to PowerShell 7, Windows PowerShell, and finally cmd.exe. Custom terminal_command in config.toml still wins over auto-detection.
  • Platform-aware keyboard shortcut label. macOS shows ⌘R; Windows and Linux show Ctrl+R.

Changed

  • Atomic manifest writes now use tempfile::NamedTempFile::persist. Routes to ReplaceFileW on Windows and rename(2) on Unix. Improves reliability on every platform — particularly on Windows where antivirus scanners and Explorer preview handlers can briefly hold package.json open and break plain fs::rename.
  • Rescan shortcut now correctly requires Ctrl on non-Mac platforms. Previously required the Meta key, which maps to the Windows key on Windows (unusable) and Super on Linux (also unusable). On macOS, Ctrl+R is explicitly rejected to avoid browser-refresh muscle memory triggering unwanted rescans.

Fixed

  • Linux x-terminal-emulator alternatives now work correctly when the selected terminal is implemented as a shell script rather than a binary.

Install

Prebuilt binaries below.

  • macOS (Universal): .dmg — ad-hoc signed; right-click → Open on first launch.
  • Linux (x86_64): .AppImage and .deb.
  • Windows 10/11 (x64): .exe NSIS installer — unsigned, so SmartScreen will warn on first launch. Click More info → Run anyway to proceed. Code signing is on the roadmap.

Windows config notes

TOML treats \ as an escape character in double-quoted strings. On Windows, write paths in config.toml as single-quoted literal strings, doubled backslashes, or forward slashes:

path = 'C:\Users\jdoe\code\ui'      # single-quoted literal
path = "C:\\Users\\jdoe\\code\\ui"  # double-quoted with escapes
path = "C:/Users/jdoe/code/ui"      # forward slashes

The in-app folder picker handles this automatically.

Requirements

  • macOS 12 or newer
  • A modern Linux distribution with WebKitGTK 4.1
  • Windows 10 (build 17763+) or Windows 11 — WebView2 Runtime is bundled

Upgrading from 0.1.0

Drop-in upgrade. No config migration needed.

Full Changelog: v0.1.0...v0.2.0

dep-sync 0.1.0 — Initial release

Choose a tag to compare

@jordanhudgens jordanhudgens released this 26 Jul 03:59

First public release of dep-sync — a local-first desktop app that visualizes and resolves version drift across internal npm packages. No registry lookups, no network calls, no telemetry.

Why it exists

If you maintain a family of internal packages that depend on each other and get published independently, you already know the pain: publish a patch to one, and now you need to figure out which of your other packages and applications need their package.json bumped, in what order, before the npm registry has even caught up to what you just pushed. dep-sync reads your package.json files directly from disk so the answer is immediate and correct.

Highlights

  • Local-first dependency graph. Scans configured package.json files across independent repos — not just monorepos — and filters to your internal packages only.
  • Drift detection via semver::VersionReq. The same crate Cargo uses. Handles exact pins, carets, tildes, range specs, and workspace: prefixes.
  • Cascading update order. Kahn's algorithm topological sort — dependencies before consumers, applications last within each layer.
  • Cycle detection. Refuses to compute an unsafe update order when internal packages form a cycle.
  • Preview + atomic apply. Every package.json write is temp-file + fsync + atomic rename. Key order, indentation, trailing newline, and range style are all preserved.
  • Patch-version bump for libraries. One click, confirmation, done.
  • Open Terminal at any package. macOS Terminal and iTerm auto-detected; Linux tries $TERMINAL, then x-terminal-emulator, gnome-terminal, konsole, alacritty, kitty, and xterm.
  • Markdown + JSON export for AI coding agents. Deterministic snapshot of the full graph state with drift, update order, and package paths — paste into Claude Code, Codex, or any agent.
  • In-app config editor with a native folder picker that auto-fills the package name from package.json.

Install

Prebuilt binaries below.

  • macOS (Universal): .dmg — ad-hoc signed; on first launch right-click → Open to bypass Gatekeeper.
  • Linux (x86_64): .AppImage and .deb.

Or build from source.

Requirements

  • macOS 12 or newer, or a modern Linux distribution with WebKitGTK 4.1

Known limitations

  • Windows is not supported yet — see v0.2.0.
  • No file watcher yet; use the Rescan button or ⌘R after publishing.

Full documentation

See the README for configuration, usage, and architecture details.

Full Changelog: https://github.com/encapsa-ai/dep-sync/commits/v0.1.0