feat: support custom instance icons and refresh release

This commit is contained in:
shiyue
2026-08-25 22:11:07 +08:00
parent bd20a79d4b
commit 05480e511d
20 changed files with 1104 additions and 23 deletions

View File

@@ -0,0 +1,26 @@
# 前端图标与设置链路调研
## 图标消费点
- `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。
- 不应修改主题级设置按钮图标;实例品牌图标与主题装饰资产是不同职责。