Release notes
PI Desktop v0.15.9
What's Changed
- chore(release): remove docs deploy job by @vastsa in https://github.com/vastsa/PI-Desktop/pull/936
- fix(agent-runtime): restore deferred ToolSearch activations by @yg2224 in https://github.com/vastsa/PI-Desktop/pull/922
- fix(composer): preserve newer drafts after command completion by @yuxino in https://github.com/vastsa/PI-Desktop/pull/934
- fix(persistence): recover stale transcript turn failures by @vastsa in https://github.com/vastsa/PI-Desktop/pull/947
- feat(provider): enable native search for Codex OAuth by @vastsa in https://github.com/vastsa/PI-Desktop/pull/956
- fix(chat): preserve queued attachments after restart by @yuxino in https://github.com/vastsa/PI-Desktop/pull/955
- 修复主题插件包内资源安装失败 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/963
- fix(chat): size transcript error cards to content band by @vastsa in https://github.com/vastsa/PI-Desktop/pull/964
- fix(composer): display and match models by their complete wire ID by @aurorax-neo in https://github.com/vastsa/PI-Desktop/pull/966
- feat(work-panel): 支持拖拽调整右侧工作面板标签页顺序 by @catDforD in https://github.com/vastsa/PI-Desktop/pull/959
- fix(settings): keep rename and selected models visible by @Blue-Berrys in https://github.com/vastsa/PI-Desktop/pull/920
- fix(chat): isolate asktool card state between requests by @yuxino in https://github.com/vastsa/PI-Desktop/pull/961
- fix(chat): preserve complete text when editing long messages by @yuxino in https://github.com/vastsa/PI-Desktop/pull/962
- fix(queue): 允许取消等待中的立即发送消息 by @zszz3 in https://github.com/vastsa/PI-Desktop/pull/965
- fix(notification): prevent replayed task notifications by @yg2224 in https://github.com/vastsa/PI-Desktop/pull/948
- fix(attachments): send SVG inputs as files instead of model images by @inorilzy in https://github.com/vastsa/PI-Desktop/pull/969
- fix(plugin-devkit): reject package-relative theme assets at check time by @VMF-HIBIKI in https://github.com/vastsa/PI-Desktop/pull/944
- fix(agent-runtime): send adaptive thinking to effort-only Claude models by @onerentop in https://github.com/vastsa/PI-Desktop/pull/949
- docs: sync missing specs after merging fix PRs #920 #944 #965 #969 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/976
- feat(i18n): add Brazilian Portuguese (pt-BR) shell locale by @magisph in https://github.com/vastsa/PI-Desktop/pull/974
- feat(search): 在原服务入口启用官方原生搜索 by @hui455 in https://github.com/vastsa/PI-Desktop/pull/977
- feat(chat): show message timestamp in bubble toolbar by @vastsa in https://github.com/vastsa/PI-Desktop/pull/981
- fix(agent-runtime): prevent subagent tool-mismatch by strengthening selection guidance by @vastsa in https://github.com/vastsa/PI-Desktop/pull/983
- feat(chat): show compaction summary on token hover by @vastsa in https://github.com/vastsa/PI-Desktop/pull/985
- 修复子代理对话在窄面板中的自适应展示 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/989
- fix(desktop): mitigate Chromium AX renderer crash and harden recovery by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1002
- fix(desktop): drop orphaned FK outbox entries and cap sidecar heap by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1006
- fix(mcp): honor HTTP tool call timeout by @hui455 in https://github.com/vastsa/PI-Desktop/pull/1003
- fix(mcp): refresh remote server status in settings by @hui455 in https://github.com/vastsa/PI-Desktop/pull/1004
- feat(sessions): fork completed replies while later turns run by @yuxino in https://github.com/vastsa/PI-Desktop/pull/843
- feat(markdown): add table copy, CSV export and expanded preview by @yuxino in https://github.com/vastsa/PI-Desktop/pull/828
- feat(skills): discover installed pi CLI skills before import by @yuxino in https://github.com/vastsa/PI-Desktop/pull/814
- fix(i18n): add missing pt-BR table action strings by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1011
- style: refine model picker UI by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1020
- fix(desktop): resolve Windows npx stdio MCP via node and fnm (v2) by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1017
- fix: model picker light-mode visibility by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1022
- fix(ui): replace raw checkbox border-radius with token by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1026
- feat(settings): keep computer awake while app is running by @hui455 in https://github.com/vastsa/PI-Desktop/pull/1021
- feat(work-panel): show subagents as closable transcript tabs by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1027
- feat(shell): Mid-Autumn easter egg on first launch, replayable from Settings by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1029
- fix(composer): fade the transcript instead of painting an opaque dock band by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1015
- fix(chat): wrap long slash command chips in the transcript (#1019) by @yuxino in https://github.com/vastsa/PI-Desktop/pull/1031
- fix(agent-host): keep the next queued message cancelable during startup by @zszz3 in https://github.com/vastsa/PI-Desktop/pull/1033
- fix(catalog): resolve gateway model metadata from other publishers by @lenmei233 in https://github.com/vastsa/PI-Desktop/pull/1036
- feat(desktop): 在 Windows 任务栏显示任务结果未读角标 by @caulif in https://github.com/vastsa/PI-Desktop/pull/1034
- feat(chat): browse generated image batches in one card by @hui455 in https://github.com/vastsa/PI-Desktop/pull/1035
- fix(agent-runtime): update prompt assertions after system prompt trim by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1038
- fix(skills): ignore hidden scoped package entries by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1042
…