feat: complete WorkBuddy parity and Windows release workflow

This commit is contained in:
xiaohan.yuan committed 2026-10-18 12:45:21 +08:00
1 parent 143516b3a8
commit d5512df549
434 files changed
+54977 -1854

No files matched your search

+17
View File
@@ -2,3 +2,20 @@
- 调研 OMP 与 Pi(pi agent)差异,产出 `docs/omp与pi-agent对比调研-2026-10-17.md`。
- 关键结论:omp = oh-my-pi(can1357/oh-my-pi,Stencil Labs,Pi 的 fork,上游最新 18.11.2);pi = Mario Zechner 的上游 Pi(repo 已迁至 earendil-works/pi,npm @earendil-works/pi-coding-agent v1.3.0)。两者 RPC 协议同源(NDJSON over stdio),omp 走"全内置"路线(31 工具、Rust 原生核心、子代理/计划/审批/MCP),pi 走极简可扩展路线(4 内置工具、无子代理/计划/内置权限)。YCode 现内核 omp.exe 18.6.3 属 omp,非上游 Pi。
- 设计并落地 YCode 应用图标:沿用 WorkBuddy 的 squircle + 135° 青绿渐变(`#0DC8A6 → #7ED968`)+ 负空间挖洞眼睛,造型改为奶油色小家伙(短耳=Y 的两臂,脸越出下缘形成探头感)。v13 之前试过 12 版,结论:靠手调贝塞尔画有机形状不稳,改用几何基元(胶囊耳+椭圆脸)后才可控。
- 产出:`build/icon.svg`、`build/icon-small.svg`(32px 以下切短耳熊版,阈值 48)、`build/icon.ico`(7 尺寸)、`build/icon.png`、`build/icon-preview.png`、`resources/icon.png`、`scripts/gen-icon.mjs`,命令 `npm run icon:build`。
- 主进程接线:`appIconPath()` + 三个 BrowserWindow 的 `icon` + `app.setAppUserModelId('com.ycode.app')`。`tsc -p tsconfig.node.json` 通过;真机任务栏效果未验证(本机 Electron GUI 起不来,`ELECTRON_RUN_AS_NODE=1`)。
- 项目遗留:`electron-vite@5` 要求 vite ^5–^7,项目装的是 vite 8,任何 `npm install` 都需 `--legacy-peer-deps`;`electron-builder` 仍未配置,`.exe` 文件图标无法落地。
- 细节记录见 `docs/YCode图标设计-2026-10-17.md`。
- 按用户要求把图标底色从青绿改为 `#2440E8 → #0FB9DE`(靛蓝→青),奶油色同步冷调化为 `#FAFDFF → #E4F1FD`,与 WorkBuddy 的青绿拉开差异;对比过 `#2C5BFF→#21D4E8`(偏软)与紫粉方案(偏消费类)。遗留:应用内 UI 主色仍是 `#00c29a`,图标蓝与界面绿并存,是否统一待定。
- 用户对蓝色不满意,最终定为 `#4F2BE8 → #A94BFF`(紫罗兰→品红),奶油色 `#FCFBFF → #EDE7FE`。选它的依据是奶油脸与底色亮端对比约 4:1,优于珊瑚橙 2.8:1。图标现为紫色、界面仍为绿色,尚未统一。
- 用户再要求「偏红色系」,最终定 `#C8102E → #FF4D6A`(绯红→玫红),奶油色 `#FFFAFA → #FFE8EC`;否决 `#9E0B22→#E23A2E`(太严肃)与 `#E03616→#FF8A4C`(红橙,对比仅 2.6:1)。图标红、界面绿(`#00c29a`)的不一致仍未处理,用户已连续改色四轮,若再改可直接给色板编号让他选。
- 最终版:深红 `#C8102E → #7E0817` + 五颗金星 `#FFE79B → #F0B233`(一大四小,人民/党的意象),构图由「脸占满」改为徽章式——小家伙缩 0.8 倍移到右下、星群占左上;小尺寸版保留一大两小作金色锚点。星群刻意不做成国旗精确构图以降低合规风险;文档已注明国旗法对商标/商业用途的限制。
- 修正:五颗星原先做成了近似同尺寸,顺序与比例都错。现按《国旗制法说明》重算:旗面 30×20,大星中心 (5,5) r3,小星 (10,2)(12,4)(12,7)(10,9) r1,大:小=3:1,小星一角尖对准大星中心(atan2 算旋转)。换算 k=6.4px/单位、原点 (-12,4),大星 r19.2、小星 r6.4;脚本 `scripts/star-layout.mjs`。兔子因此缩到 0.70 移到 (84,110),48px 以下用 0.84 版。背景用「多段透明渐变」模拟旗面光泽(模糊滤镜画褶皱在 64px 会糊成色块,已弃用)。
- 最终形态:**移除兔子,只留深红旗面 + 制式五角星**。k=10、原点 (-8,-4),大星 r30、小星 r10,星色 #F7CE72 @0.86(实测 #EEB367),旗面采样 #810B18。兔子与星群抢位、两头都做不干净,是弃用角色方案的原因。`build/icon-small.svg` 已删除,生成器改为单一矢量源(`pick()` 恒等),16px 下只能读出"红底+一颗星"。文档 `docs/YCode图标设计-2026-10-17.md` 已整体重写。
- 用户要求继续放大并右移取景,做到"第一眼认不出是红旗"。最终 k=16、原点 (-66,-16):大星 r48 被三边裁切,四颗小星从上/右/下各露一角,右侧两颗只剩 5px 尖角。放大时原点要同步左移,否则小星整体出框(k=16/20 配旧原点就会全挤出画面)。若要一眼认出国旗,回退 k=8.8 + 原点 (-2,1)。
- 兔子位置反复:0.74/(84,94) 右脸被圆角切掉 → 0.76/(74,90) → 用户选了「底部居中探头」并要更大 → 最终 **1.0 倍 / 中心 (64,106)**,下巴被边框切掉、只露耳朵额头和眼睛。经验:判断"位置怪"要先看是否被圆角切脸,而不是只看坐标。眼睛改为实心 #B0112A(不再用 mask 洞,洞会透出底下金星)。
- 收尾:用户反馈任务栏里图标偏小。量截图得 WorkBuddy 占 24px 槽、我们只占 20px——原版窗口图标是贴边裁的,不是 PNG 里那 80% 留白。解决:整幅内容包一层 `scale(1.2)`,内容区从 80% 提到约 96.6%。另加 `build/sizes/` 输出 13 档备用 PNG(16~1024)。
- 二次调整:95.5% 仍显小,改为 `scale(1.25)` → 内容 99.4%(满幅)。`resources/tray.png`(32px) 一并产出。
- 接线:主进程新增 `createTray()`(图标缺失只 warn 不抛错,左键唤回窗口,右键"显示/退出");`package.json` 加 electron-builder 的 `build` 段(appId com.ycode.app、win.icon=build/icon.ico、extraResources 复制 icon/tray、`npmRebuild:false` 绕开 node-pty 的 Spectre 编译失败)与 `dist` / `dist:installer` 脚本。用户明确**不要我跑打包**,`.exe` 文件图标需他自己执行 `npm run dist` 才有。