中文
基于 v0.14.2..v0.15.0 的提交整理。
npm install -g @agegr/pi-web@latest新增
- 运行中也能切换模型:聊天框的模型选择器在运行时不再禁用,与 pi 的 TUI 一样,切换从这次运行的下一个请求起生效,推理级别本来就是这样。(#1527)
- 侧聊标签随主会话恢复:右侧面板里打开的侧聊标签按主会话保存在当前浏览器标签页中,回到该会话或刷新页面时恢复(已删除的侧聊不会恢复);同一项目内切换会话时保留子代理标签;未命名的侧聊在标签栏和 Agents 切换器里统一叫「Side chat 1」「Side chat 2」。(#1512,感谢 Tiger)
- 拖动重排右侧面板标签:文件、终端和代理聊天标签可以拖到其他标签前后,顺序只在页面内保留。(#1511,感谢 Tiger)
- 重排自定义提供商的模型:Settings › Models 里
models.json提供商的模型行可以在桌面上拖动、用 Alt+↑/↓ 移动,或点「+ 模型」旁的 A–Z 按名称排序一次;保存后写回文件顺序,选择器和 pi 的/model跟着变。(6386fa4, #1479) - 显示提供商名称而不是 id:模型选择器和 Settings › Models 侧栏用提供商的显示名称(如 DeepSeek、AI Flash API),筛选也能匹配名称。(#1514,感谢 谢凯文)
- 扩展 UI 有颜色了:扩展的自定义面板、widget 和
ctx.ui.theme现在拿到 pi 给不报告颜色的终端用的系统主题(ANSI 调色板),按应用的明暗主题显示。(da6d538)
修复
- 导出 HTML 恢复正常:升级到 pi 1.5.0 后,0.14.2 的每次导出都失败(
sortChildren expected 1 match, found 0),现在去掉了过时的补丁。(1fbf6c6) - Sign in with ChatGPT 可以开始登录:Settings › Models 里 pi
openai提供商的 OAuth 登录不再报「requires a device ID」,使用与 TUI 相同的deviceId;openai-codex的显示名改为「ChatGPT Plus/Pro (legacy)」以便区分。(#1526) - 已登出提供商的
enabledModels条目算作不匹配:「清理无效条目」(Remove unmatched entries)会删除它们,不再每次启动都有 pi 的警告;重新登录不会恢复这些条目。(#1529) - 完成通知只提醒一次:页面和推送同时通知同一次完成时不再响两次。(#1518)
- 听写工具的粘贴不再丢失:粘贴过程中剪贴板被改写时,Chrome 放弃的插入现在会补上。(#1517)
- 流式回复的 token 数和速度不再抖动:头部预留高度、数字等宽,内容不再跳动。(#1520,感谢 Danny Thomas)
内部调整
- Docker 构建用
npm ci --ignore-scripts,镜像不再需要 python3/make/g++。(#1525) - 发布 npm 包
@agegr/pi-web@0.15.0和镜像ghcr.io/agegr/pi-web:0.15.0。
English
Prepared from commits in v0.14.2..v0.15.0.
npm install -g @agegr/pi-web@latestAdded
- Switch the model while a run streams: the composer's model selector no longer locks during a run. As in pi's TUI, the switch applies from the run's next request, as the reasoning level already did. (#1527)
- Side chat tabs come back with their main session: open side chat tabs are saved per main session in the current browser tab and restored when you return to that session or reload (deleted side chats are not). Switching sessions within a project keeps subagent tabs, and unnamed side chats read "Side chat 1", "Side chat 2" in both the tab bar and the Agents switcher. (#1512, thanks Tiger)
- Reorder right-panel tabs by dragging: file, terminal and agent chat tabs can be dropped before or after another tab; the order lasts for the page. (#1511, thanks Tiger)
- Reorder a custom provider's models: in Settings › Models, a
models.jsonprovider's model rows can be dragged on a desktop, moved with Alt+↑/↓, or sorted once by name with A–Z beside + Model. Save writes the file's order, which the selector and pi's/modelfollow. (6386fa4, #1479) - Provider names instead of ids: the model selector and the Settings › Models sidebar label providers by their display names (DeepSeek, AI Flash API, …), and the filter matches them. (#1514, thanks 谢凯文)
- Colored extension UI: extension custom panels, widgets and
ctx.ui.themeget pi's system theme for a terminal that reports no colors (the ANSI palette), drawn in the app's light or dark palette. (da6d538)
Fixed
- HTML export works again: since the pi 1.5.0 upgrade, every export in 0.14.2 failed with
sortChildren expected 1 match, found 0; the obsolete patch is gone. (1fbf6c6) - Sign in with ChatGPT starts: the OAuth login of pi's
openaiprovider in Settings › Models no longer fails with "requires a device ID"; it uses the samedeviceIdas the TUI.openai-codexis now labeled "ChatGPT Plus/Pro (legacy)" to tell the two apart. (#1526) - A signed-out provider's
enabledModelsentries count as unmatched: "Remove unmatched entries" deletes them, so pi stops warning about them on every start; signing back in does not restore them. (#1529) - One alert per completion when both the page and a push announce the same finished run. (#1518)
- Pastes from dictation tools no longer vanish: when the clipboard changes mid-paste and Chrome drops the insertion, the text is inserted. (#1517)
- Steady streaming token and speed indicators: the header keeps its height and uses tabular digits, so the reply below no longer shifts. (#1520, thanks Danny Thomas)
Internal
- Docker builds use
npm ci --ignore-scripts; the image no longer needs python3/make/g++. (#1525) - Published npm package
@agegr/pi-web@0.15.0and imageghcr.io/agegr/pi-web:0.15.0.