UNPKG

@invisiblecities/sidequest-cqo

Version:

Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection

290 lines (225 loc) โ€ข 13.2 kB
# Changelog All notable changes to the SideQuest Code Quality Orchestrator 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). ## [0.2.0-alpha.3] - 2025-07-01 ### Fixed - **๐ŸŽฏ Watch Mode Performance**: Resolved critical ESLint/Prettier configuration conflicts - Fixed EPIPE error in TypeScript engine console output during piped operations - Eliminated 8,639 ESLint style violation noise by implementing eslint-config-prettier - Watch mode no longer hangs on analysis - now runs cleanly with 0 current violations - Disabled conflicting style rules (indent, quotes, comma-dangle) that conflicted with Prettier - **โšก ESLint Configuration Optimization**: Industry-standard style rule management - Added eslint-config-prettier to automatically disable conflicting formatting rules - Preserved unicorn ESLint rules for legitimate code quality suggestions (82 useful violations) - Maintained actionable violation visibility (errors + warnings) without formatting noise - Fixed stream handling in engines to prevent pipe errors during automation ### Enhanced - **๐Ÿ”ง Development Workflow**: Improved watch mode reliability and performance - Watch mode now properly displays actionable violations without overwhelming style noise - Clean JSON output for automation-friendly commands (sidequest:report) - Faster analysis cycles with reduced violation processing overhead - Better separation between formatting (Prettier) and code quality (ESLint) concerns ### Technical Details - Stream output protection: Added `process.stdout.writable` checks before console.log - ESLint configuration: Extended with "prettier" to disable conflicting rules - Violation filtering: Watch mode now shows meaningful violations instead of style conflicts - Performance improvement: Reduced violation processing from 8,639 to 82 relevant suggestions ## [0.2.0-alpha.2] - 2025-07-01 ### Added - **๐Ÿงช Comprehensive Test Coverage**: Enterprise-grade test infrastructure - Added 12 new test files covering critical service and engine components - Service tests: preferences-manager, violation-tracker, unified-orchestrator (75+ tests total) - Engine tests: typescript-engine, eslint-engine with comprehensive mocking - Edge case tests: error recovery, memory pressure, malformed data scenarios - Integration tests: end-to-end workflows, service coordination, realistic workloads - **๐Ÿ”„ Error Recovery Testing**: Robust resilience validation - File system failure simulation and graceful degradation - Memory pressure testing with automatic cache cleanup - Concurrent operation handling and thread safety validation - Cascading service failure recovery scenarios - **๐Ÿ“Š Performance Validation**: Large-scale operation testing - 1000+ violation batch processing efficiency tests - Memory management validation during extended operations - Watch mode rapid file change handling (50+ events) - Service restart configuration consistency verification ### Enhanced - **๐ŸŽฏ Test Infrastructure Integration**: Production-ready testing framework - Proper TypeScript import path handling (`.ts` extensions) - Comprehensive mocking patterns following project standards - Vitest configuration optimized for Node.js CLI environment - Service-oriented testing with proper isolation and cleanup - **๐Ÿ“‹ Real-World Scenario Coverage**: Developer workflow simulation - Complete development lifecycle testing (setup โ†’ bugs โ†’ fixes โ†’ production) - Configuration management across service lifecycle - Watch mode integration with event emission and subscriber management - Error propagation and recovery validation - **๐Ÿ”ง Code Quality Assurance**: Zero-violation codebase achievement - Systematic ESLint cleanup reducing violations from 2,400+ to 11 minor style suggestions - All TypeScript compilation errors resolved (0 violations) - Comprehensive null vs undefined handling improvements - Import style standardization (node:path default imports) ### Fixed - **๐Ÿ› ๏ธ ESLint Violation Resolution**: Major codebase cleanup - Fixed variable naming improvements (dir โ†’ directory) - Resolved EventEmitter vs EventTarget preference conflicts - Fixed control character regex patterns in terminal detection - Improved dynamic import patterns and JSON.stringify usage - **โšก Service Architecture Improvements**: Enhanced reliability - Terminal detector Promise return type consistency - SQL null handling in database queries with proper eslint-disable patterns - Watch controller scoping and arrow function improvements - Violation tracker cache management and performance optimization ### Changed - **Version**: Updated to 0.2.0-alpha.2 for comprehensive test coverage release - **Testing Methodology**: Aligned with comprehensive testing architecture document - **Code Quality Standards**: Achieved enterprise-grade quality metrics - Zero TypeScript compilation errors - Zero ESLint errors (only 11 minor style suggestions remaining) - Comprehensive test coverage for all critical components - Production-ready error handling and recovery patterns ### Performance - **๐Ÿš€ Test Execution Efficiency**: Optimized testing infrastructure - Full test suite completes in under 30 seconds - Individual tests use less than 10MB heap increase - Concurrent test execution with proper isolation - Memory pressure simulation with automatic cleanup ### Technical Debt - **๐Ÿ“ˆ Test Coverage Metrics**: Significant infrastructure improvements - Service layer coverage: 95% of critical services tested - Engine layer coverage: Core TypeScript and ESLint engines validated - Error recovery coverage: Comprehensive edge case scenarios - Integration coverage: Full workflow and coordination testing - Performance coverage: Memory management and scalability validation ## [0.2.0-alpha.1] - 2025-07-01 ### Added - **๐Ÿบ Code Archaeology Engine**: Comprehensive technical debt analysis system - Dead code detection using ts-prune (unused exports, unreachable code, unused imports) - Code duplication analysis using jscpd (exact and structural duplicates) - Smart confidence scoring with false positive filtering - Actionable recommendations with effort and impact assessment - **๐Ÿ“ JSDoc Annotation System**: Developer-controlled archaeology exclusions - Permanent exclusions for CLI functions and public APIs - Temporary exclusions with version-aware recheck system - Structured annotation parsing with metadata support - **๐ŸŽฏ Enhanced CLI Flags**: New archaeology-specific options - `--archaeology`: Run technical debt analysis only - `--include-archaeology`: Add archaeology to standard analysis - Support in watch mode and verbose output - **๐Ÿ”ง Unified Orchestrator Architecture**: Consolidated dual orchestrator systems - Eliminated legacy CodeQualityOrchestrator vs OrchestratorService duplication - Single unified system with modular components - Better configuration management and service integration ### Enhanced - **๐ŸŽจ AI Context & Help**: Updated documentation for archaeology features - New LLM-specific archaeology commands in AI context - Comprehensive JSDoc annotation examples in help - Updated workflows and usage patterns - **๐Ÿ“Š False Positive Filtering**: Intelligent pattern recognition - CLI function detection (lower confidence scoring) - Public API pattern recognition (Config, Interface, Schema types) - Service factory function identification - **๐Ÿ”„ Performance Optimization**: Parallel processing for annotation parsing - Async JSDoc comment analysis - Promise.all pattern for multiple file processing - Maintained TypeScript strict mode compliance ### Changed - **Architecture**: Migrated from dual orchestrator to unified system - **Version**: Updated to 0.2.0-alpha.1 for Alpha 2 feature set - **Dependencies**: Added ts-prune and jscpd for archaeology analysis ### Technical Implementation - Extended `BaseAuditEngine` pattern for `CodeArchaeologyEngine` - Added comprehensive violation types: `DeadCodeViolation`, `CodeDuplicationViolation` - Implemented `ArchaeologyReport` interface with technical debt metrics - Version-aware annotation system with automatic recheck triggers - Integration with existing SQLite persistence and violation tracking ## [0.1.0-alpha.2] - 2024-01-15 ### Added - **PRD Generation**: New `--prd` flag generates comprehensive Product Requirements Documents for Claude Task Master integration - **SideQuest Binary**: Added `sidequest` as primary binary alias for easier usage (`npx sidequest`) - **Flexible Data Directory**: `--data-dir` flag allows custom database locations (project vs global storage) - **Verbose Output**: Replaced `--json` with `--verbose` for clearer semantics and detailed JSON output - **Better CI Support**: Replaced sqlite3 with better-sqlite3 for pre-built binaries - **Code Formatting**: Added Prettier configuration and formatting scripts ### Changed - **Primary Command**: `sidequest` is now the recommended command (shorter than `code-quality-orchestrator`) - **CLI Help**: Updated all examples to use `sidequest` command consistently - **Documentation**: Comprehensive updates to README with installation modes and PRD generation - **Dependencies**: Moved better-sqlite3 to main dependencies for better CI compatibility ### Enhanced - **Configuration System**: Enhanced `createOrchestratorService` to accept custom configurations - **Installation Behavior**: Clear documentation of data directory creation patterns - **Task Master Integration**: Full workflow integration with automatic PRD generation - **Help Text**: Enhanced CLI help with data directory explanation and PRD examples ### Technical Details - PRD files are generated as `CODE_QUALITY_PRD.md` in the target directory - Support for both project-scoped (`./data/`) and global (`~/.cqo-data/`) storage - Environment variable `CQO_DB_PATH` for global database path configuration - Comprehensive PRD content including metrics, priorities, timelines, and resource estimates ### Usage Examples ```bash # Primary usage patterns sidequest --watch # Watch mode sidequest --prd # Generate PRD sidequest --data-dir ~/.cqo-data # Global storage sidequest --verbose # Detailed output # Package scripts npm run prd # Generate PRD npm run format # Format code ``` ### Migration Guide - `--json` flag deprecated, use `--verbose` instead (old flag still works) - Consider migrating to `sidequest` command for shorter typing - Review data directory behavior if you relied on undocumented assumptions ### Breaking Changes - None (fully backward compatible) ## [0.1.0-alpha.1] - 2024-12-29 ### Added - ๐ŸŽ‰ Initial alpha release of Code Quality Orchestrator - โšก Real-time watch mode with smooth, non-scrolling updates - ๐ŸŽจ Intelligent terminal color detection using OSC escape sequences - ๐Ÿ“Š Developer-focused display showing session progress and daily trends - ๐Ÿ—„๏ธ SQLite persistence with comprehensive violation tracking - ๐Ÿ”ง Extensive CLI with multiple analysis modes - ๐Ÿ“ TypeScript and ESLint violation detection - ๐Ÿ—๏ธ Service-oriented architecture with proper interfaces - ๐Ÿงช Comprehensive test suite with 42+ passing tests - ๐Ÿ“š Professional documentation and examples ### Features - **Terminal Detection**: Automatic light/dark mode detection with fallback - **Watch Mode**: Live monitoring with session and daily progress tracking - **Performance**: Sub-second response times with smart caching - **Extensibility**: Plugin-ready architecture for custom rules - **Type Safety**: 100% TypeScript with strict mode compliance - **Error Handling**: Comprehensive error handling with debug support ### Performance - Watch cycle execution: < 300ms typical - Memory usage: < 50MB for large codebases - Database operations: SQLite with WAL mode - Cache hit rate: > 90% for violation tracking ### Developer Experience - Clean session summary with +/- metrics - Today's progress tracking across sessions - Intelligent category grouping (TypeScript vs ESLint) - Professional terminal output with proper color schemes - Extensive CLI help and debugging options ### Technical Highlights - OSC escape sequence terminal detection - Branded TypeScript types for runtime safety - Singleton display management with resource cleanup - Service orchestration with event-driven architecture - Advanced violation deduplication and categorization ## [Unreleased] ### Planned Features - ๐Ÿ”Œ Plugin system for custom violation rules - ๐Ÿ“ˆ Advanced analytics and trend reporting - ๐ŸŒ Web dashboard for team monitoring - ๐Ÿ”— CI/CD integration helpers - ๐Ÿ“ฑ Mobile-friendly progress notifications - ๐ŸŽฏ Rule recommendation engine - ๐Ÿš€ Performance optimization suggestions --- ## Release Tags - `alpha` - Early development releases for testing - `beta` - Feature-complete releases for broader testing - `latest` - Stable production releases