chore(deps): bump agent-governance-sdk to 5.0.0 in the three CLI packages, with audit - #3721
chore(deps): bump agent-governance-sdk to 5.0.0 in the three CLI packages, with audit#3721Imran Siddique (imran-siddique) wants to merge 8 commits into
Conversation
Bumps [@microsoft/agent-governance-sdk](https://github.com/microsoft/agent-governance-toolkit/tree/HEAD/agent-governance-typescript) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/microsoft/agent-governance-toolkit/releases) - [Changelog](https://github.com/microsoft/agent-governance-toolkit/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/agent-governance-toolkit/commits/v5.0.0/agent-governance-typescript) --- updated-dependencies: - dependency-name: "@microsoft/agent-governance-sdk" dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@microsoft/agent-governance-sdk](https://github.com/microsoft/agent-governance-toolkit/tree/HEAD/agent-governance-typescript) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/microsoft/agent-governance-toolkit/releases) - [Changelog](https://github.com/microsoft/agent-governance-toolkit/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/agent-governance-toolkit/commits/v5.0.0/agent-governance-typescript) --- updated-dependencies: - dependency-name: "@microsoft/agent-governance-sdk" dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@microsoft/agent-governance-sdk](https://github.com/microsoft/agent-governance-toolkit/tree/HEAD/agent-governance-typescript) from 4.0.0 to 5.0.0. - [Release notes](https://github.com/microsoft/agent-governance-toolkit/releases) - [Changelog](https://github.com/microsoft/agent-governance-toolkit/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/agent-governance-toolkit/commits/v5.0.0/agent-governance-typescript) --- updated-dependencies: - dependency-name: "@microsoft/agent-governance-sdk" dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
The vendored-patch-audit gate greps the PR's own diff for the audit doc, and exempts dependabot only for non-major updates, so a semver-major bump opened by dependabot can never satisfy it on its own branch. Carries the three dependabot commits unchanged and adds the audit alongside them. Records that the bump does not clear these packages of a js-yaml advisory: it moves off two HIGH advisories in 4.1.1 onto one in 5.2.1, which is first patched in 5.2.2. Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
PR Review Summary
Verdict: AI review comments are untrusted advisory output. The summary reports workflow-generated completion status only, not model-authored pass/fail claims. |
📦 Dependency diff (SBOM)Comparing main → chore/sdk-5-cli-packages. Summary: ➕ 0 added · ➖ 0 removed · 🔄 3 bumped 🔄 Bumped
|
| Package | From | To |
|---|---|---|
| %40microsoft/agent-governance-antigravity-cli | 4.0.0 | 5.0.0 |
| %40microsoft/agent-governance-claude-code | 4.0.0 | 5.0.0 |
| %40microsoft/agent-governance-copilot-cli | 4.0.0 | 5.0.0 |
|
🔴 Contributor Check: HIGH
Automated check by AGT Contributor Check. |
The audit doc above failed spell-check on fragments of GHSA identifiers (xmqj, mxrg, fgmg). Advisory IDs are random strings, so adding each one to the dictionary would grow it by three entries per advisory cited and would recur on every future security audit doc. Matching the identifier shape instead fixes the class. Also adds omap, the YAML ordered-map tag, which is a real term rather than a random one. Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
#3623 moved the SDK source to js-yaml 5.2.3 earlier today, so the recommendation to repin was already stale when written. The residual exposure is in the published 5.0.0 artifact, which pins 5.2.1 and is immutable, so it closes on the next SDK publish rather than by any change to these lockfiles. Signed-off-by: Imran Siddique <imran.siddique@opaque.co>
Prayag (prayagupa)
left a comment
There was a problem hiding this comment.
Correctly consolidates the three semver-major SDK bumps (#3686/#3681/#3683) byte-identical plus the required audit doc; all checks green. Note the carried-forward js-yaml advisory (GHSA-pm4m-ph32-ghv5, patched in 5.2.2) — durable fix is repinning js-yaml in the SDK. LGTM.
|
MohammadHaroonAbuomar liamcrumm — gentle nudge when you have a moment. This is the SDK 5.0.0 dependency update across the CLI packages, including the audit notes. |
|
Prayag (@prayagupa) your approval from 08-12 was dismissed automatically when I merged main in on 08-19 to clear the stale-branch block. The PR's own diff is unchanged: same 9 files, +139/-34, and the merge only picked up main's additions to |
There was a problem hiding this comment.
Thanks — the diagnosis of why #3686, #3683 and #3681 can't satisfy the audit gate on their own branches is correct and worth landing.
One blocker: the doc reads the SDK's declared js-yaml, but the resolved version is 4.2.0 at base and head — so both 4.x HIGH advisories remain and GHSA-pm4m-ph32-ghv5 doesn't apply.
Separately, build-npm for agent-governance-antigravity-cli skipped (no pkg-agent-governance-antigravity-cli paths-filter), so it got no build validation here.
| - `GHSA-52cp-r559-cp3m`, YAML merge-key chains forcing quadratic CPU | ||
| consumption, affecting `>= 4.0.0, < 4.3.0`, first patched in `4.3.0`. | ||
|
|
||
| Incoming, `js-yaml` `5.2.1` is in range for one HIGH advisory: |
There was a problem hiding this comment.
blocker: Resolved js-yaml is 4.2.0 at base and head — the root overrides overrules the SDK's 5.2.1. So GHSA-pm4m-ph32-ghv5 doesn't apply, and both 4.x HIGH advisories still do. Could you re-derive this from the resolved tree? It's two HIGH to two, not two to one.
| manifests, `@noble/ciphers` `2.2.0`, `@noble/curves` `2.2.0`, | ||
| `@noble/ed25519` `3.1.0`, `@noble/hashes` `2.2.0`, `engines.node >=18.0.0` | ||
| and the MIT license are all identical between `4.0.0` and `5.0.0`. | ||
| - The lockfiles also drop a second, separate `js-yaml` `4.2.0` entry that the |
There was a problem hiding this comment.
major: Base already resolved a single js-yaml (4.2.0), so nothing is de-duplicated. What the diff actually removes is the lockfile root overrides block. Could you reword this to match?
| }, | ||
| "overrides": { | ||
| "js-yaml": "4.2.0" | ||
| } |
There was a problem hiding this comment.
major: The lockfile root drops overrides while package.json keeps overrides: {"js-yaml": "4.2.0"}. I checked — this is Dependabot's own output, byte-identical to #3683, so please don't regenerate. The durable fix is dropping the override from the three package.json files, as your doc argues.
…ides The audit read the SDK's declared js-yaml and concluded the bump exchanged two HIGH advisories for one. It does not. All three packages declare overrides.js-yaml 4.2.0 in package.json, so every lockfile resolves node_modules/js-yaml to 4.2.0 both before and after the SDK bump. npm ci followed by npm ls js-yaml reports "js-yaml@4.2.0 overridden", and npm audit against this tree reports GHSA-5p4m-2wfm-xmqj and GHSA-52cp-r559-cp3m, the two 4.x HIGH advisories the document claimed were being left behind. GHSA-pm4m-ph32-ghv5 cannot apply, because 5.2.1 is never installed. Also restores the root "overrides" block in the three lockfiles. package.json declares it and main's lockfiles record it; the regenerated lockfiles here dropped it while keeping the 4.2.0 resolution, so the lock no longer recorded the reason for its own pin. npm ci succeeds either way, which is why nothing caught it. Names the conflict with #3843, #3844 and #3875, which move the override to 4.3.1 in the same files and do clear both advisories. Reported by @prayagupa in review. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BiraRPG9NcLDZsNSmSXxE7
|
Prayag (@prayagupa) you are right, and I have pushed the correction rather than argued it. Thank you for not just re-approving when I asked you to. Your blocker, verifiedI reproduced it rather than reasoning about it.
So the installed parser is Worse, the same document argued that "overriding A second defect, which I found looking for yoursThe regenerated lockfiles here dropped the root The The sequencing you should know aboutJeff Stock (@jstock03)'s #3843, #3844 and #3875 move the override What changed in this push
On your second point
|
Consolidates #3686, #3683 and #3681, and adds the dependency audit that unblocks them.
Why they cannot land on their own
scripts/ci/vendored-patch-audit.shexempts Dependabot only for non-major updates:These three run with
DEPENDABOT_UPDATE_TYPE: version-update:semver-major, so the exemption does not apply and the gate requires an audit doc. It looks for that doc in the PR's own diff:Dependabot does not write audit docs, so a semver-major Dependabot PR can never satisfy this gate on its own branch, and a separate doc PR would not satisfy it either. All three have been red on
Dependency Audit Trailsince 2026-08-11 for that reason, not because anything is wrong with them.What this PR contains
The three Dependabot commits cherry-picked unchanged, plus one audit doc. Verified with
git diffagainst each original head:package.jsonandpackage-lock.jsonin all three packages are byte-identical to what Dependabot produced. TheirSigned-off-by: dependabot[bot]trailers are preserved, so authorship and DCO are intact.bash scripts/ci/vendored-patch-audit.sh origin/mainpasses on this branch.The finding worth reading
The audit is not a rubber stamp. This bump does not clear these packages of a
js-yamladvisory.js-yaml4.1.1is in range for two HIGH advisories:GHSA-5p4m-2wfm-xmqj(patched4.3.1) andGHSA-52cp-r559-cp3m(patched4.3.0).js-yaml5.2.1, the SDK's own pin, is in range forGHSA-pm4m-ph32-ghv5, HIGH,>= 5.0.0, <= 5.2.1, first patched in5.2.2. Current release is5.2.3.Two HIGH to one HIGH is the right direction and is not the same as clean. The durable fix is repinning
js-yamlin the SDK rather than overriding it in three CLI lockfiles, so I have not attempted it here. Happy to open that separately if you want it.Otherwise the risk is low. The SDK major is the monorepo-wide v5 version alignment from the
[5.0.0]CHANGELOG entry, not an API break; the published4.0.0and5.0.0manifests agree on every@noble/*pin, onengines.node >=18.0.0and on the license. Each of the three CLI packages already ships at5.0.0while pinning the4.0.0SDK, so this is the first time their published version and their SDK agree.Suggested handling
Close #3686, #3683 and #3681 in favour of this, or tell me you would rather have three separate PRs each carrying its own copy of the doc and I will redo it that way.