Skip to main content

Week of August 16, 2026

Agent Client 0.29.0

Grok, Codex, and Antigravity now return a real tool trajectory through the same facade contract Claude has always honoured.
  • All three providers publish their parsed run trajectory through AgentClientResponse.getPhaseCapture(); live facade integration gates verify each one returns a capture containing tool uses, and offline model tests assert capture is additive rather than a replacement for the provider’s terminal result
  • Grok reads its native streaming-json ACP stream, Antigravity its stream-json, and Codex harvests its durable rollout JSONL after execution, matching the file by session id or working directory with a bounded wait for delayed flushes
  • The adapters consume the released Agent Journal 1.8.0 capture modules, so capture stays provider-owned and agent-model and the production surface of agent-client-core take on no journal dependency
  • LOOSE-mode Codex execution is repaired: current Codex versions reject --full-auto after exec, so full-auto now maps to the global --sandbox workspace-write and --ask-for-approval never options and stays distinct from the unrestricted bypass level, which portable auto-approve no longer grants implicitly
  • All 29 modules are published, agent-tck included
Project | What’s New | Source

Agent Journal 1.8.0

Tool-trajectory capture for three more CLIs, each parsed from its own durable stream.
  • New grok-cli-capture, codex-cli-capture, and antigravity-cli-capture modules turn each CLI’s JSONL into ordered ToolCallEvent and StepCostEvent records with stable tool-call identities
  • Codex capture sidesteps the outer-exec trap by classifying the nested payload.input call, assigning names such as Search, Read, Inspect, Test, Build, and Git, and falling back to Shell — with the raw command retained — wherever shell syntax makes the intent ambiguous
  • Grok’s stream has no durable turn-to-tool cost join, so its real session total is kept and split evenly across captured steps; Codex and Antigravity report no monetary cost at all, and say so explicitly with costAvailable=false
  • Gemini CLI capture remains turn-level and is deliberately excluded from the multi-CLI tool-trajectory claim
  • Additive on the existing event and trace contracts; 488 tests pass across the seven-module reactor
Project | What’s New | Source

Agent Client 0.28.0

Two new CLI providers, both carried through the full parity TCK.
  • A Grok CLI provider — agent-grok, grok-cli-sdk, agent-starter-grok — whose headless runs return a real JSON envelope, so session id, token usage and a genuine per-run USD cost are read rather than scraped, and a caller-supplied session UUID makes resume possible without recovering an id from output
  • An Antigravity provider for Google’s agy — agent-antigravity, antigravity-cli-sdk, agent-starter-antigravity — which declares its working directory with --add-dir so the CLI cannot divert writes to a shared scratch directory while reporting success
  • Antigravity run success is derived from whether work was produced and nothing was refused, not from its status field, which reports ERROR alongside complete and correct responses; soft denials are detected from both the result envelope and stderr
  • GROK and ANTIGRAVITY join the provider parity TCK and pass all ten scenarios each against live CLIs, with zero skips and zero failures. CI cannot re-verify them because both CLIs authenticate interactively and cache credentials rather than reading an API key
Project | What’s New | Source

AgentWorks BOM 1.16.0

The managed set catches up across the whole portfolio.
  • Repins the Agent Client family to 0.28.0, bringing the Grok and Antigravity providers into the managed set
  • Repins Agent Journal 1.7.0, Agent Hooks 0.7.0, Agent Judge 0.15.0, Agent Sandbox 0.10.0, Agent Bench 0.6.0, Agent Experiment 0.6.0, Agent Memory 0.4.0, Claude Agent SDK 1.5.0, and the acp-java family 0.15.0
  • Drops loopy from the managed set; it ships an executable distribution and is depended on directly
  • The BOM tracks a set verified together, so it trails the newest individual releases — Agent Client 0.29.0 and Agent Journal 1.8.0 must be declared explicitly
Project | What’s New | Source

ACP Java SDK 0.15.0

Notifications arrive in order and survive a graceful close; the published closure and the license are now what they claim to be.
  • Incoming notifications are serialized through a sink drained by concatMap, so a handler doing async work no longer observes rapid session/update chunks out of order (reported and fixed by @ljiro)
  • closeGracefully() waits for queued notifications to drain before tearing the session down, bounded by the session requestTimeout; previously the whole backlog could be discarded on close
  • Jackson 2.21.5 and Jetty 12.0.37 clear 17 known advisories (5 high) reaching consumers as compile-scope transitives
  • LICENSE is now the verbatim Apache 2.0 — the previous file omitted the Trademarks section and rewrote the copyright grant — and LICENSE plus NOTICE ship under META-INF in every artifact
  • Three *IT classes that mvn verify had never executed now run in CI
Project | What’s New | Source

Agent Client 0.27.0

Agent Client now verifies the dependency graph that published consumers actually receive.
  • Direct Jackson and Log4j declarations preserve the accepted security floors after child POM flattening instead of relying on source-reactor parent management
  • A generated CI gate discovers every published runtime module and resolves fresh one-coordinate, no-parent, no-BOM consumer closures before accepting the build
  • The compatible dependency train moves to Claude SDK 1.5.0, Agent Journal and Capture 1.7.0, and Agent Sandbox Core 0.10.0 while retaining Java 21
  • Current source headers and all published archive license payloads now agree with the Mark Pollack BSL distribution while retaining Apache history; immutable 0.26.0 artifacts are disclosed, not described as rebuilt
Project | What’s New | Source

Loopy 0.5.0

Loopy’s distribution is repaired: there is now an executable jar you can actually download and a library jar you can actually depend on.
  • Releases publish loopy-0.5.0-exec.jar as a GitHub Release asset and a plain library jar to Maven Central; the coordinate was previously a Spring Boot fat jar nothing could compile against, and no release had a downloadable asset attached
  • loopy and loopy.bat launchers locate the jar and set the JVM flags Loopy expects, and jbang loopy@markpollack/loopy works for the first time
  • Spring AI moves to 2.0.0 GA with agent-utils 0.10.0 and workflow-core 0.10.0, alongside Spring Boot 4.1.0 — Loopy was the last member on a Spring AI milestone
  • --help and --version no longer require an API key, and --version reports the real version instead of the hardcoded 0.1.0-SNAPSHOT every release since 0.2.0 announced
Project | What’s New | Source

Agent Hooks 0.7.0

Consumer-safe runtime closures, honest Java boundaries, and release-complete artifacts.
  • Standalone no-BOM consumers now resolve Jackson 2.21.6 and 3.1.6 through direct nearest-wins floors, including the actual Hooks-plus-supplied-Claude-SDK 1.5.0 shape
  • Published POMs no longer inject snapshot or milestone repositories into downstream builds, and every distributed archive now contains the BSL 1.1 license text
  • The Claude adapter declares its real Java 21 requirement while core, Spring, and Gemini remain Java 17; hook-failure and observation-only steering warnings are now visible
  • The parent publishes one aggregate CycloneDX 1.6 SBOM, release workflows are immutably pinned, and public Central consumer closures have zero findings
Project | What’s New | Source

Agent Memory 0.4.0

First BSL 1.1 release, consumer-safe Jackson resolution, a published SBOM, and an honest operating boundary.
  • 0.4.0 and later are Business Source License 1.1; 0.3.0 and earlier remain Apache 2.0, and published artifacts are not retroactively relicensed
  • Jackson 3 core and databind are declared directly on memory-core so standalone no-BOM consumers resolve 3.1.6 by nearest-wins, with a committed CI resolution gate
  • The parent artifact publishes one aggregate CycloneDX 1.6 SBOM; hosted OWASP/NVD scanning is removed in favour of a local offline Trivy procedure
  • The store is documented as local, plaintext and single-writer, with no locking, atomic index replacement or crash recovery
  • Overstated research figures are removed from the project page; the surviving measurements are labelled as one wiggum-memory research run of a different implementation
Project | What’s New | Source

Agent Experiment 0.6.0

