Skip to main content

1.8.0 (2026-08-22)

  • Three new tool-trajectory capture adapters — grok-cli-capture, codex-cli-capture, and antigravity-cli-capture — turn each CLI’s durable JSONL stream into ordered ToolCallEvent and StepCostEvent records with stable tool-call identities
  • Grok capture parses the ACP-shaped streaming-json output, pairing tool_call and tool_call_update by toolCallId and preserving both the reported tool name and the ACP semantic kind. The stream has no durable turn-to-tool cost join, so the real session total from end.total_cost_usd is retained and attributed evenly across captured tool steps
  • Codex capture parses durable rollout JSONL and deliberately classifies the nested payload.input call rather than the outer exec function name that Codex records for most tool invocations, assigning semantic names such as Search, Read, Inspect, Test, Build, and Git. The classifier is conservative around shell syntax — aliases, shell functions, quoted operators, and work hidden behind an interpreter fall back to Shell, with raw input and command retained for later reclassification
  • Antigravity capture pairs active and terminal updates by step_index, handles both DONE and ERROR steps, records parameters, output or error text, duration, and terminal token usage, and derives stable identities from conversation and step positions
  • Codex and Antigravity report no monetary cost in these streams, so cost records are zero-valued and explicitly marked costAvailable=false with an unreported source
  • Gemini CLI capture remains turn-level and provides no tool trajectory, so Gemini is not part of this release’s multi-CLI tool-trajectory claim
  • The Claude Code SDK dependency moves from 1.4.0 to 1.5.0
  • Additive on the existing event and trace contracts. journal-core and the three new capture modules target Java 17; the Claude Code and Gemini CLI capture modules still require Java 21 for their vendor SDKs. 488 tests pass across the seven-module reactor

1.7.0 (2026-08-18)

  • Standalone consumers now resolve CVE-clear Jackson floors without an external BOM: Jackson 2.21.6 for all three modules and Jackson 3.1.6 on Claude capture’s transitive Jackson 3 path. Agent Journal’s source and stored formats continue to use Jackson 2; this is not a Jackson 3 migration.
  • Every binary and source JAR now includes META-INF/LICENSE, and every Javadoc JAR includes resources/LICENSE. The BSL 1.1 terms are unchanged.
  • The parent artifact publishes an aggregate CycloneDX 1.6 JSON SBOM for all three modules under the cyclonedx classifier.
  • Capture-module POMs now declare their actual Java 21 runtime requirement; journal-core remains Java 17.
  • Snapshot publishing now runs the full test suite, and shared build/release workflows are pinned to an immutable commit.
  • No API, event-schema, or trace-format change: both journal streams remain schema version 1 and portable traces remain schema version 2. All 482 tests pass.

1.6.0 (2026-07-01)

  • First-class journal-capture primitives (slice 1): PhaseCapture.stepCosts(), JournalSteps.fromEvents(), production fail-loud RunRecorder, JournalStorage.persistsDerivedEvents(), per-turn usage in the immutable log
  • A1: AttributionMethod.EVEN_SPLIT — coarse fallback when per-turn tokens are unavailable
  • A5: per-file {"@type":"header","schemaVersion":1} line on events.jsonl and analysis.jsonl (loaders skip it)
  • Cost-metering fix: 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
  • Designed as an additive change to the capture contract; 482 tests green. No cross-version reader test was run. Ships in agentworks-bom 1.13.0

1.5.0 (2026-06-17)

  • docs: fix TraceContentMode import path (moved to journal.trace in capture-fidelity R2)
  • R2.10 emission: wire StepCostEvent into analysis.jsonl from capture
  • Stage R2.9: Implement computeJudgeAgreement (judge<->human calibration)
  • Stage R2.6: Per-step goal/outcome channel (StepOutcomeEvent)
  • Stage R2.10: DerivedEvent hierarchy + StepCostEvent + analysis.jsonl sidecar
  • Stage R2.8: First-class Gemini capture (gemini-cli-capture module)
  • Stage R2.7: Move portable TraceWriter into journal-core
  • Stage R2.5a: Delineate sub-agent spawns (interiors are out-of-stream)
  • Stage R2.4: Emit derived step_cost lines into the trace (epic gate)
  • Stage R2.3b: Per-step cost attribution + JournalStep
  • Stage R2.3a: Stable step identity for events (fixes subjectId fragility)
  • Stage R2.2: Per-turn usage capture (TurnUsage + ModelCost from rawJson)
  • Stage R2.1: Consume rawJson — verbatim raw trace line (rawMode=NONE|FULL)
  • Stage R2.0: Bump claude-code-sdk to 1.4.0 (unblocks rawJson consumption)
  • CI: enforce OWASP CVE gate via reusable security-scan workflow
  • Add OWASP dependency-check CVE gate (-Powasp) + Trivy security-scan script
  • docs: version pins to 1.4.0

1.4.0 (2026-06-06)

  • Fix CI: build on Java 21 to match claude-code-sdk artifact class version
  • Steps 1.1-1.2: TraceWriter v2 content capture with TraceContentMode

1.3.0 (2026-06-04)

  • Include tool inputs in TraceWriter JSONL and escape control characters

1.2.0 (2026-05-19)

  • Add feedback event type, eval subjects, and feedback service

1.1.0 (2026-05-15)

  • Update claude-code-sdk dependency to released 1.1.0
  • Skip tests on snapshot publish — CI handles test validation
  • Update the claude-code-sdk dependency and imports to its io.github.markpollack coordinates

1.0.1 (2026-04-30)

  • Bump version to 1.0.1-SNAPSHOT
  • Open JournalEvent to external implementations; add registerEventType API
  • Update README: released version 0.9.0
  • Fix release workflow: add contents write permission for git tagging

0.9.0 (2026-03-29)

  • Initial release.