All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Documentation: Updated all documentation to reflect current project state
- README.md updated with latest release reference
- docs/INDEX.md updated with version 8.0.8 and release history
- docs/setup/INSTALL.md updated with 8.0.x features
- docs/CHANGELOG.md updated with complete 8.0.x history
- PyPI: Documentation patch to synchronize PyPI package page with current README
- Async Test Configuration: Fixed 32 failing async unit tests by ensuring
pytest-asynciois properly installed - Store Command Test: Fixed
test_init_already_existsby patchingDEFAULT_STORE_PATH(evaluated at import time) - Test Suite: Achieved 100% test pass rate (774 passing, 0 failing, 52 skipped)
- Updated
uv.lockto properly includepytest-asyncio>=1.3.0
- Python venv support: Workflow scripts can now specify dependencies with
@requiresmetadata - Dependencies are automatically installed in isolated virtual environments
- Native Script Support in Edit Command:
mcli editnow supports editing Python and shell scripts directly
- CI/CD pipeline fixes (Bandit security scan, Python version matrix)
- Pre-commit hook cleanup (removed unsupported safety hook)
- Code formatting fixes
- Simplified CLI Structure: Cleaner command hierarchy focused on workflow management
- IPFS Sync: Decentralized workflow sharing with immutable CIDs
- Lockfile Management: Version control for workflows with
commands.lock.json mcli synccommand: Merged lockfile and IPFS sync functionality
- Reorganized top-level commands for better UX
mcli runis now the primary command for executing workflows
- Code Quality Infrastructure: Complete linting and formatting configuration
- Added comprehensive
.pylintrcconfiguration - Enhanced mypy configuration with additional options and optional dependency handling
- Added
make lint-pylinttarget for optional pylint checking - Comprehensive linting documentation at
docs/development/LINTING.md
- Added comprehensive
- Optional Dependencies: Graceful handling system for optional dependencies
- New
mcli/lib/optional_deps.pyutility module with multiple patterns - 21 comprehensive unit tests (100% pass rate)
- Documentation guide at
docs/guides/OPTIONAL_DEPENDENCIES.md - Updated ai_service.py to demonstrate graceful degradation
- New
- Testing Infrastructure: Enhanced test infrastructure and documentation
- Added performance and dependency-specific pytest markers
- Comprehensive testing guide at
docs/development/TESTING.md - 1,129 tests collecting successfully (847 passing, 75% pass rate)
- Test Coverage: Coverage configuration and CI integration
- Set minimum coverage threshold to 30%
- Integrated Codecov into CI/CD pipeline
- Added coverage, CI/CD status, and Python version badges to README
- Test Command Filtering: Automatic filtering of test commands
- Commands starting with
test_ortest-are filtered by default MCLI_INCLUDE_TEST_COMMANDSenvironment variable for override- 8 comprehensive unit tests
- Commands starting with
- Project Documentation: Standard project documentation files
- Added
CODE_OF_CONDUCT.md(Contributor Covenant 2.1) - Added
tox.inifor multi-environment testing (Python 3.9-3.12) - Enhanced CI/CD with security scanning (Bandit, Safety, Trivy)
- Added CodeQL security analysis workflow
- Added Dependabot configuration for automated dependency updates
- Added
- Build System: Cleaned up build artifacts and improved .gitignore
- Removed all
__pycache__, pytest cache, dist, and build directories - Added
*.vsixto .gitignore for VS Code extension builds - Added repo-cleanup workflow documentation
- Removed all
- CI/CD Pipeline: Enhanced security and coverage reporting
- Coverage reports uploaded to Codecov from all test runs
- Bandit security linter integrated into CI
- Safety dependency vulnerability checking
- Trivy filesystem scanning for CRITICAL and HIGH severity issues
- Security reports uploaded as artifacts
- CodeQL analysis running weekly and on PRs
docs/development/LINTING.md- Complete linting and code quality guide (400+ lines)docs/development/TESTING.md- Comprehensive testing guide (500+ lines)docs/guides/OPTIONAL_DEPENDENCIES.md- Optional dependency handling patternsdocs/features/REPO_CLEANUP.md- Repository cleanup command documentationdocs/guides/REPO_CLEANUP_GUIDE.md- Quick start guide for repo cleanup
- Test infrastructure now robust with proper fixtures and markers
- Import errors for optional dependencies handled gracefully
- Test command pollution in production command lists prevented
- Document Conversion Workflow: Enhanced Unicode support and dependency management
- Switched to XeLaTeX engine for all PDF conversions (better Unicode/emoji handling)
- Fixed conversion failures for documents containing special characters
- All fallback strategies now support Unicode characters properly
- Cleanup Command: New
mcli workflow doc-convert cleanupcommand- Generates uninstall script for all doc-convert dependencies
- Safe removal with confirmation prompts and warnings
- Script location:
~/.mcli/commands/doc-convert-cleanup.sh - Removes: pandoc, basictex, LaTeX packages, jupyter, nbconvert
- Updated init command documentation to mention XeLaTeX and cleanup command
- Improved conversion success rate for complex documents with Unicode content
- Successfully converted 23 UIUC documents (20 IPYNB + 3 HTML files)
- 100% success rate with new XeLaTeX engine
- Verified fallback strategies handle edge cases
- Document Conversion Workflow: Enhanced LaTeX package management and conversion reliability
- Added
collection-latexextraandcollection-fontsrecommendedfor comprehensive LaTeX support - Integrated
mktexlsrstep to automatically refresh font database after package installation - Implemented temp directory system (
~/.mcli/commands/temp/conversions/) for safe file handling - Added hard link support with automatic fallback to file copying
- Enhanced fallback strategies for Jupyter notebook → PDF conversions (4-tier strategy)
- Improved error messages with detailed conversion failure information
- Complete LaTeX package documentation in init command
- Added
- Resolved path issues with spaces and special characters through temp directory system
- Fixed font availability issues by adding
mktexlsrto refresh font database - Improved conversion success rate with multiple fallback strategies
- Comprehensive LaTeX font support via
collection-fontsrecommended - Temp directory cleanup after conversions
- Conversion method reporting in summary output
- Document Conversion Workflow (doc-convert): Comprehensive pandoc wrapper for converting documents between formats
mcli workflow doc-convert init: One-command dependency installation (pandoc + BasicTeX via Homebrew)mcli workflow doc-convert convert: Convert documents with smart format detection and glob pattern support- Support for 20+ document formats including Markdown, HTML, PDF, DOCX, Jupyter notebooks, LaTeX, EPUB, and more
- Format aliases for common abbreviations (md → markdown, doc → docx, etc.)
- Batch conversion with glob patterns (e.g.,
"docs/**/*.md") - Custom output directory support
- Pass-through for additional pandoc arguments
- macOS Finder Service: "Convert File(s) Here" service for right-click document conversion in Finder
- Automatic format detection from file extensions
- Multi-file selection support
- User-friendly dialog for output format selection
- Added comprehensive test coverage for doc-convert workflow
- Updated documentation with doc-convert usage examples
- Package rebuild for PyPI distribution
- Major refactoring to eliminate code duplication (DRY principle)
- Created
CloudProviderManagerbase class to consolidate AWS, GCP, and Azure credential managers (eliminated 163 lines of duplicate code) - Extracted dashboard common utilities into
common.pyandstyles.py(consolidated 300+ lines across 4 dashboards) - Created
scripts/utils/supabase_helper.pywith reusable Supabase connection utilities (eliminated 150+ lines across 5 scripts) - Refactored 5 Supabase scripts to use centralized helper functions
- Removed duplicate logs command implementation from
self_cmd.py(eliminated 260 lines) - Removed 10 deprecated commands completely (eliminated 461 lines)
- Total reduction: ~1,300+ lines of duplicate/deprecated code
- Created
- Comprehensive CLAUDE.md documentation for AI-assisted development
- Shared dashboard utilities for page config, CSS styles, and Supabase client creation
- Centralized Supabase helper functions for consistent credential management
- Better code maintainability through centralized utilities
- Consistent error handling across Supabase scripts
- Cleaner dashboard implementations with shared styling
- Fixed deprecated Pydantic
regexparameter in Field definitions (now usespattern) - Fixed deprecated Pydantic
orm_modein model Config classes (now usesfrom_attributes) - Fixed global variable declaration order in CLI config command
- Resolved
mcli self searchcommand errors and warnings
- Comprehensive environment configuration template (
.env.example) - Pre-commit hooks configuration for code quality
- Test coverage configuration and reporting
- Enhanced Makefile with development targets
- Comprehensive linting and formatting configuration
- Security scanning with bandit and safety
- Project documentation (CONTRIBUTING.md, CODE_OF_CONDUCT.md)
- Docker support for development and deployment
- Tox configuration for multi-environment testing
- Requirements.txt files for compatibility
- Enhanced README.md with better setup instructions
- Improved .gitignore with comprehensive patterns
- Updated project structure and organization
- Cleaned up build artifacts and Python cache files
- Organized untracked files into proper directories
- Comprehensive shell completion and fix Supabase connectivity
- Enhanced git commit workflow with AI service integration
- Politician trading data collection and monitoring features
- RAG and other AI functionality improvements
- Updated version to 5.5.1 for dot release
- Enhanced CI/CD workflows and testing
- Various bug fixes and improvements
- AI chat integration with OpenAI and Anthropic support
- Command management and dynamic discovery
- Rich UI with colorful command-line experience
- IPython integration for interactive development
- Shell completion for bash, zsh, and fish
- Daemon and scheduler functionality
- Video processing capabilities
- Performance optimizations with Rust extensions
- Migrated to UV for package management
- Enhanced project structure and organization
- Improved CLI interface and user experience
- Multiple performance and stability improvements
- Initial release of MCLI framework
- Core CLI functionality with Click and Rich
- Basic command structure and extensibility
- Foundation for future enhancements
- Complete rewrite of the CLI framework
- Modern Python packaging with pyproject.toml
No breaking changes. Update normally:
uv pip install -U mcli-
Environment setup: Copy
.env.exampleto.envand configure:cp .env.example .env # Edit .env with your API keys -
Dependencies: If you have custom dependencies, review the new dependency structure in
pyproject.toml -
Commands: No breaking changes to existing commands
Starting from version 5.5.1, development setup includes:
- Environment configuration: Required
.envfile setup - Pre-commit hooks: Automatic code quality checks
- Enhanced testing: Coverage reporting and multiple test types
- Comprehensive linting: Multiple tools for code quality
# New Makefile targets
make lint # Run all linting tools
make format # Auto-format code
make test-cov # Run tests with coverage
make pre-commit-install # Install pre-commit hooks
make security-check # Run security checksNone in recent releases. All changes are backward compatible.
# With UV (recommended)
uv pip install -U mcli
# With pip
pip install -U mcli# Update dependencies
make setup
# Install new development tools
make install-dev
# Setup pre-commit hooks
make pre-commit-install
# Configure environment
cp .env.example .env
# Edit .env with your configuration- Python 3.9+
- Python 3.10+
- Python 3.11+
- Python 3.12+
- macOS (Intel and Apple Silicon)
- Linux (Ubuntu, CentOS, Debian)
- Windows 10/11
See pyproject.toml for complete dependency information.
- Added security scanning with bandit
- Enhanced input validation
- Improved secret management guidelines
- Enhanced Rust extensions integration
- Improved async performance with uvloop
- Optimized memory usage
- Initial Rust extensions for performance
- Async/await optimization
- Caching improvements
None reported for latest version.
- Build artifacts cleanup (fixed in 5.5.1)
- Environment configuration (improved in 5.5.1)
- Test coverage reporting (added in 5.5.1)
- Luis Fernandez de la Vara (@lefv) - Project Creator and Maintainer
- Built with Click for CLI interfaces
- Styled with Rich for beautiful output
- Managed with UV for fast Python packaging
- AI integration with OpenAI and Anthropic APIs
Releases are automated through GitHub Actions:
- Version bumping via
make bump-version VERSION=x.y.z - Automated testing across multiple Python versions
- Automated building and publishing to PyPI
- GitHub release creation with changelog
For detailed release information, see GitHub Releases.