What's Changed
- chore(release): v0.14.8 by @vastsa in #351
- fix(windows): use PI-Desktop taskbar icon by @vastsa in #355
- fix(desktop): quiet production tool log mirroring by @vastsa in #356
- feat(project): edit logical project roots by @vastsa in #357
- feat(providers): 支持复制非敏感服务配置 by @Blue-Berrys in #307
- fix(sidebar): 将会话置顶改为跨日期和项目的全局分组 by @zszz3 in #314
- fix(sidebar): handle blank paths for global pins by @vastsa in #358
- fix(logging): replace noisy tool lifecycle logs by @vastsa in #363
- feat(plugins): runtime theme APIs, setTheme, no theme cap, sidebar image token by @Tioit-Wang in #353
- feat(settings): add a search field to the configured-models pane by @lenmei233 in #317
- fix(settings): never leave a newly added model behind the chosen-pane search by @vastsa in #365
- fix(composer): 将 Word 混合剪贴板内容保留为可编辑正文 by @Blue-Berrys in #332
- fix(navigation): 再次点击扩展按钮返回上一页 by @Blue-Berrys in #331
- docs(test): record the integrated-main result for the Plugins footer scenario by @vastsa in #366
- feat(project): delete a project together with its owned sessions by @vastsa in #367
- chore: land the local staging line through 6464b83 by @vastsa in #368
- feat(plugins): announce a host turn-end event to plugins by @molicherry in #354
- fix(composer): normalize clipboard line endings in the paste fallback by @vastsa in #369
- fix(ui): declare --ds-focus and remap dangling design token refs by @ZxlDragonDoctor in #359
- fix(desktop): stop deferring the update restart behind the quit confirmation by @mazongYY in #362
- refactor(subagents): remove delegate turn limit by @vastsa in #374
- merge: integrate session content search (#310) by @vastsa in #375
- feature(search): 支持会话正文检索与原文定位 by @zszz3 in #310
- merge: integrate native Pi session continuation (#370) by @vastsa in #378
- feat(session): continue native Pi sessions in their canonical JSONL by @OnePerson2020 in #370
- fix(search): include native Pi sessions in global search by @vastsa in #380
- fix(desktop): make toast messages selectable by @molicherry in #393
- fix(oauth): Anthropic 登录与刷新遇到 429 时有限重试 by @Blue-Berrys in #391
- fix(theme): 设置与搜索表面遵循主题变量 by @Blue-Berrys in #390
- feat(plugins): theme assets are absolute paths, registered at runtime by @Tioit-Wang in #383
- fix(composer): keep skill names readable beside long descriptions by @Blue-Berrys in #388
- fix(providers): 自定义服务排除仅支持账号登录的 API 格式 by @Blue-Berrys in #387
- feat(plugins): add appearance extension contracts by @Akshayxkill in #381
- feat(chat): open chat file references in the file view across a project's folders by @Tioit-Wang in #382
- feat(subagents): add ordered model fallback by @inorilzy in #395
- fix(agent-runtime): preserve DeepSeek reasoning across compaction by @GISWLH in #400
- feat(plugins): host-mediated real-time capabilities (global shortcuts, net.websocket) by @vastsa in #409
- docs(workflow): run required E2E on integrated local main before the PR by @vastsa in #412
- fix(plugins): answer the declared audio surface with a coded refusal by @vastsa in #411
- docs(plugins): state the audio surface's actual refusal by @vastsa in #413
- docs(integrity): validate every page, renumber the colliding ADRs, repair the indexes by @vastsa in #420
- fix(plugin): make registerProvider usable and verify the plugin-owned model transport by @vastsa in #423
- fix(subagents): apply the delegation opt-in to collaboration spawn (#386) by @L4XB in #407
- fix(agent-runtime): forbid workspace mutation via Bash in Plan/Goal prompts by @ZxlDragonDoctor in #408
- fix(settings): open the AI tab pickers as in-app menus by @catDforD in #410
- fix(chat): flatten tool detail indentation by @QAyong in #415
- fix(agent-runtime): send the provider's headers on the compaction request (#398) by @L4XB in #422
- fix(chat): 侧边聊天在首次发送时创建会话 by @zszz3 in #425
- fix(ui): never leave a themed tooltip on screen and keep hidden row actions out of the row's click path by @vastsa in #428
- fix(desktop): keep the Main bundle loadable without ws native accelerators by @Tioit-Wang in #431
- fix(chat): open a tool row's file reference in the file view by @Tioit-Wang in #429
- feat(queue): promote queued turns into a priority block with per-row actions by @Tioit-Wang in #430
- test(e2e): compare project paths in the Host's stored spelling by @Tioit-Wang in #434
- fix(transcript): reserve a stable slot for tail runtime status by @vastsa in #432
- fix(skills): surface skill market install failures instead of disabling install by @vastsa in #433
- fix(agent-runtime): classify the network cause behind NETWORK_ERROR by @vastsa in #435
- fix(theme): tokenize the remaining chrome surfaces and make the exemptions explicit by @vastsa in #438
- fix(projects): make project deletion reachable while sessions are running by @vastsa in #439
- fix(transcript): keep the reading position when a disclosure is toggled by @vastsa in #437
- fix(skills): log skill market failures so a proxy refusal is diagnosable by @vastsa in #444
New Contributors
- @lenmei233 made their first contribution in #317
- @OnePerson2020 made their first contribution in #370
- @Akshayxkill made their first contribution in #381
- @inorilzy made their first contribution in #395
- @GISWLH made their first contribution in #400
- @catDforD made their first contribution in #410
- @QAyong made their first contribution in #415
Full Changelog: v0.14.8...v0.14.9-beta.1