Files
cc-web/.planning/gilded-wasteland-theme/task_plan.md
2026-07-18 10:14:38 +08:00

70 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 新增暗金荒野主题计划
## 目标
在不替换现有 Warframe 主题的前提下,新增一个可独立选择、可直接对比的“暗金荒野”主题;使用用户提供的背景图和图标板,保持现有功能与响应式布局完整。
## 阶段
1. [COMPLETE] 审计现有 `gilded`/Warframe 未提交实现并建立合并边界
2. [COMPLETE] 建立主题任务规格与资产方案
3. [COMPLETE] 切分并优化暗金主题图像资产
4. [COMPLETE] 新增暗金荒野主题样式与主题注册
5. [COMPLETE] 补充主题切换和资源回归测试
6. [IN_PROGRESS] 执行静态检查与自动化回归
7. [TODO] 启动页面并进行多视口视觉验收
8. [TODO] 逐项对照参考图复核构图边框与图标
## 视觉方向
- 视觉主张:熄灭后的王庭——背景人物必须清晰完整地固定在右侧;界面是悬浮其上的薄黑铁框架,不是把背景压黑后铺满金边卡片。
- 内容计划:以现有应用工作台为主体,依次统一侧栏导航、聊天消息、工具执行块、输入区和设置/弹层,不新增无业务意义的装饰区块。
- 交互主张:只保留主题短淡入、旧金线条扫光和按钮 1px 位移;取消余烬粒子与消息逐条入场等抢眼装饰。
## 视觉返工准则(用户验收失败后追加)
- 当前版本被用户明确判定为“不像参考图”,不得以自动化通过代替视觉完成。
- 边框使用 1px、低饱和暗铜和 6–8px 小切角;只在主按钮、输入框、工具执行块保留框架感,普通消息与列表不再全部 `clip-path`。
- 面板以近黑半透明层级为主,取消大面积金色渐变、粗边、重投影和卡片化堆叠。
- 图标继续来自用户图标板,但小控件改用 PNG alpha 作为 CSS mask,统一旧金材质和 18/22/28px 三档尺寸,避免当前 64px 彩色切图直接缩到 22px 的糊、脏、比例失衡。
- 背景人物必须保持原图清晰度,不加 blur;左侧遮罩和消息面板只保证文字可读,不得覆盖右侧人物主体。
- 主文字保持用户指定的 `#fff`。
## 决策与约束
- 原 Warframe 保留内部 ID `gilded`,移除其 `hidden` 限制和 `gilded -> washi` 启动迁移,使它重新成为可选主题。
- 新主题使用独立内部 ID `wasteland`,显示名“暗金荒野”;不得复用或覆盖 `gilded`。
- 主题选择器必须同时展示 `gilded`(Warframe Wasteland)和 `wasteland`(暗金荒野),默认主题仍保持 `washi`。
- 图标从用户提供的图标板切分为本地主题资产,不依赖运行时 CSS 裁剪。
- 优先新增隔离文件;修改已有脏文件前先核对差异,避免覆盖用户改动。
- 不新增前端框架或重量级依赖。
## 资产清单
- 完整界面参考:`sessions/_attachments/f01c1388-b603-434a-b226-2ff5771d4925.webp`
- 新主题背景源图:`sessions/_attachments/094d7907-875d-41f4-9985-992c87c9b9cc.webp`
- 图标板源图:`sessions/_attachments/43bd9ed6-2ba6-4c9d-bd9d-25b068cb4711.webp`
- 新建对话欢迎页参考:`sessions/_attachments/33cd7ba3-208a-4d7f-9c53-672fcc22f127.webp`
- 新建对话欢迎卡素材板:`sessions/_attachments/2b88b81d-c5a8-4d92-a518-afeea691eade.webp`
- 目标背景:`public/assets/themes/wasteland/background.webp`
- 目标图标目录:`public/assets/themes/wasteland/icons/`,输出透明 PNG,优先切分 32px 档的 16 个常用图标。
- 欢迎卡资产:`public/assets/themes/wasteland/frames/welcome-card.png` 与 `public/assets/themes/wasteland/textures/welcome-card-surface.webp`。
- 常用图标范围:新会话、搜索、下拉、主题、AI、在线状态、附件、发送、停止、设置、用户、终端、复制、刷新、聊天、关闭/确认。
## 脏改动合并边界
- 实施前分别审计 `public/app.js`、`public/index.html`、`public/style.css`、`scripts/regression.js` 和 `public/assets/themes/` 的未提交差异。
- 记录本任务开始前相关文件的差异与资产清单;只追加 `wasteland` 注册、样式和断言,并对恢复 `gilded` 可见性做最小精确修改。
- 不重排或格式化现有大文件,不修改与主题无关的区块。
## 错误记录
| 错误 | 尝试 | 处理 |
|---|---:|---|
| `rg` 把以 `--target` 开头的模式误解析为命令参数 | 1 | 后续检索使用 `rg -- '<pattern>'`,不重复原命令 |
| 全量回归在专项通过后命中旧 `gilded hidden` 断言 | 1 | 判定为外部运行会话回写 `scripts/regression.js`;等待共享写入稳定后重新合并当前契约 |
| 跨会话协调消息返回 `target_running` | 1 | 不重复即时发送;先等待目标会话完成当前处理,再查询状态或采用本地最终合并 |
| 外部会话第三次回写 `gilded hidden`、启动迁移和旧 cache bust | 3 | 已满足重复冲突阈值;停止反复覆盖,等待用户停止 `定制暗金荒野主题` 会话后再做最终合并与全量回归 |
| 用户视觉验收明确失败:边框、图标、整体质感不像参考图 | 1 | 回滚“实现完成”判断;建立本地可截图 mock,逐项按参考图重做并新增最终对照步骤 |
| Headless Firefox 无法输出本地视觉 mock 截图 | 2 | 默认 profile 超时;独立 profile 又因 SWGL framebuffer 映射失败,环境无 Xvfb;停止重复尝试,不安装依赖,改用参考图几何审计 + 用户实时页面反馈 |