Skip to content

Upgrade vendor SDKs, including Codex 0.144.4 - #56

Draft
ebarti wants to merge 10 commits into
mainfrom
sdk-evolution-upgrade-20260728-164307
Draft

Upgrade vendor SDKs, including Codex 0.144.4#56
ebarti wants to merge 10 commits into
mainfrom
sdk-evolution-upgrade-20260728-164307

Conversation

@ebarti

@ebarti ebarti commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

Upgrade every monitored vendor runtime to the current audited release:

  • claude-agent-sdk: 0.2.106 -> 0.2.128
  • openai-codex: 0.1.0b3 -> 0.144.4
  • openai-codex-cli-bin: 0.137.0a4 -> 0.144.4
  • google-antigravity: 0.1.4 -> 0.1.8

This branch is reconciled with main at d649ffb57bb1588a5b452f125b47870af979d24e, after the SDK-evolution workflow stack landed.

The repository-wide eight-day freshness delay remains in place for ordinary dependencies. The four monitored SDK/runtime packages are explicitly exempted in the audited evolution workflow and project lock policy, and the Codex SDK range is widened to admit the current 0.144.x line.

Evolution evidence

Report-only completed before implementation from a clean transition baseline using the locked Codex extra, supported local Codex authentication, explicit candidate inspection, and package-scoped freshness bypasses.

  • API snapshots: pass (8 snapshots, 0 import/execution errors)
  • API diffs: 4
  • Behavior summary: changed
  • Breaking contracts: 0
  • Contract failures: 0
  • Probe errors, skipped probes, missing comparisons, malformed evidence: 0
  • Manual design required: false
  • Recursive self-adaptation impact: false
  • Safe to implement: true
  • Reviewer: pass, with no required changes

Observed compatible drift:

  • Claude adds CanUseToolShadowedWarning and ModelUsage, and changes ResultMessage.
  • Codex changes CodexConfig; required thread start/run parameters remain present.
  • The Codex CLI binary probe remains passing and resolves a regular-file bundled executable.
  • Antigravity adds LiteRTAgentConfig, LiteRTBackend, LocalOpenAIAgentConfig, proto, and utils, and changes AgentConfig / LocalAgentConfig while preserving required fields.

No adapter redesign was required. Vendor-specific additions remain explicit rather than being flattened into the common API.

Implementation and verification

The implementation stage repeated the evidence and reviewer gates, then applied the four-package lock refresh.

  • env -u UV_EXCLUDE_NEWER -u UV_EXCLUDE_NEWER_PACKAGE uv lock --check
  • env -u UV_EXCLUDE_NEWER -u UV_EXCLUDE_NEWER_PACKAGE uv run --locked ruff check .
  • env -u UV_EXCLUDE_NEWER -u UV_EXCLUDE_NEWER_PACKAGE uv run --locked mypy
  • env -u UV_EXCLUDE_NEWER -u UV_EXCLUDE_NEWER_PACKAGE uv run --locked pytest
  • Result: 492 passed, 8 skipped
  • Installed package versions match all four target versions.
  • The bundled executable reports codex-cli 0.144.4.

Safety and uncertainty

  • Draft PR only; no auto-merge or release publication.
  • Real analysis/review stages used the Codex SDK runtime with supported local authentication.
  • Candidate probes cover imports, API shape, adapter contracts, and binary distribution; they do not prove full live vendor execution, streaming, permissions, or tool-calling behavior across all providers.
  • Official Codex sources were fetched, but no package-version-specific release-note text matching 0.144.4 was found. The reviewer classified this as explicit non-blocking uncertainty because the candidate adapter and bundled-binary contracts pass.

@ebarti

ebarti commented Jul 28, 2026

Copy link
Copy Markdown
Owner Author

Final verification update for head 060faab:

  • Added the omitted critical Codex upgrade: openai-codex 0.1.0b3 -> 0.144.4 and openai-codex-cli-bin 0.137.0a4 -> 0.144.4.
  • Advanced Claude to 0.2.128 and Antigravity to 0.1.8.
  • Kept the repository-wide eight-day freshness policy, with explicit exemptions only for the four monitored vendor packages.
  • Corrected the Codex CLI API snapshot module to codex_cli_bin.
  • Report-only compatibility review: all adapter probes passed; breaking contract count 0; safe to implement.
  • Local verification: lock check, Ruff, mypy, and pytest all passed (419 passed, 3 skipped).
  • Installed packages and bundled executable independently report Codex 0.144.4.
  • The first corrected CI head exposed non-portable multiline inline TOML syntax. Commit 060faab converts that mapping to a standard nested table; tomllib parsing and isolated project builds pass on Python 3.11, 3.12, and 3.13, and the pip/no-lock wheel build path passes on Python 3.12.
  • Replacement CI is green across Python 3.10-3.13 core/all, pip/no-lock installation, and declared dependency floors.

The draft PR is mergeable and current with main; it has not been merged or released.

@ebarti ebarti changed the title Run SDK evolution update across vendor packages Upgrade vendor SDKs, including Codex 0.144.4 Jul 28, 2026
ebarti added 7 commits July 28, 2026 17:32
## Summary

- records the reproduced false-green and missing-baseline failure modes
on current `main`
- defines the evidence invariants, First Principles model, Five Whys,
and owning fix layers
- lays out a five-PR delivery stack with exact files, tests, acceptance
criteria, and report-only rehearsals
- keeps the replacement stack independent of stale open PRs #19 and #40

