首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >我用 WorkBuddy 造了个工作台,踩了 12 轮坑才修好一个"数据自己翻倍"的 Bug

我用 WorkBuddy 造了个工作台,踩了 12 轮坑才修好一个"数据自己翻倍"的 Bug

原创
作者头像
用户12833911
发布于 2026-10-21 16:35:17
发布于 2026-10-21 16:35:17
190
举报

一次真实的资料库 + 数据表 + 双向同步项目复盘。附完整避坑清单。

一、先说结论:这次任务烧了多少积分,为什么

用 WorkBuddy 做了个"个人办公工作台"(在线 HTML + 三张数据表 + 双向同步),用户不满意返工两轮。

翻 ~/.workbuddy/workbuddy.db 的 session_usage 表,逐次消耗是:

阶段

消耗

第一轮(照着同款页克隆)

186.31

第二轮(补功能 + 改深色)

184.06

第三轮(收尾验证)

12.37

合计

382.74

再拆开看 jsonl 里的 usage:

最扎眼的一个数字:355 次模型调用,274 次单次输入超过 20 万 token。

问题不在某一次输出太多,而在上下文只增不减。看增长曲线:

从 3.8 万一路涨到 62 万,再靠压缩回落——每一次工具调用都要把整个历史重新喂一遍。这就是积分曲线陡峭的原因。

二、最大的坑:数据自己翻了 9 倍

用户没报这个 bug,是我截图验证时眼尖发现的:线上"把 Q3 增长方案的结论页写完"重复出现 3 次,查数据库发现任务表被写到了 112 条(应该是 12 条)。

根因链条

原页面的同步逻辑是这样的:

四个问题叠在一起:

  1. 用标题当主键 —— 示例数据里有好几条同名任务,合并时互相覆盖
  2. 每个标签页都 seed 一份示例数据 —— 浏览器开了 4 个标签页,就有 4 份
  3. 示例数据没有"我是示例"的标记 —— 推送时不知道该跳过
  4. 代码里存在两套示例标记 —— 原作者用 _s,我一开始用 sample,推送判断和打标逻辑对不上

结果就是:4 个标签页 × 12 条示例数据,各自 addRecord 往云端写。

修法(核心就一句话:别用内容当主键,用记录 ID)

配套三件事:

验证方式(这个必须做)

光看代码不够,得造出触发条件:

结果:4 个并发标签页压测后,云端仍是 12/4/3,零重复。

顺带修掉一个更危险的:原来的 doPull 里有一段"云端没有就反向删云端"。多设备下这会导致 A 删了、B 把删除撤销,然后 B 又把别的记录删掉——两边互删。已改成只由用户删除动作触发远端删除。

三、其他踩过的坑

1. 锚点对不上,改用断言式构建脚本

用正则批量改一个 20 万字符的单文件 HTML,锚点空白差异就悄悄改失败、产出坏文件。改成每步都断言命中数:

锚点不匹配立刻炸,而不是产出一个坏页面让你去 debug。

2. 页面质量 lint 的 PQ001 / PQ005 是误报

  • PQ001(括号不配平):它的正则字面量剥离器把模板串里的 </b> 当成正则起始,计数就乱了。node --check + 自己写的括号平衡计数器(剥离字符串/模板串/注释/正则)验证为 0
  • PQ005(XSS 风险):它看不穿模板串内部逐个 esc() 的转义。逐个数据出口扫一遍,未转义出口为 0 才敢声明误报

误报也要写清楚理由再 ack,不能糊过去。

3. 无头浏览器不可用时,用"本地服务 + 真实浏览器 + 截图"验证

这台机器没装 playwright/puppeteer。替代方案:

再配合桌面截图看真实渲染。比纯静态代码检查可靠得多——我就是在截图里发现数据重复的。

4. 截图会拍到全屏

截图工具默认抓全屏,把微信聊天窗口也拍进去了。必须用 --region 精确截页面区域。

四、省积分的实操清单

按性价比排序:

手段

效果

难度

对话超 15 轮就开新对话

上下文从 60 万降到 15 万,省 4 倍

⭐

需求一次说清(身份+任务+格式)

少返工 2~3 轮 = 少烧 100+ 积分

⭐

纯查询用 Ask 模式 / 轻量模型

深度调研 300800,普通问答 1030

⭐

一次批量写入,别循环单条调

减少往返 + 避免限流重试

⭐⭐

优先消耗临近过期的积分

有效期 90/180 天,白花可惜

⭐

第一条最关键。上下文是复利增长的:第 50 轮的每次输入是第 1 轮的 10 倍。 手上正在做的事写完就 /clear 或开新对话,是最省积分的习惯。

五、最后

这次返工根本原因是我没先读需求就去找"同款"克隆,结果用户要的「周视图·日历排程」源页面里根本没有(只有复盘页的"本周/上周"偏移),配色也完全不对——白底,用户要深色。等于先白干一遍再重做。

先读需求逐条列清单,再决定用不用现成方案。 这一步能省掉的积分,比任何省积分技巧都多。


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、先说结论:这次任务烧了多少积分,为什么
  • 二、最大的坑:数据自己翻了 9 倍
    • 根因链条
    • 修法(核心就一句话:别用内容当主键,用记录 ID)
    • 验证方式(这个必须做)
  • 三、其他踩过的坑
    • 1. 锚点对不上,改用断言式构建脚本
    • 2. 页面质量 lint 的 PQ001 / PQ005 是误报
    • 3. 无头浏览器不可用时,用"本地服务 + 真实浏览器 + 截图"验证
    • 4. 截图会拍到全屏
  • 四、省积分的实操清单
  • 五、最后
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档