Skip to content

v0.2.0

Choose a tag to compare

@Abrar118 Abrar118 released this 01 Jun 14:16
· 50 commits to master since this release
98be20d

QuickDev v0.2.0 brings cross-platform application discovery, a new capture command, project diagnostics, and a major internal refactor with cross-platform CI. Everything since v0.1.1 (PRs #1#9).

New features

  • Cross-platform add app discovery (#9) — the interactive quickdev add picker now discovers installed apps on Linux (XDG .desktop files) and Windows (Start Menu .lnk shortcuts), not just macOS. Discovered launch args (Flatpak flatpak run …, Snap, Squirrel Update.exe --processStart …) are carried through and saved to the config.
  • quickdev capture (#7) — snapshot the macOS GUI apps you currently have running and add the selected ones into the project's .quickdev.toml, so quickdev launch can reopen them (--all or interactive multi-select).
  • Diagnostics & inspection (#5) — a single liveness notion (project path + .quickdev.toml both exist) backs a new set of commands:
    • quickdev prune — remove global-index registrations whose project path or .quickdev.toml no longer exists.
    • quickdev doctor (+--fix) — report global-config / fzf / per-project health; --fix creates a missing global config, prunes dead registrations, and normalizes project configs.
    • quickdev validate — check the current project's config (terminal paths stay within root, supported emulators, app paths exist, known placeholders); exits non-zero on errors.
    • quickdev list --missing / list --json — filter to unhealthy projects, or emit a JSON array; the default table now distinguishes path missing from .quickdev.toml missing.
  • quickdev config (#4) — config set|get|unset emulator <ghostty|terminal> with validation.
  • App-arg placeholders (#4) — {root}, {config}, {name}, {cwd} substituted in application args at launch (a bare "." still means project root).
  • launch --dry-run (#2) — preview what would launch without spawning anything.

Improvements & fixes

  • Editor tools (VS Code / Cursor / Zed) respect configured args, else default to opening the project root (#4).
  • Graceful fzf cancellation — ESC / ctrl-c prints Cancelled. and exits 0 instead of an error (#4).
  • Richer / launch summary showing each item's resolved path / command (#2).
  • Path-based CLI substitution at launch, so Flatpak/Snap/Squirrel wrapper entries aren't hijacked into e.g. code run com.visualstudio.code (#9).
  • Robustness batch (#1): index-based project picker (handles names with spaces), launch <name> shows the picker, re-register syncs the project name, shell-words arg parsing, $EDITOR/$VISUAL with arguments, AppleScript/PowerShell escaping, terminal path-traversal guard, and the multi-terminal cold-start race fix.
  • Launch-preview robustness (#3): Windows rooted/drive-prefixed path validation, gnome-terminal readiness probe, and resolved app args shown in --dry-run.
  • list --json escapes all JSON control characters below U+0020 (#6).

Internal

  • Split the 718-line main.rs into a 32-line entry point + cli.rs (clap types) + commands/ (one file per command) (#2).
  • Cross-platform CI workflow — fmt / clippy -D warnings / test on Ubuntu, macOS, and Windows (#2).
  • Test suite grew from 53 → 127 tests.

Docs

  • Added the MIT LICENSE file and license = "MIT" in Cargo.toml (#8).

Known limitations

  • Linux/Windows app discovery type-checks and is unit-tested on pure parsing, but hasn't yet been exercised against real .desktop/.lnk installs on those platforms.
  • Windows .lnk argument splitting uses POSIX tokenization (shell_words) — correct for common/unquoted args, not a faithful Windows command-line parser.

Binaries

Prebuilt binaries for macOS (x86_64, aarch64), Linux (x86_64, aarch64), and Windows (x86_64) are attached below, along with checksums-sha256.txt.