chore(deps): bump h2 from 4.3.0 to 4.4.1 in /envs/coding_tools_env - #1071
chore(deps): bump h2 from 4.3.0 to 4.4.1 in /envs/coding_tools_env#1071dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [h2](https://github.com/python-hyper/h2) from 4.3.0 to 4.4.1. - [Changelog](https://github.com/python-hyper/h2/blob/master/CHANGELOG.rst) - [Commits](python-hyper/h2@v4.3.0...v4.4.1) --- updated-dependencies: - dependency-name: h2 dependency-version: 4.4.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
There was a problem hiding this comment.
Alignment Review Report
Automated two-tier review of this Dependabot lockfile bump. Net: the intended change (h2 4.3.0 → 4.4.1) is a legitimate security fix, but the PR carries two unintended, repo-wide side effects and conflicts with this repo's explicit Dependabot policy. No code, principle, or RFC violations were found. Flagging for human decision (Tier 2).
Automated Checks
- Lint (
.claude/hooks/lint.sh): PASS relative to this PR. The PR changes onlyenvs/coding_tools_env/uv.lock(zero.pyfiles), so it introduces no new lint issues. The hook does surface pre-existing formatting debt in unrelatedenvs/**files (e.g.opencode_env,pi_env,repl_env) and, as a side effect, reformats Python snippets embedded in ~31README.mdfiles — all pre-existing and out of scope here. - Debug code (
.claude/hooks/check-debug.sh): CLEAN relative to this PR. Findings are pre-existingconsole.print(...)/TODOentries undersrc/openenv/**; none are in this PR's changed file.
Open RFCs Context
In Review: 000 (Design Principles), 001 (Abstractions), 002 (Env Spec), 003 (MCP Support), 005 (Agentic Harnesses). Draft: 010 (ECHO token world model). None of these govern dependency management, package registries, or lockfiles — no RFC conflicts.
Tier 1: Fixes Required
- None. No source code changed and nothing is mechanically broken. The
h24.3.0 → 4.4.1 bump (and transitivehpack4.1.0 → 4.2.0) is valid and resolves CVE-2026-71554 (HTTP/2 request smuggling via duplicateHostheaders; fixed in h2 4.4.1).
Tier 2: Alignment Discussion
Repository policy / supply-chain
ALIGNMENT FLAG: Dependabot updated an envs/** lockfile that policy says should be excluded
- Principle/RFC at stake: Repo Dependabot policy —
.github/dependabot.ymlusesexclude-paths: ["envs/**"], introduced by #566 "chore: stop dependabot in envs" and reaffirmed by #644 "Match Dependabot root-only config." - The concern: This PR (
dependabot/uv/envs/coding_tools_env/h2-4.4.1) updatesenvs/coding_tools_env/uv.lock— exactly the path the config intends to exclude (in place since 2026-04-18, ~4 months before this PR). It appearsexclude-pathsis not actually honored for theuvecosystem, so env update PRs keep getting generated against the stated intent. Decision needed: fix the Dependabot config soenvs/**is genuinely excluded, or intentionally re-enable env updates. - Suggested reviewer: @burtenshaw (last authored
.github/dependabot.yml)
ALIGNMENT FLAG: Bump silently flips the whole lockfile from the internal HF index to public PyPI and bumps the lock revision
- Principle/RFC at stake: Supply-chain integrity / reproducibility (PRINCIPLES.md — "Container isolation for reproducibility and security").
- The concern: Beyond
h2/hpack, this regenerated lock rewritessource = { registry = ... }for all 135 packages fromhttps://pypi.registries.huggingface.tech/→https://pypi.org/simple, and bumpsrevision = 2→revision = 3(uv lock-format / toolchain drift). This reverts the state deliberately set in #882 ("migrate envs to plain openenv"), which pinned this env to the internal HF index at revision 2. Package hashes/URLs (files.pythonhosted.org) are unchanged, so it is not a content swap — but which index this env pins to (and which uv regenerates its lock) is a deliberate maintainer decision, not a side effect of a one-package bump. The repo is genuinely split today (16 lockfiles on the HF index, 22 on public PyPI), so the team may want to standardize one way or the other. - The fix: Re-generate the lock with the intended index + pinned uv so the diff is limited to
h2(+hpack) — e.g. run the bump in an environment configured forpypi.registries.huggingface.techat lockrevision = 2. Dependabot's runner lacks that index, which is why it fell back to public PyPI. - Suggested reviewer: @sergiopaniego (authored #882, which set the HF index for this env)
Principle Conflicts
None identified (no code, API, or reward/isolation changes).
RFC Conflicts
None identified.
Summary
- 0 mechanical issues to fix (Tier 1) — underlying
h2bump is a valid CVE-2026-71554 security fix. - 2 alignment points for human review (Tier 2): (1) PR contradicts the "no Dependabot in envs" policy; (2) unintended repo-wide index flip + lock-revision bump that reverts #882.
- 0 RFC conflicts.
Recommendation: Don't merge as-is. Either re-land the h2 security bump with the lockfile regenerated against the intended internal index (keeping the diff to h2/hpack and revision = 2), or make a deliberate, repo-wide decision to standardize on public PyPI — and separately fix .github/dependabot.yml so envs/** is actually excluded.
Sent by Cursor Automation: Pre-review
| @@ -1,5 +1,5 @@ | |||
| version = 1 | |||
| revision = 2 | |||
| revision = 3 | |||
There was a problem hiding this comment.
Lock-format bump revision = 2 → 3. Dependabot regenerated this file with a newer uv than the repo used for this env (#882 pinned revision = 2). Combined with the index change below, the resulting diff is far wider than the intended single-package h2 bump.
| name = "aiofile" | ||
| version = "3.9.0" | ||
| source = { registry = "https://pypi.registries.huggingface.tech/" } | ||
| source = { registry = "https://pypi.org/simple" } |
There was a problem hiding this comment.
Head of a repo-wide change: all 135 packages in this lockfile flip source from https://pypi.registries.huggingface.tech/ → https://pypi.org/simple. Dependabot's runner can't reach the internal HF index, so it fell back to public PyPI — reverting the deliberate choice in #882. Whether this env should pin the internal index or public PyPI is a maintainer decision; regenerating against the intended index would keep this PR's diff limited to h2/hpack.
| name = "h2" | ||
| version = "4.3.0" | ||
| source = { registry = "https://pypi.registries.huggingface.tech/" } | ||
| version = "4.4.1" |
There was a problem hiding this comment.
The intended change — and it's worthwhile: h2 4.4.1 fixes CVE-2026-71554 (HTTP/2 request smuggling via duplicate Host headers, affecting ≤ 4.4.0). No concern with the h2/hpack bump itself; the concerns are the unrelated index + lock-revision churn it dragged in (see the summary review).
|
Consolidated into the env Dependabot aggregate PR #1015. |
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |


Bumps h2 from 4.3.0 to 4.4.1.
Changelog
Sourced from h2's changelog.
Commits
bc239afv4.4.192b925eadd test for duplicate host headers292a408reject duplicate Host headers in request headers04d3b87update changelog439b970prepare for next release cycle9a7ff74performance: remove consumed frames in place from data buffer (#1321)6cce763v4.4.0dfafda3Bump pytest from 8.4.2 to 9.0.3 (#1320)b45207cdependencies and packaging++c40145fparsecontent-lengthheaders according to RFC9110 grammar for numbers (1*DI...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.
Note
Low Risk
Lockfile-only dependency refresh with no repo code changes; main behavioral delta is transitive HTTP/2 client validation via e2b, which is unlikely to affect the coding tools env unless E2B traffic relied on previously tolerated invalid headers.
Overview
Updates
envs/coding_tools_env/uv.lockso dependency resolution uses PyPI (pypi.org/simple) instead of the Hugging Face registry, bumps lock revision to 3, and refreshes transitive pins—notablyh24.3.0 → 4.4.1 andhpack4.1.0 → 4.2.0 (pulled in viae2bHTTP/2). No application orpyproject.tomlchanges.The
h2upgrade brings stricter HTTP/2 header handling (duplicateHost/content-length, CONNECT validation, dataclass-based events in 4.4.0) plus a small buffer performance fix in 4.4.1.coding_tools_envdoes not importh2directly; impact is limited to E2B client traffic over HTTP/2.Reviewed by Cursor Bugbot for commit 8a2bce8. Bugbot is set up for automated code reviews on this repo. Configure here.