Skip to content

chore(deps): upgrade the packages the dependency audit flags - #257

Merged
jeffdupont merged 4 commits into
mainfrom
chore/deps-audit-upgrades
Nov 2, 2026
Merged

jeffdupont merged 4 commits into
mainfrom
chore/deps-audit-upgrades

Conversation

@jeffdupont

@jeffdupont jeffdupont commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

What

Upgrades the locked packages that pip-audit flags, split out of #176 so that PR stays CI-only. No pyproject.toml ranges changed; uv lock -P for each package:

Package main This PR
claude-agent-sdk 0.2.121 0.2.176
opentelemetry-api / -sdk / -proto / -exporter-otlp-proto-* 1.43.0 1.45.2
opentelemetry-semantic-conventions 0.64b0 0.66b2
opentelemetry-exporter-http-transport, -otlp-common — 0.66b2 (new)
virtualenv 21.14.13 21.15.2
litellm 1.106.2 1.103.10
filelock 3.29.4 4.2.7
boto3 / botocore 1.43.101 1.43.123 (litellm 1.103.10 requires boto3>=1.43.117)

brotlicffi was also in the uv lock -P set; main already has the fixed 1.2.1.0, so it does not change.

The lock also records the workspace members' 1.0.0 versions; main's lock still lists the pre-1.0 versions, so uv lock --check fails on main.

Changes the upgrades need:

  • Claude Agents handler: claude-agent-sdk added four ClaudeAgentOptions fields (resume_session_at, resume_drops_turn, forward_subagent_text, verbatim_prompts). None is a model or run setting, so all four go on the excluded list and a config cannot set them. verbatim_prompts matters most: it decides whether prompt text can make Claude Code read host files, which is the application's call.
  • Lifecycle test: OpenTelemetry 1.45 logs a malformed OTEL_EXPORTER_OTLP_TIMEOUT and falls back to its default instead of raising, so the failed-telemetry test now makes _setup_telemetry raise directly. The BYOC comment in lifecycle.py drops the same example.

Why litellm goes back to 1.103.10

filelock 3.29.4 has 9 advisories (GHSA-fq56-3cx3-fjxp and others), all fixed only in 4.x, and litellm 1.106.x requires filelock<4. litellm patches several release lines in parallel: 1.103.10 is from 2026-10-27, newer than the 1.106.2 locked on main (2026-10-21), and it does not pin filelock. So the lock uses uv lock -P litellm==1.103.10 -P filelock.

This only changes what CI and local development install. The published litellm>=1.83.0 floor in packages/litellm-messages/pyproject.toml is unchanged, so users still resolve litellm themselves.

Verified locally

🤖 Generated with Claude Code


Note

Overview
This PR refreshes uv.lock for packages pip-audit flagged: claude-agent-sdk (0.2.121 → 0.2.176), OpenTelemetry (1.43 → 1.45.2, plus new OTLP helper packages), filelock (4.x), boto3/botocore, and virtualenv. litellm is intentionally locked to 1.103.10 (below 1.106.x) so filelock 4.x can ship without litellm’s filelock<4 pin; published litellm>=1.83.0 floors in pyproject are unchanged.

Claude Agents adds four new ClaudeAgentOptions fields from the SDK upgrade to _CLAUDE_AGENT_OPTIONS_EXCLUDED_KEYS (resume_session_at, resume_drops_turn, forward_subagent_text, verbatim_prompts) so remote config cannot drive session resume, subagent streaming, or @path / slash-command expansion on the host.

Lifecycle tests no longer rely on a malformed OTEL_EXPORTER_OTLP_TIMEOUT to fail telemetry setup (OTel 1.45 logs and defaults instead); they patch _setup_telemetry to raise. A related BYOC comment in lifecycle.py is trimmed to match.

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

jeffdupont and others added 2 commits November 2, 2026 08:57
uv lock -P for brotlicffi, claude-agent-sdk, virtualenv and the
OpenTelemetry packages: claude-agent-sdk 0.2.176, OpenTelemetry 1.45.2
(semantic conventions 0.66b2), virtualenv 21.15.2. brotlicffi is already
current on main. The lock also picks up the workspace packages' 1.0.0
versions, which main's lock had not recorded.

claude-agent-sdk 0.2.173 added four ClaudeAgentOptions fields. None is a
model or run setting, so all four go on the excluded list:
resume_session_at and resume_drops_turn are session state,
forward_subagent_text is stream shape, and verbatim_prompts decides
whether prompt text can make Claude Code read host files.

OpenTelemetry 1.45 logs a malformed OTEL_EXPORTER_OTLP_TIMEOUT and uses
its default instead of raising, so the lifecycle test that relied on
that now injects the telemetry failure directly.

filelock 3.29.4 still has advisories: litellm 1.106.x requires
filelock<4, so it needs a separate change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OpenTelemetry 1.45 no longer raises on a malformed OTEL_EXPORTER_OTLP_TIMEOUT.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jeffdupont and others added 2 commits November 2, 2026 09:04
litellm 1.106.x requires filelock<4, and every filelock 3.x has open
advisories. litellm patches several release lines in parallel; 1.103.10
(2026-10-27) has no filelock pin, so uv lock -P litellm==1.103.10 -P
filelock moves filelock to 4.2.7 (boto3/botocore re-resolve to 1.43.123).
The published litellm>=1.83.0 floor is unchanged: the lock only pins
what CI and local development install.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jeffdupont
jeffdupont marked this pull request as ready for review November 2, 2026 17:13
@jeffdupont
jeffdupont merged commit dbc35fe into main Nov 2, 2026
13 checks passed
@jeffdupont
jeffdupont deleted the chore/deps-audit-upgrades branch November 2, 2026 20:04
jeffdupont added a commit that referenced this pull request Nov 2, 2026
## What

- **Dependency audit in CI**: new `make audit` target that runs
`pip-audit` (pinned 2.9.0) over `uv export --frozen` of the committed
`uv.lock`, and a `Dependency audit` CI job that runs it. It audits the
lock as committed (no `uv lock` first), so a vulnerable pin fails the
job. It does not block PRs; push to `main` and a weekly Monday cron fail
on it.
- **Dependabot**: `.github/dependabot.yml` with `uv` daily at the
workspace root and `github-actions` weekly (workflows and the composite
actions), both with a 7-day cooldown — same shape as go-ai-sdk
([go-ai-sdk#3](launchdarkly/go-ai-sdk#3)).

CI-only: no `uv.lock`, source or test changes. The dependency upgrades
this PR used to carry are in #257.

## Expected failure

The `Dependency audit` check fails on this PR because it audits `main`'s
current lock. That is the job working, and it does not block merge on
PRs. It keeps failing on `main` until #257 lands; with #257's lock,
`make audit` reports no known vulnerabilities.

## Verified locally

`ruff check`, `ruff format --check` and `mypy packages/*/src` clean;
`pytest` 3851 passed, 18 skipped on a clean checkout of this branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> Adds **automated dependency hygiene**: a local **`make audit`** target
and a matching **Dependency audit** CI job that scan the **committed
`uv.lock`** (via frozen `uv export` + pinned **`pip-audit@2.9.0`**)
without re-locking first, so known vulnerable pins surface on **push to
`main`** and on a **weekly Monday** CI schedule. On **pull requests**,
the audit job is allowed to fail (`continue-on-error`) so unrelated PRs
are not blocked by advisories against the current lock.
> 
> Also introduces **`.github/dependabot.yml`** to propose **daily `uv`**
updates at the workspace root and **weekly GitHub Actions** bumps for
workflows and composite actions, each with a **7-day cooldown**.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
ea50e67. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

2 participants