What's Changed
- fix(memory): resolve embedding api_key from embedding_provider env var, not default_provider key by @zverozabr in #3184
- fix(ci): downgrade action-gh-release to v2.4.2 to fix release finalization by @SimianAstronaut7 in #3214
- chore: bump version to 0.1.9 by @SimianAstronaut7 in #3225
- docs(readme): remove retired social links by @theonlyhennygod in #3215
- feat: refresh stale datetime in cached system prompt by @imadnyc in #3223
- feat: add live tool call notifications with argument visibility by @imadnyc in #3221
- feat(matrix): add reaction and threading support by @imadnyc in #3219
- feat(matrix): add pin and unpin message support by @theonlyhennygod in #3227
- chore(github): update review ownership routing by @theonlyhennygod in #3216
- feat(matrix): add file upload handling and voice message support by @theonlyhennygod in #3229
- feat(matrix): add multi-room support by @theonlyhennygod in #3230
- fix(tests): update assertions for live tool call notifications by @theonlyhennygod in #3232
- feat: Add Opencode-go provider by @alanpjohn in #3113
- Revert "chore(deps): bump rust in the docker-all group" by @ttuffin in #3208
- fix(config): encrypt and decrypt all channel secrets on save/load by @jameslcowan in #3217
- fix(agent): resolve display text for tool-only turns by @theonlyhennygod in #3235
- fix(gateway): add health and pairing proxy routes to vite dev server by @theonlyhennygod in #3236
- fix(channel): reconnect WhatsApp Web session and show QR on logout by @parziva-1 in #3045
- fix(config): add channel secrets roundtrip test and gitignore entries by @theonlyhennygod in #3240
- feat(web): auto-expanding chat textarea and copy-on-hover for messages by @theonlyhennygod in #3243
- fix(gateway): add integrations/settings endpoint, WS protocol echo, session persistence by @theonlyhennygod in #3242
- fix(ollama): strip think tags from Qwen responses, fix tool-call regression by @theonlyhennygod in #3241
- style: fix cargo fmt violations blocking CI lint by @theonlyhennygod in #3244
- docs: add branching model section to CONTRIBUTING.md by @theonlyhennygod in #3237
- fix(ci,release): update all scripts from origin/main to origin/master by @theonlyhennygod in #3238
- docs: replace main branch references with master by @darrenzeng2025 in #3194
- fix(daemon): handle SIGTERM for graceful shutdown by @darrenzeng2025 in #3193
- docs(readme): add features documentation by @darrenzeng2025 in #3107
- feat(onboard): add --reinit flag to prevent accidental config overwrite by @darrenzeng2025 in #3102
- fix(config): accept openai-* aliases for wire_api config by @darrenzeng2025 in #3191
- fix(web): update rollup to patch path traversal vulnerability by @theonlyhennygod in #3258
- fix(config): fix web_fetch allowed_domains serde default by @darrenzeng2025 in #3192
- feat(channel): make email subject configurable by @darrenzeng2025 in #3190
- feat(web): add per-message copy button on hover by @darrenzeng2025 in #3178
- feat(provider): add vision support for Anthropic provider by @darrenzeng2025 in #3177
- docs(contributing): update contributing guide by @darrenzeng2025 in #3109
- feat(cargo): add channel-feishu feature alias for channel-lark by @darrenzeng2025 in #3105
- feat(hooks): add webhook-audit builtin hook by @ImanHashemi in #3212
- feat(web): add auto-expanding multiline chat composer by @darrenzeng2025 in #3185
- fix(release): lower GNU Linux build runner baseline by @Alix-007 in #3257
- fix(ci): use master merge-base in rust_strict_delta_gate by @Alix-007 in #3252
- fix(ci): use master merge-base in docs_quality_gate by @Alix-007 in #3251
- fix(install): guard empty docker namespace args on Bash 3.2 by @Alix-007 in #3248
- fix(docs): correct default branch in triage snapshot by @Alix-007 in #3253
- fix(ci): use master merge-base in collect_changed_links by @Alix-007 in #3250
- feat(build): add 32-bit system support via feature gates by @theonlyhennygod in #3245
- feat(providers): add Azure OpenAI provider support by @theonlyhennygod in #3246
- fix(release): use master in cut_release_tag helper by @Alix-007 in #3249
- fix(cli): honor config default_temperature in agent command by @darrenzeng2025 in #3106
- fix(security): unify cron shell validation across entrypoints by @theonlyhennygod in #3270
- fix(ci): add missing ci-run.yml workflow by @theonlyhennygod in #3268
- fix(channel): restore Lark/Feishu channel compilation by @SimianAstronaut7 in #3318
- fix(channel): drop MutexGuard before .await in WhatsApp Web listen by @SimianAstronaut7 in #3315
- fix(agent): use char-boundary-safe slicing in scrub_credentials by @SimianAstronaut7 in #3319
- fix(tool): resolve Brave API key lazily with decryption support by @SimianAstronaut7 in #3320
- fix(security): strip URLs before high-entropy token extraction by @SimianAstronaut7 in #3321
- fix(channel): prevent first-turn photo duplication in memory context by @SimianAstronaut7 in #3341
- fix(security): allow absolute paths within workspace when workspace_only is set by @SimianAstronaut7 in #3339
- fix(channel): handle websocket Ping frames and read errors in Discord gateway by @SimianAstronaut7 in #3332
- fix(gateway): restore multi-source WebSocket auth token extraction by @SimianAstronaut7 in #3330
- fix(channel): remove shadowed variable bindings in test functions by @SimianAstronaut7 in #3329
- feat(provider): make HTTP request timeout configurable by @SimianAstronaut7 in #3328
- feat(agent): add tool_call_dedup_exempt config to bypass within-turn dedup by @SimianAstronaut7 in #3326
- feat(channel): add
channel sendCLI command for outbound messages by @SimianAstronaut7 in #3324 - fix(agent): use byte-level stdin reads to prevent CJK input crash by @SimianAstronaut7 in #3322
- ci: use thin LTO profile for faster CI builds by @SimianAstronaut7 in #3363
- ci: pin release workflows to ubuntu-latest to fix glibc cache mismatch by @SimianAstronaut7 in #3365
New Contributors
- @imadnyc made their first contribution in #3223
- @alanpjohn made their first contribution in #3113
- @ttuffin made their first contribution in #3208
- @jameslcowan made their first contribution in #3217
- @parziva-1 made their first contribution in #3045
- @ImanHashemi made their first contribution in #3212
- @Alix-007 made their first contribution in #3257
Full Changelog: v0.1.7-beta.30...v0.1.9a