Skip to content

fix: bump soupsieve from 2.8.4 to 2.9 in /envs/openapp_env - #1196

Merged
cursor[bot] merged 2 commits into
mainfrom
dependabot/uv/envs/openapp_env/soupsieve-2.9
Sep 18, 2026
Merged

cursor[bot] merged 2 commits into
mainfrom
dependabot/uv/envs/openapp_env/soupsieve-2.9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Bumps soupsieve from 2.8.4 to 2.9.

Release notes

Sourced from soupsieve's releases.

2.9

  • NEW: Drop Python 3.9 support.
  • NEW: Lazy compile selector patterns to improve initial import speed.
  • FIX: Correct :nth-child/:nth-of-type (and -last- variants) for An+B values whose sequence steps onto index 0 or onto the last child (e.g. :nth-child(2n-2), :nth-child(n-1), :nth-child(n+5)), which previously matched the wrong elements or nothing at all (@​gaoflow).
  • FIX: More efficient CSS ID matching (@​kaimandalic).
  • FIX: Fix inefficient trimming of comments and white space (@​kaimandalic).
Commits
  • 8763f91 Format changelog message
  • cf198fc Fix inefficient trimming of comments and white space
  • ce44e49 Merge commit from fork
  • 751c57b Fix :nth-child/:nth-of-type matching for An+B index boundaries (#297)
  • 08e9ede Drop Python 3.9
  • d6e6830 Rework selector mapping
  • d2d1581 Utilize property for accessing lazy regular expression pattern
  • b8701de Build patterns and regexes lazily in css_parser (#296)
  • See full diff 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 transitive dependency bump; Python version floor in openapp_env is already 3.11+.

Overview
Updates envs/openapp_env/uv.lock to 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-type edge cases, and drops Python 3.9 support—which does not affect this env because pyproject.toml already requires Python >=3.11.

Reviewed by Cursor Bugbot for commit 0c98283. Bugbot is set up for automated code reviews on this repo. Configure here.

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

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
Contributor

Choose a reason for hiding this comment

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

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.sh fails on the branch, but the failures are repo-wide and unrelated to the diff: usort check src/ tests/ flags only tests/envs/test_grid_world.py and tests/envs/test_julia_env.py (documented as pre-existing in AGENTS.md), and ruff format --check reports 56 files across src/ tests/ envs/. None of the flagged files appear in this diff — the only changed file is a lockfile, which ruff/usort do not check. The same baseline exists on main.
  • Debug code: FOUND — pre-existing baseline, NOT introduced by this PR. check-debug.sh reports print()/TODO occurrences under src/. 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.9 exists on PyPI, and both the sdist and wheel sha256 hashes in the lockfile match PyPI exactly — no hash/source mismatch.
  • Python compatibility: soupsieve 2.9 requires Python >=3.10; openapp_env requires >=3.11,<3.14 — compatible.
  • Lockfile integrity: uv lock --check in envs/openapp_env passes (164 packages resolved, no drift) — the lockfile stays internally consistent with pyproject.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.

Open in Web View Automation 

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>

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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/VALUE and in the RE_WS_END trimming 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 soupsieve in envs/openapp_env produced a 3-line change; the wheel (8089a26f…c823) and sdist (4a55d8cf…af74) hashes match PyPI, neither file is yanked, and requires_python >=3.10 is satisfied by this env's >=3.11,<3.14.
  • uv sync --frozen --all-groups --all-extras --dry-run --no-install-project (the same command validate-env-locks runs) passes locally, and validate-env-locks is green in CI.
  • Functional smoke against the pinned beautifulsoup4==4.14.2: tag/class/id/:nth-child/:is()/:has()/attribute selectors and select_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.

Open in Web View Automation 

Sent by Cursor Automation: Release

@cursor
cursor Bot merged commit c84b5cd into main Sep 18, 2026
12 checks passed
@dependabot
dependabot Bot deleted the dependabot/uv/envs/openapp_env/soupsieve-2.9 branch September 18, 2026 06:13
cursor Bot added a commit that referenced this pull request Sep 19, 2026
* 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>
cursor Bot added a commit that referenced this pull request Sep 24, 2026
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.
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.

2 participants