Skip to content

止血(service-analytics):recoverNumber 只还原规范数字串 —— '007' / '1.50' 这类保留原写法的字符串比较数不再被降级成数字 #5528

Description

@os-zhuang

从 #5526 拆出的止血单(其路线 C)。根因 —— values: string[] 往返编码对非字符串类型有损,路线 A(tagged 编码)/ B(内部表示改 unknown[])—— 在 #5526 等维护者拍板;本单不裁根因,只挡住已实测的真实业务形状(零填充订单号 / SKU / 邮编、带尾零的价格串)。

位置

packages/services/service-analytics/src/strategies/filter-normalizer.ts:recoverNumber 的正则 /^-?\d+(\.\d+)?$/ 及其在 coerceFilterValueForSql / coerceFilterValueForObjectQL 中的消费。

改法

仅当字符串是规范数字形(String(Number(s)) === s)才还原为数字:

验收

Blocked-by: https://github.com/objectstack-ai/objectstack/pull/5525(同文件 filter-normalizer.ts,按同文件串行规则先等它落地)

Part of #5526

Activity

  1. self-assigned this
    on Aug 5, 2026
  2. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    ContributorAuthor

    认领:PM 循环第 3 轮(services 车道)。Blocked-by 已解除:PR #5525(#5332)已 MERGED。
    会话:session_01BWS4heBoAitLmzCLhcYdbK
    分支:claude/issue-5528-recover-number-canonical
    Worktree:objectstack-issue-5528
    域:domain:services
    文件面:packages/services/service-analytics/src/strategies/filter-normalizer.ts(recoverNumber 与两个 coercer)、同包测试、.changeset/*.md

    注:同包 #5333(objectql-strategy.ts)继续按同包串行规则排下一轮,本单不碰它。根因单 #5526 在决策收件箱,本单不裁根因。


    Generated by Claude Code

  3. os-zhuang commented on Aug 5, 2026

    @os-zhuang
    ContributorAuthor

    复核:ACCEPT → PR #5547(CI 绿后转 ready 入合并队列)。

    已核项:

    排程提醒:本单落地后,同包 #5333 解锁;#5526(根因 B)按裁决评论仍需先核实 values: string[] 的 spec 归属再派。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions