Repository navigation
fix: bump soupsieve from 2.8.4 to 2.9 in /envs/openapp_env - #1196
Conversation
Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.8.4 to 2.9. - [Release notes](https://github.com/facelessuser/soupsieve/releases) - [Commits](facelessuser/soupsieve@2.8.4...2.9) --- updated-dependencies: - dependency-name: soupsieve dependency-version: '2.9' 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
Scope: Dependabot bump of the transitive dependency soupsieve 2.8.4 → 2.9 in envs/openapp_env/uv.lock. The diff touches one file (envs/openapp_env/uv.lock, 3 insertions / 3 deletions) and no Python source. soupsieve is pulled in via beautifulsoup4 (4.14.2) → BrowserGym; it is not a direct dependency in pyproject.toml.
Automated Checks
- Lint: FAIL — pre-existing baseline, NOT introduced by this PR.
bash .claude/hooks/lint.shfails on the branch, but the failures are repo-wide and unrelated to the diff:usort check src/ tests/flags onlytests/envs/test_grid_world.pyandtests/envs/test_julia_env.py(documented as pre-existing inAGENTS.md), andruff format --checkreports 56 files acrosssrc/ tests/ envs/. None of the flagged files appear in this diff — the only changed file is a lockfile, whichruff/usortdo not check. The same baseline exists onmain. - Debug code: FOUND — pre-existing baseline, NOT introduced by this PR.
check-debug.shreportsprint()/TODOoccurrences undersrc/. The hook scans the whole tree rather than the diff; none of these are in this PR.
Open RFCs Context
- Draft: 010 (Echo env-token world model), 011 (ARD catalog discovery).
- In Review: 000, 001, 002, 003, 005, 008, 012.
None of these RFCs concern dependency management, soupsieve, BeautifulSoup, or BrowserGym, so none are relevant to this change.
Tier 1: Fixes Required
None attributable to this PR. (The lint/debug findings above are pre-existing repo baseline and out of scope for a lockfile-only bump.)
Tier 2: Alignment Discussion
Principle Conflicts
None identified. A transitive dependency version bump does not touch the Gymnasium API (reset/step/state), the MCP agent boundary, reward computation, or client–server separation.
RFC Conflicts
None identified.
Dependency-PR Validation (extra diligence)
- Supply chain:
soupsieve 2.9exists on PyPI, and both the sdist and wheel sha256 hashes in the lockfile match PyPI exactly — no hash/source mismatch. - Python compatibility:
soupsieve 2.9requires Python>=3.10;openapp_envrequires>=3.11,<3.14— compatible. - Lockfile integrity:
uv lock --checkinenvs/openapp_envpasses (164 packages resolved, no drift) — the lockfile stays internally consistent withpyproject.toml.
Summary
- 0 mechanical issues to fix (lint/debug findings are pre-existing baseline, not introduced here)
- 0 alignment points for human review
- 0 RFC conflicts to discuss
Low-risk, mergeable transitive dependency bump — no action required from this review.
Sent by Cursor Automation: Pre-review
2.9.1 and 2.9.2 add CSS Selectors Level 4 correctness fixes for empty substring attribute matching and for empty selectors inside :is()/:where() and :has(). Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co>
There was a problem hiding this comment.
Refreshed this lock to soupsieve 2.9.2 (was 2.9) and merging it as a security update.
Why 2.9.2 rather than 2.9
- 2.9 is the patched version for the two advisories behind this PR: GHSA-gjv8-xp57-g29c / CVE-2026-86000 and GHSA-j934-xhv5-fg8f / CVE-2026-85999 (both medium, polynomial-time ReDoS in
IDENTIFIER/VALUEand in theRE_WS_ENDtrimming regex). - 2.9.1 and 2.9.2 have been on PyPI since 2026-07-21 and 2026-08-07 and add CSS Selectors Level 4 correctness fixes (empty substring attribute matching; empty selectors inside
:is()/:where()/:has()), so taking 2.9.2 now avoids a second Dependabot cycle for the same package.
Verification at exact head 0c98283
uv lock --upgrade-package soupsieveinenvs/openapp_envproduced a 3-line change; the wheel (8089a26f…c823) and sdist (4a55d8cf…af74) hashes match PyPI, neither file is yanked, andrequires_python >=3.10is satisfied by this env's>=3.11,<3.14.uv sync --frozen --all-groups --all-extras --dry-run --no-install-project(the same commandvalidate-env-locksruns) passes locally, andvalidate-env-locksis green in CI.- Functional smoke against the pinned
beautifulsoup4==4.14.2: tag/class/id/:nth-child/:is()/:has()/attribute selectors andselect_one()all behave as expected on soupsieve 2.9.2. - All 12 checks are green on this head.
soupsieve is transitive here (via beautifulsoup4 → browsergym/weblinx); no envs/openapp_env source references it directly, and envs/**/uv.lock is not part of the published openenv wheel, so this affects environment images only.
One behavior change worth knowing for anyone writing selectors against OpenApp pages: since 2.9.1, [attr^=""], [attr$=""] and [attr*=""] correctly match nothing instead of matching every element that merely has the attribute.
Sent by Cursor Automation: Release
* chore(deps): aggregate envs Dependabot updates Fold the remaining unpublished soupsieve 2.8.4 -> 2.9.2 security bumps (CVE-2026-85999 / CVE-2026-86000) in finrl_env and browsergym_env after #1196 landed for openapp_env. uv lock --check passed in both envs. Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co> * chore(deps): bump anyio to 4.14.2 in remaining env lockfiles Patches GHSA-82r6-8w77-94w6 (critical TLS certificate spoofing via IDNA 2003 host name encoding), GHSA-5p39-cfhj-2xmp, and GHSA-3w57-8xmc-8v26, all first fixed in 4.14.2. Only the anyio version and its artifact URLs/hashes change; each lockfile keeps its recorded registry source and resolved dependency set. Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co>
OpenEnv 0.6.0 Breaking change - `--llm-endpoint` / OpenAIClient now take a full base URL; the implicit port 8000 is gone. `http://localhost` means port 80; use `http://localhost:8000` or `--llm-port 8000` for the old behavior (#1189, landed via #1237). New - NovitaSandboxProvider: run an OpenEnv server in a Novita AI sandbox over wss://, from a registry image or a local Dockerfile; install with `pip install openenv[novita]` (#1191). - RFC 008 Level 2 validation building blocks: manifest-v2, report-v2 and runtime-plan schemas, the severity-v2 policy, and DockerValidationProvider (#1178, #1179). The `openenv validate` CLI is unchanged in this release. Fixes - A failed `new_session()` no longer leaves the provider's container or sandbox running (#1145). Repository and environment images (not in the wheel) - coding_env `additional_imports` now extends the default safe-import allowlist (#1147). - Environment lockfile security updates: anyio 4.14.2 and soupsieve 2.9.2 (#1196, #1197, #1201, #1202). - CI hardening: per-job GITHUB_TOKEN scopes and SHA-pinned actions (#1221, #1223, #1225, #1226, #1228, #1239, #1240); validation-lab toolchain pins (#1229, #1230, #1231); docs navigation and Miles integration docs (#1219, #1220). Known, accepted for this release: Novita provider debt (unbraced $ARG ordering in Dockerfile flattening, a tbench2 example readiness leak); fixes follow in #1235. Validated: exact-head CI 13/13 on 0034202; TestPyPI 0.6.0.dev141 (run 35854754769) byte-identical to the release wheel apart from Version; clean wheel/sdist install, CLI, and Echo reset/step smoke.


Bumps soupsieve from 2.8.4 to 2.9.
Release notes
Sourced from soupsieve's releases.
Commits
8763f91Format changelog messagecf198fcFix inefficient trimming of comments and white spacece44e49Merge commit from fork751c57bFix :nth-child/:nth-of-type matching for An+B index boundaries (#297)08e9edeDrop Python 3.9d6e6830Rework selector mappingd2d1581Utilize property for accessing lazy regular expression patternb8701deBuild patterns and regexes lazily in css_parser (#296)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 transitive dependency bump; Python version floor in openapp_env is already 3.11+.
Overview
Updates
envs/openapp_env/uv.lockto pin soupsieve from 2.8.4 to 2.9.2 (sdist and wheel URLs/hashes only). No application source changes.The newer release brings lazy selector compilation, fixes for
:nth-child/:nth-of-typeedge cases, and drops Python 3.9 support—which does not affect this env becausepyproject.tomlalready requires Python >=3.11.Reviewed by Cursor Bugbot for commit 0c98283. Bugbot is set up for automated code reviews on this repo. Configure here.