What's Changed
- feat: support Claude Code 'auto' permission mode by @tiann in #879
- fix: bind imported Codex sessions to matching machine by @dzshzx in #886
- fix(codex): Fast mode (service tier) toggle + /fast command (closes #898) by @swear01 in #904
- feat: add Pi Coding Agent support by @zhushanwen321 in #862
- fix(web): use button CSS variables for Retry button on error screen by @heavygee in #889
- fix(hub+cli): defer mergeSessions on cursor ACP reopen until session/load succeeds (closes #939) by @heavygee in #948
- fix: detect stale PID in runner state after abnormal shutdown by @KorenKrita in #931
- fix(cli): stateful MCP HTTP transport for display_image by @heavygee in #944
- fix: reliable generated-image display + stop client remount storm (#927) by @swear01 in #934
- fix(web,hub): surface inactive-session error on text-only send (closes #918) by @heavygee in #922
- fix(claude): flush OutgoingMessageQueue before consuming next user turn by @swear01 in #909
- fix(runner): surface dangling-symlink errors instead of misleading EEXIST by @heavygee in #892
- docs(installation): add KillMode=process to runner systemd unit (closes #915) by @heavygee in #928
- perf(web): add staleTime to useSession to suppress focus/mount refetches (#884) by @heavygee in #885
- feat(web): in-app PWA update prompt when new service worker is available by @heavygee in #946
- feat(web,hub): rich hover tooltips on session-list attention indicators by @heavygee in #941
- feat(web): OLED Black theme + per-appearance custom colors by @swear01 in #937
- feat(web): Web Share Target -> Android system share sheet integration by @heavygee in #933
- feat(web): add download button to file viewer by @swear01 in #926
- fix(web): persist file explorer expanded tree and scroll position across navigation by @swear01 in #911
- fix: active-only session filter + paginated "Show N more" (closes #901) by @swear01 in #903
- fix(web): mechanical repair of GFM tables with off-by-one separator rows by @heavygee in #902
- fix(cursor): map base-only CLI sku to fast=false (closes #883) by @swear01 in #887
- fix(web): keep Codex restart control clear of close button by @DolphinZZZZZ in #880
- fix(cursor): surface agent errors with warning styling in web UI by @swear01 in #871
- feat(web): session header files and outline view toggles by @heavygee in #952
- feat(web): drag-and-drop files onto chat panel to add as attachments by @swear01 in #936
- fix(hub,cli): four hub-restart-cascade cleanup bugs (#913 #914 #916 #919) by @heavygee in #923
- fix(web): stop pinning resolved permission cards to the bottom of the chat by @junmo-kim in #974
- fix(cli): Pi RPC parsers compatible with Zod 4 optional fields by @heavygee in #973
- fix(cursor): support ACP parameterized model picker by @swear01 in #969
- feat(web,hub,cli): show machine health in session sidebar by @heavygee in #962
- feat(gemini): remove launchable Gemini CLI agent, keep old sessions readable by @swear01 in #953
- fix(claude): stop 1M/200k context-window flicker in the status bar by @junmo-kim in #992
- fix(cli): compute macOS machine-health memory from vm_stat by @junmo-kim in #990
- [codex] fix Windows drive-root normalization by @quecai-niu in #979
- [codex] fix Qwen realtime compatibility by @quecai-niu in #977
- fix(web): select Standard for untouched Codex service tier by @swear01 in #1010
- fix(web): clean up React tests globally by @swear01 in #993
- feat(web): markdown Source | Preview toggle in session file pane by @heavygee in #957
- feat(web): mermaid diagram lightbox on click by @heavygee in #741
New Contributors
- @dzshzx made their first contribution in #886
- @zhushanwen321 made their first contribution in #862
- @KorenKrita made their first contribution in #931
- @quecai-niu made their first contribution in #979
Full Changelog: v0.20.2...v0.21.0