chore(docs): sync supply-chain record with pyproject after #531/#553 [PYSDK-114]#605
Conversation
…[PYSDK-114] The auditable record in SUPPLY_CHAIN_VULNERABILITIES.md and one inline annotation in pyproject.toml lagged behind reality after Renovate #531 (nicegui 3.9.0 -> 3.11.0, citing CVE-2026-39844) and Dependabot #553 (nbconvert 7.17.0 -> 7.17.1, citing CVE-2026-39377 + CVE-2026-39378) were merged. The lower bounds in pyproject.toml were correctly raised at merge time, so no consumer was exposed; the gap was purely in the reviewer-facing record. This is a record-keeping fix only: no version constraint changes, no uv.lock regeneration, no consumer-visible behaviour change. Every existing pyproject.toml lower bound is preserved. Discovered by the pysdk-audit-daily routine on 2026-04-27 during the clean-audit no-op path (Step 1b/1d.1 bot-PR walk). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR synchronizes the project’s auditable supply-chain vulnerability record (SUPPLY_CHAIN_VULNERABILITIES.md) and inline CVE annotations in pyproject.toml with dependency lower bounds that are already enforced (post-#531 and #553), keeping the documentation consistent with published metadata.
Changes:
- Update the
nicegui[native]row inSUPPLY_CHAIN_VULNERABILITIES.mdto reflect the already-enforced>=3.11.0,<4constraint and include CVE-2026-39844 in the protected set. - Expand the
nbconvertrow inSUPPLY_CHAIN_VULNERABILITIES.mdto include CVE-2026-39377 and CVE-2026-39378 (while preserving the existing lower bound). - Refine the inline
nbconvertCVE annotation inpyproject.tomlto match the CVEs protected by the existing>=7.17.1bound.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
pyproject.toml |
Updates the nbconvert inline CVE annotation under the jupyter extra to reflect current protected CVEs. |
SUPPLY_CHAIN_VULNERABILITIES.md |
Updates enforced-lower-bound records for nicegui[native] and nbconvert to match pyproject.toml and current CVE coverage. |
|
Claude finished @helmut-hoffer-von-ankershoffen's task in 5m 7s —— View job Review Complete ✅I've completed a comprehensive review of PR #605 — a documentation synchronization for supply chain vulnerabilities. SummaryThis PR correctly synchronizes What Was Reviewed✅ 3 Documentation Updates:
✅ All Critical Checks Passed:
✅ Cross-Validation:
Verdict✅ claude:review:passed This is exemplary supply chain management — proactive (discovered by automated audit), thorough (all CVEs cross-referenced), and transparent (clear documentation of what changed and why). Zero risk: No consumer-visible changes, only documentation brought into sync with reality. 📝 Full review posted as PR comment |
|
🤖 Claude Code Review CompleteI've completed my review of this supply chain vulnerability documentation sync PR. SummaryThis PR correctly synchronizes the auditable record in Key Property: No dependency version changes — constraints in What Was Verified✅ Documentation Accuracy: All CVE references and version constraints in the doc table match Cross-Reference Validation
All inline CVE comments match the "Protects against" columns. Verdict✅ claude:review:passed This is exemplary supply chain management — proactive, thorough, and transparent. The PR description clearly explains the gap (doc lagged after bot PRs merged) and what changed (three documentation updates, zero version bumps). Review completed by Claude Code | View detailed review | View job run |
Codecov Report✅ All modified and coverable lines are covered by tests. |



🛡️ Resolves PYSDK-114. Governed by PR-SOP-01 Problem Resolution and Non-Conforming Products.
Why this PR exists
make auditonmainis green and everypyproject.tomllower bound correctly protects downstream consumers — including for the two CVE-driven bot bumps in this PR's scope. But the auditable record inSUPPLY_CHAIN_VULNERABILITIES.mdand one inline annotation inpyproject.tomllag behind reality after merges of #531 (nicegui) and #553 (nbconvert). Reviewers reading the doc would see a snapshot inconsistent with the metadata published to PyPI.This PR closes that gap. It is a pure record-keeping fix — no version constraint changes, no
uv lockregeneration, no consumer-visible behaviour change.Key property: no dependency was upgraded
Every existing lower bound in
pyproject.tomlis preserved. The diff only:Constraintcolumn inSUPPLY_CHAIN_VULNERABILITIES.mdto match what is already inpyproject.tomlProtects againstcolumns with CVE ids whose fixes the existing bound already enforces# CVE-…annotation inpyproject.tomlto name the CVEs whose fixes the bound already enforcesWhat changed
SUPPLY_CHAIN_VULNERABILITIES.md—nicegui[native]row (line 104)>=3.9.0,<4→>=3.11.0,<4(matchespyproject.tomlafter chore(deps): bump nicegui to v3.11.0 [security] + adapt to 3.10/3.11 GUI lifecycle changes #531).CVE-2026-39844 (>=3.10.0)(CVSS 5.9 Medium).; 2026-04-26 raised to >=3.11.0 (#531).SUPPLY_CHAIN_VULNERABILITIES.md—nbconvertrow (line 124)CVE-2026-39377 (>=7.17.1)andCVE-2026-39378 (>=7.17.1)(both CVSS 6.5 Medium). ExistingCVE-2025-53000 (>=7.17.0)reformatted to match the rest of the table's "since-which-version" convention.pyproject.toml—nbconvertinline annotation (line 158)Accepted advisories — unchanged
The only entry in the Active acceptances table is
CVE-2026-3219(pip archive type confusion, dev-only, no upstream fix released yet). Re-verified this run: still warranted; pip 26.0.1 is the latest, fix is in unreleased pip 26.1.Auditable record — changes to
SUPPLY_CHAIN_VULNERABILITIES.mdActive acceptances — added: none. — removed: none. — changed: none.
Enforced lower bounds — raised
nicegui[native]>=3.9.0,<4→>=3.11.0,<4— adds documented protection againstCVE-2026-39844(Medium).Enforced lower bounds — annotation only (no version change)
nbconvert>=7.17.1:Protects againstextended withCVE-2026-39377(Medium) andCVE-2026-39378(Medium); severity stays High.Test plan
make auditgreen (only the existingCVE-2026-3219ignore fires; still justified)make lintgreenmake test_unitgreenSUPPLY_CHAIN_VULNERABILITIES.mdrows matches an inline# CVE-…annotation inpyproject.tomland vice versapyproject.tomllower bound covered by an updated row equals or exceeds the doc-row constraintOut of scope
2025-12-10interleaved with2026-04-24) — pre-existing, not introduced here. A separate audit-skill enhancement is being requested.🤖 Generated with Claude Code