# 前端图标与设置链路调研 ## 图标消费点 - `public/index.html`:favicon、32px favicon、Apple Touch 图标、Manifest,以及登录页 `icon-192.png`。 - `public/app.js`:浏览器通知固定使用 `/icon-192.png`,强制修改密码面板再次渲染登录 Logo。 - `public/sw.js`:Service Worker 通知默认使用 `/icon-192.png`。 - `public/site.webmanifest`:PWA 安装图标使用 `icon-192.png` 与 `icon-512.png`。 ## 设置链路 - `#settings-btn` 调用 `showSettingsPanel()`,Codex 与 Claude 设置页都复用 `buildAppearanceSettingsHtml()` / `mountAppearanceSettings()`。 - 设置读取与保存统一走 WebSocket 消息;服务端在消息 switch 中分发 `get_*_config` / `save_*_config` 并回推配置。 - 新功能适合增加独立的实例图标配置消息,避免混入 Codex/Claude 模型配置。 ## 静态资源与缓存 - 静态资源由 `server.js` 从 `PUBLIC_DIR` 返回,响应使用 `Cache-Control: no-store, max-age=0`。 - 默认图标未参与前端资产 hash;自定义运行时 URL 应带版本参数或 ETag,确保同页更新。 - PWA/操作系统已安装图标受平台缓存控制,即使动态 Manifest 更新也不保证立即刷新;浏览器页签、登录 Logo 与通知图标可可靠动态更新。 ## 测试与风险 - 总回归入口是 `npm run regression`;`scripts/regression.js` 已覆盖设置页消息与静态结构。 - 必须覆盖默认回退、设置页上传/恢复消息、通知图标与登录 Logo 使用统一 URL。 - 不应修改主题级设置按钮图标;实例品牌图标与主题装饰资产是不同职责。