feat: complete WorkBuddy parity and Windows release workflow
This commit is contained in:
1 parent
143516b3a8
commit
d5512df549
434 files changed
+54977
-1854
No files matched your search
@@ -0,0 +1,48 @@
|
||||
# 设置打开性能修复(2026-10-18)
|
||||
|
||||
用户确认修复设置打开慢,并补充:普通“设置”入口默认应进入“通用”。本轮已完成实现和隔离应用验证;当前用户窗口没有被强制重启,主进程/preload 更新需要完整重启 YCode 才能加载。
|
||||
|
||||
设置窗口改为独立 `settings.html` / `settings.tsx` 入口,首次使用创建,关闭后隐藏并复用同一渲染进程。设置子页按需加载并缓存代码;关闭时卸载页面,清理搜索、未保存模型表单、密码输入和快捷键录制状态,重新打开时读取最新配置。主窗口关闭时销毁隐藏缓存窗口,正常退出仍销毁窗口。
|
||||
|
||||
普通设置入口(账户菜单、标题菜单、Ctrl+,、未传 section 的 IPC 和内嵌后备入口)默认“通用”;显式 `model/new` 仍进入添加模型。设置渲染完成后通过带请求 ID 的信号唤起窗口,连续请求以最后一个目标为准,关闭后到达的就绪信号不会重新显示窗口。新信号只接受所属设置窗口主 frame;沙盒策略来源验证已适配独立设置入口,没有放宽到任意页面。
|
||||
|
||||
初始 HTML 有可绘制的主题占位,页面加载期间保留设置导航和内容占位。共享按钮、开关和下拉样式显式随窗口壳加载;专项验证发现通用页此前隐含依赖模型页导入的 Select CSS,已修复直接打开通用页时下拉高度变成 21px 的回归,恢复为 32px。按需加载没有采用会引入约 300ms fallback 延时的 Suspense 页面切换,改为代码缓存和明确加载状态。
|
||||
|
||||
主要文件:
|
||||
|
||||
- `src/main/index.ts`:窗口缓存、导航/就绪/关闭竞态、退出清理、独立入口和策略校验。
|
||||
- `src/preload/index.ts`、`src/shared/ipc.ts`:设置窗口生命周期信号及请求 ID。
|
||||
- `electron.vite.config.ts`、`src/renderer/settings.html`、`src/renderer/src/settings.tsx`:renderer 多入口。
|
||||
- `src/renderer/src/components/SettingsDialog.tsx`、`settings-panel-loader.tsx`、`src/renderer/src/styles/settings-entry.css`:窗口壳、共享样式、按需子页、刷新与清理。
|
||||
- `src/renderer/src/App.tsx`、`src/renderer/src/workbuddy/user-menu/AccountMenu.tsx`:默认进入通用。
|
||||
- `scripts/verify-settings-performance.cjs`、`package.json`:新增 `npm run test:settings-performance`,测量真实页面内容和后续绘制帧,验证生命周期和导航;使用本次构建副本,避免其他任务重建 out 时丢失哈希资源。
|
||||
- `scripts/verify-settings-nav.cjs`、`scripts/verify-account-menu.cjs`:更新默认页面和缓存窗口的验收约定。
|
||||
|
||||
验证结果:
|
||||
|
||||
| 项目 | 结果 / 证据 |
|
||||
| --- | --- |
|
||||
| 完整生产构建、最终 typecheck、相关 diff --check | 通过;`.tmp/settings-build-final.log`、`.tmp/settings-typecheck-final.log` |
|
||||
| 生产真实窗口性能与生命周期 | 26 项通过、0 renderer 错误;`.tmp/settings-performance-plMGVs/report.json` |
|
||||
| 独立 Vite 开发模式 + 真实原生窗口 | 26 项通过、0 renderer 错误;`.tmp/settings-performance-vmVayL/report.json`;测试服务器已关闭 |
|
||||
| 导航与账户菜单 | 20 / 64 项通过;`.tmp/settings-nav-uFrgQk/`、`.tmp/account-menu-UyqRJA/` |
|
||||
| 通用、个性化、记忆与进化 | 43 / 34 / 25 项通过;`.tmp/general-settings-h6QOeC/`、`.tmp/personalization-settings-QRlcKp/`、`.tmp/memory-settings-bRs1wp/` |
|
||||
| 外观、快捷键、智能体 | 21 / 32 / 17 项通过;`.tmp/appearance-settings-QxvT5P/`、`.tmp/shortcuts-settings-LpJa3s/`、`.tmp/agents-settings-P9eimH/` |
|
||||
| 关于与获取帮助 | 20 项通过;`.tmp/about-help-settings-shGlBh/` |
|
||||
| 共享样式对对话引用/附件的回归 | 44 项通过;`.tmp/reference-content-Mcp7jt/` |
|
||||
| 修改前后浅色/深色 9 页计算样式 | 18 个状态、162 组选择器快照零差异;`.tmp/settings-visual-final-diff.json`。已人工查看最终浅色通用和深色模型截图 |
|
||||
|
||||
性能口径:以前诊断记录中的 FCP 为浏览器首次内容绘制。此次进一步记录所选页面真实控件出现(contentMs),以及它们出现后两帧(frameMs),避免将占位或 IPC 返回误当作加载完成;不同口径不直接相减计算精确提升百分比。
|
||||
|
||||
| 指标 | 生产构建实测 | 独立开发模式实测 |
|
||||
| --- | --- | --- |
|
||||
| 第一次原生窗口 show | 101 ms | 185 ms |
|
||||
| 第一次通用页内容出现 | 191 ms | 277 ms |
|
||||
| 第一次通用页内容后两帧 | 231 ms | 351 ms |
|
||||
| 缓存窗口重开:原生 show | 9~16 ms | 21~29 ms |
|
||||
| 缓存窗口重开:通用内容出现 | 17~21 ms | 35~44 ms |
|
||||
| 缓存窗口重开:内容后两帧 | 23~28 ms | 50~61 ms |
|
||||
|
||||
初始静态脚本从 5,016,896 字节降到 637,012 字节,基础与共享控件 CSS 从 3,424,320 字节降到 230,103 字节;其后仅加载目标子页代码和必要样式。首次打开仍有创建原生窗口/渲染进程的成本;缓存保留一个渲染进程及代码,页面本身在关闭时卸载。表中数据是隔离实例测量,设备负载会带来波动,当前用户旧进程中的新效果尚未验收。
|
||||
|
||||
测试同时覆盖显式添加模型、未保存编辑器清理、跨窗口模型保存后的隐藏/可见刷新、启动中的连续目标切换、最小化恢复、加载中关闭和重开、独立入口的沙盒策略读取授权以及主窗口关闭时清理隐藏缓存。测试没有发送真实模型请求,也没有操作 WorkBuddy 或新增原版证据;这是 YCode 性能与回归验收,不能据此宣称 WorkBuddy 全状态 1:1 验收完成。
|
||||
Reference in new issue
Block a user