Skip to content

v0.5.4

Choose a tag to compare

@github-actions github-actions released this 29 Aug 12:58
· 54 commits to main since this release

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 ping events 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