Coordinates
Journal
RunBuilder
There is no
config(Map) overload in 1.6.0.
The repository(String) setter is present, but the 1.6.0 run implementation does not consume the stored builder value.
Run
Event factories
JournalEvent is extensible.
Built-in event records include timestamps and expose their Java type() value; file serialization uses the registered @type name.
Token, cost, and timing values
TokenUsage constructor order is input, output, thinking, cache creation, cache read, and tool-use tokens.
There is no five-argument TokenUsage.of(...) overload in 1.6.0.
JournalStorage
JsonFileStorage implements every operation and reports durable derived-event persistence.
InMemoryStorage implements every operation in memory and reports the default non-durable derived-event behavior.
Evaluation API
EvalSubjectSources.fromJournal(storage, experimentId, runId) reads a run and produces subjects.
EvalSubjectSources.fromEvents(events, runId) adapts an existing event list.
EvalSubjectQuery supports:
Capture parsers
Claude Code
response is an Iterator<ParsedMessage>.
The default content mode for trace-writing overloads is TRUNCATED; the default raw mode is NONE.
RunRecorder wraps an open Run, inherits recordPhase(PhaseCapture), exposes run() and lenient(), and owns finish()/close().
Gemini CLI
result is a Gemini SDK QueryResult.
GeminiRunRecorder.recordPhase(GeminiPhaseCapture) records the core and derived projections.
Storage cautions
JsonFileStoragedoes not validate path containment for caller-supplied identifiers or artifact names in 1.6.0.- Use one writer per run and do not assume multi-process safety.
- File-backed load methods read the requested JSONL file into memory.
- Portable traces can contain sensitive content; see Capture SDK Sessions.