| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 2b7649c commit c0566d9
16 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | 1 | { | |
| 2 | - ".": "0.21.0", | ||
| 3 | - "adk": "0.21.0" | ||
| 2 | + ".": "0.22.0", | ||
| 3 | + "adk": "0.22.0" | ||
| 4 | 4 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -12,6 +12,24 @@ | |||
| 12 | 12 | ||
| 13 | 13 | * **tracing:** emit OTel metrics for async span queue depth, batch drain, and SGP export success/failure (HTTP status labels). Disable SDK-side recording with ``AGENTEX_TRACING_METRICS=0``. | |
| 14 | 14 | ||
| 15 | + ## 0.22.0 (2026-07-29) | ||
| 16 | + | ||
| 17 | + Full Changelog: [agentex-client-v0.21.0...agentex-client-v0.22.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.21.0...agentex-client-v0.22.0) | ||
| 18 | + | ||
| 19 | + ### Features | ||
| 20 | + | ||
| 21 | + * **lib:** capture client-attested build provenance ([#454](https://github.com/scaleapi/scale-agentex-python/issues/454)) ([8964044](https://github.com/scaleapi/scale-agentex-python/commit/896404475a1e93955eabd562caa1670364335c29)) | ||
| 22 | + | ||
| 23 | + | ||
| 24 | + ### Bug Fixes | ||
| 25 | + | ||
| 26 | + * **lib:** default 'agentex agents build' to --no-cache so stale layers can't ship stale source ([#476](https://github.com/scaleapi/scale-agentex-python/issues/476)) ([632d82c](https://github.com/scaleapi/scale-agentex-python/commit/632d82c2e4eeb1f7113b575b8666ffd53a1ab2eb)) | ||
| 27 | + | ||
| 28 | + | ||
| 29 | + ### Refactors | ||
| 30 | + | ||
| 31 | + * **lib:** remove the dead build-info.json registration read-path ([#455](https://github.com/scaleapi/scale-agentex-python/issues/455)) ([2078f9f](https://github.com/scaleapi/scale-agentex-python/commit/2078f9fabb3099fa2d5d02f67ed5af50b8efbc09)) | ||
| 32 | + | ||
| 15 | 33 | ## 0.21.0 (2026-07-28) | |
| 16 | 34 | ||
| 17 | 35 | Full Changelog: [agentex-client-v0.20.0...agentex-client-v0.21.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-client-v0.20.0...agentex-client-v0.21.0) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,13 @@ | |||
| 1 | 1 | # Changelog | |
| 2 | 2 | ||
| 3 | + ## 0.22.0 (2026-07-29) | ||
| 4 | + | ||
| 5 | + Full Changelog: [agentex-sdk-v0.21.0...agentex-sdk-v0.22.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.21.0...agentex-sdk-v0.22.0) | ||
| 6 | + | ||
| 7 | + ### Chores | ||
| 8 | + | ||
| 9 | + * **agentex-sdk:** Synchronize agentex versions | ||
| 10 | + | ||
| 3 | 11 | ## 0.21.0 (2026-07-28) | |
| 4 | 12 | ||
| 5 | 13 | Full Changelog: [agentex-sdk-v0.20.0...agentex-sdk-v0.21.0](https://github.com/scaleapi/scale-agentex-python/compare/agentex-sdk-v0.20.0...agentex-sdk-v0.21.0) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,7 +4,7 @@ | |||
| 4 | 4 | # (agentex/{__init__.py, _*.py, types/, resources/}) ships from the slim | |
| 5 | 5 | # sibling package `agentex-client` which is pinned as a runtime dep. | |
| 6 | 6 | name = "agentex-sdk" | |
| 7 | - version = "0.21.0" | ||
| 7 | + version = "0.22.0" | ||
| 8 | 8 | description = "Agent Development Kit (ADK) overlay for the Agentex API — FastACP server, Temporal workflows, LLM provider integrations, observability" | |
| 9 | 9 | license = "Apache-2.0" | |
| 10 | 10 | authors = [ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,7 +3,7 @@ | |||
| 3 | 3 | # overlay (formerly `src/agentex/lib/*`) now lives in `adk/` and ships | |
| 4 | 4 | # as the sibling `agentex-sdk` package — see `adk/pyproject.toml`. | |
| 5 | 5 | name = "agentex-client" | |
| 6 | - version = "0.21.0" | ||
| 6 | + version = "0.22.0" | ||
| 7 | 7 | description = "The official Python REST client for the Agentex API" | |
| 8 | 8 | dynamic = ["readme"] | |
| 9 | 9 | license = "Apache-2.0" | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | 1 | # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. | |
| 2 | 2 | ||
| 3 | 3 | __title__ = "agentex" | |
| 4 | - __version__ = "0.21.0" # x-release-please-version | ||
| 4 | + __version__ = "0.22.0" # x-release-please-version | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -127,6 +127,13 @@ def build( | |||
| 127 | 127 | None, | |
| 128 | 128 | help="Docker build argument in the format 'KEY=VALUE' (can be used multiple times)", | |
| 129 | 129 | ), | |
| 130 | + cache: bool = typer.Option( | ||
| 131 | + False, | ||
| 132 | + "--cache/--no-cache", | ||
| 133 | + help="Whether to use the build cache. Defaults to off so a stale cached layer " | ||
| 134 | + "can't silently ship source that no longer matches the checkout (notably when " | ||
| 135 | + "republishing a moving tag like ':latest'). Pass --cache to opt back in.", | ||
| 136 | + ), | ||
| 130 | 137 | ): | |
| 131 | 138 | """ | |
| 132 | 139 | Build an agent image locally from the given manifest. | |
@@ -155,6 +162,7 @@ def build( | |||
| 155 | 162 | secret=secret or "", # Provide default empty string | |
| 156 | 163 | tag=tag or "latest", # Provide default | |
| 157 | 164 | build_args=build_arg or [], # Provide default empty list | |
| 165 | + cache=cache, | ||
| 158 | 166 | ) | |
| 159 | 167 | if image_url: | |
| 160 | 168 | typer.echo(f"Successfully built image: {image_url}") | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -39,6 +39,7 @@ def build_agent( | |||
| 39 | 39 | secret: str | None = None, | |
| 40 | 40 | tag: str | None = None, | |
| 41 | 41 | build_args: list[str] | None = None, | |
| 42 | + cache: bool = False, | ||
| 42 | 43 | ) -> str: | |
| 43 | 44 | """Build the agent locally and optionally push to registry | |
| 44 | 45 | ||
@@ -49,6 +50,10 @@ def build_agent( | |||
| 49 | 50 | secret: Docker build secret in format 'id=secret-id,src=path-to-secret-file' | |
| 50 | 51 | tag: Image tag to use (defaults to 'latest') | |
| 51 | 52 | build_args: List of Docker build arguments in format 'KEY=VALUE' | |
| 53 | + cache: Whether to use the build cache. Defaults to False (passes --no-cache to | ||
| 54 | + buildx) so a stale cached layer can't silently ship source that no longer | ||
| 55 | + matches the checkout, notably when republishing a moving tag like ':latest'. | ||
| 56 | + Pass True to opt back in for faster local rebuilds. | ||
| 52 | 57 | ||
| 53 | 58 | Returns: | |
| 54 | 59 | The image URL | |
@@ -85,7 +90,10 @@ def build_agent( | |||
| 85 | 90 | "file": str(build_context.path / build_context.dockerfile_path), # type: ignore[operator] | |
| 86 | 91 | "tags": [image_name], | |
| 87 | 92 | "platforms": platforms, | |
| 93 | + "cache": cache, # cache=False -> `docker buildx build --no-cache` | ||
| 88 | 94 | } | |
| 95 | + if not cache: | ||
| 96 | + logger.info("Build cache disabled (--no-cache)") | ||
| 89 | 97 | ||
| 90 | 98 | # Add Docker build args if provided | |
| 91 | 99 | if build_args: | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -37,8 +37,6 @@ class EnvVarKeys(str, Enum): | |||
| 37 | 37 | HEALTH_CHECK_PORT = "HEALTH_CHECK_PORT" | |
| 38 | 38 | # Auth Configuration | |
| 39 | 39 | AUTH_PRINCIPAL_B64 = "AUTH_PRINCIPAL_B64" | |
| 40 | - # Build Information | ||
| 41 | - BUILD_INFO_PATH = "BUILD_INFO_PATH" | ||
| 42 | 40 | AGENT_INPUT_TYPE = "AGENT_INPUT_TYPE" | |
| 43 | 41 | # Deployment | |
| 44 | 42 | AGENTEX_DEPLOYMENT_ID = "AGENTEX_DEPLOYMENT_ID" | |
@@ -87,8 +85,6 @@ class EnvironmentVariables(BaseModel): | |||
| 87 | 85 | HEALTH_CHECK_PORT: int = 80 | |
| 88 | 86 | # Auth Configuration | |
| 89 | 87 | AUTH_PRINCIPAL_B64: str | None = None | |
| 90 | - # Build Information | ||
| 91 | - BUILD_INFO_PATH: str | None = None | ||
| 92 | 88 | # Deployment | |
| 93 | 89 | AGENTEX_DEPLOYMENT_ID: str | None = None | |
| 94 | 90 | # Claude Agents SDK Configuration | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -24,6 +24,7 @@ | |||
| 24 | 24 | from agentex.lib.utils.io import load_yaml_file | |
| 25 | 25 | from agentex.lib.utils.logging import make_logger | |
| 26 | 26 | from agentex.config.agent_manifest import AgentManifest # noqa: F401 | |
| 27 | + from agentex.lib.utils.build_provenance import iter_context_files | ||
| 27 | 28 | ||
| 28 | 29 | logger = make_logger(__name__) | |
| 29 | 30 | ||
@@ -189,12 +190,11 @@ def zipped(root_path: Path | None = None) -> Iterator[IO[bytes]]: | |||
| 189 | 190 | ||
| 190 | 191 | tar_buffer = io.BytesIO() | |
| 191 | 192 | ||
| 193 | + # Sorted, relpath-stable enumeration (shared with the content hash) so the | ||
| 194 | + # archive's member order is deterministic across machines. | ||
| 192 | 195 | with tarfile.open(fileobj=tar_buffer, mode="w:gz") as tar_file: | |
| 193 | - for path in Path(root_path).rglob( | ||
| 194 | - "*" | ||
| 195 | - ): # Recursively add files to the tar.gz | ||
| 196 | - if path.is_file(): # Ensure that we're only adding files | ||
| 197 | - tar_file.add(path, arcname=path.relative_to(root_path)) | ||
| 196 | + for path in iter_context_files(Path(root_path)): | ||
| 197 | + tar_file.add(path, arcname=path.relative_to(root_path)) | ||
| 198 | 198 | ||
| 199 | 199 | tar_buffer.seek(0) # Reset the buffer position to the beginning | |
| 200 | 200 | yield tar_buffer | |
| Back | FazBrowse Home | New Git URL |
0 commit comments