fix(deps): OSV 公告波收口 —— js-yaml 3.15.1/4.3.1 + mermaid 11.16.1 定向锁文件 bump (#6088) - #6091
Merged
Merged
Conversation
…V advisory wave (#6088) Targeted lockfile-only re-resolution clearing all 7 advisories that turned `Validate Package Dependencies` red on every PR whose diff touches a dependency file: GHSA-5p4m-2wfm-xmqj (7.5 High) js-yaml 3.15.0 -> 3.15.1 GHSA-5p4m-2wfm-xmqj (7.5 High) js-yaml 4.3.0 -> 4.3.1 GHSA-2v8p-3f2j-5mp7 (5.3) mermaid 11.16.0 -> 11.16.1 GHSA-3rrr-jr9j-h3q3 (6.5) mermaid 11.16.0 -> 11.16.1 GHSA-6x64-9x62-f2gx (5.3) mermaid 11.16.0 -> 11.16.1 GHSA-c4c3-pg64-4m4v (2.4) mermaid 11.16.0 -> 11.16.1 GHSA-rhh3-jpg6-66xh (5.3) mermaid 11.16.0 -> 11.16.1 All three fixed versions are patch releases inside the ranges their parents already declare (read-yaml-file js-yaml@^3.6.1, @changesets/parse js-yaml@^4.1.1, apps/docs mermaid@^11.16.0) and carry byte-identical dependency sets, so no manifest, override or changeset is needed. js-yaml@5.2.2 (packages/metadata, not flagged) is deliberately untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wbxm29qPKnLf44AbSxizqW
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
qq9340100
marked this pull request as ready for review
August 7, 2026 01:06
This was referenced Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6088
背景
新一波上游 OSV 公告(js-yaml + mermaid)把
Validate Package Dependencies判红。该 workflow 是路径触发的,只对 diff 碰到**/package.json/pnpm-lock.yaml/pnpm-workspace.yaml等依赖文件的 PR 生效 —— 所以症状表现为「偶发地只咬部分 PR」。这不是任何 PR 引入的,是共享门禁被上游公告波打红,需要一次锁文件收口。前提复核(立单前提仍然成立)
派发时与动手前分别复核了
origin/main:pnpm-lock.yaml仍解析出js-yaml@3.15.0、js-yaml@4.3.0、mermaid@11.16.0(6 处条目,packages:与snapshots:各 3 处);9c90ea0b7(sms 功能,非 OSV 修复),期间main已推进到1eb13a0d2,但锁文件零变化,无在飞依赖 bump 撞车。改动
纯锁文件定向重解析,12 增 12 删,不动任何
package.json:为什么没有 overrides、没有 package.json 改动
三个修复版本都是 patch 级,且都落在各自父包已声明的 range 之内,所以普通解析位移就能到达,不需要
pnpm.overrides永久钉版(overrides 是「将来必须有人记得摘掉」的债,能不加就不加):read-yaml-file@1.1.0声明js-yaml: ^3.6.1→ 3.15.1 在范围内@changesets/parse@0.4.3声明js-yaml: ^4.1.1→ 4.3.1 在范围内apps/docs声明mermaid: ^11.16.0→ 11.16.1 在范围内三对版本的 dependencies 集合逐字节一致(已用 registry 元数据比对),所以 diff 只有版本号与 integrity 两类行。
归因(
pnpm why)两条 js-yaml 都只经由根 devDependency
@changesets/cli进入(纯发布工具链,不随任何产物出货);mermaid 的唯一消费者是apps/docs,而apps/docs是private: true的站点应用。没有任何已发布包的依赖图发生变化。刻意不动的部分
js-yaml@5.2.2(packages/metadata的直接依赖)未被公告命中,原样保留。中途试过pnpm update --recursive js-yaml@3.15.1,它会把packages/metadata/package.json的^5.2.2改写成^3.15.1(降级已发布 manifest),并顺带扫动 postcss / seroval / ws / nanoid 等无关依赖 —— 已全部回滚,改用定向编辑。osv-scanner.toml豁免(7 条全部有修复版本,豁免只留给无修复的公告)。.github/workflows/validate-deps.yml(devx 车道)。验证
1. osv-scanner 实跑(与 CI 同版本 v2.3.8),红 → 绿
api.osv.dev在本会话出口策略下被 403 拦截,故改用 scanner 自带的离线库模式(--offline-vulnerabilities --download-offline-databases),扫的是同一份 OSV 数据。改动前(
origin/main的锁文件)—— 精确复现立单表格的 7 条:改动后(本 PR 的锁文件):
两次扫描的包总数都是 1387,这正是「零附带位移」的量化证据。
2.
Validate Package Dependencies其余步骤本地全绿其中
Lockfile is up to date, resolution step is skipped是关键一行:pnpm 认定手工定向编辑后的锁文件与所有 manifest 完全自洽。3. 消费者侧验证
运行时冒烟(三条改动版本逐个实际加载):
符号链接实测:
read-yaml-file现指向js-yaml@3.15.1,@changesets/parse现指向js-yaml@4.3.1,旧版本目录零活引用。Changeset
本 PR 不带 changeset。 判断依据:改动面只有
pnpm-lock.yaml,零package.json变更;两条 js-yaml 只经根 devDependency 进入工具链,mermaid 的唯一消费者apps/docs是private: true。因此没有任何已发布包的版本或依赖声明发生变化,changeset status也确认NO packages to be bumped。按仓库惯例,这类纯锁文件安全 bump 走skip-changeset路线 —— 标签留给 PM 在验收时按车道统一施加(本次派发明确要求 dev 不自行施加标签)。Generated by Claude Code