What's Changed
- fix(providers): persist typed API keys on change, not just on blur by @pmos69 in #251
- security: keep remote API keys in the main process by @ASTairov in #94
- fix(installer): recognize all known providers in install-gate .env check by @pmos69 in #250
- fix(session-cache): refresh messageCount for old sessions on every sync by @pmos69 in #252
- fix(ssh-remote): bypass sudo-wrapper for doctor/update/dump/version by @andreab67 in #215
- fix(ssh-tunnel): disable multiplexing for tunnel processes (#195, #159) by @andreab67 in #204
- docs: add SSH tunnel + VPS connection guide by @andreab67 in #206
- feat(office): auto-detect remote Claw3D in SSH tunnel mode by @andreab67 in #208
- fix(models): route Add/Remove/Update through SSH in tunnel mode by @andreab67 in #209
- feat(models): auto-detect provider from Base URL in Add/Edit dialog by @andreab67 in #214
- feat(chat): attach images, text files, and arbitrary documents via click, drag, and paste by @pmos69 in #258
- fix(ssh-remote): support dotted YAML paths in SSH config helpers by @pmos69 in #249
- feat: add session deletion functionality by @leedusty91-prog in #199
- feat(kanban): wire Kanban board for SSH tunnel mode by @andreab67 in #207
- fix(office): start Gateway before Claw3D and avoid Windows npm shim issues by @ASTairov in #210
- fix: persist interface locale across restartsfix: persist interface locale by @ASTairov in #211
- chore(css): add vendor prefixes and Electron browserslist target by @andreab67 in #216
- chore(models): address a11y and inline-style warnings in Models.tsx by @andreab67 in #217
- chore(tsconfig): drop deprecated baseUrl, use relative paths by @andreab67 in #218
- Add Traditional Chinese Taiwan zh-TW locale by @hansai-art in #222
- cleanup: ship paused Office.tsx work from 2026-05-02 by @azoz778 in #232
- fix(ssh): prevent tunnel state reset when ControlMaster takes over by @arronLuo in #235
- fix(installer): match Python CLI's %LOCALAPPDATA% on Windows by @pmos69 in #237
- fix(gateway): detect platform enabled state from env vars (match Pyth… by @pmos69 in #238
- fix(gateway): treat EPERM as alive and verify python image on Windows by @pmos69 in #239
- fix(config): support nested YAML paths in local getConfigValue by @andreab67 in #243
- docs: add missing Chinese translation for Keep Pull Requests Small section by @493Arceus in #245
- fix(config): scope model field reads/writes to the model: block, bootstrap on missing config.yaml by @pmos69 in #246
- fix(config): support dotted YAML paths in getConfig / setConfig by @pmos69 in #248
- fix: recognize oauth profiles and authenticate desktop chat to local api server by @pmos69 in #241
- fix(config): allow empty environment variable values in readEnv by @ytfh44 in #263
- Fix deleteSession to use writable database connection by @ytfh44 in #264
- feat(providers): expand provider dropdown with OpenAI-compatible endpoints (#34) by @pmos69 in #262
- fix(remote): URL doubling, local-spawn leak, and credential UX (#266) by @pmos69 in #268
- feat(i18n): add European Portuguese (pt-PT) locale by @pmos69 in #270
New Contributors
- @pmos69 made their first contribution in #251
- @andreab67 made their first contribution in #215
- @hansai-art made their first contribution in #222
- @azoz778 made their first contribution in #232
- @arronLuo made their first contribution in #235
Full Changelog: v0.4.3...v0.4.4