Skip to content

OpenHands: owner delta review of draft PR 535 at head 7c0df369 (lock 83293867: urllib3 2.8.0, PyJWT 2.15.0), artifact-only record - #558

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
res-ohrev-535-head7c0df3-20260930
Sep 30, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
res-ohrev-535-head7c0df3-20260930

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Owner

Scope

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
Head, base, lock, pins and exact-lock row agree; the lock is byte-identical to an independent prediction (reviewed lock with only the urllib3 and pyjwt entries substituted from PyPI hashes) source_review, our_integration_check checks/pr535-identity.txt, checks/prediction.txt (claims D1, D2)
Closure against the reviewed lock: 176/176 packages, 2 changed (pyjwt, urllib3); against main: 335 to 176, 159 pyobjc removed, 2 SDK wheels changed our_integration_check checks/closure-diff-*.txt (D2)
Hashed installs, uv pip check and the SDK import check pass in a fresh CPython 3.13.15 venv our_integration_check checks/install-log.txt (D3)
No path from the closure to the two advisories' server-side code; the four advisory files hash as recorded earlier; PyJWT importers and the JWKS client caller our_integration_check (static) checks/independent-scan.txt, checks/pyjwt-surface.txt (D4, D5)
OSV-Scanner: candidate exit 0 under the ordinary config; empty-config control reports exactly the two oauthlib ids; the reviewed lock reports those plus four findings the relock removes; the workflow's own step exits 0 on 56 entries our_integration_check checks/osv-*.txt, checks/osv-*.json (D6, D7)
The requested receipt's 62 artifact and 53 command bindings hold; external hashes (PyJWT sdist inputs, SDK archive, uv.lock) recomputed from PyPI and codeload our_integration_check checks/receipt-bindings.txt, checks/external-hashes.txt (D8, D9)
The repository's own checks at the head pass (245 tests, validate.py, evidence_manifest.py --check) our_integration_check checks/repo-checks-at-head.txt (D10)

Findings recorded (no change to the lock needed): P2-1 the receipt's bound_files entry for security-scan.yml records the pre-#546 workflow; P2-2 four frozen compile-input captures are listed under excluded although the inventory rule names only deliberately vulnerable test fixtures. Not covered: the other workers' locks and their nltk allowances, hosted CI of the head, image, trusted observer and task quality (the record approves none of them).

Local commands run

$ bash scripts/run_delta_outputs.sh      # regenerates every output from the immutable head (refuses any other head)
[2026-09-30T19:29:37Z] outputs regenerated
$ python3 scripts/validate.py
{"components": 69, "hashed_files": 8577, "profiles": 4, "receipts": 176, "status": "passed"}
$ python3 scripts/evidence_manifest.py --check
{"files": 8577, "status": "passed"}

Decision record

None needed: an artifact-only record. The decision paragraph "urllib3 and PyJWT relock and a frozen macOS lock (2026-09-30)" of docs/decisions/2026-09-22-github-automation-closure.md (merged in #546) covers the lock lane.

Checklist

  • No workflow, action, permission or config change.
  • No secrets are printed, logged or committed; host paths are masked; the advisories' details prose is removed from the scanner JSON.
  • No new paid hosting, subscription or billing surface.
  • Peer-owned untracked files and worktrees were preserved (built in its own worktree at the base commit).

🤖 Generated with Claude Code

…3293867, urllib3 2.8.0 and PyJWT 2.15.0): artifact-only record

Adds evidence/artifacts/openhands-oauthlib-review-535-head7c0df3-20260930/ (README, receipt.json with
claims D1-D11, findings and residuals, 15 check outputs, 3 scanner JSON files without advisory prose,
the scripts as run). The lock is byte-identical to an independent prediction (the previously reviewed
lock with only the urllib3 and pyjwt entries substituted from PyPI hashes); the closure differs from
the reviewed lock in exactly those two entries; hashed installs, the OAuthlib sweep, the pinned
OSV-Scanner and the workflow's own scan step at the head, the receipt's 62 artifact and 53 command
bindings and the repository's own checks all pass. Two P2 findings (a stale workflow binding in the
requested receipt; the category of four excluded compile-input captures) need no change to the lock.
No code, workflow, config or lock changes; approves no merge, exception, pin or promotion.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 30, 2026
@seathatflowsinourveins
seathatflowsinourveins merged commit 0b52ca8 into main Sep 30, 2026
25 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the res-ohrev-535-head7c0df3-20260930 branch September 30, 2026 20:28
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