• v1.8.1 fe7027c585

    v1.8.1
    Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m8s
    CI / Lint & Test (push) Successful in 16m51s
    CI / Build Linux (push) Successful in 20m11s
    CI / Build Windows (cross-compile) (push) Successful in 30m45s
    Stable

    naomi released this 2026-02-26 23:44:13 -08:00 | 17 commits to main since this release

    [1.8.1] - 2026-02-26

    Fixed

    • Markdown bullet points and numbered lists now render correctly in the chat terminal; Tauri's WebView strips browser default list styles, so list-style-type is now set explicitly for ul (disc) and ol (decimal)
    • All per-task sounds (success, error, permission request, task start) have been moved from a global characterState subscription to the per-conversation event handler; background tabs now receive their completion sounds correctly, and switching back to a finished tab no longer replays a sound that already fired (closes #172)
    • Text typed into the prompt input is now saved per conversation tab; switching to another tab and returning restores the in-progress draft exactly as it was left
    • Vague "Process interrupted" and "Disconnected" messages now include the specific cause — keyboard shortcut (Ctrl+C), stop button, or unexpected crash
    • When Claude Code exits whilst a prompt is in-flight, a visible error message now appears explaining that the last prompt was not processed and prompting reconnection
    • An intentional_stop flag now prevents the stdout EOF path from emitting a duplicate "Disconnected from Claude Code unexpectedly" message when the stop was user-initiated
    • Fixed two cooperating reactivity bugs that were preventing the tool permission modal from appearing: pendingPermissions was being mutated in-place (causing Svelte's derived-store chain to skip re-renders), and PermissionModal.svelte was using $state() where a plain let binding is required for correct store-subscription reactivity
    Downloads