Ari v0.2.4
Patch release over 0.2.3. Recommended for anyone driving ACP agents — on 0.2.3 the permission modes were effectively advisory (every tool call still parked on you), and a turn could be failed as an authentication problem while it was legitimately waiting for your answer.
Fixed
- Full auto and Allow edits did not actually grant anything. The permission mode was sent to the agent as a mode selection, but Ari never acted on it locally: every
session/request_permissionstill parked as an approval card, so "Full auto" meant "ask me about everything, twice". Requests are now auto-answered against the active mode. Mode selection also resolves each harness's own advertised vocabulary — a bypass-flavored id (codexYolo, claudebypassPermissions, opencodebuild) is preferred over a classifier-based auto mode, since the classifier re-asks — and the permission chip lists the modes the connected agent actually offers instead of a hardcoded four.askstill refuses to guess, so an agent with an unrecognised vocabulary is never silently escalated to write access. (#121) - A turn that waited on you was killed as an auth failure. The prompt-stall watchdog failed any turn whose agent stayed silent for 120s, which caught two legitimate silences: a permission request or question parked on the user (taking more than two minutes to answer killed the turn), and Claude's adapter going quiet while it compacts a long session. The failure then read as an authentication problem, because the watchdog's message ends "waiting for login" and the renderer's error classifier matched the bare word "login" before the stall family. Outstanding server→client requests are now tracked, and the watchdog skips while one is parked; answering one resets the stall clock, so what gets measured is the agent's response to your answer, not the time you spent thinking. The default ceiling moves from 120s to 300s (
ARI_ACP_PROMPT_STALL_MSstill overrides) so compaction-length silences survive, and stall failures now classify as "Agent timed out". (#122) - A long draft slid the mention overlay off the prompt box. The mention-highlight mirror was absolutely positioned against the whole composer plate — attachment strip and foot row included — so once the text passed the field's max height the overlay bled about 40px past the textarea onto the send and stash controls, its scroll range desynced by roughly two lines at the bottom, and the textarea's scrollbar skewed wrap width by 16px against the overlay's, doubling lines. The textarea and its overlay now share their own positioning box, and both layers reserve the same scrollbar gutter, so clipping, scroll sync and wrapping match by construction. (#123)
Added
- Completion sound. A settling turn plays a soft synthesized cue — a rising fifth for completion, a muted falling third for failure. Web Audio, like the launch signature, so there is no audio asset. It fires for live settles only, never journal replay, so reopening a finished session stays silent. Toggle at Settings → Notifications → Completion sound (on by default). (#120)
Installers
- Windows:
Ari-Setup-0.2.4.exe - macOS:
Ari-0.2.4-universal.dmg(unsigned — right-click → Open on first launch) - Linux:
Ari-0.2.4.AppImage,Ari-0.2.4.deb
0.2.3 installs on Windows and AppImage pick this up automatically on next launch; the update downloads in the background and installs on quit.
Contributors
@tahacore