pi-web-ui 0.73.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,7 +10,52 @@
10
10
 
11
11
  ## [Unreleased]
12
12
 
13
- 暂无未发布内容。
13
+ ## [0.75.0] — 2026-09-11
14
+
15
+ ### Added
16
+
17
+ - 桌面通知(PWA)的 Windows 适配:
18
+ - 点击通知现在经 service worker 的 `notificationclick` 聚焦/唤回原本的窗口(匹配 URL 优先、其次任一应用窗口,都没有才新开)——之前 Windows/Linux 上点通知等于没反应,只能眼看着横幅消失。
19
+ - 通知不可用时区分原因:地址不是安全上下文(非 localhost 的 http,局域网 IP / 主机名访问的常见「在这台机器起服务、从另一台电脑打开」情形)与「浏览器不支持」分别给提示;不可用时开关置灰,不再假装能打开。
20
+ - Windows 上额外提示系统层开关:「设置 → 系统 → 通知」要允许浏览器(或已安装的应用),并关闭专注助手/勿扰;同时说明关窗即进程结束、之后不再提醒。
21
+ - 提示文字改为换行显示(原来被单行省略号截断)。
22
+
23
+ ### Fixed
24
+
25
+ - 桌面通知在 Windows 最小化后完全不提醒:抑制条件从「有焦点就跳过」改为「有焦点 **且** 页面可见才跳过」(`shouldSuppressNotify`,有单测)。Windows 上最小化窗口可能仍报 `document.hasFocus() === true`,而 Page Visibility 在最小化/被遮挡/后台标签页都会报 `hidden`——原来那套只判焦点的写法正好在本功能存在的场景下把通知全部静默掉。
26
+ - 本地 Playwright E2E 脚本在 Windows 上无法启动:`spawn` 的 cwd/脚本参数用的是 `URL.pathname`(Windows 上得到 `/E:/...`)→ 直接 ENOENT;改为 `fileURLToPath`,清理服务端进程在 win32 改用 `tests/lib/port-utils.mjs` 的 `freePort`(负数 PID 的进程组在 Windows 不存在,旧写法会留下监听进程)。`tests/sound-settings-test.mjs` 补上了通知开关的断言(渲染 / 置灰规则 / 状态与持久化一致 / 刷新后保持)。
27
+ - 设置面板「标记」列表的描述与「?」提示跟随界面语言(#111):之前发的是静态中文 guidance,任何 UI 语言都显示中文(含葡语/日语等已翻译语言)。改用与系统提示词组装同一条语言感知路径 `getGuidance(lang)`,无该字段的标记仍回退静态值。
28
+ - 消息列与输入框宽度不一致、左右边缘对不上:根因是布局里有十几处各自为政的 `max-width: 860px; margin: 0 auto` / `calc(100% - Npx)`(手机端 `.msg` 内边距 14px vs 输入框 10px、窄列下只有消息行加 48px 右 margin、宽屏聊天列另写一套 260px margin),外加 `--msgs-gutter` 探针量错了滚动条(`overflow-y: scroll` 量到叠加层滚动条 0px,而 `.messages` 的 `stable both-edges` 实际每侧占位 10px)→ Windows 上消息列恒比输入框窄 20px。现在「中央列几何」收敛成 `.main` 上的四个 token(`--chat-pad` / `--chat-max` / `--chat-rail` / `--chat-inset`),消息列、输入框、goalbar、`/` 菜单、问卷面板都只用 `--chat-inset`:任何视口宽度、宽屏聊天列开关开关、手机、窄列避开提问导航条时都自动等宽且左右边缘对齐。新增回归 `tests/chat-column-align-test.mjs`(见 `docs/architecture-core.md` 的「中央列几何」)。
29
+ - Windows 触屏笔记本 / 二合一上回车发不出去:触屏判定原来只看 `(pointer: coarse)`,这类机器的主指针(触屏或触控板)常被判为粗指针 → 回车被当成换行,只能手点发送按钮。改为「粗指针 **且** 无 hover **且** 非桌面系统」的判定(`web/src/touch-device.ts` 纯函数,有单测):Windows / ChromeOS / Linux 桌面一律按有物理键盘的桌面处理(Android 的 UA 里也带 Linux,已排除),iPad 靠 `maxTouchPoints > 1` 与真 Mac 区分。
30
+
31
+ ### Changed
32
+
33
+ - 移动端界面收紧:
34
+ - 顶栏所有控件(视图 tab / chip / 左右折叠按钮)统一高度;文件面板折叠按钮移出可横滑的 `.topbar-actions`、固定在右上角——之前窄屏上会被 tab/chip 挤出屏幕外。
35
+ - 底栏手机端改为单行紧凑显示:上下文标签与进度条收起、只留「已用 / 窗口」数字;速率前加一个小转圈(窄屏省略「工作中」文案);工作目录宽度不够时省略号截断。
36
+ - 提示词模板选择器与编辑弹窗改为「头尾固定、中段滚动」:模板多、字段区高时标题与操作按钮不再被滚走。
37
+
38
+ <!-- auto-i18n:start -->
39
+ ### i18n
40
+
41
+ - 前端新增 key(2):`notifyInsecure`、`notifyWindowsHint`
42
+ - 前端中文变更(2):`notifyEnableDesc`、`notifyDenied`
43
+ - 前端英文变更(2):`notifyEnableDesc`、`notifyDenied`
44
+ <!-- auto-i18n:end -->
45
+
46
+ ## [0.74.0] — 2026-09-10
47
+
48
+ ### Added
49
+
50
+ - 右栏扩展 widgets 区高度可拖拽(#109):文件区与 widgets 区改为与左栏同款的「权重分割」——两区之间新增分隔条(拖动改高度、双击复位、`localStorage` 键 `pi-web-ui:rp-sizes` 记忆),widgets 不再被 `max-height: 40%` 写死;无 widgets 时布局与改动前一致。
51
+
52
+ ### Changed
53
+
54
+ - run-trace 插件「跟随」改为真正的实时流动:色块匀速平滑左移(逐帧亚像素位移,不再一秒一跳),**时间刻度线钉在屏幕固定位置完全不移动**(跟随期间自绘刻度尺并隐藏 vis 自带轴/网格,刻度数值随时间滚动;绘图区右侧 40px 处有固定的「现在」竖线,新事件贴着它出现再往左流走)。缩放(滚轮)不再退出跟随——按新缩放级别重新锚定「现在」;拖拽平移仍会暂停跟随(再点「跟随」恢复)。运行结束时平滑退出、内容不跳。
55
+ - 工具卡头(状态图标右侧)显示关键参数提示:**文件路径**(`.toolcall-path`,读/写/编辑类工具的 `path`/`file_path` 等参数;超长保尾段,完整值在 title 悬浮提示)+ **超时**(`.toolcall-timeout`,从正文终端行移来:bash 卡折叠时也能看到,且任何带 `timeout` 参数的工具都显示,不限 bash)。提取逻辑抽成纯函数 `web/src/tool-args.ts`(有单测):正则扫描前 256KB 而非 JSON.parse——1 流式半截 JSON 下 `path` 一落地就显示;2 write 的大 content 不会每次渲染都解析;3 AI 把参数填错(非 JSON / 类型不对 / 缺字段 / 超长 / 带控制字符)一律静默不显示、绝不抛错。
56
+ - 工具卡正文内边距与思考块统一:`.toolcall-body` 由 `8px 12px 10px` 改为与 `.thinking-body` 同值,两者共用新变量 `--card-body-pad`(`4px 14px 12px`)——同一条消息里两种卡片的文字左缘对齐。所有主题生效;`.compaction-body` 仍是自己的 `8px 12px 10px`。
57
+ - 全透明主题(`themes/transparent.css`)下的工具卡减噪:工具参数块(`.toolcall-args pre`)、工具输出块(`.toolcall-output pre`)与终端行(`.termline`)不再画边框、也不留内边距(新增语义变量 `--code-border` / `--code-pad`,默认 `var(--border-soft)` / `8px 10px`);终端行与卡头重复的终端图标(`.termline-icon`)隐藏。理由:全透下这三处没有容器色(`--chip-bg` = 0%),实色边框、外凸内边距与孤立的绿色图标只剩视觉噪音。其他主题与 markdown 围栏代码块 `.codeblock pre` 保持原样。
58
+ - 左栏分区高度拖动改用与右栏共享的 `panel-sash.ts` 纯函数(同一套权重换算与最小像素钳制):修掉极端情况下(权重一大一小 + 面板被压得很矮)会算出 ≤0 权重、导致分区高度错乱的旧行为;拖动手感、双击复位与存档格式(`pi-web-ui:lp-sizes`)不变。
14
59
 
15
60
  ## [0.73.0] — 2026-09-10
16
61
 
@@ -327,7 +372,9 @@
327
372
  - 0.35.1(2026-08-27):编辑重问保留附件(#18)+ 全窗口拖放(#19)。
328
373
  - 0.29.0(2026-08-23):全局搜索弹窗(Ctrl+K)+ 消息列表惰性窗口化。
329
374
 
330
- [Unreleased]: https://github.com/xing-shuyin/pi-web-ui/compare/v0.73.0...main
375
+ [Unreleased]: https://github.com/xing-shuyin/pi-web-ui/compare/v0.75.0...main
376
+ [0.75.0]: https://github.com/xing-shuyin/pi-web-ui/releases/tag/v0.75.0
377
+ [0.74.0]: https://github.com/xing-shuyin/pi-web-ui/releases/tag/v0.74.0
331
378
  [0.73.0]: https://github.com/xing-shuyin/pi-web-ui/releases/tag/v0.73.0
332
379
  [0.72.0]: https://github.com/xing-shuyin/pi-web-ui/releases/tag/v0.72.0
333
380
  [0.71.0]: https://github.com/xing-shuyin/pi-web-ui/releases/tag/v0.71.0