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 coordination

    • reef.wait_for_completion(timeout=30.0) - Block until all agents finish processing

    • Replaces error-prone time.sleep() patterns with deterministic completion tracking

    • Uses future tracking with _active_futures and thread-safe _futures_lock

    • Supports both ReefChannel and Reef levels

Fixed๏ƒ

  • ๐Ÿ”ง broadcast() Channel Resolution - Fixed silent failures in agent chaining

    • broadcast() now correctly uses the startup channel set by start_agents()

    • Stores _startup_channel on agents during start_agents() for proper channel propagation

    • Prevents 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() with get_reef().wait_for_completion()

    • Added proper get_reef().shutdown() calls for clean termination

    • Examples now demonstrate production-ready patterns

Technical Details๏ƒ

  • Modified: src/praval/core/reef.py - Added wait_for_completion() method with future tracking

  • Modified: src/praval/decorators.py - Fixed broadcast() channel resolution

  • Modified: src/praval/composition.py - Store _startup_channel on agents

  • Updated: 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] and moto[s3] dev dependencies

  • ๐Ÿ”ง Test Isolation Infrastructure

    • Added tests/conftest.py with autouse fixture for global state reset

    • Added reset_tracer() function in observability tracer module

    • Added reset_trace_store() function in SQLite store module

    • Comprehensive reset of Reef, Registry, ToolRegistry, Agent context

  • ๐Ÿ“– New Examples

    • blog_multi_agent_demo.py - Multi-agent collaboration example

    • blog_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 function

  • Modified: src/praval/observability/storage/sqlite_store.py - Added reset function

  • Added: tests/conftest.py - Pytest fixtures for test isolation

  • Added: 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.py

    • broadcast() 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_map parameter to run_agents() and AgentRunner

    • Enables 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_map parameter for queue-based routing

    • Documentation 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_map in constructor

    • Automatically creates RabbitMQBackend with queue mappings

    • Full documentation and examples

  • ๐Ÿ“– Documentation: docs/rabbitmq-queue-consumption.md

    • Explains 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.py

    • RabbitMQBackend.init() now accepts channel_queue_map

    • subscribe() method supports both modes based on mapping

    • Enhanced documentation with mode explanations

  • Modified: src/praval/core/agent_runner.py

    • AgentRunner.init() accepts channel_queue_map

    • _create_backend() passes mapping to RabbitMQBackend

    • run_agents() function supports channel_queue_map parameter

  • Modified: src/praval/composition.py

    • run_agents() function updated with channel_queue_map parameter

    • Enhanced 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: AgentRunner class manages proper async lifecycle for distributed agents

    • Agents 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 guide

    • Explains 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.py

    • Demonstrates proper use of run_agents() with RabbitMQ

    • Shows 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.py

    • AgentRunner initialization tests

    • Backend compatibility tests

    • Lifecycle management tests

    • Signal handling tests

    • Multi-agent coordination tests

  • New Integration Tests: tests/integration/test_rabbitmq_distributed_workflow.py

    • End-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)

    • AgentRunner class with full async lifecycle

    • run_agents() convenience function

    • Comprehensive docstrings and examples

  • Modified: src/praval/composition.py

    • Added run_agents() function for distributed agents

    • Updated 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 works

    • Existing 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 Spore

    • Eliminates 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

    • ReefBackend abstract interface for pluggable backends

    • InMemoryBackend - Local agent communication (new, default for backward compatibility)

    • RabbitMQBackend - Distributed agent communication via RabbitMQ

    • Agents 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.md

  • Distributed agents example: examples/distributed_agents_with_rabbitmq.py

  • Configuration 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

  • ReefChannel handler 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 guide

  • docs/observability/quickstart.md: Quick start tutorial

  • 4 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 replace parameter to subscribe() 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=False for 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 only

    • Memory (pip install praval[memory]): ~500MB - Adds vector storage and embeddings

    • Full (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-learn

    • praval[secure] - Secure Spores with AMQP, MQTT, STOMP, encryption

    • praval[pdf] - PDF knowledge base support

    • praval[storage] - PostgreSQL, Redis, S3, Qdrant providers

    • praval[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 praval but cannot access source

    • Full 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() vs query() result structures

  • Numpy 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__.py docstring

  • Pytest 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 /readyz endpoint 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 access

    • Data 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_references field for lightweight large data sharing

    • Methods: 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 providers

    • STORAGE_AVAILABLE flag 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: or breaking change:

  • major: - Major version bump

  • api change: - API breaking changes

  • breaking: - Breaking functionality changes

Minor Version (New Features)๏ƒ

  • feat: or feature: - New features

  • add: or new: - New functionality

  • enhance: - Enhancements to existing features

  • memory system: - Memory system changes

  • agent capability: - New agent capabilities

  • Changes to decorators.py, core/agent.py, or core/reef.py

Patch Version (Bug Fixes)๏ƒ

  • fix: or patch: - Bug fixes

  • bug: - Bug fixes

  • docs: - Documentation changes

  • test: - Test improvements

  • refactor: - Code refactoring

  • style: - Code style changes

  • chore: - Maintenance tasks