v0.2.0
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
addapp discovery (#9) — the interactivequickdev addpicker now discovers installed apps on Linux (XDG.desktopfiles) and Windows (Start Menu.lnkshortcuts), not just macOS. Discovered launch args (Flatpakflatpak run …, Snap, SquirrelUpdate.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, soquickdev launchcan reopen them (--allor interactive multi-select).- Diagnostics & inspection (#5) — a single liveness notion (project path +
.quickdev.tomlboth exist) backs a new set of commands:quickdev prune— remove global-index registrations whose project path or.quickdev.tomlno longer exists.quickdev doctor(+--fix) — report global-config / fzf / per-project health;--fixcreates 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-wordsarg parsing,$EDITOR/$VISUALwith 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 --jsonescapes all JSON control characters below U+0020 (#6).
Internal
- Split the 718-line
main.rsinto a 32-line entry point +cli.rs(clap types) +commands/(one file per command) (#2). - Cross-platform CI workflow —
fmt/clippy -D warnings/teston Ubuntu, macOS, and Windows (#2). - Test suite grew from 53 → 127 tests.
Docs
- Added the MIT
LICENSEfile andlicense = "MIT"inCargo.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/.lnkinstalls on those platforms. - Windows
.lnkargument 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.