V0.4.4
Release v0.4.4: Event System Enhancements & Extensible Content Model
This release introduces significant improvements to the event system and content handling, along with various quality-of-life enhancements and CI/CD updates.
✨ New Features
- Extensible Content Types
TheContentmodel is now generic and extensible. Developers can register custom content subclasses usingregister_content(), enabling seamless support for new multimodal content (e.g., audio, video) alongside built-inTextContentandImageContent. - JUnit Test Reporting
CI workflow now publishes test results as JUnit XML, improving visibility of test outcomes directly in pull requests.
🔧 Improvements
- Type Safety & Validation
Messagenow correctly deserializes content lists using registered content types, ensuring proper type assignment and validation. - Singleton Cleanup
Removed redundant_initedflags fromMultiPresetManager,MultiToolsManager, andMultiClientManager, simplifying initialization logic. - Better Error Handling
Addedexception_ignoredto control which exceptions are propagated through event handlers; enhanced__aexit__to store exceptions for later inspection. - Documentation Updates
Expanded API reference and concept guides with examples for custom event parameters and content registration.
✅ Testing
- Added comprehensive test suites for:
- OpenAI adapter (streaming, tool calls, error cases)
- Content validation and deserialization
- Custom content registration
- Message type handling
🏗️ CI/CD
- Added permissions for checks and pull requests
- Integrated
dorny/test-reporterfor JUnit test reports - Configured Ruff to ignore specific rules in test files
🔖 Version
Bumped to 0.4.4 (from 0.4.3.2)
This release lays the groundwork for more flexible event-driven architectures and richer multimodal interactions within the Amrita Core framework.
What's Changed
- Document ChatObject event parameter injection and task lifecycle by @JohnRichard4096 in #14
- Improve Content message deserialization and CI test reporting by @JohnRichard4096 in #15
Full Changelog: 0.4.3.2...0.4.4