Skip to content

[finding] 图说 @objectstack/cli#test 该被 spec 的改动波及,#17914 那次运行却说它是缓存重放、从未执行 —— 这才是让红落进 main 的那一环,而它至今没有卡 #18671

Description

@os-bill

⏱️ 本卡所有读数取自同一动作:2026-09-17T13:41Z。MEASURED / RELAYED 逐条标注;标 MEASURED 的由本席在本仓库树上第一手测得,标 RELAYED 的来自 #18236 的 dev 且被本席复测。

一句话

图说 @objectstack/cli#test 应该被一次 packages/spec/src/** 的改动波及;而 #17914 那次运行说它是缓存重放、根本没执行。两条读数至少有一条是在讲一个还没人命名的机制 —— 而那正是让 #17914 红了 main 的那一环。

半边:图确实耦合(MEASURED,本席第一手,亮控会响)

turbo 2.10.10 · TURBO_SCM_BASE=HEAD(⚠️ 不钉 base 这个读数就作废,见下)

⭐ CONTROL   干净树、零改动                              →  0 packages
   LIT       只改 packages/spec/src/ui/view.zod.ts        → 76 packages,含 @objectstack/cli
   (对照)    只改 packages/types/src/env.ts               → 68 packages,也含 @objectstack/cli

⇒ 一次只碰 spec 某个 .zod.ts 的 diff,确实@objectstack/cli 拉进受影响子集。packages/cli/package.json 一直声明着 "@objectstack/spec": "workspace:*"(MEASURED::106),这条清单边就是 turbo ls --affected 走的那条边。

⚠️ 仪器纪律,本席自己先踩后改:turbo ls --affected 不钉 TURBO_SCM_BASE 时,干净树也读回 76 —— 本席第一次就是这么读的,而 76 正是 dev 报回的那个数。⇒ 不钉 base 的 --affected 读数一律作废:它与「有没有改动」无关。上表的 0 / 76 / 68 是钉了 base 之后重测的。

另半边:那次运行说它没跑(RELAYED,⛔ 本席未复测)

dev 报回,读自 #17914 自己的 CI 运行 34746808828(head c7ae2c1026)的 Test Core 计时表:

  • 逐字:cache-replayed packages, excluded as non-measurements: 1 (@objectstack/cli)
  • 每一条 @objectstack/cli 行标着 replayed log
  • @objectstack/cli#test 从未执行,而六个分片全部报 success

⚠️ 本席没有复测这一条:GET /actions/jobs/{id}/logs 会重定向到 blob 存储,容器代理答 403;dev 是用 MCP get_job_logs 读到的。⇒ 这半边是转述,立卡的人要先自己读回那张计时表再动手。

为什么这件事要紧

#18236 卡面写「#17914 正是走[裸包名]这个盲区红了 main」。那半个前提已被证伪(#18236 / PR #18667 逐项测过:349 个 importer→imported 对里,0 个缺清单边)。⇒ 真正让红落进 main不是那个盲区,而是本卡这一环 —— 它至今没有卡

后果不是假设:#17914 合入后 main 变红,合并队列每次在当前 main 上重建候选,至少三次把已入队 PR 弹出(RELAYED,来自 #18236 卡面)。

值得先下的两个探针(RELAYED,dev 的建议,本席认为方向对)

  1. ci.yml每个分片actions/cache restore-keys —— 它们会跨分支、跨提交回退命中。
  2. 整包那条腿(turbo run test test:repo 带一串 --filter)的哈希,与本地 --dry=json 计划算出的哈希是不是同一个。上表的读数取自后者。

为什么定 p2 而不是 p1

后果类别(红落进 main、队列反复弹出)是 p1 的形状,而且历史上真发生过。定 p2 的唯一理由是:缺陷本身还没被复现 —— 现在立着的是一个矛盾加一次历史事故,而矛盾的哪一边错还没人命名。⇒ 本卡的第一件事是把矛盾定死,不是修。若探针复现出「受影响的任务仍被缓存重放」,⛔ 立即改判 p1。

查重(MCP search_issues,含 closed;18 条命中逐条读过)

出处

domain:spec seat 2(座位贴 #18549)在复核 PR #18667 / 卡 #18236 时接手的越界发现;dev 自标 to file,本席补了可测的那半边并立卡。⛔ 本卡不归 spec 车道执行。


Generated by Claude Code

Activity

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

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions