# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.1.1] - 2025-07-23

### Added
- GitHub sync functionality for bidirectional synchronization with GitHub issues and PRs
- GitHub CLI (gh) integration for issue and PR management
- Sync commands: `aitrackdown sync github pull/push/status`
- Sync configuration management in `.aitrackdown/sync.json`
- Support for syncing issue labels, assignees, and milestones
- Documentation reorganization with clear user/development separation
- Index files for documentation sections to improve navigation

### Fixed
- Task update slice indices error - added missing `save_task` method in TaskManager
- Comment functionality lookup issues - improved file path finding patterns
- Status project NoneType error - added validation for empty project.yaml files
- Proper error handling for task updates with epic/parent relationships
- YAML parsing and double-escaping issues in various commands

### Changed
- Documentation structure moved to organized subdirectories (user/, development/, design/, misc/)
- Removed redundant documentation files from root directory
- Consolidated PyPI publishing guides into development documentation
- Improved error messages and user feedback throughout CLI

### Development
- Enhanced test coverage for new sync functionality
- Added GitHub API mocking for offline testing
- Improved CI/CD pipeline with security checks
- Updated dependencies for GitHub integration

## [1.1.0] - 2025-07-21

### Added
- The `aitrackdown` CLI command is the primary command for this project
- Standardized command naming for better user experience
- Full schema compliance with proper ID prefixes (EP-, ISS-, TSK-, PR-)
- Correct directory structure (tasks/epics/, tasks/issues/, tasks/tasks/, tasks/prs/)
- Epic/issue linking commands with `--epic` option for updates
- Plain output mode (`--plain`) for AI-friendly command output
- Environment variable support (AITRACKDOWN_PLAIN, NO_COLOR, CI)
- Auto-detection of piped output for simplified formatting
- Bidirectional relationship management for epic/issue/task linking
- Comment system for issues (with future support for epics/tasks)
- Index management system for efficient searching
- Field validation for required schema fields

### Fixed
- Cross-project file creation issue - proper project isolation
- Task update display warning about "limit must be an integer"
- YAML parsing warnings and double-escaping issues
- File naming consistency (no more double dashes)
- Missing required fields in legacy file formats

### Changed
- Migrated from single TSK- prefix to proper schema prefixes
- Reorganized file structure to match ai-trackdown schema
- Improved help command descriptions for better AI usability
- Enhanced error messages and user feedback

## [1.0.0] - 2025-07-21

### Added
- Enhanced unit test coverage for all core functions
- Comprehensive test suite with 90%+ coverage targets
- Extended validation testing with edge cases
- PyPI-optimized documentation with badges and examples
- setup.py for compatibility with older pip versions
- py.typed marker for PEP 561 compliance
- Comprehensive project metadata and classifiers
- Extended keywords for better PyPI discoverability
- Production-ready stability and performance
- Security validation with multiple scanning tools
- Full CI/CD automation with GitHub Actions
- Comprehensive error handling and recovery
- Performance benchmarks and stress testing
- PyPI publication readiness with all requirements

### Changed
- Improved test fixtures and parametrized testing
- Enhanced error handling test scenarios
- Updated README with professional PyPI presentation
- Expanded project metadata in pyproject.toml
- Enhanced MANIFEST.in for complete package distribution
- Upgraded from Beta to Production/Stable status
- Version bumped from 0.9.0 to 1.0.0

### Documentation
- Added real-world usage examples in README
- Created comprehensive command reference table
- Added plugin system preview documentation
- Enhanced installation instructions with multiple methods
- Added community and support information
- Created PyPI upload and distribution guides
- Added Homebrew formula for macOS installation

### Security
- Passed Bandit security scanning
- Passed Safety vulnerability scanning
- Passed pip-audit dependency checks
- Implemented secure configuration handling
- Added input validation across all commands

### Testing
- Achieved comprehensive test coverage
- Added stress testing for large datasets
- Implemented performance benchmarking
- Created end-to-end test scenarios
- Added cross-platform compatibility tests

### Distribution
- Prepared for PyPI publication
- Created source and wheel distributions
- Validated package metadata and classifiers
- Tested installation on multiple platforms
- Added Homebrew formula for easy macOS installation

## [0.9.0] - 2025-07-11

### Added
- Semantic versioning implementation starting at 0.9.0
- Comprehensive CHANGELOG backfilled with current features
- Initial project structure and packaging
- CLI framework with Typer and Rich for enhanced user experience
- Core modules for configuration, projects, and task management
- Template system with YAML-based templates for standardized workflows
- JSON schema validation for all ticket types (tasks, epics, issues, PRs)
- Git integration utilities for version control workflows
- Project initialization and configuration management
- Task creation, management, and tracking capabilities
- Rich terminal output with colors and formatting
- Frontmatter parsing for YAML metadata in markdown files
- Health check system for project validation
- Editor integration for external editing capabilities
- Comprehensive testing infrastructure with pytest
- Test fixtures for all major components
- Unit, integration, and end-to-end test suites
- Performance testing framework
- Modern Python packaging with pyproject.toml
- Development tooling integration (black, ruff, mypy)
- Pre-commit hooks for code quality enforcement
- Coverage reporting with HTML and XML output
- Tox integration for multi-environment testing
- GitHub Actions CI/CD pipeline
- Comprehensive documentation and examples

### Technical Implementation
- Pydantic models for data validation and serialization
- Singleton pattern for configuration management
- Template rendering with Jinja2
- Path-based project discovery and management
- YAML configuration with dot notation access
- Git repository integration with GitPython
- CLI command structure with proper error handling
- Modular architecture with clear separation of concerns

### Development Infrastructure
- pytest configuration with markers and fixtures
- Coverage configuration with exclusions
- Black code formatting with 88-character line length
- Ruff linting with comprehensive rule set
- MyPy type checking with strict settings
- Pre-commit hooks for automated quality checks
- GitHub Actions workflows for CI/CD
- Multi-Python version support (3.8-3.12)

### Quality Assurance
- Comprehensive test fixtures for all scenarios
- Mock integration for external dependencies
- Parametrized testing for multiple input scenarios
- Performance testing for large datasets
- Error simulation and edge case testing
- Integration testing for complete workflows
- End-to-end testing for user scenarios
- CLI testing with Typer test runner

### Note
This version represents the initial beta release of AI Trackdown PyTools. The project
follows semantic versioning principles and is approaching feature completeness for v1.0.0.