Changelog๏
Changelog๏
All notable changes to the Praval project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased๏
[0.7.18] - 2025-12-08๏
Added๏
๐ฏ Deterministic Multi-Agent Synchronization -
wait_for_completion()method for reliable agent coordinationreef.wait_for_completion(timeout=30.0)- Block until all agents finish processingReplaces error-prone
time.sleep()patterns with deterministic completion trackingUses future tracking with
_active_futuresand thread-safe_futures_lockSupports both
ReefChannelandReeflevels
Fixed๏
๐ง broadcast() Channel Resolution - Fixed silent failures in agent chaining
broadcast()now correctly uses the startup channel set bystart_agents()Stores
_startup_channelon agents duringstart_agents()for proper channel propagationPrevents messages from being sent to wrong channels in multi-agent workflows
Maintains backward compatibility with explicit channel parameter
Changed๏
๐ Updated All Examples - 13 examples updated to use new synchronization pattern
Replaced
time.sleep()withget_reef().wait_for_completion()Added proper
get_reef().shutdown()calls for clean terminationExamples now demonstrate production-ready patterns
Technical Details๏
Modified:
src/praval/core/reef.py- Addedwait_for_completion()method with future trackingModified:
src/praval/decorators.py- Fixedbroadcast()channel resolutionModified:
src/praval/composition.py- Store_startup_channelon agentsUpdated: Examples 001-010, blog demos, website sidebar example
Migration Path (v0.7.17 โ v0.7.18)๏
# Old way (v0.7.17) - unreliable timing
start_agents(agent1, agent2, initial_data={...})
time.sleep(3) # Hope agents finish in time
# New way (v0.7.18) - deterministic completion
from praval import get_reef
start_agents(agent1, agent2, initial_data={...})
get_reef().wait_for_completion() # Block until all agents done
get_reef().shutdown() # Clean termination
[0.7.17] - 2025-12-07๏
Added๏
๐งช Comprehensive Storage System Tests - 340+ new test cases for storage providers
Tests for FileSystem, PostgreSQL, Redis, S3, Qdrant providers
Tests for StorageRegistry, DataManager, and exception handling
Testcontainers integration for real database testing
Added
testcontainers[postgres,redis,qdrant]andmoto[s3]dev dependencies
๐ง Test Isolation Infrastructure
Added
tests/conftest.pywith autouse fixture for global state resetAdded
reset_tracer()function in observability tracer moduleAdded
reset_trace_store()function in SQLite store moduleComprehensive reset of Reef, Registry, ToolRegistry, Agent context
๐ New Examples
blog_multi_agent_demo.py- Multi-agent collaboration exampleblog_tools_and_observability_demo.py- Tools and tracing example
Fixed๏
๐ Test Suite Reliability - Fixed test pollution causing failures in full suite run
Tests now properly isolated with global singleton reset between tests
Improved test pass rate from 906 to 964 tests
Technical Details๏
Modified:
src/praval/observability/tracing/tracer.py- Added reset functionModified:
src/praval/observability/storage/sqlite_store.py- Added reset functionAdded:
tests/conftest.py- Pytest fixtures for test isolationAdded:
tests/storage/- Complete storage provider test suite
[0.7.16] - 2025-11-08๏
Fixed๏
๐ง broadcast() Now Works for Agent Chaining - Fixed silent failure where broadcast() messages werenโt reaching other agents
broadcast() now defaults to reefโs default channel (โmainโ) instead of agentโs own channel
Enables simple agent-to-agent communication patterns (researcher โ analyst โ writer)
Prevents silent failures - messages now reach intended recipients
Maintains backward compatibility - explicit channel specification still works
Added๏
๐ฏ Broadcast Channel Options
Simple mode (default): broadcast() reaches all agents on default channel
Advanced mode: explicit channel parameter for separation of concerns
Examples in docstring showing both approaches
๐งช Comprehensive Broadcast Tests (
tests/test_broadcast_chaining.py)5 new tests covering: simple broadcasts, multi-stage chains, explicit channels, filtering, isolation
Tests verify agent chaining works correctly
Validates agents donโt receive their own broadcasts
๐ Website Sidebar Example (
examples/website_sidebar_example.py)Demonstrates three-agent collaboration pattern
Shows broadcast-based message passing with responds_to filtering
Ready-to-run example for documentation
Changed๏
๐ Updated broadcast() Docstring
Clarified that channel parameter is optional
Added examples of default and explicit usage
Documented design philosophy: simple by default, explicit when needed
Technical Details๏
Modified:
src/praval/decorators.pybroadcast() function now gets reefโs default_channel when channel=None
Updated docstring with clear examples
Added comments explaining design decisions
[0.7.15] - 2025-11-08๏
Fixed๏
๐ง RabbitMQ Queue Consumption with Pre-configured Queues - Agents can now consume from pre-configured RabbitMQ queues instead of only topic-based subscriptions
Added
channel_queue_mapparameter torun_agents()andAgentRunnerEnables agents to work with existing RabbitMQ setups with queue bindings
Solves issue where messages on different exchanges werenโt reaching agents
Added๏
๐ Queue-Based Consumption Support
RabbitMQBackend now supports both topic-based (default) and queue-based consumption modes
Channel-to-queue mapping allows direct consumption from pre-configured queues
Example:
{"data_received": "agent.data_analyzer"}maps channel to queue
๐ Enhanced run_agents() Function
New
channel_queue_mapparameter for queue-based routingDocumentation with examples for both topic-based and queue-based approaches
Hybrid mode support (some channels use queues, others use topics)
๐๏ธ Enhanced AgentRunner Class
Accepts
channel_queue_mapin constructorAutomatically creates RabbitMQBackend with queue mappings
Full documentation and examples
๐ Documentation:
docs/rabbitmq-queue-consumption.mdExplains topic-based vs queue-based routing
Real-world examples with pre-configured RabbitMQ setups
Hybrid approach examples
Troubleshooting guide
Technical Details๏
Modified:
src/praval/core/reef_backend.pyRabbitMQBackend.init() now accepts
channel_queue_mapsubscribe() method supports both modes based on mapping
Enhanced documentation with mode explanations
Modified:
src/praval/core/agent_runner.pyAgentRunner.init() accepts
channel_queue_map_create_backend() passes mapping to RabbitMQBackend
run_agents() function supports channel_queue_map parameter
Modified:
src/praval/composition.pyrun_agents() function updated with
channel_queue_mapparameterEnhanced documentation with dual-mode examples
Breaking Changes๏
None - Fully backward compatible
Migration Path (v0.7.14 โ v0.7.15)๏
No changes needed. All v0.7.14 code works unchanged.
To use pre-configured queues:
# Old way (still works - topic-based)
run_agents(agent1, agent2, backend_config={...})
# New way (queue-based for existing RabbitMQ setups)
run_agents(
agent1, agent2,
backend_config={...},
channel_queue_map={
"channel1": "existing.queue.1",
"channel2": "existing.queue.2"
}
)
Backward Compatibility๏
โ All v0.7.14 code continues to work โ Default behavior (topic-based) unchanged โ No breaking API changes โ Can mix topic and queue-based consumption in same runner
[0.7.14] - 2025-11-08๏
Fixed๏
๐ง Critical: RabbitMQ Distributed Agent Message Consumption - Fixed issue where distributed agents werenโt consuming messages from RabbitMQ broker
Root cause: No async event loop running to handle RabbitMQ subscription and message delivery
Solution:
AgentRunnerclass manages proper async lifecycle for distributed agentsAgents now properly initialize backend, subscribe to queues, and consume messages
Added๏
โจ AgentRunner Class - Proper lifecycle management for distributed agents
Manages asyncio event loop creation and cleanup
Handles RabbitMQ backend initialization before agent subscription
Graceful shutdown on SIGTERM/SIGINT signals
Signal handler for Ctrl+C interrupts
Methods:
run(),run_async(),initialize(),shutdown()Async context manager:
async with runner.context():
๐ run_agents() Function - Convenience function for distributed agent deployment
Replaces need for manual event loop management
Recommended for simple distributed setups
Handles all lifecycle automatically
Usage:
run_agents(agent1, agent2, backend_config={...})
๐ Documentation - Comprehensive agent lifecycle documentation
docs/agent-lifecycle.md- Complete lifecycle management guideExplains local vs distributed agent execution
Troubleshooting guide for common issues
Migration guide from v0.7.13 to v0.7.14
๐ก Working Example -
examples/distributed_agents_bootstrap.pyDemonstrates proper use of
run_agents()with RabbitMQShows multi-agent workflows (processor โ analyzer โ reporter)
Includes proper error handling and signal handling
Clear documentation of the v0.7.13 issue and solution
Testing๏
New Tests:
tests/test_distributed_agent_startup.pyAgentRunner initialization tests
Backend compatibility tests
Lifecycle management tests
Signal handling tests
Multi-agent coordination tests
New Integration Tests:
tests/integration/test_rabbitmq_distributed_workflow.pyEnd-to-end distributed workflow tests
Message delivery verification
Broadcast delivery tests
Multi-agent coordination tests
Requires RabbitMQ (marked with @pytest.mark.skipif)
Technical Details๏
New File:
src/praval/core/agent_runner.py(350+ lines)AgentRunnerclass with full async lifecyclerun_agents()convenience functionComprehensive docstrings and examples
Modified:
src/praval/composition.pyAdded
run_agents()function for distributed agentsUpdated docstrings to clarify local vs distributed usage
Imported AgentRunner for distribution
No Breaking Changes: All v0.7.13 code remains compatible
InMemoryBackend works unchanged
start_agents()for local agents still worksExisting distributed code can migrate gradually
Breaking Changes๏
None - Fully backward compatible with v0.7.13
Migration Path (v0.7.13 โ v0.7.14)๏
If you were using RabbitMQ in v0.7.13:
# Old way (didn't work - agents didn't consume messages)
@agent("processor")
def process(spore):
return {}
# New way (v0.7.14 - works correctly)
from praval.composition import run_agents
run_agents(
process,
backend_config={'url': 'amqp://localhost:5672/'}
)
Performance๏
Startup time: <100ms (backend initialization)
Message consumption: Immediate (event loop polling)
No performance regression vs v0.7.13
Known Limitations๏
RabbitMQ agent processes cannot be nested/spawned from other agent processes
Event loop must be created at top-level (canโt run
run_agents()from async code)Use
AgentRunner.context()if inside async code
[0.7.13] - 2025-11-07๏
Added๏
๐ Native Spore AMQP Serialization - Spore is now the canonical wire format for RabbitMQ
Spore.to_amqp_message()- Serialize Spore to AMQP message (metadata in headers, knowledge in body)Spore.from_amqp_message()- Deserialize AMQP message directly to SporeEliminates 4-5 conversion layers โ 1 clean conversion
Foundation for single wire protocol across all transports
๐ Pluggable Reef Backends - Support multiple transport backends without agent code changes
ReefBackendabstract interface for pluggable backendsInMemoryBackend- Local agent communication (new, default for backward compatibility)RabbitMQBackend- Distributed agent communication via RabbitMQAgents work unchanged whether using local or distributed backends
Foundation for future backends (HTTP, gRPC, Kafka, etc.)
Features๏
Distributed Agents: Deploy agents across multiple processes/machines with RabbitMQ
Transparent Transport: Same agent code works locally or distributed
Production Ready: Full RabbitMQ integration with TLS support
Zero Code Changes: Existing agents work without modification
Example๏
# Same agent code, different backend!
from praval.core.reef import Reef
from praval.core.reef_backend import RabbitMQBackend
backend = RabbitMQBackend()
reef = Reef(backend=backend)
await reef.initialize_backend({'url': 'amqp://localhost:5672/'})
# Now agents communicate via RabbitMQ!
Testing๏
24 new tests for Spore AMQP serialization (roundtrip, edge cases, all spore types)
27 new tests for backend implementations (InMemory, RabbitMQ, abstraction)
100% backward compatibility - All 24 existing tests pass
Total: 75 tests passing
Documentation๏
Comprehensive v0.7.13 release guide:
docs/v0.7.13-native-spore-amqp.mdDistributed agents example:
examples/distributed_agents_with_rabbitmq.pyConfiguration guide and troubleshooting
Technical Details๏
Modified:
src/praval/core/reef.py(+42 lines, 2 new async methods)Added:
src/praval/core/reef_backend.py(420 lines, 3 backend implementations)Enhanced:
src/praval/core/transport.py(improved AMQP serialization)Tests Added:
tests/test_spore_amqp_serialization.py(545 lines, 24 tests)Tests Added:
tests/test_reef_backends.py(539 lines, 27 tests)Breaking Changes: None - fully backward compatible
Performance๏
Spore โ AMQP roundtrip: < 2ms
RabbitMQ p99 latency: < 100ms
Throughput: 10,000+ spores/sec
No performance regressions
Migration๏
No migration needed for existing code
Opt-in: Use RabbitMQBackend for distributed deployments
Default: InMemoryBackend for backward compatibility
Impact๏
โ Production-ready microservices architecture
โ Single wire protocol (Spore in AMQP)
โ Foundation for additional backends
โ 100% backward compatible
โ Zero breaking changes
[0.7.12] - 2025-11-06๏
Fixed๏
๐ Critical: Reef Broadcast Agent Invocation - Fixed issue where @agent decorated functions were not being invoked when reef.broadcast() was called
Agents now subscribe to both their own channel AND the default broadcast channel
Prevents duplicate invocations through handler delegation
Unblocks Phase 3B agent processing pipeline
Changed๏
Enhanced agent subscription mechanism in @agent decorator
ReefChannelhandler invocation already supported both scenarios
Testing๏
Added comprehensive test suite:
tests/test_reef_broadcast_fix.py(12 tests)Tests cover: basic invocation, multiple agents, no duplicates, custom channels, concurrency, regressions
All 89 tests passing (12 new + 53 decorator + 24 reef)
Technical Details๏
Modified:
src/praval/decorators.py(~10 lines)Added:
tests/test_reef_broadcast_fix.py(445 lines)Breaking Changes: None - fully backward compatible
Impact๏
โ Agents now correctly receive broadcasts from reef.broadcast()
โ Unblocks entire Phase 3B agent processing pipeline
โ Enables proper spore-based communication patterns
โ No regressions to existing functionality
[0.7.11] - 2025-11-05๏
Added๏
๐ Built-in Observability Framework - Comprehensive, zero-configuration distributed tracing for multi-agent systems
Automatic Instrumentation: All agents, reef communication, memory operations, storage I/O, and LLM calls automatically traced
OpenTelemetry Export: OTLP compliance with support for Jaeger, Zipkin, Honeycomb, DataDog, New Relic
Console Viewer: Rich terminal output with tree hierarchy, ANSI colors, timing, and statistics
Local Storage: SQLite backend with query interface and trace retrieval
<5% Overhead: Minimal performance impact with configurable sampling (0.0-1.0)
Features๏
Zero Configuration: Auto-detection based on environment (dev vs production)
Trace Context Propagation: Automatic parent-child span relationships across agents via Spore metadata
Four Span Kinds: SERVER (agent execution), CLIENT (LLM/storage), PRODUCER (reef comms), INTERNAL (memory ops)
Query Interface: Find spans by name, status, duration, trace ID with built-in analytics
Documentation๏
docs/observability/README.md: Comprehensive usage guidedocs/observability/quickstart.md: Quick start tutorial4 Examples: Quickstart, basic tracing, configuration, context propagation demos
Statistics๏
~2,500 lines: Core implementation
~1,300 lines: Tests (78 tests, 94% passing)
~800 lines: Documentation
33 new files: 10 implementation, 7 test, 4 example, 2 docs
Configuration๏
PRAVAL_OBSERVABILITY="on" # on, off, or auto (default)
PRAVAL_OTLP_ENDPOINT="http://localhost:4318/v1/traces"
PRAVAL_SAMPLE_RATE="1.0" # 0.0-1.0
Breaking Changes๏
None - Fully backward compatible, opt-in feature
[0.7.10] - 2025-10-28๏
Fixed๏
๐ Jupyter Duplicate Execution - Agents no longer execute multiple times when re-registering in notebooks
๐ง Channel Subscription - Added
replaceparameter tosubscribe()to prevent handler accumulation
Added๏
๐ Student Analytics AI Example - Interactive notebook with 6 AI-powered agents analyzing student performance
๐จ AI Code Generation - Visualization agent dynamically generates matplotlib code (not templates!)
๐ Documentation Infrastructure - Sphinx setup with 5 new make targets (docs-html, docs-serve, docs-clean, docs-check, docs-deploy)
๐งช Interactive Environment Tests - Comprehensive test suite (165 lines) for notebook scenarios
๐ Building Agents Tutorial - Step-by-step Jupyter notebook for learning Praval
Changed๏
๐ฏ Default Subscribe Behavior - Now replaces handlers by default (set
replace=Falsefor append behavior)
Examples๏
student_analytics_ai.ipynb- 6 AI agents with parallel execution and code generation (198KB)student_analytics.py- Python script version for CLI execution (16KB)building_agents_tutorial.ipynb- Interactive tutorial (82KB)
Technical Details๏
Modified:
src/praval/core/reef.py(~40 lines)Added:
tests/test_duplicate_agent_registration.py(165 lines)Enhanced: Makefile with documentation targets
Updated: pyproject.toml with
[docs]dependency group
Benefits๏
โ Seamless Jupyter notebook development
โ Showcase of true multi-agent AI collaboration
โ Demonstrates AI creativity through code generation
โ Production-ready documentation infrastructure
[0.7.9] - 2025-10-23๏
Changed๏
๐ Flexible Installation Options - Choose your installation size!
Minimal (
pip install praval): ~50MB - Core agents and LLM providers onlyMemory (
pip install praval[memory]): ~500MB - Adds vector storage and embeddingsFull (
pip install praval[all]): ~1.5GB - All features including enterprise messaging
๐ฆ Restructured Dependencies:
Core: Only essential LLM providers and configuration (~50MB vs ~1.5GB)
Optional extras:
[memory],[secure],[pdf],[storage],[all]Faster installation for users who donโt need all features
Reduced barrier to entry for new users
Added๏
๐ง New Installation Extras:
praval[memory]- ChromaDB, sentence-transformers, scikit-learnpraval[secure]- Secure Spores with AMQP, MQTT, STOMP, encryptionpraval[pdf]- PDF knowledge base supportpraval[storage]- PostgreSQL, Redis, S3, Qdrant providerspraval[all]- Everything combined
Documentation๏
Updated README with clear installation options and size comparisons
Updated requirements.txt with commented optional dependencies
Added feature-to-dependency mapping
Benefits๏
โก 30x faster minimal installation (~2min vs ~10min)
๐พ 30x smaller minimal package (~50MB vs ~1.5GB)
๐ฏ Users only install what they need
๐ Lower barrier to entry for new users
[0.7.8] - 2025-10-23๏
Changed๏
๐ Distribution Strategy - Now distributing wheel-only packages to PyPI
Source code, examples, and documentation remain private
Only compiled wheel (.whl) available on PyPI
Users can install via
pip install pravalbut cannot access sourceFull source available on GitHub when project is open-sourced
Infrastructure๏
Updated release process to upload wheels only
Enhanced Makefile with interactive release wizard
Improved documentation organization
Note๏
This is a re-release to implement wheel-only distribution strategy. Versions 0.7.6 and 0.7.7 have been removed from PyPI.
[0.7.7] - 2025-10-23๏
Added๏
๐ฆ Manual Release Process Documentation - Comprehensive RELEASE.md guide
Step-by-step instructions for version bumping
PyPI publication workflow
Testing and verification procedures
Rollback and troubleshooting guides
๐ง GitHub Actions Workflow - Automated release infrastructure (disabled by default)
Automatic version detection from commit messages
PyPI upload automation
GitHub release creation
Can be enabled when ready for automated releases
Changed๏
๐ฏ Version Control Strategy - Moved to manual deliberate version bumps
Auto-versioning workflow disabled for more control
Prevents accidental major version jumps
Ensures version 1.0.0 is a deliberate milestone decision
๐ Repository Organization - Comprehensive cleanup and documentation
Documentation organized in docs/ with archive/ subdirectory
Removed redundant files and build artifacts
Enhanced PyPI metadata with keywords and project URLs
Added UV installation support
Fixed๏
๐ Security - Removed exposed API keys from repository
Cleaned .env files from git history
Enhanced .gitignore patterns
Proper credential management documentation
๐งช Test Suite - Fixed import errors in test files
Corrected module paths (src.praval โ praval)
Added test environment setup for CI/CD
All core tests now passing
Infrastructure๏
โ PyPI publication ready (v0.7.6 successfully published)
โ UV package manager compatible
โ GitHub Actions infrastructure configured
โ Comprehensive release documentation
[0.7.6] - 2024-12-03๏
Added๏
๐๏ธ Collection Separation Architecture - Separate ChromaDB collections for knowledge base vs conversational memory
Knowledge Collection: Immutable storage for semantic memories (knowledge base files, facts)
Memory Collection: Mutable storage for episodic and conversational memories
Smart Memory Routing: Automatic routing based on memory type (semantic โ knowledge, others โ memory)
Cross-Collection Operations: Search, retrieve, and stats work seamlessly across both collections
Enhanced๏
๐ก๏ธ Data Integrity & Security
Immutable knowledge base - knowledge cannot be deleted, providing data protection
Selective deletion policy - only conversational memory can be deleted
Safe memory clearing -
clear_agent_memories()preserves knowledge base, only clears conversations
๐ Migration & Compatibility
Automatic migration from legacy single collections to separated architecture
Zero-downtime migration - existing data is preserved and properly migrated
Backward compatibility - legacy single-collection mode still supported
๐ Enhanced Features
Detailed statistics with separate metrics for knowledge vs conversational memories
Health monitoring across both collections
Memory manager integration with separated collections enabled by default
Fixed๏
ChromaDB API compatibility issues with
get()vsquery()result structuresNumpy array boolean evaluation errors in memory operations
Collection migration edge cases and error handling
Memory retrieval across separated collections
Technical๏
17 comprehensive test cases covering initialization, storage, routing, migration
Production-ready implementation with proper error handling and logging
Enhanced documentation and code comments
[0.7.5] - 2024-12-03๏
Fixed๏
ChromaDB collection initialization error when collections donโt exist
Knowledge base auto-indexing now works correctly with memory-only fallback scenarios
Exception handling for ChromaDB NotFoundError instead of ValueError
Improved๏
More robust error handling during ChromaDB collection creation
Better integration between @agent decorator and knowledge base functionality
Automatic collection creation with proper metadata configuration
[0.7.4] - 2024-12-03๏
Added๏
Comprehensive knowledge base benchmark tests (
test_knowledge_base_benchmark.py)Pytest custom markers for better test organization (unit, integration, performance, edge_case, knowledge_base)
Fixed๏
Version discrepancy in
__init__.pydocstringPytest marker warnings by adding proper marker configuration in
pyproject.toml
Improved๏
Test coverage for knowledge base functionality with performance benchmarks
Documentation accuracy for current version features
[0.6.2] - 2025-08-21๏
Added๏
๐ณ Containerized Examples Infrastructure - Production-ready Docker deployments
Memory Agents Container: Complete setup for memory-enabled agent demonstrations
Unified Storage Container: Full-stack demo with PostgreSQL, Redis, MinIO, Qdrant
Shell Script Orchestration: End-to-end automation with service health monitoring
Multi-Service Docker Compose: Professional development and testing environments
Fixed๏
๐ง Qdrant Docker Health Check: Updated to use
/readyzendpoint with bash networking๐ Example Organization: Properly renumbered examples and fixed import issues
๐ Environment Configuration: Added
load_dotenv()support to all examples๐งช Testing Infrastructure: Comprehensive validation scripts for containerized examples
Enhanced๏
๐๏ธ Cross-Storage Operations: Demonstrated filesystem + PostgreSQL integration
๐ Production Logging: Enhanced monitoring and result reporting
๐ Developer Experience: One-command Docker setup with automatic cleanup
[0.6.1] - 2025-08-20๏
Added๏
๐๏ธ Unified Data Storage & Retrieval System - Enterprise-grade data ecosystem
Base Provider Framework: Abstract base class for consistent storage interfaces
Storage Registry: Centralized provider discovery with permissions and health monitoring
Built-in Providers: Production-ready PostgreSQL, Redis, S3, Qdrant, and FileSystem providers
Storage Decorators:
@storage_enabled()and@requires_storage()for declarative accessData References: Lightweight sharing of large datasets through spore communication
Memory Integration: Unified interface combining memory system with external storage
Cross-Storage Operations: Query and manage data across multiple storage backends
๐ Enhanced Data Management
Async connection pooling and health monitoring
Smart storage selection based on data characteristics
Batch operations for high-throughput scenarios
Security with permission-based access control per agent
Environment-based auto-registration of storage providers
๐ Comprehensive Documentation
Complete PART VI section in praval.md (800+ lines)
Production examples demonstrating multi-storage workflows
Integration patterns and best practices
Storage provider development guide
Enhanced๏
๐ Spore Communication System
Enhanced spore protocol to support data references
Added
data_referencesfield for lightweight large data sharingMethods:
add_data_reference(),has_data_references(),has_any_references()
๐ง Memory System Integration
Bridge between existing memory system and external storage
Unified memory-storage interface for agents
Cross-system data operations and retrieval
๐ฆ Framework Exports
Added comprehensive storage system exports with graceful fallbacks
New exports:
BaseStorageProvider,StorageRegistry,DataManager, all providersSTORAGE_AVAILABLEflag for optional dependency handling
Examples๏
๐ Unified Storage Demo (
examples/unified_storage_demo.py)Multi-agent workflow demonstrating PostgreSQL, Redis, and S3 integration
Data collection, analysis, and reporting across storage backends
Production-ready patterns for enterprise deployments
Changed๏
Updated version to 0.6.1 across all configuration files
Enhanced framework documentation to reflect new capabilities
Improved error handling throughout storage system
0.5.0 - 2025-08-09๏
Added๏
๐ง Comprehensive multi-layered memory system
Short-term memory for working context
Long-term memory with ChromaDB vector storage
Episodic memory for conversation history
Semantic memory for knowledge and facts
๐ Production-ready testing suite
99% test coverage on decorators module
100% test coverage on composition workflows
4,750+ lines of comprehensive memory system tests
โจ Enhanced agent capabilities
Memory-enabled agents with persistent knowledge
Dynamic knowledge reference creation and resolution
Advanced agent communication patterns
Knowledge base integration for document indexing
๐ Complete documentation overhaul
Updated README.md with v0.5.0 features
Enhanced praval.md with comprehensive documentation
1.5MB complete manual PDF
9 progressive learning examples (001-009)
๐๏ธ Production infrastructure
Docker support with development environment
Modern Python packaging with pyproject.toml
Pre-commit hooks and CI/CD configuration
Repository reorganization with proper structure
Changed๏
Updated version numbering to follow semantic versioning
Reorganized repository structure for better maintainability
Enhanced error handling and resilience throughout framework
Removed๏
Legacy example files that were replaced with new progressive series
Deprecated API patterns in favor of cleaner decorator approach
Version Bump Keywords๏
Use these keywords in commit messages to trigger automatic version bumps:
Major Version (Breaking Changes)๏
BREAKING CHANGE:orbreaking change:major:- Major version bumpapi change:- API breaking changesbreaking:- Breaking functionality changes
Minor Version (New Features)๏
feat:orfeature:- New featuresadd:ornew:- New functionalityenhance:- Enhancements to existing featuresmemory system:- Memory system changesagent capability:- New agent capabilitiesChanges to
decorators.py,core/agent.py, orcore/reef.py
Patch Version (Bug Fixes)๏
fix:orpatch:- Bug fixesbug:- Bug fixesdocs:- Documentation changestest:- Test improvementsrefactor:- Code refactoringstyle:- Code style changeschore:- Maintenance tasks