chore: release main#393
Conversation
843110e to
9925a2e
Compare
9925a2e to
d16eff0
Compare
d16eff0 to
fc30981
Compare
fc30981 to
170f0c5
Compare
170f0c5 to
8714c53
Compare
…plit
Publishes the existing wheel as two namespace-sharing packages so REST-only
consumers install just the Stainless client without the ADK runtime.
- agentex-client (slim, root pyproject): Stainless client + types +
protocol; 6 deps; requires-python >=3.11; wheel excludes src/agentex/lib/**.
- agentex-sdk (heavy, adk/): the ADK overlay (agentex/lib/*) via a hatchling
build hook that force-includes ../src/agentex/lib and prunes test files
(force-include ignores `exclude`, hatchling #1395); pins agentex-client
floor-only; requires-python >=3.12.
Heavy depends on slim, so existing `pip install agentex-sdk` consumers are
unchanged. Both contribute disjoint files to the agentex.* namespace.
uv workspace wiring (this repo is uv-based post rye→uv migration):
- [tool.uv.workspace] members = ["adk"] + [tool.uv.sources]
agentex-client = { workspace = true } so dev resolves the ADK's client
dep to the local root; the published heavy wheel still pins the PyPI version.
- CI + scripts/{bootstrap,test} sync `--all-packages` so the ADK member's deps
install for lint/test; both wheels build via `uv build --all-packages --wheel`
(--wheel load-bearing — the heavy's cross-dir force-include can't go via sdist).
Release/publish wiring:
- release-please two-component mode (`.` + `adk/`), include-component-in-tag.
- bin/publish-pypi publishes slim before heavy via uv; `--check-url` makes the
per-component-tag double-trigger idempotent. Dual tokens, PYPI_TOKEN fallback.
- scripts/check-slim-deps CI guardrail fails if the slim dep set drifts from
the 6-dep base (catches Stainless re-adding ADK deps).
- adk: drop the removed `task_id`/`agent_id` kwargs from the `states.update()`
call (state.py) to match the client API — next dropped them in a7cbaae.
BREAKING CHANGE: release tag scheme changes from v* to <component>-v*.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8714c53 to
5f4992c
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
5f4992c to
6673f0c
Compare
| # --check-url makes the per-component-tag double-trigger idempotent. | ||
| uv publish --check-url https://pypi.org/simple/ --token="${AGENTEX_CLIENT_PYPI_TOKEN:-$PYPI_TOKEN}" dist/agentex_client-*.whl |
There was a problem hiding this comment.
agentex-client publish will fail until AGENTEX_CLIENT_PYPI_TOKEN is configured
When AGENTEX_CLIENT_PYPI_TOKEN is absent from repo secrets (the workflow comment explicitly notes it hasn't been created yet), this line resolves to ${PYPI_TOKEN} — which is secrets.AGENTEX_PYPI_TOKEN, a project-scoped token for agentex-sdk. PyPI project-scoped tokens cannot publish to a different project, so the agentex-client publish will get a 403 and abort the release, leaving the heavy agentex-sdk wheel unpublished (due to set -eux). The AGENTEX_CLIENT_PYPI_TOKEN secret (either a global upload token or one scoped to the new agentex-client project) must be added to repo secrets before this release workflow runs.
Prompt To Fix With AI
This is a comment left during a code review.
Path: bin/publish-pypi
Line: 12-13
Comment:
**`agentex-client` publish will fail until `AGENTEX_CLIENT_PYPI_TOKEN` is configured**
When `AGENTEX_CLIENT_PYPI_TOKEN` is absent from repo secrets (the workflow comment explicitly notes it hasn't been created yet), this line resolves to `${PYPI_TOKEN}` — which is `secrets.AGENTEX_PYPI_TOKEN`, a project-scoped token for `agentex-sdk`. PyPI project-scoped tokens cannot publish to a different project, so the `agentex-client` publish will get a 403 and abort the release, leaving the heavy `agentex-sdk` wheel unpublished (due to `set -eux`). The `AGENTEX_CLIENT_PYPI_TOKEN` secret (either a global upload token or one scoped to the new `agentex-client` project) must be added to repo secrets before this release workflow runs.
How can I resolve this? If you propose a fix, please make it concise.There was a problem hiding this comment.
AGENTEX_CLIENT_PYPI_TOKEN has been added to repo secrets. The comment is stale.
✨ Stainless prepared a new release
agentex-client: 0.13.0
0.13.0 (2026-06-09)
Full Changelog: agentex-client-v0.12.0...agentex-client-v0.13.0
⚠ BREAKING CHANGES
Features
usage,response_id, plumbprevious_response_id, opt-inprompt_cache_keyfor stateful responses and prompt caching (#335) (ba5d64b)Bug Fixes
Performance Improvements
Chores
actions/github-script(7c867e8)Documentation
agentex-sdk: 0.13.0
0.13.0 (2026-06-09)
Full Changelog: agentex-sdk-v0.12.0...agentex-sdk-v0.13.0
⚠ BREAKING CHANGES
Features
This pull request is managed by Stainless's GitHub App.
The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.
For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.
🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions
Greptile Summary
This is the v0.13.0 release PR for both
agentex-client(slim REST client, formerlyagentex-sdk) andagentex-sdk(heavy ADK overlay, new inadk/), introducing a slim/heavy package split. The API surface is updated —states.updatedrops the now-redundantagent_id/task_idbody params,agents.register_builddropsprincipal_context, and tasknamefield docstrings gain explicit get-or-create semantics.agentex-client(6 bare-client deps); the heavy ADK overlay moves toadk/pyproject.tomlasagentex-sdkwith all the Temporal, LiteLLM, FastAPI, etc. dependencies. A newhatch_build.pyhook andscripts/check-slim-depsguard ensure the boundary stays clean.agent_idandtask_idremoved fromstates.updatebody params (both in the type definition and internalStateServicecall);principal_contextremoved from agent register-build.bin/publish-pypiupdated to publish both wheels separately with per-package PyPI tokens;release-please-config.jsonupdated to tag both components.Confidence Score: 4/5
Safe to merge on the code side, but the publish workflow will fail for the new agentex-client package unless AGENTEX_CLIENT_PYPI_TOKEN is added to repo secrets first.
The slim/heavy package split, API cleanup, and tooling changes are all well-structured and internally consistent. The one gap is that bin/publish-pypi falls back to the agentex-sdk project-scoped token when AGENTEX_CLIENT_PYPI_TOKEN is missing, which will block the agentex-client PyPI publication and — because of set -eux — prevent the agentex-sdk wheel from publishing too.
bin/publish-pypi and .github/workflows/publish-pypi.yml — the AGENTEX_CLIENT_PYPI_TOKEN secret must be in place before the publish workflow is triggered.
Important Files Changed
Sequence Diagram
sequenceDiagram participant GHA as GitHub Actions participant script as bin/publish-pypi participant uv as uv build participant pypi as PyPI GHA->>script: bash ./bin/publish-pypi script->>uv: uv build --all-packages --wheel uv-->>script: agentex_client-0.13.0.whl + agentex_sdk-0.13.0.whl Note over script,pypi: Slim-first ordering script->>pypi: "publish agentex_client-*.whl" Note over script,pypi: token = AGENTEX_CLIENT_PYPI_TOKEN ?: PYPI_TOKEN pypi-->>script: 200 OK / 400 already-exists script->>pypi: "publish agentex_sdk-*.whl" Note over script,pypi: token = AGENTEX_PYPI_TOKEN ?: PYPI_TOKEN pypi-->>script: 200 OK / 400 already-existsPrompt To Fix All With AI
Reviews (6): Last reviewed commit: "chore: release main" | Re-trigger Greptile