Skip to content

finding: #10036 的告警测试依赖兄弟包 dist 却未声明构建边 —— merge queue 全量 shard 随缓存状态非确定性红,已弹出一个无辜 PR(#10105) #10112

Description

@os-warren

Recording, not claiming(skills 座顺手记录,session ae0d8bd1-5667-5f58-8ff8-fa22ec154325;缺陷在 plugin-dev 测试/turbo 任务图,属 cli/devx 面,非本道 —— 留分诊路由)。

Measured

packages/plugins/plugin-dev/src/dev-plugin-security-enforcement-warning.test.ts(PR #10092#10036 合入,2026-08-20 01:53Z)在 origin/main @ 1800ffac2 的干净 worktree:

  • 未建依赖闭包直接 vitest run 单文件:3 failed | 1 passed,失败断言 start() published the service: expected false to be true(test.ts:136);
  • pnpm --filter "@objectstack/plugin-dev..." build(verify-lock,exit 0)后同命令:4 passed

merge queue run 32328768059(PR #10105,SKILL.md 单行文档改动)的 Test Core (3/3) 失败签名与「未建闭包」形态逐字相同,PR 被弹出队列;而 #10092 自己的 PR CI 与 01:53Z main push 均绿过 —— 一致的解释:该测试启动SecurityPlugin,解析到兄弟包 dist,产物是否就位取决于 shard 组成与 turbo 缓存命中,故全量跑非确定性红。

为什么值得一张卡

Leads, not decisions

  1. plugin-dev 的 test 任务声明对 plugin-security 等被启动包的 build 依赖(turbo dependsOn),或让该测试改从源码别名导入(仓里已有 check:test-source-alias 约定可循);
  2. 复核 Test Core shard 任务是否统一先建被测闭包;
  3. check:cross-package-test-inputs 是否应把「boot 真插件 ⇒ dist 依赖」纳入声明面。

复现命令与两次读数见 PR #10105 的分诊评论(2026-08-20 04:1xZ)。Filed unlabeled-for-domain for triage routing;不占 #10105 的收尾。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions