Release notes
PI Desktop v0.21.0
What's Changed
- feat: 同一项目的并行会话隔离在各自的 git worktree 中 by @onerentop in https://github.com/vastsa/PI-Desktop/pull/1604
- fix(markdown-table): show overflow scrollbars in preview by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1647
- fix(desktop): open session HTML artifacts from chat and BrowserPreview by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1650
- fix(plugins): notify the renderer after the startup plugin restore by @mai-ming in https://github.com/vastsa/PI-Desktop/pull/1651
- fix(deps): patch vulnerable dependencies by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1656
- fix(plugins): resolve automatic JSX against the host React runtime by @zwqjoy in https://github.com/vastsa/PI-Desktop/pull/1644
- fix(host-runtime): harden workspace diff Git commands by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1658
- fix(host-runtime): disable Git textconv for workspace diffs by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1660
- fix(deps): enforce patched DOMPurify floor by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1659
- fix(agent-runtime): stamp the session id on self-hosted endpoints by @arsonist-g in https://github.com/vastsa/PI-Desktop/pull/1640
- fix(desktop): tidy worktree setup menu by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1662
- fix(images): prevent oversized tool images from breaking sessions by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1663
- fix(desktop): preserve session reading positions across pane eviction by @new-Beginner in https://github.com/vastsa/PI-Desktop/pull/1665
- fix(projects): restore archived projects on activation by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1666
- [Bug] 修复双屏下最大化状态按 F11 全屏导致白屏(最大化/全屏状态互斥) by @anjia0532 in https://github.com/vastsa/PI-Desktop/pull/1667
- fix(agent-runtime): keep restored tool calls on their assistant across system rows by @teshnizi in https://github.com/vastsa/PI-Desktop/pull/1670
- fix(transcripts): tolerate torn non-UTF-8 lines during reads by @Totopo27 in https://github.com/vastsa/PI-Desktop/pull/1668
- fix(transcript): merge the store read after the transcript reload in deleteMessage by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1675
- fix(desktop): navigate question toasts to their originating chat by @new-Beginner in https://github.com/vastsa/PI-Desktop/pull/1673
- fix(storage): migrate first-run profiles, physical archives, and Windows links by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1671
- fix(providers): ask a plan endpoint for its model list the way it documents by @chengzhi-c in https://github.com/vastsa/PI-Desktop/pull/1680
- fix(session): one rewrite boundary for replacement and revision activation by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1674
- fix(host-core): keep PowerShell output and native exit codes intact by @AR307 in https://github.com/vastsa/PI-Desktop/pull/1685
- fix(storage): preserve link kinds through Windows migration by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1688
- fix(providers): probe the resolved endpoint in the connection test by @SeanLiu326 in https://github.com/vastsa/PI-Desktop/pull/1690
- 修复(window):任务栏还原最大化窗口后盖住任务栏(补充 #1655) by @anjia0532 in https://github.com/vastsa/PI-Desktop/pull/1672
- fix(config-sync): strip the Windows extended-length prefix before mapping by @chengzhi-c in https://github.com/vastsa/PI-Desktop/pull/1693
- fix(sessions): exclude automation sessions from empty-slot reuse by @Totopo27 in https://github.com/vastsa/PI-Desktop/pull/1695
- fix(storage): recover missing default profile before startup by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1696
- fix(settings): make market failures retryable by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1697
- fix(provider): suppress DeepSeek reasoning effort by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1701
- fix(host-core): isolate Windows Bash runner jobs by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1703
- feat(composer): 按示例优化任务清单折叠样式 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1706
- feat(tools): background Bash tasks that outlive the turn by @algerkong in https://github.com/vastsa/PI-Desktop/pull/1683
- feat(composer): show each @ file row's full relative path by @kev17in in https://github.com/vastsa/PI-Desktop/pull/1649
- feat(chat): keep Bash rows visible and add Show thinking toggle by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1704
- feat(sidebar): add contextual copy submenus by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1710
- feat(sidebar): mark projects with running work on the group header by @Tioit-Wang in https://github.com/vastsa/PI-Desktop/pull/1709
- chore(release): prepare 0.21.0-beta.1 by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1712
- feat(lifecycle): theme quit and close-behavior confirms by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1714
- fix(composer): keep model rows on one line and truncate long names by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1717
- feat(sidebar): show last reply dates in project sessions by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1718
- feat(plugins): add scoped HTML preview API for Browser by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1719
- fix(chat): add HTML open-with destinations by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1713
- fix(host-core): request Windows runner breakaway only when the job allows it by @chengzhi-c in https://github.com/vastsa/PI-Desktop/pull/1716
- fix(todo-dock): clarify checklist disclosure control by @vastsa in https://github.com/vastsa/PI-Desktop/pull/1723
…