Releases: chen86860/easy-complete
Release list
v2.1.1
- fix: show shell history in the suggestion list again when History Mode is left at its default — the dashboard displayed "Show with completions" while the setting had never been written, and the code treated the unset value as off
- fix: stop sending an empty terminal session id from
Process.run, which arrived asSome("")and failed UUID parsing host-side, silently leaving the zsh, bash, and fish history sources empty on every launch - fix: derive the current shell from the edit buffer context instead of the pre-exec
processDidChangenotification, so history is available before the first command of a session is run - fix: recompute suggestions when a history source finishes loading, instead of leaving the list without history until the next keystroke or settings change
- fix: fall back to the recorded history database when the shell-specific source is unavailable, matching the existing behaviour for history argument suggestions
- change: replace the history suggestion emoji with a rotate-clock glyph on a rounded tile, matching the icon style of the surrounding suggestions
- change: turn Hide Immediately Execute into a positive Show Immediately Execute toggle, so enabling it reveals its sub-options rather than hiding them
- change: render sub-settings as an indented inset group following macOS System Settings, and drop descriptions that only restated their label
- change: token the dashboard palette into semantic CSS variables so light and dark mode stay in sync
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.1.0
- change: shell integration now stands down entirely when the desktop app is not running, so VS Code Terminal Suggest, Otty, and other terminals keep their own completions. This is decided when the shell starts, so a terminal opened before the app is running stays uninstrumented for that session — open a new terminal after launching Easy Complete
- fix: subscribe to macOS accessibility notifications correctly in release builds, where undefined behaviour previously made every subscription report failure and left the popup unable to follow the focused window
- fix: keep tracking a window when it rejects only some accessibility notifications, instead of abandoning the whole application
- fix: stop observing Easy Complete's own windows, which made showing the popup look like an app switch and hid it again immediately
- fix: restore first-token command completion, sourcing aliases and the full PATH from a login shell with a 1.5s budget and an automatic non-login fallback
- fix: convert
Process.runtimeouts to protobufDurationwith the correct millisecond-to-nanosecond factor - fix: preserve framework symlinks when installing to
/Applicationsso the bundle passescodesign --verify --deep --strictand the Sparkle updater stays valid - feat: add Otty and ChatGPT (Codex) terminal support, including input-method cursor tracking for Otty and xterm.js caret detection for Codex
- feat: coexist with Otty-managed shell rc files instead of reporting the integration as broken when Otty owns the end of the file
- feat: add a silent launch setting that starts the app in the background without opening the settings window
- feat: expose the auto-execute row as a parent toggle with trailing-space and dangerous-command sub-options, and add a first-token completion toggle
- feat: build the autocomplete and dashboard webviews on demand and release them when idle, and apply
autocomplete.keepReadychanges without a restart - feat: localize the settings UI with English and Simplified Chinese, and add the Claude Light autocomplete theme
- fix: prevent dangerous suggestions from reaching the auto-execute row through the current-token fallback path
- change: disable autocomplete WebView DevTools in release builds and opt out of the macOS AutoFill helper
- build: honour
CARGO_TARGET_DIRwhen assembling the app bundle - fix: patch the open npm advisories in both lockfiles and cover the standalone website project with Dependabot
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.50
- fix: preserve Sparkle-generated delta files by normalizing their space-based filenames before appcast cleanup, and fail releases when delta assets are missing or mismatched
- change: simplify the
eccommand surface by removing obsoletesetupandthemecommands, hiding internal commands, and adding version and project information to help output - fix: make
ec issueuse GitHub's standard title/body URL, routeec updatethrough the native Sparkle updater, and install shell integration through the supported integrations command - build: replace the broken pnpm 11.13.0 pin with pnpm 11.14.0 so local and release builds can complete
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.49
- feat: add an official
chen86860/homebrew-tapCask so Easy Complete can be installed with one Homebrew command - docs: make Homebrew the recommended installation path in the English and Chinese READMEs and on the website, while retaining the signed DMG as a manual alternative
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.48
- fix: keep only the current release item and its referenced delta files in the Sparkle appcast, preventing stale update entries from pointing at assets that are not uploaded with the new release
- change: make the settings window feel more native by disabling browser context menus, Inspect Element, and chrome text selection in production while preserving editable-field selection and full inspector access in local debug builds
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.47
- fix: restore the proven React 18, react-window 1, and Zustand 4 autocomplete runtime after the v2.0.46 migration prevented the suggestion panel from opening on terminal input
- change: keep the compatible Vite 8, Vitest 4, and broader build-tool upgrades while returning the autocomplete list, resize observer, and state updates to their stable implementations
- fix: correct the local installer repository and build-script paths so it assembles and installs the app from the repository root
- feat: add installation, troubleshooting, Ghostty, and Fig-alternative website guides with route-specific SEO metadata
- test: validate the rollback with production builds, lint, 177 passing tests, and an installed-app terminal smoke test
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.46
- change: upgrade the frontend runtime and build stack to React 19, Vite 8, Vitest 4, TypeScript 6, Zustand 5, Zod 4, and react-window 2, while keeping Tailwind on the latest Safari 15-compatible v3 release
- change: replace the React 18-only resize-observer wrapper with the native browser API, migrate list virtualization and stricter Zustand state updates, and align dashboard inputs and hooks with React 19 behavior
- chore: refresh compatible lint, formatting, codegen, and workspace dependencies; remove deprecated types and unused lint plugins; migrate Vitest workspace configuration; pin patched transitive dependencies so the dependency audit is clean
- test: validate the upgrade on Node 22.23.1 with repeated full builds, coverage tests, and shuffled test ordering (177 tests passing)
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.45
- fix: render path-backed file and folder suggestion icons as real images, with built-in icon fallbacks when local icon loading fails
- change: modernize the embedded webviews to a Safari 15 target, remove legacy browser/polyfill dependencies, and align local and CI tooling on Node 22.23.1 with pnpm 11.13.0
- change: make the macOS distribution pipeline ARM64-only end to end; remove obsolete universal/Linux/Windows Makefiles and Linux packaging assets, strip Intel slices from Sparkle before signing, and reject non-ARM binaries during app and DMG assembly
- chore: remove deprecated or unused frontend types and dependencies, prune the lockfile, quiet API request code generation, and correct the CLI crate/binary names in the README files
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.44
- feat: replaced the unconditional macOS LaunchAgent with a user-controlled launch-at-login integration: macOS 13+ now uses
SMAppService.mainAppService, while macOS 12 keeps a non-KeepAliveLaunchAgent fallback - fix: synchronized the Launch at Login setting with the actual system registration, migrated and removed both historical LaunchAgents, kept login launches silent, and made uninstall fully unregister every startup entry
- change: set macOS 12 as the explicit minimum deployment target in both the Rust build and the app bundle metadata
- chore: migrated formatting from nightly-only rustfmt options to the pinned stable toolchain, updated CI/setup/docs, and mechanically reformatted the Rust workspace
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.
v2.0.43
- fix: deliver webview emit events even while the autocomplete window is disabled, so settings changes such as the autocomplete theme take effect immediately while the dashboard is focused instead of remaining stale until restart
- fix: keep the Dashboard on its native macOS accent color when switching themes; the theme setting now affects only the autocomplete dropdown
- chore: remove unused upstream
figterm/fig-apitest harnesses, the standalone shell-startup profiler, and the stale model ZIP Git LFS rule; none were wired into this fork's CI or workspace
Install
- Download
Easy-Complete-arm64.dmg, open it, and drag Easy Complete to Applications. - Launch Easy Complete. On first launch, the app registers the bundled input
method and asks for Accessibility permission. Autocomplete will not appear
until Accessibility is granted in System Settings -> Privacy & Security ->
Accessibility. - Reload your shell:
exec $SHELL
This DMG is Developer ID signed, notarized, and published with a Sparkle appcast for future updates.