Skip to content

build: bump claude-agent-sdk 0.2.110 -> 0.2.128 - #93

Merged
mashkovd merged 1 commit into
mainfrom
build/bump-agent-sdk
Aug 2, 2026
Merged

mashkovd merged 1 commit into
mainfrom
build/bump-agent-sdk

Conversation

@mashkovd

@mashkovd mashkovd commented Aug 2, 2026

Copy link
Copy Markdown
Member

What

Bumps claude-agent-sdk from 0.2.110 to 0.2.128 — the current latest.
Deliberate, isolated bump per issue #44's own convention ("bump deliberately,
in an explicit commit").

Why now

This is the first bump attempted with any real confidence, because it's the
first time there's been something to test it against: #86 gave us CI, #88
gave us a lockfile, #89 established exactly how the bundled-CLI mechanism
works, #90/#91 gave us lint/type gates. Before this series, a harness bump
was an unverifiable leap of faith.

Breaking-change review

Read the SDK's changelog for every version between 0.2.111 and 0.2.128,
not just the target's entry. Nothing documented touches this codebase:

  • 0.2.126 — ResultMessage.model_usage type changed from
    dict[str, Any] to dict[str, ModelUsage]. Grepped for model_usage
    anywhere in orchestrator/config: zero hits.
  • 0.2.121 — --resume/--session-id flag format changed. Grepped for
    resume/session_id: zero hits.
  • 0.2.124 — Windows security hardening. Irrelevant — the image is
    python:3.12-slim on Linux exclusively.

Bundled CLI moves too — re-verified, not assumed

The bump takes the bundled CLI from 2.1.191 to 2.1.220 as a side effect
(claude-agent-sdk ships its own CLI binary; see #89 for why the Dockerfile
no longer installs a separate one). Rather than assume the bundled-CLI
mechanism established in #89 still holds, re-ran the exact same checks
against a freshly built image:

$ docker run --rm IMG python -c "
import claude_agent_sdk._cli_version as v
print(v.__cli_version__)"
2.1.220

$ docker run --rm IMG python -c "
from claude_agent_sdk._internal.transport.subprocess_cli import SubprocessCLITransport
t = SubprocessCLITransport.__new__(SubprocessCLITransport); t._cli_path = None
print(t._find_cli())"
/app/.venv/lib/python3.12/site-packages/claude_agent_sdk/_bundled/claude

$ docker run --rm IMG sh -c 'which claude; echo rc=$?'
rc=1

node/npm/git/gh all present and unaffected. All three detect_auth()
branches (no creds → RuntimeError, OAuth token, API key) behave identically
to pre-bump.

Verification

  • uv run --locked pytest -q → 243 passed, unchanged
  • uv run --locked ruff check orchestrator config tests → clean
  • uv run --locked mypy → clean
  • Only claude-agent-sdk itself moved in uv.lock — no transitive
    dependency cascade
  • Bundled CLI version and resolution re-verified in a fresh image build
  • Auth policy branches re-verified in the fresh image
  • CI green on this PR

Deliberate, isolated bump per issue #44's own convention — bump the harness
in an explicit commit, not folded into unrelated work. Only possible to do
with any confidence now that #86 (CI), #88 (lockfile), #89 (bundled-CLI
understanding), #90/#91 (lint/type gates) all exist: there was previously
nothing to test a harness bump against.

Read the SDK's changelog for every version between 0.2.111 and 0.2.128
before bumping, not just the target version's entry. Nothing in the
documented breaking changes touches this codebase's surface:

- 0.2.126's ResultMessage.model_usage type change (dict[str, Any] ->
  dict[str, ModelUsage]) — grepped for `model_usage` anywhere in
  orchestrator/config: zero hits.
- 0.2.121's --resume/--session-id flag format change — grepped for
  `resume`/`session_id`: zero hits.
- 0.2.124's Windows security hardening — irrelevant, the image is
  python:3.12-slim on Linux exclusively.

Bundled CLI moves 2.1.191 -> 2.1.220 as a side effect (claude-agent-sdk
ships its own CLI binary and the Dockerfile no longer installs a separate
one — see #89). Re-ran every runtime check from #89 against a freshly built
image rather than assuming the bump doesn't disturb that mechanism:

- claude_agent_sdk._cli_version.__cli_version__ == "2.1.220", matching the
  changelog's version table for 0.2.128.
- SubprocessCLITransport._find_cli() still resolves to the bundled binary
  path inside site-packages, not a PATH lookup.
- `which claude`, node, npm, git, gh all behave identically to pre-bump.
- All three detect_auth() branches (no creds -> RuntimeError, OAuth token,
  API key) behave identically to pre-bump.

Verification:
- `uv run --locked pytest -q` -> 243 passed, unchanged
- `uv run --locked ruff check orchestrator config tests` -> clean
- `uv run --locked mypy` -> clean
- Only claude-agent-sdk itself moved in uv.lock; no transitive dependency
  cascade.
@claude

claude Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Claude encountered an error after 0s —— View job


I'll analyze this and get back to you.

@claude

claude Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Claude finished @mashkovd's task in 20s —— View job


Reviewing PR #93

  • Gather context (PR diff, description, CLAUDE.md)
  • Classify diff triviality
  • Post verdict

Verdict: trivial dependency bump — approved.

Diff is confined to pyproject.toml (version pin) and uv.lock (matching hashes) for claude-agent-sdk 0.2.110 → 0.2.128. No source/logic files changed. This matches the "trivial diff" criteria (dependency bump, no logic change), so I approved directly per review policy:

gh pr review 93 --approve --body "Pure dependency bump (claude-agent-sdk 0.2.110 → 0.2.128), only version pin and lockfile hashes changed, no logic touched."

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pure dependency bump (claude-agent-sdk 0.2.110 → 0.2.128), only version pin and lockfile hashes changed, no logic touched.

@mashkovd
mashkovd merged commit cdd2b82 into main Aug 2, 2026
4 checks passed
@mashkovd
mashkovd deleted the build/bump-agent-sdk branch August 2, 2026 21:02
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