Skip to content

Consolidate nine Dependabot updates into React V2 - #1885

Merged
Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-consolidated-dependency-updates
Nov 5, 2026
Merged

Paul Lizer (paullizer) merged 1 commit into
microsoft:paullizer-react-v2-uifrom
paullizer:paullizer-consolidated-dependency-updates

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

Summary

  • Consolidate all nine open Dependabot PRs into paullizer-react-v2-ui, preserving later promotion through Development to main rather than merging these updates directly into main.
  • Update seven application dependencies, the development MCP SDK, and the five-action group across the eight original workflows, retaining immutable action SHA pins.
  • Include the required redis-entraid 1.2.2 compatibility patch: 1.2.1 requires PyJWT~=2.13.0 and cannot install alongside PyJWT 2.15.0. Verify AnyIO 4.14.2 no longer needs the typing_extensions.sentinel symbol that motivated the old compatibility pin.
  • Add real-package, subprocess-isolated compatibility tests and fix documentation; increment the application version to 0.261.402.

Linked issue

No separate tracking issue, per maintainer direction. This PR supersedes the following Dependabot PRs:

Source PR Consolidated update
#1866 pypdf 6.16.1 to 6.21.4
#1863 setup-python 7.1.0, setup-node 7.1.0, upload-artifact 7.0.2, checkout 7.0.1 SHA pinning, CodeQL 4.39.1
#1862 AnyIO 4.10.0 to 4.14.2
#1829 Pillow 12.3.0 to 13.0.0
#1792 snowflake-connector-python[pandas] 3.18.1 to 4.7.3
#1791 aiohttp 3.14.3 to 3.14.4
#1782 Development MCP SDK 1.28.1 to 1.30.0
#1758 Werkzeug 3.1.6 to 3.1.9
#1599 PyJWT 2.13.0 to 2.15.0

The originals are being closed as superseded with links here, not marked as merged. This PR must still be reviewed and merged into paullizer-react-v2-ui; it does not itself land these changes in main.

Release Notes & Latest Features

  • New Feature
  • Bug Fix
  • UI Enhancement
  • Breaking Change
  • Internal only

Is this visible to end users?

  • Yes
  • No

Is this admin-facing (Admin Settings, governance, deployment, config)?

  • Yes
  • No

Should this become a Latest Feature card?

  • Yes
  • No
  • Already added

Screenshot needed for the card?

  • Yes
  • No
  • Attached

Version bump

  • application/single_app/config.py VERSION third segment bumped, or not needed because this is docs-only
  • deployers/version.txt bumped, or not needed because deployers/ was not changed

Application version: 0.261.401 to 0.261.402, after refreshing onto the latest feature-branch baseline. No deployer files changed.

Testing / validation

Validated on Python 3.12.10 in a session-local virtual environment without inherited system packages.

Command Result
python -m pip install --quiet --disable-pip-version-check -r application\single_app\requirements.txt -r requirements-dev.txt Passed with all final application/development pins installed
python -m pip check Passed: no broken requirements
python -m pytest -q --disable-warnings functional_tests\test_dependency_upgrade_compatibility.py functional_tests\test_document_merge_pdf_workbook.py functional_tests\test_document_accessibility_extraction.py functional_tests\test_pillow_psd_upload_hardening.py functional_tests\test_session_store_merge.py functional_tests\test_mcp_tool_argument_normalization.py functional_tests\test_redis_entra_token_auth.py Passed: 54 tests; 39 non-fatal warnings
python functional_tests\test_snowflake_action_plugin.py Passed: 5/5 checks
python functional_tests\route_tests\test_route_blueprint_policy_inventory.py Passed: 15/15 checks
python functional_tests\route_tests\test_route_unauthenticated_policy_contract.py Passed: 10/10 checks
python functional_tests\route_tests\test_route_policy_test_coverage.py Passed: 3/3 checks
python functional_tests\test_docs_app_surface_coverage.py Passed: 7/7 checks; generated inventory is current
python functional_tests\test_docs_site_quality.py Passed: 6/6 checks
python -m py_compile application\single_app\config.py functional_tests\test_dependency_upgrade_compatibility.py Passed
git diff --check Passed
python -c "import snowflake.connector,aiohttp; print('Snowflake:',snowflake.connector.__version__,'aiohttp:',aiohttp.__version__)" Passed: connector 4.7.3 and aiohttp 3.14.4 imported
python scripts\check_malicious_pr_security_review.py --base-sha origin/paullizer-react-v2-ui --head-sha HEAD --verify-release-age --report-file $report Passed: no blocker findings; advisory cues remain ($report is a session-local output file)

Additional validation:

  • Parsed all eight modified workflow YAML files and checked all 21 relevant action references against immutable upstream release SHAs, including dereferencing the annotated CodeQL tag.
  • Compared every added line from each source PR with the consolidated files; all nine updates are represented.
  • Verified PyPI upload timestamps for all nine upgraded Python packages (including redis-entraid); all satisfy the seven-full-day release-age gate.
  • The AnyIO regression exercises real task groups, thread dispatch, and an HTTPX-mocked OpenAI completion with typing_extensions.sentinel removed, in normal and optimized Python.
  • Reviewed advisory PR-guard cues: offline synthetic credentials/network-blocking tests, descriptive documentation, the unchanged Azure Agents prerelease pin, and an action-pinning heuristic. No new production network destination or relaxed security control is introduced.

Environment notes: initial install attempts encountered empty cached wheel downloads and a missing PyMeta3 transitive dependency. Fresh downloads with cache disabled and restoration of PyMeta3 resolved those local issues without disabling TLS or hash checks. The final manifest install and pip check passed in the isolated environment.

Linux container builds and live Azure App Service, Redis, and Snowflake authentication were not run: Docker's local daemon was unavailable and cloud credentials were not used. The Snowflake import emits a non-fatal vendored Requests dependency-version warning; the dependency checker and offline action checks pass. No unrelated transitive pins were changed merely to suppress warnings.

Documentation

  • Release notes updated, or not needed
  • Feature documentation updated, or not needed
  • Fix documentation updated, or not needed

Added docs/explanation/fixes/CONSOLIDATED_DEPENDENCY_UPDATES_FIX.md. Release notes were offered; no approval was available, so they were left unchanged.

Security checklist

  • New Flask routes include @swagger_route(security=get_auth_security())
  • Settings sent to non-admin frontends use sanitize_settings_for_user()
  • Browser JavaScript is served from local SimpleChat static assets only; no CDN-hosted JS
  • No secrets, keys, connection strings, or local-only artifacts are included

No routes, frontend settings payloads, or browser assets are changed. Runtime checks cover JWT audience rejection and rejection of renamed non-PNG/JPEG branding images.

@paullizer
Paul Lizer (paullizer) merged commit 05bc879 into microsoft:paullizer-react-v2-ui Nov 5, 2026
11 of 12 checks passed
Paul Lizer (paullizer) added a commit that referenced this pull request Nov 5, 2026
Integrate the consolidated dependency updates from #1885 while preserving coverage-preserving CodeQL and validation-only staging CI. Advance the independently selected 0.261.402 versions to integration version 0.261.403.

Co-authored-by: Copilot App <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant