fix(packaging): guard agentex-client surface, bump floor, smoke-test wheel install#406
Conversation
96f8345 to
46bd6ef
Compare
|
One small thing: pair the raise with a |
| # Co-released in lockstep; floor-only by design — a ceiling would | ||
| # eventually exclude the co-versioned slim (release-please can't bump it). | ||
| "agentex-client>=0.12.0", | ||
| "agentex-client>=0.13.0", |
There was a problem hiding this comment.
This PR raises the ADK dependency to agentex-client>=0.13.0, but uv.lock still records the workspace packages as 0.12.0 and the ADK lock metadata still has only the editable agentex-client dependency without this floor. A frozen or locked install can keep resolving the stale 0.12.0 metadata, so tests and local installs may not exercise the package contract this change is meant to enforce. Please regenerate uv.lock so it records the 0.13.0 package versions and updated ADK dependency floor.
Artifacts
Repro: TOML metadata inspection script
- Contains supporting evidence from the run (text/x-python; charset=utf-8).
Repro: lock inspection output showing stale package versions and missing dependency floor
- Keeps the command output available without making the summary code-heavy.
Repro: uv lock check attempt showing uv unavailable
- Keeps the command output available without making the summary code-heavy.
Ran code and verified through T-Rex
Prompt To Fix With AI
This is a comment left during a code review.
Path: adk/pyproject.toml
Line: 18
Comment:
**Update the lockfile**
This PR raises the ADK dependency to `agentex-client>=0.13.0`, but `uv.lock` still records the workspace packages as `0.12.0` and the ADK lock metadata still has only the editable `agentex-client` dependency without this floor. A frozen or locked install can keep resolving the stale 0.12.0 metadata, so tests and local installs may not exercise the package contract this change is meant to enforce. Please regenerate `uv.lock` so it records the 0.13.0 package versions and updated ADK dependency floor.
How can I resolve this? If you propose a fix, please make it concise.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Lockfile is now updated.
46bd6ef to
6634a88
Compare
d55a273 to
06390bf
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
We actually needed client@0.13.0. Looking into the logger. |
|
Correction on my comment above — re-read the diff more carefully and the
The |
dm36
left a comment
There was a problem hiding this comment.
approving looks like a couple of greptile comments
06390bf to
3eb5f22
Compare
|
Re: pairing the guard's Good instinct on observability, but I left the The guard fires at import/startup, so an uncaught The real lever for the silent-failure class is error-level alerting on the symptom (e.g. 🧑💻🤖 — posted via Claude Code |
…wheel install Harden the 0.13.0 split (agentex-sdk + agentex-client share the agentex.* namespace) against the partial-install break: - Bump the agentex-client floor to >=0.13.0 (first release where it ships separately) so an old client can't satisfy the dep. Kept floor-only: a ceiling would exclude the co-versioned slim (release-please can't bump it). - Sync uv.lock to the 0.13.0 workspace versions (it lagged pyproject at 0.12.0) so frozen installs resolve a client that satisfies the new floor. - Add an import-time guard (agentex.lib) that canaries the agentex-client REST surface and raises a clear, actionable error if a symbol/resource the ADK needs is absent — instead of a cryptic `cannot import name 'Event' from 'agentex.types'`. It does not gate on version (newer clients are additive and must not be rejected); it can't preempt a fully-missing client surface (import agentex fails in the client's own __init__ first) — the wheel smoke covers that. - Add scripts/check-wheel-install (wired into the build CI job): builds both wheels, installs them together into a fresh venv, and imports agentex.lib.adk plus the agentex.types/resources client surface. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3eb5f22 to
1726689
Compare
What
Hardens the 0.13.0 split (agentex-sdk + agentex-client share the agentex.* namespace), four ways:
agentex-client>=0.13.0(first release where it ships separately). Floor-only (no==ceiling: release-please can't bump it).uv.locklagged pyproject at0.12.0; synced to0.13.0so frozen installs resolve a client that satisfies the floor.agentex.lib) — canaries theagentex-clientREST surface and raises a clear, actionableImportErrorif a symbol/resource the ADK needs is absent, instead of a crypticcannot import name 'Event' from 'agentex.types'. It does not gate on version — newer clients are additive and pass; versions are reported in the message for diagnosis only.scripts/check-wheel-install, wired into the build CI job) — builds both wheels, installs them together into a fresh venv, importsagentex.lib.adk+ theagentex.types/resourcessurface.Guard scope (honest)
Catches an incomplete client surface (a needed symbol/resource missing) — the incident's failure — regardless of version direction. Newer clients are not rejected (by design: clients are additive; removals aren't planned).
Does not catch a fully missing client surface:
import agentexfails in the client's own__init__(eagerfrom . import types) beforeagentex.libruns. The wheel smoke covers that at the build layer — so guard + smoke are complementary.Tests
tests/lib/test_version_guard.py: passes with the full surface; passes for a newer client (version is not a gate); raises on a missing canary symbol. Wheel smoke verified locally (positive + sdk-only--no-depsteeth check).ruff/pyrightclean.Notes
Issue #2 of 3 from the 0.13.0 incident; ships in 0.13.1 (#405 + #407 merged). Route-doubling (#3) is on a separate investigation.
🧑💻🤖 — posted via Claude Code
Greptile Summary
agentex-client>=0.13.0and syncs the lockfile metadata.agentex-clientversion skew and missing generated surface.Confidence Score: 5/5
The changes are narrowly scoped to packaging metadata, an import compatibility guard, and CI smoke coverage for the split package install path.
No code issues were identified in the reviewed changes, and the added tests directly cover the intended version-skew and missing-surface behaviors.
What T-Rex did
Reviews (7): Last reviewed commit: "fix(packaging): guard agentex-client sur..." | Re-trigger Greptile