## Why

The Agent SDK stages execute successfully, but the documented evolution
workflow can label ambient import failures as locked SDK evidence,
collapse incomplete probes into a passing headline, and permanently fail
CLI-binary snapshots through the wrong module name. The repair needs to
preserve the explicit candidate-inspection and credential-scrubbing
boundary while making the supported command actionable.

## Stack

This is PR 1 of 5 and contains planning documentation only. The
implementation branches will be based in order on this branch:

1. truthful locked-baseline collection
2. fail-closed evidence summaries and exact transition gates
3. Codex CLI binary introspection
4. actionable runtime-specific operator commands and documentation
conformance

## Validation

- `git diff --cached --check`
- reviewed against `origin/main` at `2e7e4c3`
- checked against the current implementation, tests, documentation, and
live PR topology
## Summary

- treat `uv.lock` as the authoritative SDK baseline during explicit
candidate inspection
- isolate locked baselines when the matching SDK is absent or the
ambient environment has drifted
- keep non-opt-in runs honest by recording the actual ambient version
instead of stamping it as locked
- convert isolated API snapshot setup, install, execution, timeout, and
malformed-output failures into bounded evidence

## Stack

- Depends on #51
- This is layer 2 of 5 in the SDK evolution demo reliability stack

## Review boundary

This layer repairs baseline provenance and snapshot collection only.
Behavior-probe subprocess failures and the final `fail > incomplete >
changed > pass` assessment are intentionally implemented together in the
next layer so incomplete evidence cannot temporarily appear green.

## Validation

- `PYTHONPATH=. .venv/bin/python -m pytest -q` — 421 passed, 12 skipped
- `.venv/bin/ruff check .`
- `.venv/bin/mypy`
- `uv lock --check`
- `git diff --check`
## Summary

- parse resolver updates once as exact package/from/to transitions and
reuse them across collection and deterministic gates
- derive canonical locked-baseline expectations from collected package
evidence, including no-update runs
- contain isolated behavior setup, install, execution, timeout, and
malformed-output failures as bounded structured evidence
- compute `fail > incomplete > changed > pass` from raw probes, diffs,
full probe pairing, and trusted expectations
- recompute the canonical assessment for reports and implementation
gates instead of trusting a cached headline
- persist `behavior_summary.json`, include it in the current-state
manifest, and surface snapshot/behavior errors and reasons in the
Markdown report
- require exact API-diff transitions and fail closed on missing,
malformed, contradictory, incomplete, or breaking behavior evidence

## Stack

- Depends on #52
- This is layer 3 of 5 in the SDK evolution demo reliability stack

## Review notes

The layer received a two-pass correctness review. Review findings
covered drifted no-update baselines, contradictory cached summaries,
malformed nested details, failure precedence, partial probe sets, empty
self-declared expectation scope, and real breaking-payload coverage; all
were repaired and re-reviewed with no remaining actionable findings.

## Validation

- `PYTHONPATH=. .venv/bin/python -m pytest -q` — 449 passed, 12 skipped
- focused SDK evolution suite — 90 passed
- `.venv/bin/ruff check .`
- `.venv/bin/mypy`
- `uv lock --check`
- `git diff --check`

Security-diff scans were intentionally not part of this phase review.
## Summary

- map the `openai-codex-cli-bin` distribution to its real
`codex_cli_bin` import module
- use that module consistently for current and isolated API snapshots
- require metadata, module import, `bundled_codex_path()`, and an
existing regular file before the binary probe passes
- preserve the `binary-distribution` probe identity for every in-process
and embedded failure path
- keep success evidence stable without persisting temporary executable
paths
- serialize binary-probe failures with bounded exception context while
redacting everything from the first absolute POSIX, drive, UNC, or URL
path start

## Stack

- Depends on #53
- This is layer 4 of 5 in the SDK evolution demo reliability stack

## Review notes

Two correctness passes covered wrong-module snapshots,
metadata/import/helper/conversion/file-check failures, invalid helper
returns, regular-file semantics, embedded probe labels, cross-platform
path forms, diagnostic bounds, and path-bearing messages with spaces. No
actionable findings remain.

## Validation

- `PYTHONPATH=. .venv/bin/python -m pytest -q` — 477 passed, 8 skipped
- SDK evolution test file — 114 passed
- Codex CLI focused selection — 23 passed
- real installed locked Codex wheel snapshot/probe — passed
- `.venv/bin/ruff check .`
- `.venv/bin/mypy`
- `git diff --check`

Security-diff scans were intentionally not part of this phase review.
## Summary

- make every supported operator command use a locked uv environment and
the matching runtime extra
- require explicit candidate inspection for actionable report and
implementation passes
- document deterministic behavior-summary handoff and stop conditions
- add structural command-conformance tests that reject bare, compound,
commented, echoed, or runtime/extra-mismatched examples

## Stack

This is PR 5 of 5 and is based on agent/sdk-evolution-cli-bin-snapshots.

## Validation

- uv lock --check
- uv run --locked ruff check .
- uv run --locked mypy
- uv run --locked pytest -q: 491 passed, 8 skipped
- focused operator-doc conformance: 14 passed
- ordinary correctness review: clean after two repair passes
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