Repository navigation
fix(deps): patch Python security dependencies [OSWE-280] - #155
ericlitman wants to merge 4 commits into
Conversation
|
@unfret review |
|
@unfret review |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 15 seconds in the queue, with no time running CI. ReasonPull request #155 has been dequeued by @ericlitman with a Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio dequeue |
🛑 1 blocking finding🔴 Critical · certifi cooldown exemption is permanent, not scoped to the security release WalkthroughThis PR moves the LangGraph API base image from
Since the last review
Repair promptRead the Details
Reviewed the whole pull request. @unfret review · @unfret status · @unfret help |
|
@unfret review |
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 15 seconds in the queue, with no time running CI. ReasonPull request #155 has been dequeued by @ericlitman with a Requeued — the merge queue status continues in this comment ↓. |
|
@Mergifyio dequeue |
There was a problem hiding this comment.
🛑 2 blocking findings
🔴 Critical · exclude-newer=false disables uv's release-age cooldown project-wide
🔴 High · Align the production image with the new LangGraph API pin
Check
|
@Mergifyio queue |
Merge Queue Status
This pull request spent 17 seconds in the queue, with no time running CI. ReasonPull request #155 has been dequeued by @ericlitman with a Tick the box to put this pull request back in the merge queue (same as
|
|
@Mergifyio dequeue |
There was a problem hiding this comment.
🛑 1 blocking finding
🔴 Critical · certifi cooldown exemption is permanent, not scoped to the security release
Check
|
|
||
| [tool.uv] | ||
| exclude-newer = "7 days" | ||
| exclude-newer-package = { certifi = false } |
There was a problem hiding this comment.
🔴 Critical · certifi cooldown exemption is permanent, not scoped to the security release
Line 49 sets certifi = false. That exempts every certifi version from the 7-day release-age cutoff, not just the 2026.10.19 release the PR says it needs. That release ages past the window on 2026-10-27; after that date the line only admits newly published certifi releases. Project [tool.uv] settings override host uv.toml cooldowns, and uv.lock persists the exemption under [options.exclude-newer-package]. Scenario: a compromised certifi release is uploaded. A routine or agent-driven uv lock --upgrade resolves it within minutes. Its hashes enter uv.lock, and the new hash-verified dockerfile install ships it into the runtime that holds GitHub App and LangSmith credentials. No expiry or comment bounds the exemption. This is the unrepaired 'permanent' half of the prior cooldown finding, now limited to the TLS trust-store package. The project-wide bypass and the 0.11.1 image mismatch are resolved at this head.
Summary
The October dependency update now builds a production image with the patched Python graph. Update LangGraph API/SDK and the OpenTelemetry family, align the API base image, remove its obsolete telemetry pins, and install the hash-verified lock before the generated project installer. Preserve the seven-day package cooldown with a certifi-only exception for the required security release.
The dashboard update merged separately in PR #156.
Evidence
exclude-newer=falsealso disabled the configured cooldown for every package.After: at
43e38b99e25d884e1335275ff3269d625979a1bd, actualmake production-imageexits0. The final image imports the app, API, OpenTelemetry SDK, Prometheus, and OTLP HTTP trace/metric/log exporters with networking disabled. The generated later installer preserves the exact patched versions. Dev tools are absent.make testexits0: 2,554 tests pass.make lint,make format-check,make production-check, and the two production-config tests exit0. Host and empty-XDGuv lock --checkand locked dry-run sync all exit0. Parent diff and lock checks also exit0.Merge Danger
Door: two-way
Revert
pyproject.toml,uv.lock, andlanggraph.jsontogether.Blast Radius: runtime
The LangGraph base and telemetry dependency set change. The image deliberately replaces vendor telemetry pins with the tested lock. No live provider/database workflow or application deployment occurred. The existing Studio2 installation is unavailable and remains unchanged.
Not verified
make typecheckexits2 with three existing errors in two unchanged test files. Their blobs, dependency package records, and typecheck settings are unchanged by this repair.make integration_testsexits0 by skipping the absent integration directory; no integration suite ran. Image imports and unit tests do not establish live provider or database behavior.Linear: OSWE-280