## 背景 - PR #535(dependabot:`sse-starlette` 3.4.11 → 3.5.0)的 `Validate Default Toolchain` 检查在 `pip-audit` 步骤失败。 - 根因与 `sse-starlette` 升级本身无关,而是新发布的 advisory 命中了既有的锁定版本,`main` 同样受影响。 ## 问题 运行期依赖审计(`uv export --no-dev` + `pip-audit`): | 包 | 当前版本 | 漏洞 ID | 修复版本 | | --- | --- | --- | --- | | urllib3 | 2.7.0 | PYSEC-2026-4175 / 4176 / 4177 | 2.8.0 | `urllib3` 经 `requests <- google-api-core <- a2a-sdk` 进入运行期依赖,属于运行期风险面。 开发依赖审计(`scripts/dependency_health.sh`,每月定时任务,近期持续失败): | 包 | 当前版本 | 漏洞 ID | 修复版本 | | --- | --- | --- | --- | | urllib3 | 2.7.0 | CVE-2026-97687 / 97688 / 97689 | 2.8.0 | | virtualenv | 21.7.4 | PYSEC-2026-4011 / 4012 / 4013 / 4014 | 21.7.11 ~ 21.7.13 | ## 方案 1. 在 `pyproject.toml` 的运行期依赖中新增安全下限 `urllib3>=2.8.0`,沿用既有 `click` / `pyasn1` 的写法,使下限同时写入 wheel 元数据。 2. `uv lock` 将 `urllib3` 升至 2.8.0。 3. `uv lock --upgrade-package virtualenv` 将开发工具链 `virtualenv` 升至 21.14.3(高于全部修复版本)。 ## 验收 - `uv run pip-audit --requirement <runtime requirements>` → `No known vulnerabilities found` - `uv run pip-audit --requirement <dev requirements>` → `No known vulnerabilities found` - `./scripts/doctor.sh` → 通过 ## 关联 - 在 PR #535 的分支上继续改动,使该 PR 的 CI 恢复通过。
Activity
fix(deps): clear runtime and dev dependency audits
liujuanjuan1984 commentedon Oct 2, 2026
进展:已在 PR #535 分支
dependabot/uv/uv-all-updates-a7757bd5ea追加提交63b9c94。验证结果:
./scripts/doctor.sh→ 通过./scripts/dependency_health.sh→No known vulnerabilities foundValidate Default Toolchain)。合并 PR #535 后本 issue 会自动关闭(PR 描述已含
Closes #536)。test(deps): cover urllib3 floor in dependency contract and docs
liujuanjuan1984 commentedon Oct 2, 2026
补充:审查中发现本分支新增的
urllib3安全下限未同步到仓库的“安全下限”契约,已通过提交2f706e3收敛:tests/package/test_dependency_contract.py增加 urllib3 用例(2.7.0 → 2.8.0)docs/compatibility.md、docs/guide.md同步列出urllib3>=2.8.0当前 PR #535 的 5 项 CI 检查全部通过。
revert(deps): keep dependency floors in dependency files only
liujuanjuan1984 commentedon Oct 2, 2026
更正:上一则评论中提到的
2f706e3已由cb5fab2撤销。按“依赖版本信息只由依赖文件承载”的原则,urllib3下限仅保留在pyproject.toml与uv.lock,docs/*与tests/*恢复为与main一致。PR #535 最终改动仅
pyproject.toml、uv.lock两个文件。refactor(deps): drop duplicated dependency versions from docs and tests
liujuanjuan1984 commentedon Oct 2, 2026
进一步清理:仓库此前在
docs/compatibility.md、docs/guide.md、tests/package/test_dependency_contract.py中已存在同类冗余(重复书写click/pyasn1安全下限、protobuf/sqlalchemy版本区间/字面量)。已由提交e068f45一并清理,改为指向pyproject.toml,仅保留sqlalchemy[asyncio]extra 的打包契约检查。依赖版本唯一来源现为
pyproject.toml+uv.lock。docs(deps): drop remaining SQLAlchemy version literal from guide
docs: drop dependency-management details from compatibility and guide
liujuanjuan1984 commentedon Oct 2, 2026
进一步清理(提交
949379d):此前只去掉了版本数字,但文档里仍在描述依赖管理策略,本身仍属越界冗余。现已从docs/compatibility.md、docs/guide.md移除:uv.lock作为 lint 版本来源的说明pinned a2a-sdk release表述sqlalchemy[asyncio]包元数据声明说明保留兼容性承诺(Python / A2A 协议 / OpenCode / SDK 线)与适配层评审结论。依赖信息现仅存在于
pyproject.toml、uv.lock与 CI 配置。