Changelog — v0.4.3 → v0.4.5
Features
- Chat attachments — image and text-file attachments via click, drag-and-drop, and paste; arbitrary file attachments via path references (@pmos69)
- Session deletion — delete sessions from the Sessions screen (@leedusty91-prog, @fathah)
- OpenAI Codex provider — setup card for CLI/OAuth-based Codex plan (no API key required) (@leejamesss)
- Models: provider auto-detect — auto-detects provider from Base URL in Add/Edit dialog (@andreab67)
- Kanban in SSH tunnel mode — Kanban board now works when connected via SSH tunnel (@andreab67)
- Office: remote Claw3D auto-detect — detects and connects to remote Claw3D instance in SSH tunnel mode (@andreab67)
- Providers expanded — added NVIDIA NIM, Gemini CLI, MiniMax OAuth, and more OpenAI-compatible endpoints (@pmos69)
- Settings: API key mask — key mask sized to match the actual stored key length (@pmos69)
- i18n: European Portuguese (pt-PT) — new locale with native-speaker review (@pmos69)
- i18n: Traditional Chinese (zh-TW) — new locale (@hansai-art)
- Persist interface locale — language selection now survives app restarts (@ASTairov)
Security
- Remote API keys kept in main process — keys no longer exposed to the renderer process (@ASTairov)
Bug Fixes
Chat & Models
- Remote mode URL doubling + local-spawn process leak (@pmos69)
- Remote API key wiped when only the URL is edited (@pmos69)
- URL normalization in health probe and API key lookup (@pmos69)
- Stale
base_urlnot cleared when switching named providers (@pmos69) - Stale
baseUrlwhen selecting a named-provider model from the model picker (@pmos69) - Models: entries not reloading when tab becomes visible (@pmos69)
- Models: intermediate/debounced writes to model library (@pmos69)
- Models: Add/Remove/Update not routed through SSH in tunnel mode (@andreab67)
Install Gate & Providers
- OAuth-backed active profiles not recognized by install gate (@pmos69)
- Install gate not recognizing all known providers in
.env(@pmos69) - Providers: API keys not persisted on change (only on blur) (@pmos69)
Config
- Nested YAML paths not supported in
getConfigValue(@andreab67) - Model fields reading/writing outside the
model:block scope (@pmos69) - Dotted YAML paths in
getConfig/setConfig(@pmos69) - Empty env var values rejected in
readEnv(@ytfh44) - SSH config helpers not supporting dotted YAML paths (@pmos69)
SSH & Gateway
- Tunnel state reset when ControlMaster takes over SSH process (@arronLuo)
sudo-wrapperbypass missing for non-mutating commands (doctor/update/dump/version) (@andreab67)- Gateway: platform enabled state not detected from env vars on Windows (@pmos69)
- Gateway:
EPERMnot treated as alive + Python image verification on Windows (@pmos69) - SSH tunnel multiplexing disabled for tunnel processes (@andreab67)
Installer & Windows
%LOCALAPPDATA%not matched correctly on Windows (@pmos69)- Office stack start reliability on Windows (@ASTairov)
Session & Database
- Session cache:
messageCountstale for old sessions on sync (@pmos69) deleteSessionusing a read-only DB connection (fixed to use writable) (@ytfh44)
Other
- API auth not sent correctly for desktop chat in server mode (@pmos69)
- Interface locale not persisted across restarts (@ASTairov)
Full Changelog: v0.4.4...v0.4.5