chore: rebuild release package
This commit is contained in:
42
.planning/warframe-theme-art-direction/findings.md
Normal file
42
.planning/warframe-theme-art-direction/findings.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Warframe 主题美术重构发现
|
||||
|
||||
## 用户纠正
|
||||
|
||||
- “参考”不等于只提取颜色,也不等于把原图替换掉。
|
||||
- 用户要的是完整主题:图片必须真实显示并参与空间构图,界面组件也必须继承画作的视觉语言。
|
||||
- 简单把几张图并排放置同样不合格;需要连续构图、明确主次和组件级主题表达。
|
||||
|
||||
## 四张图的可用构图信息
|
||||
|
||||
- 原始荒野图:暖灰、焦土橙、黑色角色剪影,主体居中且披风向左展开;适合作为最大主画面,
|
||||
保留人物完整轮廓,允许轻微裁切上下边框但不能切断头部和武器。
|
||||
- 红色群像:太阳位于中上部,四个角色集中在中下部,左右有蓝色闪电和青色能量;适合做
|
||||
横向战场切片,裁切范围以 18%–82% 高度为主,保留太阳和中央角色。
|
||||
- 冷蓝近景:单角色几乎填满纵向画幅,肩部橙红能量点是天然焦点;适合做窄幅前景切片,
|
||||
`object-position` 稍偏上,不能裁掉头肩轮廓。
|
||||
- The Sacrifice:暗青黑背景、群像围绕纵向金色中轴,底部自带标题;适合做深景基底和
|
||||
暗金骨架来源,完整展示时保留底部标题,窄切片时只取金色中轴和上半群像。
|
||||
|
||||
## 设计方向
|
||||
|
||||
- 欢迎态建立一个连续的 `welcome-visual` 舞台,四张图用不规则网格、遮罩和层级共同组成
|
||||
视觉锚点,不使用四张独立卡片的相册布局。
|
||||
- 文案放在独立黑曜石表面,利用暗金竖向骨架与冷青能量短线连接视觉舞台,不直接压在
|
||||
高细节画面上。
|
||||
- 组件语言采用细边骨架、切角、双层边缘和克制能量光;正文气泡保持实色,避免重回费眼。
|
||||
- 使用本地资源避免 Displate 热链失效;图片下载前的临时副本已在 `/tmp` 验证可读。
|
||||
|
||||
## 首轮真实浏览器复核
|
||||
|
||||
- 当前环境实际存在 Snap 内的 Firefox 二进制;绕过 `/usr/bin/firefox` 的 Snap 包装层后,
|
||||
可以对本地临时预览页执行 1440×900、1024×768、390×844 的真实截图,不再只做静态推算。
|
||||
- 首次集成暴露出确定性 DOM/CSS 契约错误:HTML 使用孤立 `--wasteland` 等类,CSS 使用
|
||||
`.warframe-shard--wasteland`,导致图层没有尺寸和位置;已修正为完整 BEM 类名。
|
||||
- 1440×900 最终构图显示四张图、侧栏、文本板和输入区,已经形成暗金骨架、冷青能量与
|
||||
赤红战场的连续视觉场,不再是单图或纯换色。
|
||||
- 原 980px 断点在 1024px 扣除 280px 侧栏和消息 padding 后会导致两列最小宽度溢出;
|
||||
已将堆叠断点提前到 1060px。
|
||||
- 1024/390 首帧截图处于 `warframeShardReveal` 的 opacity=0 阶段,说明首屏约 0.6 秒会先显示
|
||||
黑色骨架再显示图片;需要用禁用动画的临时预览再次检查最终响应式状态,并评估是否缩短首屏延迟。
|
||||
- 本地服务对 PNG 返回 `image/png`,但三张新增 JPEG 初次返回 `application/octet-stream`;
|
||||
浏览器截图证明仍能解码,但为避免严格客户端/代理不稳定,静态 MIME 映射需补 `.jpg/.jpeg`。
|
||||
33
.planning/warframe-theme-art-direction/progress.md
Normal file
33
.planning/warframe-theme-art-direction/progress.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Warframe 主题美术重构进展
|
||||
|
||||
## 2026-07-17
|
||||
|
||||
- 已接收用户纠正:问题不只是图片没显示,而是当前实现没有形成完整主题语言。
|
||||
- 已重新读取 `frontend-skill`、`planning-with-files`、`todo-list-csv`。
|
||||
- 已查看原始荒野图和三张用户提供画作,记录各自焦点、可裁切范围和构图职责。
|
||||
- 已建立四图连续视觉场、Orokin 组件语言和高对比阅读层的返工计划。
|
||||
- codebase-memory MCP 仍因 `Transport closed` 不可用,已按项目规则降级为本地精确检索。
|
||||
- ImageMagick 未安装,不将其作为实现前置条件;继续使用已查看原图和 `file` 元数据判断裁切。
|
||||
- 计划审查第 1 轮指出素材来源/目标路径与四图回归契约不够可执行;已补齐四张素材的
|
||||
精确路径、URL 标识、尺寸、SHA-256、构图职责,以及专项/完整回归必须覆盖的新断言。
|
||||
- 计划审查第 2 轮通过;四张素材路径、尺寸和 SHA-256 均由审查者独立核对无误,进入
|
||||
本地静态资源保存阶段。
|
||||
- 三张参考画作已按素材契约保存为本地静态资源,四图 hash、尺寸和格式再次核验通过;
|
||||
原始荒野图保持字节不变。动态与静态欢迎态均已加入四个真实 `<img>` 图层。
|
||||
- 四图 CSS 与组件级 Orokin 主题层已完成;主线程复核修正了修饰类不匹配导致图片无尺寸的
|
||||
故障,并把响应式堆叠断点从 980px 提前到 1060px。
|
||||
- 已通过 Firefox 获取 1440×900 真实截图;四图与完整界面均显示。1024/390 截图命中进场
|
||||
动画首帧,正在禁用动画复核最终响应式构图。
|
||||
- 禁用动画后的 1024×768 与 390×844 Firefox 最终态截图确认:四张图均清晰可见,原图
|
||||
保持最大主画面,三张参考图分别承担深景、冷青前景和赤红战场切片,整体不是卡片墙。
|
||||
- 导航、标题栏、会话项、主次按钮、输入框、消息气泡和菜单已统一为切角暗金骨架、冷青
|
||||
能量短线与不透明黑曜石表面;1440 截图确认组件与主视觉属于同一套主题语言。
|
||||
- 响应式已在 1060px 提前堆叠,1024 与 390 最终态均无横向溢出;figure 自带暗色骨架
|
||||
fallback。首屏图片动画改为始终保持 opacity=1,只做位移/缩放,避免任何“图片没显示”瞬间。
|
||||
- 新四图专项回归首次运行拦截主按钮暗金端点 6.85:1 的对比度回退,已提亮到 7.81:1。
|
||||
- 回归契约已从旧单图规则替换为四图本地资产 hash/尺寸、动态静态四图 DOM、连续构图、
|
||||
正文无图、组件主题、1060/560 响应式和首帧可见性断言;缓存版本更新为 Warframe Orokin。
|
||||
- 更新后的 `gilded-theme` 专项回归通过,进入全量回归和实际 HTTP 资源验证。
|
||||
- 全量回归首次命中既有 Codex App steer mock 时序失败,正在检查遗留进程并执行有上限复跑。
|
||||
- 全量回归有上限复跑通过;HTTP 检查发现 JPEG Content-Type 为 octet-stream,已补静态服务
|
||||
`.jpg/.jpeg → image/jpeg` 映射和主题专项断言,等待按会话运行状态决定是否重启生效。
|
||||
86
.planning/warframe-theme-art-direction/task_plan.md
Normal file
86
.planning/warframe-theme-art-direction/task_plan.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Warframe 主题美术重构计划
|
||||
|
||||
## 目标
|
||||
|
||||
把 gilded 从“暗色换色皮肤”重构为完整 Warframe 主题:保留原始荒野画作作为主视觉,
|
||||
将用户提供的三张画作作为真实可见的次级画面,通过切片、遮罩、景深和界面骨架融合成
|
||||
一套连续构图;导航、按钮、输入框、选中态和动效统一采用 Orokin/星际战甲视觉语言,
|
||||
同时保持正文阅读表面的高对比度。
|
||||
|
||||
## 视觉策略
|
||||
|
||||
- **视觉论点:** 黑曜石舰舱中展开的 Orokin 档案界面,暗金骨架承载冷青能量与赤红战场,
|
||||
四张画面组成一个连续视觉场,而不是四张并排海报。
|
||||
- **内容规划:** 欢迎态负责完整主题表达;导航负责定位;聊天区负责阅读;输入区负责行动。
|
||||
- **交互论点:** 主视觉分层进场;画面切片在 hover/focus 时产生克制景深;按钮和会话选中态
|
||||
使用切角、能量线和短距离位移;减少动态模式下全部取消。
|
||||
|
||||
## 执行步骤
|
||||
|
||||
1. [complete] 建立四图主题构图与素材契约
|
||||
2. [complete] 保存并校验三张参考画作资源
|
||||
3. [complete] 重构欢迎态为连续多图主视觉
|
||||
4. [complete] 统一导航输入按钮的 Warframe 组件语言
|
||||
5. [complete] 完成桌面移动响应式和加载降级
|
||||
6. [complete] 更新回归契约与缓存版本
|
||||
7. [in_progress] 运行专项全量回归并检查实际资源加载
|
||||
|
||||
## 完成标准
|
||||
|
||||
- 原始 1000×1500 画作继续作为主视觉;三张用户提供的 Displate 画作保存为本地静态资源,
|
||||
不依赖远程热链,四张图在欢迎态真实可见并有明确主次。
|
||||
- 不是相册、卡片墙或简单并排:桌面端通过不规则切片、层叠深度和统一骨架线组成一个连续
|
||||
视觉场;移动端重排成主画面加叙事切片,不能横向溢出。
|
||||
- 导航、标题栏、会话项、按钮、输入框、菜单与焦点态共享切角、暗金骨架、冷青能量高光;
|
||||
不能只改颜色,也不能用图案牺牲文字可读性。
|
||||
- 普通聊天正文仍使用不透明表面;主/次/弱文字最低对比度保持 7:1 / 5.5:1 / 4.5:1。
|
||||
- 所有图片由真实 `<img>` 或稳定本地资源加载;单图失败时保留结构和可读界面,不出现空白块。
|
||||
- `scripts/regression.js` 必须移除旧的“原图只引用 2 次 / 只有 `.welcome-art`”单图契约,
|
||||
改为断言四个本地资源存在且 hash/尺寸固定、动态与静态欢迎态均含四个 `<img>`、连续构图
|
||||
容器和四种图层类存在、UI 不含远程热链、聊天正文不使用图片背景、移动端有明确重排。
|
||||
- `npm run regression -- --target gilded-theme`、`npm run regression`、`git diff --check` 和
|
||||
四张图片的本地 HTTP 200 / 正确 Content-Type 检查全部通过。
|
||||
|
||||
## 素材契约
|
||||
|
||||
1. 主图:`public/assets/themes/gilded-wasteland.png` → 保持原路径;1000×1500 PNG;
|
||||
SHA-256 `11bf3ffed4422c08f6be217c63060ba68d63367e747a3604fc2d7b877e9c5955`;
|
||||
用途为最大荒野主画面,不能被替换。
|
||||
2. 赤红群像:用户 URL `ce5c50d5-7712-494e-9605-0cf6fa28118a.jpg?speedsize=w_480`,
|
||||
当前 `/tmp/warframe-candidate-1.jpg` → 目标
|
||||
`public/assets/themes/warframe-ember-squad.jpg`;480×673 JPEG;SHA-256
|
||||
`a9c89c5ec1f94445fbdce6b24d7a0a54e492d003cfbee395601fbaba405c6d65`;
|
||||
用途为带太阳与中央角色的横向战场切片。
|
||||
3. 冷蓝近景:用户 URL `fc78630c-3914-4140-b64a-8e181f41c62f.jpg?speedsize=w_480`,
|
||||
当前 `/tmp/warframe-candidate-2.jpg` → 目标
|
||||
`public/assets/themes/warframe-orokin-figure.jpg`;480×672 JPEG;SHA-256
|
||||
`80c2dec24353ddc38629ae25568802cf3201d9da67b4b948047201952e5fc95b`;
|
||||
用途为保留头肩轮廓的冷青窄幅前景。
|
||||
4. The Sacrifice:用户 URL `ddd18c99-c3ba-466b-bcbe-690276d29aea.jpg?speedsize=w_480`,
|
||||
当前 `/tmp/warframe-candidate-3.jpg` → 目标
|
||||
`public/assets/themes/warframe-sacrifice.jpg`;480×672 JPEG;SHA-256
|
||||
`792ab3eb2bd0b491f24676c2c42273a2b5167b4450aeb7edd579338f0b777b76`;
|
||||
用途为暗青深景、纵向金色中轴和底部标题层。
|
||||
|
||||
## 约束
|
||||
|
||||
- 保留现有无关未提交改动,尤其子代理卡片逻辑、Trellis 任务和发布包。
|
||||
- 不重启 cc-web;静态文件由当前服务直接提供。
|
||||
- 不伪造浏览器截图;若仍没有可用浏览器运行时,明确记录视觉验证边界。
|
||||
|
||||
## 错误记录
|
||||
|
||||
- 首次在 `/tmp` 全目录检索候选图时命中 systemd 私有目录权限错误;候选文件仍成功定位,
|
||||
后续只读取四个精确路径,不再扫描受限目录。
|
||||
- codebase-memory MCP 的 `list_projects` 与 `index_status` 均返回 `Transport closed`;按项目
|
||||
约定降级为 `rg`/`sed` 精确定位,并保留最终行号交叉验证。
|
||||
- 当前环境没有 ImageMagick 的 `identify`/`convert`;图片尺寸改用 `file` 和已有 JPG/PNG
|
||||
元数据核验,色彩与裁切根据已查看的原始像素图判断,不重复调用缺失命令。
|
||||
- `/usr/bin/firefox` 的 Snap 包装层因 mount namespace 限制超时;改用
|
||||
`/snap/firefox/current/usr/lib/firefox/firefox` 直接运行后截图成功,不重复调用包装层。
|
||||
- 首次修正四图 BEM 类名的组合补丁因 `app.js` 实际为多行模板而未匹配;读取精确上下文后
|
||||
改用逐行小补丁成功,未产生部分修改。
|
||||
- 四图专项回归首次命中按钮金色渐变暗端对比度仅 6.85:1;将暗端由 `#b9995c` 提亮为
|
||||
`#c2a566`(7.81:1),保留渐变层次而不降低 7:1 验收标准。
|
||||
- 首次全量回归在既有 Codex App steer mock 时序处返回 `no active turn to steer`,主题专项
|
||||
断言此前已通过;先检查遗留 mock 进程,再以 60 秒上限复跑,不把该非主题错误算作通过。
|
||||
Reference in New Issue
Block a user