Workflow-backed experiments, first-class journal evidence, and a consumer-safe release graph.
  • The new experiment-workflow module adapts typed Agent Workflow executions and step cost/token evidence to the AgentInvoker contract
  • AgentExperiment now owns the per-item Agent Journal lifecycle, while stored results use normalized Experiment-owned judgments and automatically read the older 0.5/Judge 0.13 format
  • Standalone consumers resolve Journal/Capture 1.7.0, Jackson 2.21.6, and Jackson 3.1.6 without a BOM; the verified 25-, 26-, and 57-JAR closures have zero findings
  • The Java 21 release passed 544 tests and publishes signed binaries, sources, Javadocs, and one aggregate CycloneDX 1.6 SBOM
Project | What’s New | Template | Source

Agent Journal 1.7.0

CVE-clear standalone resolution, license-complete artifacts, and a published SBOM.
  • Ordinary no-BOM consumers now resolve Jackson 2.21.6 and, for Claude capture’s transitive Jackson 3 path, 3.1.6 through direct nearest-wins dependencies
  • Every binary and source JAR now carries META-INF/LICENSE, every Javadoc JAR carries resources/LICENSE, and the BSL 1.1 terms are unchanged
  • The parent artifact now publishes one aggregate CycloneDX 1.6 JSON SBOM covering all three modules and their shipped dependency closure
  • Capture-module POMs now declare their actual Java 21 runtime requirement while journal-core remains Java 17; APIs and stream schemas are unchanged
Project | What’s New | Source

Agent Client 0.26.0

A smaller, supportable Agent Client surface for the current provider generation.
  • Claude Code, Codex, and Gemini CLI remain the actively verified provider set, with all three live parity jobs passing at the reviewed release candidate
  • The abandoned Vendir context advisor and Git-repository DSL are removed as an intentional breaking cleanup
  • The stale agents-runtime container build and Docker TCK are retired; Agent Client is now a Maven-only library distribution
  • Jackson and Log4j security pins, immutable release-workflow references, complete BSL text, and exact-SHA SBOM/security evidence prepare the repository for diligence review
Project | What’s New | Source

Agent Judge 0.14.0

Status-first, portable evaluation that preserves what every judge and composite stage actually reported.
  • The normalized Judgment model keeps PASS, FAIL, ABSTAIN, and ERROR distinct while treating score and classification as independent optional facts
  • Named composite attempts preserve stage identity, relation, policy, returned judgments, and code-only failure evidence without fabricating a verdict
  • Portable metadata, aggregation evidence, timing, and six token-usage quantities survive JSON and process boundaries
  • Framework bridges cover Spring AI 2.0.0, LangChain4j 1.19.0, Koog 1.1.1, and Agent Client 0.25.0; the public ten-module tutorial exercises the contract without credentials
Project | What’s New | Source

Week of June 29, 2026

Agent Journal 1.6.0

First-class capture primitives + a cost-metering correction. Slice 1 of the cross-repo journal-capture contract ships the §4 primitives downstream repos import, alongside a fix that roughly halves a long-run cost-accounting error.
  • New primitives: PhaseCapture.stepCosts(), JournalSteps.fromEvents(), a production fail-loud RunRecorder, and per-turn usage in the immutable log
  • Cost-metering fix: the headline LLMCallEvent.tokenUsage is now the cost-bearing Σ-per-turn-by-type aggregate (incl. cache) instead of the last-ResultMessage snapshot, which under-counted ~2× on long runs — same field, corrected value, no schema change
  • A per-file schemaVersion header on events.jsonl / analysis.jsonl (loaders skip it)
  • Additive on the frozen capture contract — a 1.5.0 consumer keeps working; 482 tests green
  • Project | What’s New | Source

AgentWorks BOM 1.13.0

Repins Agent Journal to 1.6.0. A focused, journal-only bump behind the usual gate.
  • All three journal artifacts (journal-core, claude-code-capture, gemini-cli-capture) → 1.6.0; every other member unchanged
  • Published behind the CI-enforced bom-verification gate (plain / Boot 3.5 / Boot 4), re-verified from Central post-publish
  • Version Table | Source

Week of June 15, 2026

Agent Journal 1.5.0

First-class Gemini CLI capture. The new gemini-cli-capture module projects Gemini runs into the same portable trace + cost schema as Claude, so one analysis layer reads both runtimes — plus per-step cost attribution.
  • New gemini-cli-capture module — cross-runtime capture into one trace + cost format
  • Per-step cost attribution (StepCostEvent, analysis.jsonl sidecar); portable TraceWriter moved into journal-core
  • Project | What’s New | Source

AgentWorks BOM 1.10.0 → 1.12.0

CVE remediation locked in, then the Gemini capture cut. Three BOM releases close out the Spring AI 2.0 security work and add the new journal member.
  • 1.10.0 / 1.11.0 (Jun 15): repin the source-fixed members to lock in the CVE remediation — claude-code-sdk 1.4.0, workflow 0.10.0, Spring AI BOM 2.0.0 backstop
  • 1.12.0 (Jun 17): repin Agent Journal to 1.5.0 and add gemini-cli-capture as a managed member — the first BOM release through the CI-gated release.yml (pre-publish gate + post-publish FINAL_PROOF)
  • Version Table | Source

Week of June 8, 2026

AgentWorks BOM 1.9.0

Suite-wide security release: Spring AI 2.0 GA convergence, four CVEs cleared. The BOM moves the suite onto Spring AI 2.0.0 GA and Spring Boot 4.0.7, and adds Jackson 3 and Reactor management so consumers resolve a vulnerability-free, converged dependency set — proven end-to-end against the published artifacts by the bom-verification gate.
  • Clears Spring Boot CVE-2026-40976 (CRITICAL) and -40973 (HIGH), Spring AI CVE-2026-41712 (HIGH), and Jackson CVE-2026-29062 (HIGH)
  • New managed import tools.jackson:jackson-bom 3.1.4 — converges Spring AI 2.0’s transitive Jackson 3 (its jsonschema-generator pulls jackson-core 3.0.3) up to a CVE-clear 3.1.4
  • New managed reactor-core 3.8.6 — reconciles claude-code-sdk’s 3.8.5 with Spring AI 2.0’s 3.8.6, a RequireUpperBoundDeps break the gate caught
  • Preceded by 1.8.0 (Jun 11), which cleared the long-deferred ACP bump to 0.14.0
  • Version Table | Source

Agent Client 0.22.0

Spring AI 2.0.0 GA + Spring Boot 4.0.7. The upgrade behind BOM 1.9.0 — primarily a security and dependency release, with one user-facing behavior change.
  • spring-ai 2.0.0-M2 → 2.0.0 GA and spring-boot 4.0.1 → 4.0.7, clearing the transitive Boot / Spring AI CVEs above
  • Spring AI 2.0 GA moved to Jackson 3, so agent-model, agent-claude, agent-codex, and agent-client-core now declare their Jackson 2 usage explicitly (governed by jackson-bom 2.21.2)
  • Default Gemini model upgraded to gemini-3.5-flash; override with agent-client.gemini.model
  • Project | Source

Week of June 1, 2026

AgentWorks BOM 1.6.0

The bom-verification quality gate lands, with Jackson 2.21.2 convergence. The largest coordinated release of the week — nearly every member moved — and the first to publish behind an automated gate that proves consumers get a single, converged dependency set.
  • New bom-verification/ harness: plain, Spring Boot 3.5, and Spring Boot 4 consumer scenarios with a JacksonConvergenceTest and the enforcer RequireUpperBoundDeps rule; releases now publish only behind a green gate
  • Imports jackson-bom 2.21.2, converging every member and shielding consumers from stray third-party Jackson transitives
  • The gate is load-bearing — re-running it against 1.5.0 fails on the exact Jackson divergence 1.6.0 fixes
  • Bookended by 1.5.0 (Jun 4, a managed test stack — Mockito / JUnit / AssertJ / Byte Buddy) and 1.7.0 (Jun 7, agent-client 0.21.0)
  • Coordinated bump: claude-code-sdk 1.3.0, agent-client / agent-starter 0.20.0, agent-workflow 0.9.0, agent-judge 0.12.0, agent-memory 0.2.0, agent-journal 1.4.0, agent-hooks 0.6.3, agent-sandbox 0.9.3, agent-bench 0.4.0, experiment-core 0.5.0
  • Version Table | Source

Agent Client 0.21.0

Portable reasoning-effort control across providers. A new provider-agnostic effort option (low / medium / high), with provider-native overrides — and the Provider Parity TCK now actually runs (it had been reporting green without ever executing).
  • AgentOptions.getEffort() — the cross-provider low/medium/high intersection, covered by the TCK
  • Provider-native overrides win when set: Claude ClaudeAgentOptions.effort (→ --effort), Codex CodexAgentOptions.reasoningEffort up to xhigh
  • 0.20.0 (Jun 6) shipped first: Claude trace content modes — traceContentMode(FULL | TRUNCATED | LENGTHS) — and automatic session-transcript archival, powered by agent-journal’s TraceWriter v2
  • Portable Options | Source

Claude Agent SDK 1.3.0

Aligned to Claude CLI 2.1.162, with a lossless rawJson escape hatch. A compatibility-and-hardening release that pins the wire contract and exposes wire fields the typed API doesn’t model yet.
  • ParsedMessage.RegularMessage gains a rawJson component carrying the exact stdout line each message was parsed from — backward compatible
  • All six HookInput subtypes now ignore unknown properties, fixing a hook hang under CLI 2.1.162’s added PostToolUse fields
  • New WireFixtureTest pins parsing against real 2.1.162 stream-json fixtures
  • Project | Source

Agent Workflow 0.9.0

A tool-agnostic Question / Option callback record. The AgentCallback.onQuestion SPI no longer leaks a tool-library type, and the judge integration completes its move to the io.github.markpollack namespace.
  • New workflow.callback.Question record (with nested Option) owned by workflow-api, replacing the leaked AskUserQuestionTool.Question; the spring-ai-agent-utils dependency drops out of workflow-api
  • Judge integration migrated to io.github.markpollack.judge (agent-judge 0.12.0) across JudgeGate, TieredGate, and the jury loops
  • Agent Loop | Source

Week of May 26, 2026

Agent Client 0.19.0

JSONL trace file support. ClaudeAgentModel now writes durable trace files during agent execution — tool calls, thinking blocks, text, and result metrics, flushed per event. Set traceDir on the builder or agent-client.claude.trace-dir in Spring Boot config. Each invocation writes one uniquely-named JSONL file, and the path is exposed via providerFields.get("tracePath").
  • TraceTarget record pairs run ID with trace file path
  • Fail-fast on invalid trace directory (before client setup)
  • Full UUID in filenames for collision safety
  • Claude Reference | Source

Agent Workflow 0.8.0

Trace file capture through the workflow journal. AgentClientStep propagates trace paths from the agent model into StepTransition and journal events. Every tool call in a multi-step workflow is now traceable back to a specific JSONL file.
  • ExecutionResult(text, tracePath) — new return type from AgentClient.executeForResult()
  • AgentContext.TRACE_PATH — well-known context key, cleared per step
  • JdbcTraceRecorder — trace_path column in step_transitions table
  • What’s New | Trace Capture Guide | Source

ACP Java SDK 0.12.0

7 new protocol methods. Session lifecycle (list, close, resume) is now stable. Elicitation, fork, and config options land as unstable with the new @UnstableAcpApi marker.

AgentWorks BOM 1.2.0

Coordinated version bump: agent-client 0.19.0, agent-workflow 0.8.0, agent-journal 1.2.0, ACP Java SDK 0.12.0, and all other managed artifacts.

Week of May 19, 2026

Agent Workflow 0.7.0

Managed Agents as a step runtime. ManagedAgentStep delegates workflow steps to Anthropic’s Managed Agents API. The workflow graph stays in charge — specific steps run in Anthropic’s cloud sandbox.

Agent Client 0.18.0

Migration to markpollack org. Package rename from org.springaicommunity.agents to io.github.markpollack, BSL license, standalone POM.