中文
基于 v0.11.1..v0.12.0 的提交整理。
npm install -g @agegr/pi-web@latest新增
- 一键删除项目的全部会话:项目分组的 ⋯ 菜单末尾新增「删除全部会话… · N」,先确认(默认聚焦「取消」,回车不会误删),再删除该项目的所有会话(含置顶和归档的),正在运行或等待输入的会保留。(#1182)
- 在新浏览器标签页打开会话:侧边栏会话标题现在是真正的链接,中键或 Ctrl/Cmd 点击即在新标签页打开;会话菜单新增「在新标签页打开」(T)。普通点击仍在当前页切换。(#1167, #1169,感谢 xcg)
- 子代理可连接 MCP 服务器:配置文件写
mcp: on(或在 Agents 面板打开「连接 MCP 服务器」)后,子代理按普通会话相同的信任规则连接mcp.json中的服务器;只读工具的子代理(Explore、Plan)只运行服务器标为只读的 MCP 工具。(#1053, #1187) - 子代理模型支持
:level后缀:provider/model:high同时指定模型和思考级别,与 pi 的--model一致;Agent 工具说明里列出每个配置文件的思考级别。(#1188, #1189) - 终端在竖屏触屏上提供 Termux 风格的额外按键:两行 ESC / - HOME ↑ END PGUP 与 TAB CTRL ALT ← ↓ → PGDN,点按时软键盘不收起;CTRL、ALT 为单次修饰,也作用于软键盘输入的下一个字符。(#1166,感谢 vill)
- 设置 › Skills 显示技能的完整说明。(#1158,感谢 tammelin)
- 超过 256 KB 的 HTML 文件也能完整预览。(#1155,感谢 Tiger)
修复
- 完成提示音:空闲时暂停音频上下文(Android Firefox 不再在两次提示音之间持有唤醒锁),运行期间保持运行,锁屏时结束的运行也会响;超过 3 秒才恢复的提示音直接丢弃,不在回来时迟到播放。(#1157, #1178, #1185)
- 打开指向已删除会话的链接,不再显示该项目上次打开的会话,而是新建会话页并提示「该会话已不存在」。(#1168, #1180)
- Windows 命令行:
status、open、update、stop在 Node 23–24.19 / 26.6 上不再以 0xC0000409(libuv 断言)退出。(#1174, #1179) - 扩展在回答生成或压缩期间调用
ctx.reload()会被拒绝并给出警告(与 pi 的 TUI 一致),不再让进行中的回合失效。(#1172, #1173,感谢 solidlime) - 终端:手机软键盘弹出时面板短暂缩到一行,输入不再永久失效。(#1160,感谢 vill)
改进
- 流式回复更轻:长回复按 Markdown 块增量解析,不再每个片段重解析全文 (#1176);每个片段只重新渲染正在生成的回复,输入框和小地图不再跟着渲染 (#1191)。
- 代码高亮按需加载:约 300 种 Prism 语言不再随首屏加载,首次出现代码块时才单独加载 (#1183);长历史里的代码块在空闲时分批上色,打开会话更快 (#1181)。
- 工具结果图片由浏览器长期缓存,不再每次重新下载。(#1181)
- 会话列表:列表接口不再携带每个会话完整的首条消息(大目录下 3.2 MB → 385 KB)(#1176);每次运行结束只重建一次列表 (#1177);子代理关系只在文件变化时重新读取 (#1181);会话视图缓存的大小只计算一次 (#1181)。
- 完成推送的标题直接取自当前会话,不再解析所有会话文件;工具结果的图片不再在事件流中重复发送。(#1176)
- 设置 › MCP 服务器详情:状态与连接合为一行,工具列在 Tools 选项下,去掉重复的 Transport / Sign-in 行,字体与字号统一。(#1190)
内部调整
- 删除只复述实现源码文本的测试(2968 → 2589 个)。(f364bc3)
- 发布文档:按名称推送发布标签,补充前置检查与 npm 同步延迟说明。(30af3b4)
- 发布 npm 包
@agegr/pi-web@0.12.0。
English
Prepared from commits in v0.11.1..v0.12.0.
npm install -g @agegr/pi-web@latestAdded
- Delete all of a project's sessions: a project group's ⋯ menu ends with "Delete all sessions… · N". It asks first (Cancel is focused, so Enter deletes nothing), then deletes every session of the project, pinned and archived ones included, keeping those that are running or waiting for input. (#1182)
- Open a session in a new browser tab: a sidebar session title is now a real link, so middle-click and Ctrl/Cmd-click open it in a new tab; the row menu gets "Open in new tab" (T). A plain click still switches in place. (#1167, #1169, thanks xcg)
- Sub-agents can connect MCP servers: a profile with
mcp: on(or the Agents panel's "Connect MCP servers" switch) connects the servers inmcp.jsonunder the same trust rules as a normal session. With read-only tools (Explore, Plan), only MCP tools their server marks read-only run. (#1053, #1187) - Sub-agent models accept a
:levelsuffix:provider/model:highsets the model and its thinking level, as pi's--modeldoes; the Agent tool's description lists each profile's thinking level. (#1188, #1189) - Termux-style extra keys for the terminal on portrait touch screens: two rows, ESC / - HOME ↑ END PGUP and TAB CTRL ALT ← ↓ → PGDN; tapping keeps the soft keyboard open, and CTRL and ALT are one-shot, also applying to the next character typed on the soft keyboard. (#1166, thanks vill)
- Settings › Skills shows a skill's full instructions. (#1158, thanks tammelin)
- HTML files larger than 256 KB preview in full. (#1155, thanks Tiger)
Fixed
- Completion sound: the audio context is suspended while idle (no wake lock between chimes on Firefox for Android) and held running during a run, so a run that ends while the phone is locked still chimes; a chime whose resume takes over 3 s is dropped instead of playing late. (#1157, #1178, #1185)
- A link to a session that no longer exists opens a fresh composer with "This session no longer exists" instead of the project's last open session. (#1168, #1180)
- Windows CLI:
status,open,updateandstopno longer exit with 0xC0000409 (a libuv assertion) on Node 23–24.19 / 26.6. (#1174, #1179) - An extension's
ctx.reload()during a streaming turn or compaction is refused with a warning, as in pi's TUI, instead of invalidating the turn in flight. (#1172, #1173, thanks solidlime) - Terminal: input keeps working after the phone keyboard briefly shrinks the panel to one row. (#1160, thanks vill)
Improved
- Lighter streaming: a long reply's markdown is parsed block by block instead of whole on every chunk (#1176); each chunk re-renders only the streaming reply, not the composer or the minimap (#1191).
- Code highlighting on demand: Prism's ~300 languages no longer load with the first page; they load as their own chunk when the first code block appears (#1183). Fences in a long history get their colors in idle slices, so sessions open faster (#1181).
- Tool-result images are cached by the browser for good instead of re-downloaded on every view. (#1181)
- Session list: rows no longer carry each session's whole first message (3.2 MB → 385 KB on a large folder) (#1176); the list is rebuilt once per finished run (#1177); sub-agent relations are read only when their file changes (#1181); cached session views are measured once (#1181).
- The completion push takes its title from the live session instead of parsing every session file, and a tool result's image no longer crosses the event stream twice. (#1176)
- Settings › MCP server details: Status and Connection are one row, listed tools sit under the Tools choice, redundant Transport and Sign-in rows are gone, and fonts and sizes are consistent. (#1190)