Skip to main contentRelease Notes - v1.18.1
Bug Fixes
Agent Event Status Fix
AgentFinished event now correctly reports status: completed (or failed) instead of in_progress when agent terminates
- The status is determined based on the
StopReason from continuation criteria evaluation
Duplicate Event Fix
- Fixed duplicate
ContinuationEvaluated events being emitted during agent execution
- Removed redundant
hasNextStep() check from StepByStep::nextStep()
AgentBuilder maxRetries Fix
AgentBuilder::withMaxRetries() now actually works - the value is passed to ToolCallingDriver via inference retry policy
- Previously the property was set but never used
AbstractAgentDefinition Event Handler Fix
- Fixed
AbstractAgentDefinition::build() returning stale agent instance without the configured event handler
- Event handlers and listeners set via
withEventHandler(), wiretap(), onEvent() now correctly propagate to the built agent
Static Analysis Improvements
PHPStan Level 8 Compliance
- Added callable signatures to
ContentParts and MessageList methods (map, reduce, filter)
- Added proper Closure signatures to
MockTool and IdempotencyMiddleware
- Added
@param class-string annotations to SchemaDefinition
- Fixed array type annotations in
Task, TaskList, TodoReminderProcessor
- Fixed
ReActDriver::withCachedContext() parameter passing
- Fixed
DeterministicDriver array key type issues
- Removed redundant int casts in retry policy classes
- Added
Agent::isStateChanged() override to prevent spurious iterator yields
Psalm Compliance
- Added missing
#[\Override] attributes across codebase
- Added template parameters to
IteratorAggregate implementations
- Fixed namespace issues in
ResearchSubagentTool
- Added
ExecutionPolicy::default() static method