Revision history for Claude-Agent
0.10 2026-01-11
[Socket Lifecycle]
- Added cleanup() method to Query for explicit socket cleanup
- Fixes socket accumulation in iteration loops (e.g., refactor_until_clean)
- SDK server sockets now cleaned up after each query iteration
- _resolve_pending_futures_on_finish now delegates to cleanup()
0.08 2026-01-11
[Async Support]
- Async tool handlers: return Futures for non-blocking I/O
- Async hooks: callbacks can return Futures for async validation
- IO::Async::Loop passed to handlers/hooks for event-driven operations
- Backward compatible: sync handlers/hooks still work unchanged
[Debug Logging]
- Comprehensive operational logging (set CLAUDE_AGENT_DEBUG=1)
- Message lifecycle: receive, queue, deliver, process
- Socket lifecycle: connect, accept, close
- Tool execution: start, complete, results
- Hook execution: matchers, decisions, blocked tools
[Examples]
- examples/12-async-tool.pl: async tool patterns
- examples/13-async-hook.pl: async hook patterns
0.07 2026-01-11
- Added configurable logging system via Log::Any
- New Claude::Agent::Logger module for default adapter setup
- Environment variables: CLAUDE_AGENT_LOG_LEVEL, CLAUDE_AGENT_LOG_OUTPUT
- Backward compatible with CLAUDE_AGENT_DEBUG (1=debug, 2=trace)
- Users can configure their own Log::Any adapter for custom formatting
- Migrated all debug statements from warn to $log->debug/trace/info
0.06 2026-01-10
- Added Perl hook execution via Claude::Agent::Hook::Executor
- Hooks now execute in-process (PreToolUse, PostToolUse, PostToolUseFailure)
- Added dry-run mode (dry_run option) to preview changes without executing
- New Claude::Agent::DryRun module for write-tool interception
- on_dry_run callback for custom dry-run handling
- Improved hook system integration in Query.pm
- Updated examples/03-hooks.pl to demonstrate working Perl hooks
- New examples/04-dry-run.pl for dry-run mode demonstration
0.05 2026-01-10
- Added Claude::Agent::Code::Review module for AI-powered code review
- Perl::Critic integration for deterministic static analysis
- False positive filtering with custom filter support
- Structured output with Issue and Report objects
0.04 2026-01-10
- Fixed JSON::Lines encode() calls to properly wrap hashrefs in arrays
- Added comprehensive MCP documentation with architecture diagram
- Added step-by-step tool creation guide and complete examples
- Fixed SDKRunner, SDKServer, and Query to use correct encode() API
0.03 2026-01-10
- SDK MCP tools now execute locally via Unix socket IPC
- Added Claude::Agent::MCP::SDKServer for socket-based tool execution
- Added Claude::Agent::MCP::SDKRunner as the MCP protocol handler
- SDK servers are automatically converted to stdio MCP servers
- Tool handlers can now access application state, databases, and APIs
- Updated POD documentation for SDK MCP functionality
- Updated examples/02-custom-tools.pl and examples/10-mcp-servers.pl
0.02 2026-01-10
- Async improvements: truly event-driven next_async() instead of polling
- Added 'loop' parameter to query(), Client, and Query for shared event loops
- Futures now resolve when messages arrive, not via delay_future polling
- Added _pending_futures queue for proper async message delivery
- Updated documentation and examples for proper async usage
- Added structured_output field normalization for Result messages
0.01 2026-01-09
First version, released on an unsuspecting world.