Repository navigation
v0.5.4
What's new
Voice alerts — a recall chime for when you're away
A new built-in voice-alerts plugin plays a short spoken chime when Percho
needs you back at the desk, built for the "walked away, screensaver on" case:
- Task done — a chime after all open sessions have stayed quiet for a few
seconds - Approval waiting — a chime when a permission approval has been sitting
unanswered (takes priority over the "done" chime; the same batch of requests
only chimes once, a new request escalates)
Both are debounced through a global quiet window: if any session picks up
work again within the window (e.g. two sessions ping-ponging over a
collaboration channel wake each other up), the pending chime is cancelled.
Only when everything actually goes quiet do you get one sound, not one per
loop. Timers keep running while the screen is locked or the app is in the
background (backgroundThrottling disabled), and a system sleep simply
resumes where it left off — nothing is lost.
Enable it under Settings → UI 插件 → 语音提醒 (built-in plugin, one
confirm). Toggling the plugin off is the off switch.
This also ships a new headless plugin type in the UI plugin system
(activate() / cleanup lifecycle, no components required) plus audio asset
support (mp3/m4a/… inlined at build time) — the foundation for future
notification, sound-effect and monitoring plugins.
Per-turn work timer
Each turn now shows a live work timer (like Codex / Claude Code): starts
ticking when the turn starts, beats once a second while running, and freezes
at the final duration when the run ends. It sits first in line next to the
file-change chip; turns with no changes get a bare timer row. Historical
turns derive their timings from the session log — no storage changes.
LAN observer: stability & polish
- Heartbeats are now named SSE
pingevents with a client-side watchdog —
half-open connections (mobile lock screen, network switch) recover in
seconds instead of hanging until TCP timeout; "reconnecting" pill no longer
flashes on sub-second blips - Mid-stream joins / reconnects no longer duplicate in-flight assistant text
(healing is now byte-count based and renders only the growing tail) - Meta dot rows match the desktop two-line layout; the composer button is now
context-aware (stop while running, send when you typed — with follow-up
queueing)
Changes
Vision proxy removed
The bolt-on vision proxy (external image recognition for text-only models)
has been removed end-to-end. Multimodal input is table stakes on current
models, and native multimodal is strictly better than second-hand narration.
The composer now gates image input for text-only models cleanly: the attach
button disables, pastes get a toast, and a send with leftover images keeps
your draft instead of silently dropping it.
If you used the vision proxy, the leftover
vision.json(which contains an
API key) in your userData folder can be deleted manually.
Composer & chat polish
- Slash commands now trigger anywhere in the text (after a space), not just at
the start; picking a command preserves the rest of your text as its
argument, and Esc dismisses the menu without clearing input - Code blocks redesigned as borderless floating cards (rounded, soft shadow,
copy button top-right); language badge hidden; first-line grey-highlight and
the selected-line right-edge bar are gone - Deliberately aborting a run no longer produces a spurious "model request
failed" error card - Fixed: turn-diff chip overlapping collapsed tool groups; the image
thumbnail × hidden behind the message list; Monaco worker 404 spam in dev - Keyboard focus rings unified (low-saturation accent outline)
Distribution: Homebrew tap retired
The Homebrew tap (jaxton07/tap/percho) — a stopgap from the ad-hoc signing
era — has been retired. Download from GitHub Releases (below) or use the
built-in updater; existing installs keep working, brew just won't see new
versions.
Also in this release
- Bundled collaboration skills no longer assume the host project has an
INDEX.md— index reading/updating is now conditional, so they behave in
any project - README refreshed with new screenshots; project docs index & pitfall library
now live in the repo (docs/)
Download
| Platform | File |
|---|---|
| macOS (Apple Silicon) | percho-mac-arm64.dmg |
| macOS (Intel) | percho-mac-x64.dmg |
| Windows | percho-windows-x64.exe (installer) or percho-windows-x64.zip |
Ad-hoc signed (no Developer ID). On macOS, if Gatekeeper blocks the app, right-click it and choose Open (or run
xattr -cr "/Applications/Percho.app"as a fallback). Windows may still show a SmartScreen prompt — click "More info" → "Run anyway".
Full Changelog: v0.5.3...v0.5.4