HANDOFF/ 项目进度
🎯 Goal · 目标
把网站的 Liquid Glass 视觉做到 Apple iOS 26 实机水平的 10/10,包含:
1. ✅ 物理级 Blinn-Phong specular(v3+)
2. ✅ Schlick Fresnel + 边缘色散(v3+)
3. ✅ 流动液面 caustic(domain warping)(v5)
4. ✅ Press / Hover 弹性形变(gel edge)(v5)
5. ✅ 相邻元素 metaball 流体融合(GlassEffectContainer 等价)(v6)
6. ✅ Bridge 应力线高光(v7)
7. ✅ **Procedural Environment Cubemap(v8)** — sky/horizon/floor 三段,反射真实环境
8. ✅ **双层折射(v8)** — 前表面强折射 + 后表面反向弱折射 + 中间空气层
9. ✅ **Adaptive Tint(v8)** — 玻璃自动取环境色调(无需 html2canvas)
10. ✅ **三频段 caustic(v8)** — 低频涌动 + 中频波纹 + 高频光斑
11. ✅ **Anisotropic specular(v8)** — 高光主光方向拉伸(丝绸感)
12. ✅ **Cursor proximity morph(v8.1)** — 鼠标走过哪里玻璃跟着流动
13
📍 Current Progress · 当前进度
### 已实现的 30+ 个特性
**L0 — CSS only(全浏览器)**
- `@property --glass-lx/--glass-ly` 注册百分比变量 → GPU 平滑插值
- 三层 `radial-gradient` 高光(主光斑+漫反射晕+底部反射)
- `::before` 棱镜色散环(暖色左上+冷色右下)+ 顶部 1.5px 暖白冷渐变光线
- `backdrop-filter: blur+saturate+brightness` 三参数模糊
- spring `cubic-bezier(0.34, 1.56, 0.64, 1)` 弹性过渡
- 暗色模式完整变体
- `glass-static` SSR 兼容版(无 backdrop-filter)
**L1 — SVG(Chrome 渐进增强)**
- 逐像素 SDF 圆角矩形位移贴图(Canvas2D 预生成 PNG)
- RGB 三通道编码(R/G 位移 + B 色散,1.18× 放大)
- `smootherStep` 五次 Hermite 插值
- 凸透镜中心微位移(中心 8% 强度)
- 3 个不同尺寸的 `feDisplacementMap`(btn/card/tag)
**L2 — WebGL 物理级渲染(顶层增强)**
- 三光源 Blinn-Phong(主光跟鼠标 + 静态填充光
✅ What Worked · 有效方法
1. **`reasoning_effort: 'low'`** — MiMo 推理时间从 60+ 秒降到 11 秒(interpret)/ 36 秒(heming)
2. **env `.trim()` 双重防御** — Vercel Dashboard 配置环境变量时尾部 `\n` 让 `=== 'mimo'` 严格比较失败,trim 后稳如老狗
3. **Pointer 事件委托** — 全局 `pointerdown/up/over/out` 监听 + `target.closest(SEL)`,比给每个元素挂监听快得多
4. **iztro `nominalAge`** — 大限错位的根因是用了年差而非虚岁,改用 iztro 内部口径立刻一致
5. **brightnessRaw 字段并行保留** — 不破坏现有 `bright/normal/dim` 算法逻辑,新增 `庙/旺/得/利/平/不/陷` 7 档纯展示字段
6. **SDF smin 替代 SVG metaball** — 不需要 SVG filter,不模糊文字,无 HTML 改动,自动生效
7. **scan() 保留 press 状态** — MutationObserver 重扫元素列表时不重置 press(用 oldStates Map)
---
⚠️ What Didn't Work · 无效方法
1. ❌ **DeepSeek fallback** — 已欠费,”Insufficient Balance“。.env.example 一直只列 DeepSeek 让 Vercel 部署时漏配 MiMo 是这次最大坑。
2. ❌ **`u_res` shader uniform** — 在 GLSL 里声明了但没用到 → 编译器优化掉 → `getUniformLocation` 返回 null。**教训**:未引用 uniform 必删
3. ❌ **`border-radius: 9999px`(pill 圆角)× DPR 2 = 19998 GL 像素** — `rrSDF()` 完全炸掉,元素完全不渲染。**修复**:clamp `Math.min(t.radius * d, Math.min(gw, gh) / 2)`
4. ❌ **Reinhard tonemap (`c = c/(c+0.7)*0.7`)** — 把所有亮度都压平,subtle 效果消失。改回 hard clamp `min(c, vec3(0.45))`
5. ❌ **AI_PROVIDER=mimo + 换行** — Vercel CLI `vercel env add` 用 stdin 喂值时如果有 newline 会被存进去。**修复**:用 `printf "mimo"`(无 newlin
➡️ Next Steps · 下一步
### 必做 — Adaptive Tint(环境色采样)
**性价比最高的下一个动作**。Apple iOS 26 玻璃会根据下方背景的色温微调染色(冷背景偏蓝、暖背景偏黄)。
**实现方案 A(推荐)**:
- 在 `LiquidGlassProvider.tsx` 加 `IntersectionObserver` 监听每个 `.liquid-card` 元素
- 元素进入视口时,用 `html2canvas`(或更轻量的 `dom-to-image-more`)截元素正下方区域
- 离屏 1×1 canvas 取平均色(`getImageData`)
- 写入 CSS 变量 `el.style.setProperty('--glass-tint', 'oklch(...)')`
- `globals.css` 的 `::after` 第一层 radial-gradient 起始色用 `color-mix(in oklch, white 70%, var(--glass-tint))`
**实现方案 B(更精确,但工程量大)**:
- 给 WebGL shader 加 `uniform sampler2D u_backdrop`
- 每秒 1-2 次把页面 `<body>` rasterize 到 framebuffer texture
- shader 读取该 text
工具调用/ Top 8
Bash
6334
Edit
2760
Read
2282
Claude_in_Chrome__browser_batch
2093
Claude_in_Chrome__javascript_tool
571
Claude_in_Chrome__computer
439
Claude_Preview__preview_eval
359
Write
321
Session 时间流/ 最近 50
- (未生成标题)2026/6/28 17:09:582 msgs0 tools#2c344cda
- (未生成标题)2026/6/26 01:45:112 msgs0 tools#d30cabb8
- 网站端到端测试及问题排查报告2026/6/26 00:53:2113879 msgs2985 tools191.3h 时长AGENT#4cc0dc78Bash · 1232Edit · 604Read · 559Claude_in_Chrome__browser_batch · 328Claude_Preview__preview_eval · 210
- 紫微站每日健康巡检2026/6/25 01:45:2918 msgs7 tools#15ffbc13Bash · 7
- Daily health check for Ziwei Doushu production site2026/6/24 01:45:5117 msgs6 tools#eca03190Bash · 6
- 修复紫微斗数网站冒烟测试框架2026/6/23 22:57:14472 msgs136 tools57.3h 时长#b086d582Bash · 68Read · 34Edit · 31Write · 3
- 紫微站每日健康巡检2026/6/23 01:46:0924 msgs9 tools#40d01ef9Bash · 8ToolSearch · 1
- (未生成标题)2026/6/22 13:56:482455 msgs527 tools226.1h 时长#483d4561Bash · 295Workflow · 77Edit · 68Read · 61Write · 18
- Check software copyright requirements for mobile app2026/6/22 05:43:561040 msgs199 tools265.8h 时长#487a7aa6Bash · 114Read · 38WebSearch · 16Edit · 11Write · 10
- 紫微斗数生产站周运营简报2026/6/22 02:09:5548 msgs19 tools0.1h 时长#1c75bea0Bash · 13WebSearch · 2Read · 2ccd_session__mark_chapter · 1ToolSearch · 1
- 紫微站每日健康巡检2026/6/22 01:46:3818 msgs7 tools#515e8c83Bash · 6ToolSearch · 1
- 每日更新动态出图任务自动执行2026/6/21 14:46:0996 msgs28 tools0.1h 时长#cc51ae46Bash · 17Read · 3Claude_in_Chrome__javascript_tool · 3ToolSearch · 2Edit · 2
- 修复移动端AI输入栏高度观测失效2026/6/21 04:50:44238 msgs63 tools0.3h 时长#e8dcfbb8Claude_Preview__preview_eval · 26Bash · 19Read · 10Edit · 3Claude_Preview__preview_console_logs · 3
- 紫微站点每日健康巡检2026/6/21 01:45:5317 msgs6 tools#2d22c5d6Bash · 6
- Generate daily update report image for Ziweiapp2026/6/20 14:39:0712 msgs4 tools#a6fcf93dRead · 2ToolSearch · 1ccd_session_mgmt__search_session_transcripts · 1
- Generate daily update report image2026/6/20 13:57:4684 msgs27 tools23.3h 时长#e8cc253aBash · 16ToolSearch · 3Read · 3Claude_in_Chrome__javascript_tool · 3ccd_session_mgmt__search_session_transcripts · 1
- 紫微站每日健康巡检2026/6/20 01:46:0219 msgs7 tools#2a522413Bash · 7
- 修复紫微站AI对话配置面板的网络超时问题2026/6/19 05:57:39389 msgs104 tools2.7h 时长#2db5e9ceBash · 56Read · 24Edit · 18Write · 3AskUserQuestion · 2
- Daily health check for Ziwei Doushu production site2026/6/19 01:46:2724 msgs9 tools#e60d61ccBash · 9
- 每日更新动态出图自动化2026/6/18 22:51:1218 msgs6 tools8.2h 时长#cd951932ccd_session_mgmt__search_session_transcripts · 3Bash · 2ToolSearch · 1
- 重新安装codex软件2026/6/18 15:51:0491 msgs22 tools0.3h 时长#3bac3a0eBash · 21AskUserQuestion · 1
- (未生成标题)2026/6/18 11:58:5511763 msgs2645 tools132.5h 时长AGENT#1367efc1Bash · 975Edit · 647Read · 440Claude_in_Chrome__browser_batch · 352Claude_in_Chrome__computer · 120
- 增加紫微斗数后台手机加次数功能2026/6/18 09:31:22184 msgs49 tools1.5h 时长AGENT#aca0e428Bash · 30Read · 10Edit · 6Write · 1Agent · 1
- 网站端到端测试及问题排查报告2026/6/18 09:16:091610 msgs351 tools7.7h 时长AGENT#dfe4f538Bash · 112Claude_in_Chrome__browser_batch · 91Read · 58Edit · 46TaskUpdate · 25
- Daily health check for Ziwei production site2026/6/18 01:47:2625 msgs9 tools#7e17275dBash · 6WebFetch · 2ToolSearch · 1
- 处理问题并在后台回复用户2026/6/18 00:53:20135 msgs31 tools5.3h 时长AGENT#c60f0771Bash · 28Agent · 2ccd_session__mark_chapter · 1
- 调整后台菜单顺序2026/6/17 23:20:30136 msgs31 tools3.7h 时长#ad4f0caaBash · 24Edit · 3Read · 2AskUserQuestion · 1Write · 1
- 修复紫微斗数订阅支付按钮无反应2026/6/17 23:10:56518 msgs125 tools3.9h 时长#b6f3a2f3Bash · 49Claude_in_Chrome__computer · 18Edit · 18Claude_in_Chrome__javascript_tool · 17Read · 12
- 每日更新动态出图自动化任务2026/6/17 19:12:4526 msgs9 tools4.6h 时长#6d9de18cccd_session_mgmt__search_session_transcripts · 5Bash · 3ToolSearch · 1
- (未生成标题)2026/6/17 09:46:511582 msgs328 tools101.9h 时长#d6815e98Bash · 146Edit · 85Read · 64Write · 15WebSearch · 12
- (未生成标题)2026/6/17 06:55:171377 msgs302 tools96.8h 时长#6ba9bce2Claude_in_Chrome__browser_batch · 122Bash · 63Edit · 41Read · 37Claude_in_Chrome__computer · 31
- Generate daily update report image for Ziwei website2026/6/17 02:02:5014 msgs4 tools11.4h 时长#e2346be5Bash · 2ToolSearch · 1ccd_session_mgmt__search_session_transcripts · 1
- Daily health check for ziwei divination website2026/6/17 01:45:5918 msgs6 tools#4c46ef8dBash · 6
- Generate daily update report image2026/6/16 09:52:3313 msgs4 tools19.2h 时长#8cc0943fBash · 2ToolSearch · 1ccd_session_mgmt__search_session_transcripts · 1
- Resubmit Tencent Cloud domain name template2026/6/16 02:00:573 msgs0 tools#441d3b01
- Daily health check for Ziwei production site2026/6/16 01:46:4221 msgs8 tools#3b54d4f8Bash · 8
- (未生成标题)2026/6/15 07:48:485704 msgs1287 tools56.3h 时长#79c09d71Bash · 514Edit · 303Read · 231Claude_in_Chrome__browser_batch · 158Claude_in_Chrome__javascript_tool · 41
- Find ancient Greek mythology words for product names2026/6/15 06:28:2029 msgs7 tools0.2h 时长#9d4c21acBash · 3visualize__show_widget · 2visualize__read_me · 1Read · 1
- Implement four AI mahjong game streaming2026/6/15 02:57:12135 msgs29 tools0.3h 时长#6aeef111Bash · 7Claude_Preview__preview_eval · 6Write · 5Edit · 4WebSearch · 4
- Generate Ziwei weekly operations report2026/6/15 02:14:4847 msgs19 tools0.1h 时长#af664f72Bash · 12WebSearch · 2Read · 2ccd_session__mark_chapter · 1ToolSearch · 1
- Daily health check for Ziwei divination site2026/6/15 01:47:0936 msgs13 tools#f83f1172Bash · 13
- Generate daily update report image2026/6/14 14:50:0191 msgs28 tools0.2h 时长#9f005fd2Bash · 11Edit · 6Read · 4Claude_in_Chrome__javascript_tool · 3ToolSearch · 2
- (未生成标题)2026/6/14 05:40:35109 msgs30 tools1h 时长#848fee7cBash · 16Read · 7Write · 3Edit · 3AskUserQuestion · 1
- Diagnose and fix Claude desktop app memory leak2026/6/14 05:00:05259 msgs55 tools1.2h 时长#dea2079aBash · 29Edit · 10Read · 6AskUserQuestion · 4Write · 3
- Diagnose and fix Claude desktop app crashes2026/6/14 02:26:5816 msgs4 tools#8251bc2cBash · 3ccd_session__mark_chapter · 1
- Generate daily update report image for Ziwei website2026/6/14 01:54:1114 msgs4 tools11.3h 时长#55d13796Bash · 1Read · 1ToolSearch · 1ccd_session_mgmt__search_session_transcripts · 1
- Find large files on disk to free up storage2026/6/14 01:54:111 msgs0 tools#6996c9d5
- Daily health check for Ziwei production website2026/6/14 01:47:4829 msgs9 tools0.1h 时长#0fd8120cBash · 6WebFetch · 2ToolSearch · 1
- Daily health check for Ziwei divination site2026/6/13 01:47:2326 msgs10 tools#909cef10Bash · 9ToolSearch · 1
- (未生成标题)2026/6/12 23:27:264056 msgs981 tools33.4h 时长AGENT#ef9f5da7Bash · 476Claude_in_Chrome__browser_batch · 187Read · 116Edit · 90Claude_in_Chrome__javascript_tool · 57
