What's Changed
- chore(release): remove docs deploy job by @vastsa in #936
- fix(agent-runtime): restore deferred ToolSearch activations by @yg2224 in #922
- fix(composer): preserve newer drafts after command completion by @yuxino in #934
- fix(persistence): recover stale transcript turn failures by @vastsa in #947
- feat(provider): enable native search for Codex OAuth by @vastsa in #956
- fix(chat): preserve queued attachments after restart by @yuxino in #955
- 修复主题插件包内资源安装失败 by @vastsa in #963
- fix(chat): size transcript error cards to content band by @vastsa in #964
- fix(composer): display and match models by their complete wire ID by @aurorax-neo in #966
- feat(work-panel): 支持拖拽调整右侧工作面板标签页顺序 by @catDforD in #959
- fix(settings): keep rename and selected models visible by @Blue-Berrys in #920
- fix(chat): isolate asktool card state between requests by @yuxino in #961
- fix(chat): preserve complete text when editing long messages by @yuxino in #962
- fix(queue): 允许取消等待中的立即发送消息 by @zszz3 in #965
- fix(notification): prevent replayed task notifications by @yg2224 in #948
- fix(attachments): send SVG inputs as files instead of model images by @inorilzy in #969
- fix(plugin-devkit): reject package-relative theme assets at check time by @VMF-HIBIKI in #944
- fix(agent-runtime): send adaptive thinking to effort-only Claude models by @onerentop in #949
- docs: sync missing specs after merging fix PRs #920 #944 #965 #969 by @vastsa in #976
- feat(i18n): add Brazilian Portuguese (pt-BR) shell locale by @magisph in #974
- feat(search): 在原服务入口启用官方原生搜索 by @hui455 in #977
- feat(chat): show message timestamp in bubble toolbar by @vastsa in #981
- fix(agent-runtime): prevent subagent tool-mismatch by strengthening selection guidance by @vastsa in #983
- feat(chat): show compaction summary on token hover by @vastsa in #985
- 修复子代理对话在窄面板中的自适应展示 by @vastsa in #989
- fix(desktop): mitigate Chromium AX renderer crash and harden recovery by @vastsa in #1002
- fix(desktop): drop orphaned FK outbox entries and cap sidecar heap by @vastsa in #1006
- fix(mcp): honor HTTP tool call timeout by @hui455 in #1003
- fix(mcp): refresh remote server status in settings by @hui455 in #1004
- feat(sessions): fork completed replies while later turns run by @yuxino in #843
- feat(markdown): add table copy, CSV export and expanded preview by @yuxino in #828
- feat(skills): discover installed pi CLI skills before import by @yuxino in #814
- fix(i18n): add missing pt-BR table action strings by @vastsa in #1011
- style: refine model picker UI by @vastsa in #1020
- fix(desktop): resolve Windows npx stdio MCP via node and fnm (v2) by @vastsa in #1017
- fix: model picker light-mode visibility by @vastsa in #1022
- fix(ui): replace raw checkbox border-radius with token by @vastsa in #1026
- feat(settings): keep computer awake while app is running by @hui455 in #1021
- feat(work-panel): show subagents as closable transcript tabs by @Tioit-Wang in #1027
- feat(shell): Mid-Autumn easter egg on first launch, replayable from Settings by @Tioit-Wang in #1029
- fix(composer): fade the transcript instead of painting an opaque dock band by @Tioit-Wang in #1015
- fix(chat): wrap long slash command chips in the transcript (#1019) by @yuxino in #1031
- fix(agent-host): keep the next queued message cancelable during startup by @zszz3 in #1033
- fix(catalog): resolve gateway model metadata from other publishers by @lenmei233 in #1036
- feat(desktop): 在 Windows 任务栏显示任务结果未读角标 by @caulif in #1034
- feat(chat): browse generated image batches in one card by @hui455 in #1035
- fix(agent-runtime): update prompt assertions after system prompt trim by @vastsa in #1038
- fix(skills): ignore hidden scoped package entries by @vastsa in #1042
- fix(catalog): restore thinking shape and context window for unidentified gateway rows by @onerentop in #1041
- fix(catalog): complete custom Anthropic fallback paths by @vastsa in #1045
- fix(config-sync): keep cloud backup settings ready on revisit by @vastsa in #1055
- fix(desktop): clear task badge when restoring chat by @vastsa in #1056
- revert: remove standalone pi skill discovery by @vastsa in #1058
- chore(shell): drop the Mid-Autumn egg and the Chinese dark mascot by @vastsa in #1061
- fix(skills): 支持一条消息选择多个 Skill 并保留会话显示 by @zszz3 in #1066
- fix(plugin-panel): keep bridge calls attributed while a surface closes by @vastsa in #1067
- fix(sidebar): 限制运行状态呼吸动画,避免持续出帧 by @zszz3 in #1070
- fix(runtime): 修复 Google Gemini 预设不可用(Google 适配器拒绝自定义 fetch) by @vastsa in #1076
- fix(voice): keep Windows native modules package-resolvable by @vastsa in #1079
- fix(desktop): isolate destination page scrolling by @vastsa in #1082
- fix(integration): land PRs 1083-1085 with repairs by @vastsa in #1088
- fix(security): enforce symlink root confinement, sha256 digests, and bootstrap isolation by @Totopo27 in #1083
- refactor(architecture): decouple main state bridges and extract store transform helpers by @Totopo27 in #1084
- perf(host-core): integrate mimalloc as global memory allocator by @Totopo27 in #1085
- refactor(dead-code): remove unused desktop symbols by @vastsa in #1099
- docs(policy): limit outside pull requests to fix and perf by @vastsa in #1100
- fix(host-core): normalize test path expectations for cross-platform runners by @Totopo27 in #1103
- fix(browser): 修复导航归属并保留标签页面状态 by @zszz3 in #1087
- fix(chat): follow model thinking defaults on model switch by @vastsa in #1104
- fix(desktop): name a sidecar crash in the durable turn it kills (#1077) by @JoyaWang in #1080
- fix(updater): relocate Windows update cache by @vastsa in #1102
- fix(markdown): preserve wrapped HTTP link destinations by @vastsa in #1114
- feat(updater): add automatic and manual update preference by @vastsa in #1116
- feat(skills): 返回技能文件位置 by @zszz3 in #1062
- fix(provider): 支持小米 Token Plan 端点 by @zszz3 in #1075
- fix(agent-runtime): classify host capacity exhaustion distinctly from provider auth failures by @Totopo27 in #1115
- fix(models): preserve explicit settings across catalog updates by @vastsa in #1118
- fix(desktop): portal route dialogs above the sidebar by @vastsa in #1119
- perf(agent-runtime): bound inlined image history to prevent V8 sidecar heap exhaustion by @Totopo27 in #1105
- fix(e2e): align image chat viewport with native window by @vastsa in #1122
- Fix/attachment history byte budget by @vastsa in #1125
- fix: models.dev last-segment match + official-vendor disambiguation by @aurorax-neo in #1047
- fix(renderer): 降低流式渲染与目标页卡顿 by @vastsa in #1128
- refactor(quality): tighten low-risk code paths by @vastsa in #1132
- fix(agent-runtime): format POSIX scratch directory paths with forward slashes by @Totopo27 in #1127
- fix(browser): accept localhost and dotted hosts with ports by @yuxino in #1121
- fix(browser): explain local file preview restrictions by @yuxino in #1120
- fix(desktop): open conversation MP4 attachments with the system player by @yuxino in #1123
- fix(agent-runtime): preserve Copilot Bearer auth for Claude models by @Zhangyinglun in #1138
- fix(provider): 支持手动覆盖思考协议并保持默认兼容 by @zszz3 in #1137
- docs(readme): 为中文版 README 添加 QQ 群徽章 by @vastsa in #1150
- fix(plugin-views): scale CSS bounds to DIPs for non-100% zoom by @ZxlDragonDoctor in #1147
- feat(desktop): remove pull requests destination by @vastsa in #1152
- fix(desktop): keep composer menus aligned by @vastsa in #1153
- feat(chat): 输入框按 ↑ 召回同一会话内已发送的内容 by @onerentop in #1053
- fix(ui): show shortcuts in chat tooltips by @vastsa in #1154
- fix(chat): collapse completed process details by @vastsa in #1155
- fix(desktop): prevent accidental Ctrl+R reload by @vastsa in #1156
- Remove bundled macOS first-launch assets by @vastsa in #1157
- chore(release): v0.15.9 by @vastsa in #1158
- chore(release): refresh models.dev for v0.15.9 by @vastsa in #1159
New Contributors
- @VMF-HIBIKI made their first contribution in #944
- @onerentop made their first contribution in #949
- @magisph made their first contribution in #974
- @caulif made their first contribution in #1034
- @Totopo27 made their first contribution in #1083
- @JoyaWang made their first contribution in #1080
- @Zhangyinglun made their first contribution in #1138
Full Changelog: v0.15.6...v0.15.9