Files
ycode/.workbuddy/memory/2026-10-17.md
T

5.7 KiB
Raw Blame History

2026-10-17

  • 调研 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 才有。