Releases: vastsa/PI-Desktop
Releases · vastsa/PI-Desktop
Release list
v0.16.1
What's Changed
- fix(models): hide revoked models from the live service pane by @Blue-Berrys in #1290
- fix(desktop): resolve ask cards through the Host input path by @mingkun968 in #1293
- fix(chat): keep the outline turn jump out of follow mode by @mingkun968 in #1289
- fix(agent-runtime): keep on-demand tools active for the whole session by @yexisu in #1279
- feat(storage): add custom data path and safe migration by @vastsa in #1294
- fix(desktop): stop session-collaboration spawn from spending the un opted-in default model by @yexisu in #1297
- fix(desktop): keep user-pinned model limits across provider enrichment by @yexisu in #1299
- fix(desktop): compact AskToolCard height, merge actions into header by @mingkun968 in #1292
- fix(projects): reopen closed group from folder by @vastsa in #1303
- fix(host-core): safely inline Read image results by @vastsa in #1305
- fix(host-core): return image files from Read as inline image blocks by @yexisu in #1296
- fix(desktop): preserve clickable Windows paths in inline code by @vastsa in #1306
- fix(electron): resolve main output root from inside Rollup chunks by @mingkun968 in #1307
- feat(scheduled): 定时任务页改造为「任务 + 运行记录」主从视图(#1291 阶段一) by @HanawaBanana in #1298
- fix(models): use models.dev as metadata authority by @vastsa in #1315
- fix(runtime): preserve provider apiStyle for foreign catalog models by @Totopo27 in #1314
- fix(permissions): require approval for user MCP tools by @xiaobaZeo in #1321
- fix(models): honor custom limits and API styles by @vastsa in #1322
- fix(asktool): reconcile stale pending cards by @JoyaWang in #1309
- fix(agent-runtime): replace removed Pi harness APIs by @vastsa in #1328
- 将 PI-Desktop 升级到 Pi 1.0.0 by @vastsa in #1333
- fix(agent-runtime): 缺少工作区时允许计划提交失败后继续回复 by @zszz3 in #1338
- fix(updater): stop dismissed releases from downloading by @vastsa in #1339
- fix(transcript): match missed prompt echoes safely by @vastsa in #1340
- fix(agent-runtime): suppress recoverable overflow error cards by @vastsa in #1342
- feat(chat): 粘贴会话链接即引用另一段对话(#1324 应用内方案) by @HanawaBanana in #1326
- fix(mcp): allow clearing a server timeout override by @vastsa in #1344
- fix(desktop): prevent ask answer IPC re-entry by @vastsa in #1347
- fix(plugins): discover npm installations for GUI imports by @vastsa in #1348
- fix(deps): patch vulnerable production transitives by @vastsa in #1350
- fix(project-groups): detach folders with chats safely by @vastsa in #1351
- fix(chat): scroll to target lines in file references by @vastsa in #1349
- fix(mcp): preserve session results within the response limit by @vastsa in #1352
- fix(e2e): make settings-scroll E2E runnable by @vastsa in #1354
- fix(runtime): preserve cached prefixes across tool and skill updates by @vastsa in #1355
- fix(pi): adapt runtime to Pi 1.0.1 by @vastsa in #1357
- fix(projects): complete safe grouped project deletion by @vastsa in #1371
- fix(runtime): cover MCP and plugin image delivery by @vastsa in #1372
- fix(sessions): specify native duplicate identity handling by @vastsa in #1374
- fix(e2e): keep hosted-search checks aligned with Pi by @vastsa in #1375
- fix(#1361): 让 Pi patch 检查与路径平台无关,并修正 fork 测试里的路径断言 by @Yi-111-a in #1363
- fix(chat): close nested-list streaming cursor reflow by @vastsa in #1373
- fix(desktop): hide docked plugin views while project dialogs are open by @Totopo27 in #1378
- fix(desktop): drop the stale open reference in the create project dialog by @vastsa in #1379
- fix(desktop): hide docked native views under the extension prompt by @vastsa in #1380
Full Changelog: v0.16.0...v0.16.1
v0.16.0
What's Changed
- feat(plugins): implement the seven finalized UI slots by @Tioit-Wang in #1191
- fix(mcp): dispatch streamable-HTTP replies before the SSE stream ends by @yy568821795-max in #1189
- fix(runtime): preserve denied tool declarations in Plan and Goal by @zszz3 in #1184
- 修复聊天模型选择后的友好名称覆盖 wire ID by @aurorax-neo in #1167
- fix(compaction): send the session id as the summary prompt cache key by @MM8866-stock in #1165
- fix(desktop): bootstrap Electron before dev startup by @aaskfuqw in #1146
- fix(providers): 补齐 StepFun Plan 订阅端点配置 by @zszz3 in #1139
- Fix German catalog Sie-form consistency and restore noProjectSessions wording by @theluckystrike in #1180
- fix(plugins): hide docked native views under host plugin modals by @ZxlDragonDoctor in #1148
- fix(host-core): return FILE_NOT_FOUND for missing Read/Write targets by @ZxlDragonDoctor in #1117
- fix(host-core): ignore symbolic links during capability directory copy by @Totopo27 in #1194
- fix(agent-runtime): report subagent output token truncation as failure by @Totopo27 in #1193
- feat(voice): add scoped Live Voice work sessions by @vastsa in #1161
- fix(desktop): treat portable distribution as manual update mode by @Totopo27 in #1200
- perf(skills): 批量导入 Skill 文件夹并复用上次成功位置 by @hui455 in #1172
- feat(plugins): add net.anyHost install-time egress grant by @Tioit-Wang in #1209
- fix(desktop): cap window minimum to display work area (#1175) by @xiaobaZeo in #1210
- fix(permissions): remove local approval deadline by @vastsa in #1218
- fix(live-work): make voice admission outcomes reliable by @vastsa in #1220
- fix(chat): resolve complete file paths in transcripts by @caulif in #1222
- fix(extensions): preserve chained system prompt additions by @zszz3 in #1219
- fix(mcp): 修复 OAuth issuer 路径发现与 scope 选择 by @zszz3 in #1231
- fix(agent-runtime): harden subagent scratch spillover by @vastsa in #1232
- fix(desktop): serialize plugin panel reload teardown by @vastsa in #1233
- fix(desktop): close plugin panel on reload and clean up failed panel loads by @Totopo27 in #1198
- fix(mcp): 明文显示编辑器中的环境变量和请求头 by @zszz3 in #1226
- fix(rpc): bound every request with a wall-clock budget so slots always come back by @muzimu217 in #1208
- fix(renderer): keep long-session streaming responsive by @vastsa in #1235
- fix(chat): keep user-message URLs selectable and copyable by @OpenX123 in #1247
- fix(desktop): stack provider setup panes on constrained viewport heights by @Totopo27 in #1234
- feat(todo): add session-scoped checklist by @HanawaBanana in #1227
- fix(todo): normalize checklist input and recover host state by @vastsa in #1255
- feat(live-voice): stage call interaction UI by @vastsa in #1256
- fix(composer): recover the slash menu from a dropped compositionend by @OpenX123 in #1248
- fix(oauth): preserve thinking metadata for live-only models by @Zhangyinglun in #1253
- fix(oauth): send client_version when listing ChatGPT models by @initH271 in #1251
- fix(shared): do not import pi
!commandapiKey as a literal secret by @initH271 in #1252 - fix(desktop): restore additive CA semantics for the macOS agent sidecar by @yexisu in #1215
- feat(live-voice): expose Live Voice to regular users by @vastsa in #1259
- fix(live-voice): show the real error cause and log call failures by @vastsa in #1261
- fix(models): match relay IDs to official metadata by @vastsa in #1262
- fix(electron): resolve main paths in ESM runtime by @vastsa in #1263
- fix(ci): hoist host React for renderer tests by @vastsa in #1264
- feat(desktop): report one-off notices through the toast stack by @vastsa in #1266
- feat(live-voice): default work to the current session by @vastsa in #1265
- fix(desktop): preserve line breaks when repainting composer draft by @Totopo27 in #1268
- feat(live-voice): answer an open asktool question by voice by @vastsa in #1270
- fix(desktop): drop the plugin launcher's dialog-shadow halo by @kev17in in #1258
- fix(tools): adapt legacy old_string/new_string shape in Edit tool by @Totopo27 in #1269
- feat(live-voice): dock the call bar as a global desktop widget by @vastsa in #1271
- fix(chat): serialize stop with prompt admission by @vastsa in #1273
- fix(live-voice): give the docked widget its own state, not a store it lacks by @vastsa in #1274
- fix: improve compaction diagnostics and embedded plugin surfaces by @vastsa in #1278
- fix(live-voice): keep the microphone policy out of unrelated permissions by @mingkun968 in #1280
- fix: 移除 Windows 窗口三侧边框并支持主题圆角 by @adoin in #1203
- perf(build): split renderer routes and locale assets by @vastsa in #1283
- perf(agent-runtime): split sidecar bundle by @vastsa in #1284
- fix(host-core): prevent queued tools from starving unrelated sessions by @vastsa in #1287
- feat(release): publish native Linux arm64 artifacts by @vastsa in #1288
New Contributors
- @yy568821795-max made their first contribution in #1189
- @MM8866-stock made their first contribution in #1165
- @aaskfuqw made their first contribution in #1146
- @theluckystrike made their first contribution in #1180
- @OpenX123 made their first contribution in #1247
- @HanawaBanana made their first contribution in #1227
- @initH271 made their first contribution in #1251
- @kev17in made their first contribution in #1258
- @mingkun968 made their first contribution in #1280
- @adoin made their first contribution in #1203
Full Changelog: v0.15.10...v0.16.0
v0.16.0-beta.1
What's Changed
- feat(plugins): implement the seven finalized UI slots by @Tioit-Wang in #1191
- fix(mcp): dispatch streamable-HTTP replies before the SSE stream ends by @yy568821795-max in #1189
- fix(runtime): preserve denied tool declarations in Plan and Goal by @zszz3 in #1184
- 修复聊天模型选择后的友好名称覆盖 wire ID by @aurorax-neo in #1167
- fix(compaction): send the session id as the summary prompt cache key by @MM8866-stock in #1165
- fix(desktop): bootstrap Electron before dev startup by @aaskfuqw in #1146
- fix(providers): 补齐 StepFun Plan 订阅端点配置 by @zszz3 in #1139
- Fix German catalog Sie-form consistency and restore noProjectSessions wording by @theluckystrike in #1180
- fix(plugins): hide docked native views under host plugin modals by @ZxlDragonDoctor in #1148
- fix(host-core): return FILE_NOT_FOUND for missing Read/Write targets by @ZxlDragonDoctor in #1117
- fix(host-core): ignore symbolic links during capability directory copy by @Totopo27 in #1194
- fix(agent-runtime): report subagent output token truncation as failure by @Totopo27 in #1193
- feat(voice): add scoped Live Voice work sessions by @vastsa in #1161
- fix(desktop): treat portable distribution as manual update mode by @Totopo27 in #1200
- perf(skills): 批量导入 Skill 文件夹并复用上次成功位置 by @hui455 in #1172
- feat(plugins): add net.anyHost install-time egress grant by @Tioit-Wang in #1209
- fix(desktop): cap window minimum to display work area (#1175) by @xiaobaZeo in #1210
- fix(permissions): remove local approval deadline by @vastsa in #1218
- fix(live-work): make voice admission outcomes reliable by @vastsa in #1220
- fix(chat): resolve complete file paths in transcripts by @caulif in #1222
- fix(extensions): preserve chained system prompt additions by @zszz3 in #1219
- fix(mcp): 修复 OAuth issuer 路径发现与 scope 选择 by @zszz3 in #1231
- fix(agent-runtime): harden subagent scratch spillover by @vastsa in #1232
- fix(desktop): serialize plugin panel reload teardown by @vastsa in #1233
- fix(desktop): close plugin panel on reload and clean up failed panel loads by @Totopo27 in #1198
- fix(mcp): 明文显示编辑器中的环境变量和请求头 by @zszz3 in #1226
- fix(rpc): bound every request with a wall-clock budget so slots always come back by @muzimu217 in #1208
- fix(renderer): keep long-session streaming responsive by @vastsa in #1235
- fix(chat): keep user-message URLs selectable and copyable by @OpenX123 in #1247
- fix(desktop): stack provider setup panes on constrained viewport heights by @Totopo27 in #1234
- feat(todo): add session-scoped checklist by @HanawaBanana in #1227
- fix(todo): normalize checklist input and recover host state by @vastsa in #1255
- feat(live-voice): stage call interaction UI by @vastsa in #1256
- fix(composer): recover the slash menu from a dropped compositionend by @OpenX123 in #1248
- fix(oauth): preserve thinking metadata for live-only models by @Zhangyinglun in #1253
- fix(oauth): send client_version when listing ChatGPT models by @initH271 in #1251
- fix(shared): do not import pi
!commandapiKey as a literal secret by @initH271 in #1252 - fix(desktop): restore additive CA semantics for the macOS agent sidecar by @yexisu in #1215
- feat(live-voice): expose Live Voice to regular users by @vastsa in #1259
- fix(live-voice): show the real error cause and log call failures by @vastsa in #1261
- fix(models): match relay IDs to official metadata by @vastsa in #1262
- fix(electron): resolve main paths in ESM runtime by @vastsa in #1263
- fix(ci): hoist host React for renderer tests by @vastsa in #1264
- feat(desktop): report one-off notices through the toast stack by @vastsa in #1266
- feat(live-voice): default work to the current session by @vastsa in #1265
New Contributors
- @yy568821795-max made their first contribution in #1189
- @MM8866-stock made their first contribution in #1165
- @aaskfuqw made their first contribution in #1146
- @theluckystrike made their first contribution in #1180
- @OpenX123 made their first contribution in #1247
- @HanawaBanana made their first contribution in #1227
- @initH271 made their first contribution in #1251
Full Changelog: v0.15.10...v0.16.0-beta.1
v0.15.10
What's Changed
- fix(theme): bring the remaining button paints under --ds-* tokens by @Tioit-Wang in #1166
- fix(plugins): preserve randomized marketplace catalog order by @vastsa in #1182
Full Changelog: v0.15.9...v0.15.10
v0.15.9
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 @v...
v0.15.8
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
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
Full Changelog: v0.15.6...v0.15.8
PI-Desktop v0.15.7 · 中秋限时限定版
中秋限时限定版
PI-Desktop 0.15.7 正式版,特别加入中秋限时体验:首次启动播放全屏月下动画,也可在设置中再次播放。
Highlights
- 可选本地语音输入,支持可取消且带校验的模型下载,并保护过期转写结果。
- Windows Portable 单文件版本与安装包、ZIP 一同发布。
- 改进 Agent 取消/恢复、模型与 Provider 处理、批量图片和工作面板体验。
This is the official 0.15.7 Mid-Autumn limited-time edition.
完整变更记录:
v0.15.6...v0.15.7
v0.15.7-beta.1
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
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
Full Changelog: v0.15.6...v0.15.7-beta.1
PI-Desktop v0.15.6
Highlights
- Added support for GPT-6 Astra, Sol, and Luna in the OpenAI and ChatGPT/Codex model catalogs.
- Fixed Windows installer packaging on Node 24.
What's Changed
- fix(release): make Windows packaging compatible with Node 24 (#932)
v0.15.4
What's Changed
- chore(release): v0.15.2 by @vastsa in #797
- fix(vercel): pin supported pnpm for docs deployment by @vastsa in #800
- fix(docs): deploy Vercel site only after releases by @vastsa in #805
- fix(scheduled): preserve manual task workspace bindings by @yuxino in #803
- fix(scheduled): allow hourly updates without calendar fields by @yuxino in #804
- fix(plugins): preserve declared thinkingLevels on plugin providers by @ZxlDragonDoctor in #796
- fix(host-core): protect degraded model binding updates by @vastsa in #809
- fix(shortcuts): reject conflicting individual resets by @yuxino in #808
- fix(projects): preserve editor drafts during background updates by @yuxino in #807
- fix(chat): preserve editing and search during IME Escape by @yuxino in #801
- fix(browser): update chrome after same-document navigation by @yuxino in #811
- fix(session): keep temporary-task attachments readable after branching by @yuxino in #815
- fix(chat): lock queued prompt actions until admission completes by @yuxino in #806
- fix(scheduled): use project path identity for task bindings by @hui455 in #820
- fix(scheduled): distinguish hourly placeholders from calendar times by @hui455 in #821
- fix(scheduled): allow maintenance of unarmed legacy tasks by @hui455 in #822
- fix(scheduled): pause bound tasks when removing a project by @hui455 in #823
- fix(scheduled): avoid serial waits for task startup by @hui455 in #824
- fix(settings): release explicitly deselected image models by @yuxino in #833
- docs(mcp): add user guide for market catalogs and credentials by @Frank-zhu0404 in #835
- feat(config-sync): add encrypted portable configuration sync by @vastsa in #834
- fix(agent-runtime): repair hosted-search continuation contracts by @zeroy1024 in #825
- fix(agent-runtime): keep unreplayable search history usable by @vastsa in #836
- feat(config-sync): support LAN HTTP and append-only WebDAV by @vastsa in #838
- fix(desktop): refuse a slash submission when the command source fails, and give compaction its own deadline (#795) by @vastsa in #848
- fix(desktop): bound the startup wait and make a stuck boot recoverable (#831) by @vastsa in #850
- fix(agent-runtime): keep the recent context window when a summary fails (#827) by @vastsa in #851
- fix(config-sync): isolate global capabilities in sync tests by @yuxino in #842
- fix(windows): publish portable build as zip by @vastsa in #857
- feat(skills): carry skill package resources above the document cap by @vastsa in #855
- fix(skills): compile the package bound test module by @vastsa in #858
- fix(agent-runtime): feed pi's file-op collector the names it reads by @vastsa in #862
- feat(config-sync): show what a running sync is doing by @vastsa in #861
- fix(settings): give fields and dropdowns one control height by @vastsa in #865
- fix(settings): name Settings model options by their vendor account by @hxj04121-lab in #866
- fix(agent-runtime): bound trusted extension lifecycle waits by @hui455 in #788
- fix(agent-runtime): 修复子代理恢复与跨轮缓存的模型授权绕过 by @hui455 in #847
- fix(oauth): offer xAI chat models returned by GET /v1/models by @feeeeling in #844
- fix(chat): copy rendered formulas as round-trippable TeX by @KtzeAbyss in #852
- fix(agent-runtime): 修复中途插入指令后上游 400 Duplicate tool output by @deqiying in #856
- fix(settings): reconcile image bindings when removing provider models by @hui455 in #873
- fix(settings): confirm provider saves without claiming image selection by @hui455 in #874
- fix(images): support Clash Fake-IP image result downloads by @hui455 in #875
- feat(network): trust the endpoints the user enters themselves by @vastsa in #881
- docs(readme): add Discord community badge by @vastsa in #884
- docs(readme): replace the Discord badge with the Reddit r/AIUO badge by @vastsa in #886
- feat(scheduled): save project, permission, and model per task by @vastsa in #885
- feat(scheduled): save project, permission, and model per task by @hui455 in #863
- fix(scheduled): task drafts resolve the model's binding thinking level by @vastsa in #887
- fix(agent-runtime): ignore a stream delta that omits its string field by @vastsa in #888
- docs(readme): use the multi-agent mockup as the README hero image by @vastsa in #889
- docs(site): redesign the documentation site around real product UI by @vastsa in #890
- docs(readme): swap the README hero for the shots.so mockup by @vastsa in #891
- docs(site): swap the homepage hero to the unframed workspace shot by @vastsa in #892
- docs(site): rebuild the landing page in a keynote register by @vastsa in #893
- fix(settings): clear the image model when nothing remains selectable by @vastsa in #895
- feat(settings): start each category at the top by @yuxino in #813
- fix(config-sync): recover WebDAV setup from nested directories and stale credentials by @vastsa in #898
- fix(providers): fold fullwidth header values instead of failing the request by @vastsa in #896
- fix(config-sync): keep the vault-password error code visible by @vastsa in #899
- fix: send valid tool schemas and non-empty reasoning replay to OpenAI-compatible relays by @vastsa in #900
- fix(oauth): load vendor account models from each vendor by @vastsa in #901
- chore(agent-runtime): sync Pi SDK to 0.87.0 by @vastsa in #902
- feat(settings): gate cloud sync behind developer mode by @vastsa in #903
- fix(chat): show why a vendor session cannot launch by @vastsa in #905
New Contributors
- @feeeeling made their first contribution in #844
- @KtzeAbyss made their first contribution in #852
Full Changelog: v0.15.2...v0.15.4