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-jsonACP stream, Antigravity itsstream-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-modeland the production surface ofagent-client-coretake on no journal dependency - LOOSE-mode Codex execution is repaired: current Codex versions reject
--full-autoafterexec, so full-auto now maps to the global--sandbox workspace-writeand--ask-for-approval neveroptions and stays distinct from the unrestricted bypass level, which portable auto-approve no longer grants implicitly - All 29 modules are published,
agent-tckincluded
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, andantigravity-cli-capturemodules turn each CLI’s JSONL into orderedToolCallEventandStepCostEventrecords with stable tool-call identities - Codex capture sidesteps the outer-
exectrap by classifying the nestedpayload.inputcall, assigning names such asSearch,Read,Inspect,Test,Build, andGit, and falling back toShell— 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
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-dirso 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
statusfield, which reports ERROR alongside complete and correct responses; soft denials are detected from both the result envelope and stderr GROKandANTIGRAVITYjoin 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
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
loopyfrom 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
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 rapidsession/updatechunks out of order (reported and fixed by @ljiro) closeGracefully()waits for queued notifications to drain before tearing the session down, bounded by the sessionrequestTimeout; 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
LICENSEis now the verbatim Apache 2.0 — the previous file omitted the Trademarks section and rewrote the copyright grant — and LICENSE plus NOTICE ship underMETA-INFin every artifact- Three
*ITclasses thatmvn verifyhad never executed now run in CI
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
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.jaras 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 loopyandloopy.batlaunchers locate the jar and set the JVM flags Loopy expects, andjbang loopy@markpollack/loopyworks 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
--helpand--versionno longer require an API key, and--versionreports the real version instead of the hardcoded0.1.0-SNAPSHOTevery release since 0.2.0 announced
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
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
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
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
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
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
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-loudRunRecorder, and per-turn usage in the immutable log - Cost-metering fix: the headline
LLMCallEvent.tokenUsageis now the cost-bearing Σ-per-turn-by-type aggregate (incl. cache) instead of the last-ResultMessagesnapshot, which under-counted ~2× on long runs — same field, corrected value, no schema change - A per-file
schemaVersionheader onevents.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-verificationgate (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 newgemini-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-capturemodule — cross-runtime capture into one trace + cost format - Per-step cost attribution (
StepCostEvent,analysis.jsonlsidecar); portableTraceWritermoved intojournal-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-captureas a managed member — the first BOM release through the CI-gatedrelease.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 thebom-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 pullsjackson-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, aRequireUpperBoundDepsbreak 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, andagent-client-corenow declare their Jackson 2 usage explicitly (governed byjackson-bom 2.21.2) - Default Gemini model upgraded to
gemini-3.5-flash; override withagent-client.gemini.model - Project | Source
Week of June 1, 2026
AgentWorks BOM 1.6.0
Thebom-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 aJacksonConvergenceTestand the enforcerRequireUpperBoundDepsrule; 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-agnosticeffort 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), CodexCodexAgentOptions.reasoningEffortup toxhigh - 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 losslessrawJson escape hatch. A compatibility-and-hardening release that pins the wire contract and exposes wire fields the typed API doesn’t model yet.
ParsedMessage.RegularMessagegains arawJsoncomponent carrying the exact stdout line each message was parsed from — backward compatible- All six
HookInputsubtypes now ignore unknown properties, fixing a hook hang under CLI 2.1.162’s added PostToolUse fields - New
WireFixtureTestpins parsing against real 2.1.162 stream-json fixtures - Project | Source
Agent Workflow 0.9.0
A tool-agnosticQuestion / 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.Questionrecord (with nestedOption) owned by workflow-api, replacing the leakedAskUserQuestionTool.Question; thespring-ai-agent-utilsdependency drops out of workflow-api - Judge integration migrated to
io.github.markpollack.judge(agent-judge 0.12.0) acrossJudgeGate,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").
TraceTargetrecord 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 fromAgentClient.executeForResult()AgentContext.TRACE_PATH— well-known context key, cleared per stepJdbcTraceRecorder—trace_pathcolumn instep_transitionstable- 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 fromorg.springaicommunity.agents to io.github.markpollack, BSL license, standalone POM.