Skip to content

chore(deps): bump h2 from 4.3.0 to 4.4.1 in /envs/coding_tools_env - #1071

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/envs/coding_tools_env/h2-4.4.1
Closed

chore(deps): bump h2 from 4.3.0 to 4.4.1 in /envs/coding_tools_env#1071
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/envs/coding_tools_env/h2-4.4.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 7, 2026

Copy link
Copy Markdown
Contributor

Bumps h2 from 4.3.0 to 4.4.1.

Changelog

Sourced from h2's changelog.

4.4.1 (2026-08-03)

Bugfixes

  • Performance improvement: remove consumed frames in-place from data buffer.
  • Reject duplicate Host headers in request headers. Thanks to Sunand Mohan for the report.

4.4.0 (2026-07-23)

API Changes (Backward Incompatible)

  • Support for Python 3.9 has been removed.
  • Support for PyPy 3.9 has been removed.
  • Stream.end_stream() now raises NoSuchStreamError or StreamClosedError exceptions, instead of a generic KeyError.
  • Duplicate content-length headers with different values now raise ProtocolError. Previously, the first content-length header was accepted and later conflicting values were ignored. Thanks to Harshal Parekh for the report.
  • Parse content-length headers according to RFC9110 grammar for numbers (1*DIGIT). Thanks to Arkadiusz Marta for the report.
  • backfill from v4.3.0 Convert emitted events into Python dataclass, which introduces new constructors with required arguments. Instantiating these events without arguments, as previously commonly used API pattern, will no longer work.

API Changes (Backward Compatible)

  • Support for Python 3.14 has been added.
  • H2Connection.receive_data now accepts any byte-like object that implements the buffer protocol, such as bytes, bytearray, and memoryview. Existing bytes callers are unaffected.
  • Align CONNECT pseudo-header validation with RFC 9113 s8.3 and RFC 8441 s4. Ordinary CONNECT now requires :method=CONNECT and :authority, and forbids :scheme/:path. Extended CONNECT (e.g., WebSocket) requires :scheme, :path, :authority plus :protocol. (PR #1309)
  • Fix incorrect substring matching of secure header in cookie and :method.

Bugfixes

  • Fix to allow sending 0 bytes on a stream even if the flow control window is negative.
  • Reject non-zero SETTINGS_ENABLE_PUSH values received from servers.
Commits
  • bc239af v4.4.1
  • 92b925e add test for duplicate host headers
  • 292a408 reject duplicate Host headers in request headers
  • 04d3b87 update changelog
  • 439b970 prepare for next release cycle
  • 9a7ff74 performance: remove consumed frames in place from data buffer (#1321)
  • 6cce763 v4.4.0
  • dfafda3 Bump pytest from 8.4.2 to 9.0.3 (#1320)
  • b45207c dependencies and packaging++
  • c40145f parse content-length headers according to RFC9110 grammar for numbers (1*DI...
  • Additional commits viewable in compare view

Dependabot compatibility score

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will 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.lock so dependency resolution uses PyPI (pypi.org/simple) instead of the Hugging Face registry, bumps lock revision to 3, and refreshes transitive pins—notably h2 4.3.0 → 4.4.1 and hpack 4.1.0 → 4.2.0 (pulled in via e2b HTTP/2). No application or pyproject.toml changes.

The h2 upgrade brings stricter HTTP/2 header handling (duplicate Host / content-length, CONNECT validation, dataclass-based events in 4.4.0) plus a small buffer performance fix in 4.4.1. coding_tools_env does not import h2 directly; 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.

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>
@dependabot dependabot Bot added Dependencies python:uv Pull requests that update python:uv code labels Aug 7, 2026
@burtenshaw burtenshaw added environment size: small Small pull request labels Aug 7, 2026 — with Cursor
@bot-ci-comment

bot-ci-comment Bot commented Aug 7, 2026

Copy link
Copy Markdown

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.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 only envs/coding_tools_env/uv.lock (zero .py files), so it introduces no new lint issues. The hook does surface pre-existing formatting debt in unrelated envs/** files (e.g. opencode_env, pi_env, repl_env) and, as a side effect, reformats Python snippets embedded in ~31 README.md files — all pre-existing and out of scope here.
  • Debug code (.claude/hooks/check-debug.sh): CLEAN relative to this PR. Findings are pre-existing console.print(...)/TODO entries under src/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 h2 4.3.0 → 4.4.1 bump (and transitive hpack 4.1.0 → 4.2.0) is valid and resolves CVE-2026-71554 (HTTP/2 request smuggling via duplicate Host headers; 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.yml uses exclude-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) updates envs/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 appears exclude-paths is not actually honored for the uv ecosystem, so env update PRs keep getting generated against the stated intent. Decision needed: fix the Dependabot config so envs/** 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 rewrites source = { registry = ... } for all 135 packages from https://pypi.registries.huggingface.tech/https://pypi.org/simple, and bumps revision = 2revision = 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 for pypi.registries.huggingface.tech at lock revision = 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 h2 bump 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.

Open in Web View Automation 

Sent by Cursor Automation: Pre-review

@@ -1,5 +1,5 @@
version = 1
revision = 2
revision = 3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lock-format bump revision = 23. 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" }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

@burtenshaw

Copy link
Copy Markdown
Collaborator

Consolidated into the env Dependabot aggregate PR #1015.

@burtenshaw burtenshaw closed this Aug 7, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

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 @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/uv/envs/coding_tools_env/h2-4.4.1 branch August 7, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Dependencies environment python:uv Pull requests that update python:uv code size: small Small pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant