- 让 Claude Code 自己看网页:截图对比、加载和卡顿测量
Claude Code 跑在远程机器上,没有浏览器。用 Node 自带的 WebSocket 走 Chrome 调试协议遥控 Mac 上的 Edge,整理成一个 skill:截图并逐像素对比、测首次加载、找长任务、统计动画掉帧。记录用法和靠它查出的问题。
11 min - 把 Codex 宠物放进新标签页:格式、动画和内存实测
给自己的新标签页扩展 Niwa 加了宠物:直接导入 Codex 生成的宠物文件夹。导入时裁掉不用的行、缩小存成 webp,动画只改 transform;用无头 Edge 实测了每个标签页多占多少内存。
9 min - 异步生成任务的幂等:轮询误判、404 重提与重复扣费
AI 视频生成是"提交—轮询"的异步任务,又按次扣费。记录四个真实问题:提交结果丢失后任务永远待确认、读状态临时失败被判失败、404 时该不该重提、删文件后同一任务被重复扣费,以及背后的状态判定规则。
13 min zh - React Flow 拖动节点时页面崩溃:两条死循环与一个没根治的 bug
画布点击、拖动节点时报 Maximum update depth exceeded。记录两条已定位的触发路径(丢失 measured、拖动中父组件回写慢一拍的 selected)和修法,以及仍未根治时如何用"近 3 秒更新来源统计"定位线上压缩堆栈。
11 min zh - 画布自动保存踩坑:从 409 卡死到按字段合并
一个线上画布编辑器的保存队列,在临时 502、打开时序、云端改写、条件删除这几种情况下都会"永久卡住"。记录四轮修复:区分可重试错误、修时序、冲突恢复从拒绝到本地优先再到按字段合并。
19 min zh - 截尾帧却拿到首帧:媒体代理为什么必须支持 Range
给画布的视频节点做"截取当前帧/首帧/尾帧",上线后发现截出来的永远是开头。根因是中间那层媒体代理丢了 Range 请求头、整段读进内存再返回 200,浏览器没法 seek。
11 min zh - 分段式时间字段:一个时间输入框改了三版
给倒计时加「手动输入时长」,从自由文本、微波炉式到分段输入,三种做法放在一起亲手试,并整理分段输入由哪些行为组成、怎么描述需求。
7 min zh