Skip to content

OpenHands: independent OAuthlib reachability review of draft PR 535 at its corrected head 6a7b1646 (candidate lock 383ccc5b), artifacts only - #537

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
res-oh-oauthlib-review-535b-20260930
Sep 30, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
res-oh-oauthlib-review-535b-20260930

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Owner

Scope

SOTA sources

  • OSV-Scanner v2.6.0, binary sha256 ca69b3d3cd08f889a49dc0a383122f71cc528b83803671df5fd874d97485b108 (the pin in .github/workflows/security-scan.yml), advisories GHSA-hj66-6f7g-4r5v and GHSA-xpv3-w29h-x7cv (oauthlib 3.3.1, fixed in 4.0.0).
  • oauthlib 3.3.1 source files named in the existing exception reasons: oauth2/rfc6749/endpoints/revocation.py and oauth2/rfc6749/grant_types/authorization_code.py, compared byte for byte with the hashes in the candidate's own callers output.
  • The candidate's recorded install commands (uv pip install --require-hashes, uv 0.12.17) and the maintained callers-scan method it adapts, blueprints/runtime-workers/openhands/evidence/relock-2026-09-30.jwt-callers.py.txt (PyJWT relock record: redis decode search (D1), timing range from the outputs (D2), honest output labels #529).

Evidence-class table

Claim Evidence class Command / receipt
The head, the lock hash, pins.json, the exact-lock test entry and the evidence file agree; the OSV config gains only comment lines source_review receipt W1; checks/pr535-identity.txt
The candidate's hashed installs reproduce in a fresh environment (exit 0, pip check clean) local_integration W2; checks/install-log.txt
No code in the closure selects or calls the two advisories' server-side paths; requests-oauthlib is the only consumer (client side) local_integration (static; not a runtime trace) W3; checks/independent-scan.txt
The four advisory files and the Python 2 helper match the candidate's recorded hashes local_integration W4; checks/advisory-files-and-helper.txt
OSV 2.6.0: CI form exit 0; empty-config control exit 1 with exactly the two ids; base lock the same two local_integration W5; checks/osv-*
Correction A: against the base's lock only the two SDK wheels change (159 macOS packages removed, nothing added or lowered) local_integration W6; checks/closure-diff-base-vs-head.txt
Correction B: Linux-only scope stated; the lock is consumed only inside the pinned linux/amd64 image; no macOS handling source_review W7; checks/lock-consumers-and-platform.txt

Local commands run

$ python3 scripts/validate.py
{"components": 69, "hashed_files": 8515, "profiles": 4, "receipts": 176, "status": "passed"}        exit 0
$ python3 scripts/evidence_manifest.py --check
{"files": 8515, "status": "passed"}                                                                  exit 0
$ python3 -B -m unittest tests.test_osv_lockfile_coverage
Ran 30 tests ... OK                                                                                  exit 0

The full unittest discovery runs in CI's validate check.

Decision record

None: this is a review record. There is no blocking finding for the OAuthlib reachability scope; the one housekeeping note (the test comment still says the reviewer's review is pending) is in receipt.json.

Host evidence

This PR adds an artifact directory under evidence/artifacts/, not evidence/hosts/.

Checklist

  • No workflows or Actions are changed.
  • No secrets are printed, logged or committed.
  • No new paid hosting, subscription or billing surface.
  • Peer-owned untracked files and worktrees were preserved.

🤖 Generated with Claude Code

…t its corrected head 6a7b164 (candidate lock 383ccc5b), artifacts only

Second record, for the corrected head Codex asked to have reviewed: identity of the head and the lock, the hashed installs reproduced in a fresh CPython 3.13.15
environment, an independent metadata and raw-text OAuthlib sweep (no server-side or advisory class outside oauthlib; requests-oauthlib the only consumer), the
advisory files against the candidate's recorded hashes, OSV-Scanner 2.6.0 in CI form (exit 0) and the empty-config control (exit 1, exactly the two oauthlib
ids). Verifies the two corrections asked for in the earlier record: against the PR base's reviewed lock only the two SDK wheels change (159 macOS packages are
removed, nothing is added or lowered), and the lock is consumed only inside the pinned linux/amd64 image with no macOS handling in the recipe. A scoped proof for that
exact head and lock; it approves no merge, exception, pin or promotion. Only manifests/evidence.json is touched outside the new directory (registration).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant