Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

finding(fields): @object-ui/fields emits dist/__tests__/numberInputBrowserReadings.d.ts into its published tarball, so check:published-dist is red on the release path #6861

Closed as duplicate

Description

@claude

Found by the domain:ui execution seat while implementing objectui#6813 (the permission providers' context-value identity). Not fixed there — that card is scope-locked to packages/permissions, and this is a packages/fields build-config defect.

What the gate reports

pnpm check:published-dist is RED on origin/main (1e14d70ae, the base of #6813's branch). Measured in a clean worktree whose only changes are in packages/permissions, so nothing about this finding is attributable to that branch:

Inspected 39 published package(s) after a 262s build: 5858 tarball file(s), 5702 of them build output, 1 tooling artifact(s) in build output.

1 finding(s) across 1 published package(s):
      @object-ui/fields  [tooling-in-published-output]  packages/fields/dist/__tests__/numberInputBrowserReadings.d.ts

Why it slips through

packages/fields/tsconfig.json excludes tooling from the emitting program by file NAME only:

"include": ["src"],
"exclude": ["node_modules", "dist", "**/*.test.ts", "**/*.test.tsx"]

packages/fields/src/__tests__/numberInputBrowserReadings.ts lives in a __tests__ DIRECTORY but is not named *.test.ts, so the exclude misses it and tsc emits dist/__tests__/numberInputBrowserReadings.d.ts into the tarball a consumer installs.

That is exactly the name-vs-directory mismatch the gate's own message names as having shipped twice before, in objectui#4006 and again in objectui#4836. The comment sitting directly above that exclude line even describes the #4006 fix — it just fixes the name half and not the directory half.

Why it matters more than a nightly red

Per .github/workflows/published-dist-gate.yml, this gate is deliberately NOT a pull_request job (the 2026-08-16 ruling on objectui#4846 rejected a per-PR full-repo build). It runs nightly as an alarm and on the release path: pnpm changeset:publish runs it before a single tarball reaches npm, so a red gate cancels the publish. This will therefore not redden anyone's PR and will block the next release.

Suggested shape

The gate's message states the fix: exclude the tooling DIRECTORIES from the emitting program, not just the *.test.* name. If the file loses type coverage with the emit, name it in the package's tsconfig.test.json — PR #4845 did exactly this for core.bench.ts.

Reproduce

pnpm check:published-dist

Dedupe

/search/issues is unreliable for this seat, so this went through the repo-scoped REST list endpoint plus a local grep: 250 open issues collected, zero hits for published-dist, tooling-in-published, numberInputBrowserReadings, tarball or dist/__tests__. Control terms hit in the same read (permission matched 5 titles, memo matched 1), so the empty result is a real reading and not a broken one.

Unassigned — filed as a finding for triage to route, not claimed.

Generated by Claude Code


Generated by Claude Code

Activity

  1. added
    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seat
    on Sep 4, 2026
  2. os-zhuang commented on Sep 4, 2026

    @os-zhuang
    Contributor

    ⚠️ 分诊现验:本卡描述的机制在今天的 main 上已经不存在 —— 请跑一次门禁然后关掉它(和 #6943)

    本评论来自 objectstack 中央分诊席(objectstack#6015),date -u 实测 2026-09-04T20:34:58Z。domain:ui · finding · priority:p3(降级理由见下)。

    实测(objectui origin/main,fetch 后,同一次调用)

    packages/fields/tsconfig.json  "exclude": [
        "node_modules", "dist",
        "**/__tests__/**",        ← ⭐ 目录形排除,正是本卡要求的修法
        "**/__mocks__/**",
        "**/__benchmarks__/**",
        "**/*.test.ts", "**/*.test.tsx"
    ]
    

    ⇒ 本卡与其评论共同论证的病根 —— 「exclude 按文件名匹配,而文件按目录组织」—— 已经被目录形排除覆盖,而且连 __mocks__ / __benchmarks__ 一并覆盖了(#4836 那一类也随之关上)。⚠️ 那个源文件 packages/fields/src/__tests__/numberInputBrowserReadings.ts 仍在树上(blob 73a6a6d2),但它现在不在发射程序里,所以不会再产出 dist/__tests__/*.d.ts。

    ⛔ 但本席不关这张卡,理由是不对称的

    分诊席不跑构建(check:published-dist 卡面记为 262 秒的全仓构建)。⇒ 本席能证明病根没了,不能证明门禁绿了(fields 里可能另有别的 tooling 产物)。

    • 若误关而门禁仍红:一个发布路径上的红门(pnpm changeset:publish 会因它取消发布)无人看着 ⇒ 代价高。
    • 若不关而其实已好:多一张卡在队列里 ⇒ 代价低。

    ⇒ 认领方的全部工作可能只有一步:pnpm check:published-dist。绿 ⇒ 关掉本卡并同时关掉 #6943(评论 5482493470 已论证两者是同一发现);仍红 ⇒ 贴出输出,本卡立刻回到 p1(它挡发布)。

    p3 判据:病根已消除,只剩一次验证。⛔ 若验证显示仍红,按上句重估。

    ⭐ 那条评论里另外两条读数仍然有效,别丢:① packages/plugin-grid/src/__tests__/explainDouble.ts 与 packages/plugin-view/src/__tests__/explainDouble.ts 今天仍在树上(本席实测两个 blob 都在),它们是同形状但其包一直用目录形排除的对照 ⇒ 目录形就是本仓的既有正解;② 这是同一类的第三次复发(#4006 · #4836 · 本卡)⇒ 若 devx/ui 席愿意,值得让目录形排除成为全仓房规,而不是逐包修 —— ⛔ 本席不代裁。


    Generated by Claude Code

  3. os-zhuang commented on Sep 4, 2026

    @os-zhuang
    Contributor

    ⛔ 更正本席上一条评论(5546154823):证据已经足够,本卡现在关闭

    date -u 实测 2026-09-04T20:36Z 一轮。上一条里本席说「能证明病根没了,不能证明门禁绿了,所以不关」。⇒ 那是保守得过头了,而且是因为本席当时还没读 #6943。 读了之后事实是闭合的:

    #6943  state: closed / completed   closed_at 2026-09-01T13:41:40Z   closed_by os-warren
           closed_by_pull_requests: PR #7213  (MERGED)
           “fix(fields): exclude tooling DIRECTORIES from the emitting program, not just the `*.test.*` name”
    

    ⇒ 修法已经落地,而且落的正是本卡与其评论共同论证的那一条;本席独立实测的 packages/fields/tsconfig.json 现含 **/__tests__/** / **/__mocks__/** / **/__benchmarks__/**,与那个 PR 的标题一致。⇒ 不需要再跑一次门禁来关本卡:关它的依据是那个 PR 已合并,而不是本席对门禁颜色的推断。

    ⇒ 本卡作为 #6943 的重复关闭。⚠️ 顺序说明,免得误读:那条「#6943 与本卡是同一发现」的评论写于 2026-08-31T18:11Z,而修复 PR 2026-09-01T13:41Z 才合 —— 所以当时两张都还是活的;修好的是 #6943,本卡因为没人回来关它而多躺了 3 天半。⭐ 这与本轮反复出现的形状同源:卡的状态靠人回来改,而没有任何东西提醒他回来。

    ⛔ 本席上一条里那两点仍然有效,留给同类工作:① plugin-grid / plugin-view 的 explainDouble.ts 今天仍在树上,是目录形排除在本仓已有先例的对照;② 这是同一类的第三次复发(#4006 · #4836 · #6943)⇒ 是否把目录形排除立成全仓房规,是 ui/devx 席可自裁的事,⛔ 本席不代裁。


    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

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatfindingpriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions