Skip to content

目标对的指标还没读到数时写「还没读到数」,换指标时说清进度改从哪条算,reported 指标名去首尾空白 (#39) - #126

Merged
joesmart merged 2 commits into
mainfrom
joesmart/fix-goal-no-reading
Oct 25, 2026
Merged

joesmart merged 2 commits into
mainfrom
joesmart/fix-goal-no-reading

Conversation

@joesmart

@joesmart joesmart commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Refs #39

改了什么

  1. 还没读到数:目标对的指标没有任何样本时,首页「在进行」那一行、项目页头部和指标列表、群页任务卡都写「还没读到数」,不画进度条。原来 Web 用 metric?.current ?? 0 把「没有数」画成了 0 / 5000。shared 里的 TaskMetric 改成判别联合 { kind: "unread" } | { kind: "read", current, weekDelta, sampledAt },TopicTask.metric、MetricReading.metric、TodayRunningItem.metric 都用它;Web 的 GoalProgress 也分 unread / read,unread 的分支里拿不到 current。读数器读失败但有旧值时,照 项目指标改成读数器注册表,一个项目挂多个指标,新增 X 粉丝数 (#39) #122 显示旧值和读到的时间,这部分没动。
  2. 换「对哪个数」的提示:群页目标表单里选的指标和当前不一样时,表单下面多一行「进度改从「<新指标名>」的读数算,之前记的数留在原来那条」,保存后消失。390 宽下整行折到按钮下面,不撑宽页面。
  3. reported 指标名 trim:MetricSource 的 reported label 改成 z.string().trim().min(1).max(40),存的时候去掉首尾空白,全是空白在契约层回 400;landReported 比较前两边都 trim,早先存下的带空格的名字照样对得上,不加迁移。
  4. 验收 U9:设了目标、还没读到数时,任务卡和项目页写「还没读到数」;挂上 GitHub 星数之后,用户在群页表单里把「对哪个数」改成它,看到提示再保存,取样之前三处都写「还没读到数」,取到 500 之后再往下走原来的同格不重取、下一格 520。
  5. 运行器的任务卡文本:没有样本写「进度:还没有数据」。两份 README 照新形状改了。

合并时升协议号到 5。复核实测用旧版 shared 的 schema parse 新版 prompt 会失败,旧代理过得了协议 4 的 hello 闸门却静默丢掉多 Bot 群的 prompt,所以 AGENT_PROTOCOL 和 MIN_AGENT_PROTOCOL 一起改成 5(单独一个提交),协议 4 的代理握手时直接拿到 4003 要升级。

新用例,在 main 上都是红的

  • shared Bot 报的数名字带首尾空格照样对得上;挂指标时名字去掉首尾空格,空名字不收
    AssertionError: 存进去的名字去过空格
    -   "label": "粉丝",
    +   "label": " 粉丝 ",
    
  • control-plane 挂指标时名字去掉首尾空格,Bot 报「 粉丝 」落到「粉丝」;名字全是空格 400
    AssertionError: 名字全是空格不收: expected 200 to be 400
    
  • web vitest 没有样本就是还没读到数,不拿 0 当当前值
    -   "kind": "unread",
    +   "current": 0,
    
  • Playwright 目标对的指标还没读到数:首页、项目页、群页任务卡都写「还没读到数」,不画 0 的进度条
    Error: 首页在进行那一行
    Expected substring: "还没读到数"
    Received string:    "项目Globex X3 × 200 订单0 / 5000 粉丝"
    
  • Playwright 换「对哪个数」时表单下面说清进度改从哪条读数算,存好就不再提示
    Expected: "进度改从「X 粉丝数」的读数算,之前记的数留在原来那条"
    Error: element(s) not found
    

怎么验证的

pnpm format:check && pnpm typecheck && pnpm lint        # 全过,lint 退出码 0,告警都是原有的
pnpm --filter @baize/shared test                        # 284 passed
pnpm --filter @baize/bot-runner test                    # 1710 passed, 15 skipped
.lane/pg-serial.sh pnpm --filter @baize/control-plane test   # 128 个文件通过、1 个跳过;1618 passed, 1 skipped
.lane/pg-serial.sh pnpm --filter @baize/e2e test        # 27 个文件;55 passed
pnpm --filter @baize/web test                           # vitest 366 passed;Playwright 538 passed,2 条失败(见下)
.lane/pg-serial.sh pnpm --filter @baize/e2e acceptance  # acceptance: U1 到 U15、预算和设置五页 passed

Web 整套跑时红了两条:27-p2-team-web.spec.ts:699 名单补拉连着失败三趟就停… 和 28-p2-goal.spec.ts:363 复盘里一长串字不撑破成果栏…(Response has been disposed)。这两条没碰这次改的界面,各单跑 3 遍,6 次全过。28-p2-goal.spec.ts 整个文件单跑也全绿。

另外起了 mock,用 Playwright 在桌面和 390 宽各手点一遍:首页写「5000 粉丝 · 还没读到数」,项目页写「还没读到数 · 目标 5000 粉丝」,任务卡写「目标 5000 粉丝 · 还没读到数」,三处都没有 progress;提示文本正确,存好后消失;两种宽度下横向溢出都是 0px。截图不进仓库。

🤖 Generated with Claude Code

https://claude.ai/code/session_01XGuLYFbGRuBpdTFaXHrP9P

joesmart and others added 2 commits October 25, 2026 20:30
上一个提交把 TopicTask.metric、MetricReading.metric 改成判别联合,prompt 带的任务卡形状变了。
用升级前的 shared schema 去 parse 新版 prompt 会失败,旧代理过得了协议 4 的 hello 闸门,
之后却静默丢掉多 Bot 群的 prompt,run 一直挂着。照交付补强架构「改报文语义的单元,协议号和下限一起加一」,
AGENT_PROTOCOL 和 MIN_AGENT_PROTOCOL 都改成 5,协议 4 的代理握手时直接用 4003 关,桌面端弹升级。
测试里的 hello 改报 5,低于下限的用例加上 4;控制面 README、开发文档、开发计划、部署文档里的数一起改。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Be3SZps2JjqvyrJ1vbLmni
@joesmart
joesmart force-pushed the joesmart/fix-goal-no-reading branch from 93dde02 to fc1bbf8 Compare October 25, 2026 12:42
@joesmart
joesmart merged commit 93dfc73 into main Oct 25, 2026
1 check failed
@joesmart
joesmart deleted the joesmart/fix-goal-no-reading branch October 25, 2026 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant