Skip to content

chore: release main - #475

Merged
deepthi-rao-scale merged 4 commits into
mainfrom
release-please--branches--main--changes--next
Jul 29, 2026
Merged

chore: release main#475
deepthi-rao-scale merged 4 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app

@stainless-app stainless-app Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

✨ Stainless prepared a new release

agentex-client: 0.22.0

0.22.0 (2026-07-29)

Full Changelog: agentex-client-v0.21.0...agentex-client-v0.22.0

Features

  • lib: capture client-attested build provenance (#454) (8964044)

Bug Fixes

  • lib: default 'agentex agents build' to --no-cache so stale layers can't ship stale source (#476) (632d82c)

Refactors

  • lib: remove the dead build-info.json registration read-path (#455) (2078f9f)
agentex-sdk: 0.22.0

0.22.0 (2026-07-29)

Full Changelog: agentex-sdk-v0.21.0...agentex-sdk-v0.22.0

Chores

  • agentex-sdk: Synchronize agentex versions

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 release (0.22.0) bundles three merged PRs: client-attested build provenance capture, defaulting agentex agents build to --no-cache, and removal of the old build-info.json registration read-path.

  • Build provenance (build_provenance.py): new module computes a deterministic working-tree hash over sorted files/symlinks and collects git coordinates (commit, ref, remote, dirty flag, author). All failures degrade gracefully to None so they never break a build. iter_context_files is also reused in BuildContextManager.zipped() to make the tar archive order deterministic and consistent with the hash.
  • --no-cache default: agentex agents build now passes cache=False to docker.buildx.build() (confirmed: python_on_whales maps this to --no-cache), preventing stale cached layers from silently shipping outdated source. Users can opt back in with --cache.
  • Dead-code removal: FastACP.locate_build_info_path(), get_build_info(), BUILD_INFO_PATH env var, and related env model field are all removed; registration metadata now starts from an empty dict.

Confidence Score: 4/5

Functionally correct but the committed uv.lock is one version behind pyproject.toml, which will break any CI job using uv sync --frozen.

The new provenance module is well-written and gracefully degrades, the --no-cache default is correctly wired through python_on_whales, and the dead-code removal is clean. The only blocker is that uv.lock still records 0.21.0 while pyproject.toml now says 0.22.0 — any frozen-lock CI step will fail until uv lock is re-run and the result committed.

Files Needing Attention: uv.lock needs to be regenerated with uv lock to reflect the 0.22.0 version bump before this can merge without breaking CI.

Important Files Changed

Filename Overview
uv.lock Lock file updated to 0.21.0 for both packages, but pyproject.toml now declares 0.22.0 — the lock file is one version behind, which will cause uv sync --frozen to fail in CI
src/agentex/lib/utils/build_provenance.py New module capturing git coordinates, working-tree hash, and author metadata for client-attested build provenance; generally well-structured with graceful degradation
src/agentex/lib/cli/handlers/agent_handlers.py Adds cache=False default to build_agent(); python_on_whales confirmed to accept a cache bool that maps to --no-cache when False — implementation is correct
src/agentex/lib/cli/commands/agents.py Adds --cache/--no-cache Typer option defaulting to False; wired correctly into build_agent() call
src/agentex/lib/sdk/config/agent_manifest.py Replaces ad-hoc rglob in zipped() with iter_context_files() to share the deterministic ordering used by the content hash; now includes symlinks (already noted in previous thread)
src/agentex/lib/utils/registration.py Removes dead get_build_info() path; registration metadata now starts from an empty dict and is populated from deployment env var and agent card only
src/agentex/lib/sdk/fastacp/fastacp.py Removes the now-dead locate_build_info_path() static method and its call from create(); clean removal with no side effects
src/agentex/lib/environment_variables.py Removes BUILD_INFO_PATH from EnvVarKeys enum and EnvironmentVariables model; straightforward dead-code removal
tests/lib/test_build_provenance.py Comprehensive new test suite covering hash ordering, executable-bit sensitivity, symlinks, detached HEAD, monorepo subpath, non-git dirs, and error resilience
tests/lib/test_agent_card.py Updates three registration tests to remove the now-removed get_build_info patch

Sequence Diagram

sequenceDiagram
    participant CLI as agentex agents build
    participant AH as agent_handlers.build_agent()
    participant BP as build_provenance
    participant BCM as BuildContextManager
    participant Docker as docker.buildx.build()

    CLI->>AH: "build_agent(manifest, ..., cache=False)"
    AH->>BCM: build_context_manager(manifest, root)
    BCM->>BP: iter_context_files(root)
    BP-->>BCM: sorted [files + symlinks]
    BCM->>BCM: zipped() → tar.gz archive
    BCM-->>AH: build_context
    AH->>Docker: "buildx.build(cache=False, ...)"
    Note over Docker: --no-cache flag sent to Docker
    AH->>BP: capture_build_provenance(repo_path, context_root)
    BP->>BP: _git rev-parse, symbolic-ref, log
    BP->>BP: working_tree_hash(root)
    BP-->>AH: "BuildProvenance{commit, ref, dirty, hash, ...}"
    AH->>AH: provenance.source_fields() → upload form fields
Loading

Fix All in Cursor Fix All in Claude Code Fix All in Codex

Prompt To Fix All With AI
### Issue 1
uv.lock:17-19
**Lock file one version behind pyproject.toml**

After this PR lands, `pyproject.toml` declares `0.22.0` for both packages but `uv.lock` records `0.21.0`. Any CI step that runs `uv sync --frozen` (which locks the environment to the committed lock file) will fail immediately with a "lock file out of date" error, because uv detects the version mismatch between the workspace member's `pyproject.toml` and what the lock file expects. Run `uv lock` locally and commit the refreshed `uv.lock` to fix this.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (3): Last reviewed commit: "chore: release main" | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Nitesh Dhanpal <NiteshDhanpal@users.noreply.github.com>
Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
@socket-security

socket-security Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​agentex-client@​0.17.0 ⏵ 0.21.099 +1100100100100

View full report

Comment thread src/agentex/lib/utils/build_provenance.py
Comment thread src/agentex/lib/sdk/config/agent_manifest.py
…#455)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
deepthi-rao-scale and others added 2 commits July 29, 2026 16:51
…s can't ship stale source (#476)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@stainless-app
stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 36cc1a8 to ed44857 Compare July 29, 2026 20:52
Comment thread uv.lock
@deepthi-rao-scale
deepthi-rao-scale enabled auto-merge (squash) July 29, 2026 21:13
@deepthi-rao-scale
deepthi-rao-scale merged commit c0566d9 into main Jul 29, 2026
51 checks passed
@deepthi-rao-scale
deepthi-rao-scale deleted the release-please--branches--main--changes--next branch July 29, 2026 21:20
@stainless-app

stainless-app Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

@stainless-app

stainless-app Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants