Changelog¶
All notable changes to HoloDeck will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Planned Features¶
- Deployment Engine: Convert agents to production FastAPI endpoints
- CLI Commands:
holodeck deploy - Observability: OpenTelemetry integration with GenAI semantic conventions
- Plugin System: Pre-built plugin packages for common integrations
- Agent Framework Migration: Plans to migrate the Agents abstraction to Microsoft Agent Framework once it reaches 1.0
0.1.6 - 2025-11-28¶
Added¶
- MCP Tool Integration: Full Model Context Protocol (MCP) tool support with stdio transport
- MCP server configuration and connection management
- Tool discovery and invocation via MCP protocol
Fixed¶
- Instruction loading issues in agent configuration
0.1.5 - 2025-11-27¶
Added¶
- Project and User Config Support: Execution config resolution now supports project-level and user-level configuration files
Fixed¶
- ChromaDB connection issues
0.1.4 - 2025-11-27¶
Fixed¶
- PyPI release by removing local version identifiers
0.1.3 - 2025-11-27¶
Added¶
- ChromaDB Support: Explicit ChromaDB vector store integration
Changed¶
- Package Manager: Switched from Poetry to uv for faster dependency management
Fixed¶
- Test logging improvements
- RedisVL compatibility issues
- CLI quiet mode behavior
0.1.2 - 2025-11-26¶
Added¶
- Ollama Endpoint Support: Local LLM execution via Ollama
- Vector Stores Setup Guide: Comprehensive Redis vector store documentation
- Claude Code integration for development assistance
0.1.1 - 2025-11-25¶
Added¶
- Semantic Kernel Vector Store Abstractions: Support for all vector store providers (Redis, ChromaDB, etc.)
- Agent config execution settings applied to Semantic Kernel
0.1.0 - 2025-11-23¶
Added¶
- Chat Models and Validation Pipeline: Scaffold for interactive chat functionality
- Markdown Report Generation: Comprehensive test result reporting (T123-T127)
- Progress Display Enhancements: Spinner, ANSI colors, elapsed time display
- Per-Test Metric Resolution: EvaluationMetric objects for fine-grained metric configuration (T095-T096)
- File Processing Improvements: Enhanced file input handling
Changed¶
- Consolidated and refactored tests to parameterized tests for better maintainability
- Config init command improvements
0.0.14 - 2025-11-15¶
Fixed¶
- Poetry development dependencies
- MkDocs build step
- Poetry version configuration
- Various Poetry configuration issues
0.0.7 - 2025-11-08¶
Added¶
- Agent Execution Implementation: Core agent execution engine
- Evaluators: User Story 1 evaluator implementation
- Response Format Definition: Phase 4 implementation (T014-T019)
- Global Settings Configuration: Phase 2 & 3 with TDD approach
0.0.6 - 2025-10-25¶
Added¶
holodeck initCommand: Complete project initialization with templates- Phase 8: Polish & QA for init command
- Phase 7: Project metadata specification (US5)
- Phase 5: Sample files and examples generation (US3)
- User Story 2: Project template selection (Phase 4)
- Core init engine implementation
- Basic agent creation from templates
- ConfigLoader returns GlobalConfig rather than dict
0.0.5 - 2025-10-20¶
Fixed¶
- Version tag configuration
0.0.4 - 2025-10-20¶
Added¶
- GitHub release workflow
- Automated PyPI publishing
0.0.1 - 2025-10-19¶
Added - User Story 1: Define Agent Configuration¶
Core Features¶
-
Agent Configuration Schema: Complete YAML-based agent configuration with Pydantic validation
-
Agent metadata (name, description)
- LLM provider configuration (OpenAI, Azure OpenAI, Anthropic)
- Model parameters (temperature, max_tokens)
- Instructions (inline or file-based)
- Tools array with type discrimination
- Test cases with expected behavior validation
-
Evaluation metrics with flexible model configuration
-
Configuration Loading & Validation (
ConfigLoader): -
Load and parse agent.yaml files
- Validate against Pydantic schema with user-friendly error messages
- File path resolution (relative to agent.yaml directory)
- Environment variable substitution (${VAR_NAME} pattern)
-
Precedence hierarchy: agent.yaml > environment variables > global config
-
Global Configuration Support:
- Load ~/.holodeck/config.yaml for system-wide settings
- Provider configurations at global level
- Tool configurations at global level
- Configuration merging with proper precedence
Data Models¶
-
LLMProvider Model:
-
Multi-provider support (openai, azure_openai, anthropic)
- Model selection and parameter configuration
- Temperature range validation (0-2)
- Max tokens validation (>0)
-
Azure-specific endpoint configuration
-
Tool Models (Discriminated Union):
-
VectorstoreTool: Vector search with source, embedding model, chunk size/overlap
- FunctionTool: Python function tools with parameters schema
- MCPTool: Model Context Protocol server integration
- PromptTool: AI-powered semantic functions with template support
-
Tool type validation and discrimination
-
Evaluation Models:
-
Metric configuration with name, threshold, enabled flag
- Per-metric model override for flexible configuration
-
AI-powered and NLP metrics support
-
TestCase Model:
-
Test inputs with expected behaviors
- Ground truth for validation
- Expected tool usage tracking
-
Evaluation metrics per test
-
Agent Model:
-
Complete agent definition
- All field validations and constraints
-
Tool and evaluation composition
-
GlobalConfig Model:
- Provider registry
- Vectorstore configurations
- Deployment settings
Error Handling¶
-
Custom Exception Hierarchy:
-
HoloDeckError: Base exception ConfigError: Configuration-specific errorsValidationError: Schema validation errors with field details-
FileNotFoundError: File resolution errors with path suggestions -
Human-Readable Error Messages:
- Field names and types in validation errors
- Actual vs. expected values
- File paths with suggestions
- Nested error flattening for complex schemas
Infrastructure & Tooling¶
-
Development Setup:
-
Makefile with 30+ development commands
- Poetry dependency management
- Pre-commit hooks (black, ruff, mypy, detect-secrets)
-
Python 3.10+ support
-
Testing:
-
Unit test suite with 11 test files covering all models
- Integration test suite for end-to-end workflows
- 80%+ code coverage requirement
-
Test execution:
make test,make test-coverage,make test-parallel -
Code Quality:
-
Black code formatting (88 char line length)
- Ruff linting (pycodestyle, pyflakes, isort, flake8-bugbear, pyupgrade, pep8-naming, flake8-simplify, bandit)
- MyPy type checking with strict settings
- Security scanning (safety, bandit, detect-secrets)
-
Automated pre-commit validation
-
Documentation:
- MkDocs site configuration with Material theme
- Getting Started guide (installation, quickstart)
- Configuration guides (agent config, tools, evaluations, global config, file references)
- Example agent configurations (basic, with tools, with evaluations, with global config)
- API reference documentation (ConfigLoader, Pydantic models)
- Architecture documentation (configuration loading flow)
Features Summary by Component¶
ConfigLoader API¶
loader = ConfigLoader()
agent = loader.load_agent_yaml("agent.yaml") # Returns Agent instance
- Parse YAML to Agent instances
- Automatic environment variable substitution
- File reference resolution with validation
- Configuration precedence handling
- Comprehensive error reporting
Schema Support¶
- File References: Instructions and tool definitions can be loaded from files
- Environment Variables: ${ENV_VAR} patterns supported throughout configs
- Type Discrimination: Tool types automatically validated and parsed
- Nested Validation: Complex nested structures validated properly
Testing Coverage¶
Unit Tests (11 files):
test_errors.py- Exception handling and messagingtest_env_loader.py- Environment variable substitutiontest_defaults.py- Default configuration handlingtest_validator.py- Validation utilitiestest_tool_models.py- Tool type validation and discriminationtest_llm_models.py- LLM provider configurationtest_evaluation_models.py- Evaluation metric configurationtest_testcase_models.py- Test case validationtest_agent_models.py- Agent schema validationtest_globalconfig_models.py- Global configuration handlingtest_config_loader.py- ConfigLoader functionality
Integration Tests (1 file):
test_config_end_to_end.py- Full workflow testing
Known Limitations¶
Version 0.0.1 Scope¶
- CLI Not Implemented: No command-line interface (planned for User Story 2)
- No Agent Execution: Agent models are validated but not executed (Phase 2 feature)
- No Tool Execution: Tools are defined but not executed (Phase 2 feature)
- No Evaluation Engine: Metrics are configured but not executed (Phase 2 feature)
- No Deployment: No FastAPI endpoint generation or Docker deployment (Phase 2-3 features)
- No Observability: OpenTelemetry integration planned for Phase 2
- No Plugin System: Plugin packages not yet available (Phase 3 feature)
Validation Limitations¶
- File Validation: Only checks file existence, not content validity
- LLM Provider APIs: No actual API testing (would require credentials)
- Tool Validation: Type validation only, no runtime validation
Known Issues¶
None reported in 0.0.1.
How to Use This Changelog¶
- Unreleased: Features coming in future releases
- Semantic Versioning: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes or new architecture
- MINOR: New features and functionality
- PATCH: Bug fixes and improvements
- Categories: Added (new features), Changed (modifications), Fixed (bug fixes), Deprecated (to be removed), Removed (deprecated features deleted), Security (security fixes)
Roadmap¶
- v0.1 - Core agent engine + CLI
- v0.2 - Evaluation framework
- v0.3 - API deployment
- v0.4 - Multi-agent orchestration & workflows
- v0.5 - Web UI (no-code editor)
- v0.6 - Enterprise features (SSO, audit logs, RBAC)
- v1.0 - Production-ready release
Previous Versions¶
Development Versions¶
- Pre-0.0.1: Architecture planning and vision definition
- Project vision (VISION.md)
- Architecture documentation
- Specification and planning
Contributing¶
See CONTRIBUTING.md for guidelines on:
- Development setup
- Running tests
- Code style requirements
- Submitting pull requests
License¶
HoloDeck is released under the MIT License. See LICENSE file for details.
Changelog Format¶
We follow Keep a Changelog format:
- Added: New features
- Changed: Changes to existing functionality
- Deprecated: Features to be removed in future versions
- Removed: Features that have been removed
- Fixed: Bug fixes
- Security: Security-related changes