All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.2.11 - 2026-02-06
Fixed
- Claude Agent SDK backend now forwards the
:toolsconfig option, enabling tool-free chatbots viatools: []
0.2.10 - 2026-02-05
Fixed
- Claude Agent SDK backend now resumes sessions on multi-turn calls
- Stream event partial chunks are now emitted during streaming (handles both CLIStream and ClientStream SDK paths)
Changed
- Updated ex_doc from 0.39 to 0.40
0.2.9 - 2026-01-18
Added
Puck.Test- Deterministic agent testing with queued mock responses
0.2.8 - 2026-01-17
Added
Puck.Backends.ClaudeAgentSDK- Use Claude Code CLI with your existing Pro/Max subscription- Native JSON schema structured outputs via SDK
- Automatic wrapping for union schemas (anyOf/oneOf/allOf) to work around Anthropic API limitation
- Sandbox mode support for safe execution
0.2.7 - 2026-01-10
Fixed
- Lua eval results are now converted to JSON-encodable format (tables become maps, arrays become lists)
0.2.6 - 2026-01-10
Fixed
- Lua callbacks now accept maps with atom keys (idiomatic Elixir) by automatically converting them to string keys at the sandbox boundary
0.2.5 - 2026-01-10
Fixed
Puck.Eval.Collectornow captures telemetry events from child processes (Task.async, spawned GenServers, etc.)
0.2.4 - 2026-01-09
Added
Puck.Eval- Test and measure LLM agent performancePuck.Eval.Trajectory- Records execution history (steps, tokens, duration)Puck.Eval.Step- Details of a single LLM call (input, output, tokens, timing)Puck.Eval.Collector- Captures trajectories from bothcallandstreamoperations via telemetryPuck.Eval.Grader- Define custom scoring rules for agent outputsPuck.Eval.Graders- Built-in graders (contains, max_steps, max_tokens, output_produced, and more)Puck.Eval.Result- Combines grader results into a single pass/fail outcome
0.2.3 - 2026-01-09
Added
[:puck, :stream, :exception]telemetry event for stream initialization failures
Changed
- Telemetry events are now emitted automatically when the
:telemetrydependency is installed (no configuration required)
Removed
Puck.Telemetry.Hooksmodule (telemetry is now automatic, no hooks configuration needed)
0.2.2 - 2026-01-08
Added
- Built-in BAML conversation summarizer (
PuckSummarize) - no custom BAML files needed - Summarize compaction now works automatically with BAML backend
Puck.Bamlmodule for built-in BAML functions- Client registry documentation in README
Changed
- Renamed
:instructionsoption to:promptinPuck.Compaction.Summarizefor consistency - Updated
baml_elixirdependency to 1.0.0-pre.24 - Added
--warnings-as-errorsto docs in precommit and CI
Fixed
- Fixed token usage tracking for BAML backend
Removed
baml_elixir_nextoverride documentation (no longer needed with baml_elixir 1.0.0-pre.24)
0.2.1 - 2026-01-08
Added
- Documentation for
baml_elixir_nextas an optional override for enhanced BAML features (client registry support) - Acknowledgments section in README recognizing key dependencies
Fixed
- Compile warnings when optional dependencies (
lua,req) are not installed - ExDoc module groups now reflect the reorganized sandbox module structure
- CHANGELOG version links for v0.2.0
0.2.0 - 2026-01-07
Added
Puck.Compaction- Behaviour for context compaction strategiesPuck.Compaction.Summarize- LLM-based summarization strategyPuck.Compaction.SlidingWindow- Sliding window strategy (keeps last N messages)Puck.Context.compact/2- Manual context compactionPuck.Context.total_tokens/1- Token count tracking- Auto-compaction via
Puck.Client.new/2:auto_compactionoption - Compaction lifecycle hooks:
on_compaction_start/3,on_compaction_end/2 - Compaction telemetry events:
[:puck, :compaction, :start],[:puck, :compaction, :stop],[:puck, :compaction, :error] Puck.Sandbox.Eval- In-process code evaluation with Lua supportPuck.Sandbox.Eval.Lua- Lua sandbox with timeout, memory limits, and callbacksPuck.Sandbox.Eval.Lua.schema/1- Schema helper for LLM-generated Lua code execution
Changed
- Reorganized sandbox modules:
Puck.Sandbox.Runtimefor containers,Puck.Sandbox.Evalfor interpreters
Removed
- Native tool calling support (use structured outputs with discriminated unions instead)
0.1.0 - 2025-01-04
The first release!