@@ -5,6 +5,113 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ Unreleased]
9+
10+ ---
11+
12+ ## [ 2.2.5] - 2026-02-07
13+
14+ ### Added
15+
16+ #### .wpcignore Support - Exclude Directories from Scans
17+
18+ - ** Added .wpcignore file support** (similar to .gitignore) to exclude directories and files from scans
19+ - Automatically loads exclusions from ` .wpcignore ` in scan path, current directory, or repository root
20+ - Supports directory patterns (e.g., ` tools/ ` , ` .git/ ` , ` node_modules/ ` )
21+ - Supports file patterns with wildcards (e.g., ` *.min.js ` , ` *.log ` )
22+ - Comments (lines starting with ` # ` ) and empty lines are ignored
23+ - ** Impact:** Prevents scanning embedded dependencies, version control files, and build artifacts
24+ - ** Use case:** Prevents recursive scanning when AI-DDTK scans itself (WPCC embedded at ` tools/wp-code-check/ ` )
25+
26+ - ** Created .wpcignore template** at ` dist/templates/.wpcignore.template `
27+ - Sensible defaults: ` tools/ ` , ` .git/ ` , ` node_modules/ ` , ` vendor/ ` , ` dist/logs/ ` , ` dist/reports/ `
28+ - Minified files: ` *.min.js ` , ` *.min.css ` , ` *bundle*.js `
29+ - Organized by category with comments explaining each exclusion
30+ - Ready to copy to project root and customize
31+
32+ - ** Created .wpcignore for AI-DDTK** at ` /Users/noelsaw/Documents/GH Repos/AI-DDTK/.wpcignore `
33+ - Excludes ` tools/ ` directory to prevent WPCC from scanning its own embedded copy
34+ - Prevents timeout/stalling issues when scanning AI-DDTK repository
35+
36+ #### Progress Indicators for Magic String Detector
37+
38+ - ** Added progress indicators to Magic String Detector aggregation loops**
39+ - Shows "Processing match X of Y..." every 10 seconds during string extraction (lines 2582-2619)
40+ - Shows "Analyzing string X of Y..." every 10 seconds during string aggregation (lines 2631-2687)
41+ - Follows same pattern as clone detection progress indicators (added in v1.0.85)
42+ - ** Impact:** Users can see progress during long scans, reducing perceived wait time
43+ - ** Fixes:** Stalling/timeout issues reported when scanning large codebases (10K+ files)
44+
45+ #### --skip-magic-strings Flag - Last Resort for Timeout Issues
46+
47+ - ** Added ` --skip-magic-strings ` command-line flag** to completely skip Magic String Detector phase
48+ - ** Alias:** ` --disable-magic-strings ` (both flags work identically)
49+ - ** Use case:** Last resort option when scans timeout during Magic String Detector aggregation
50+ - ** Behavior:** Shows warning message "⚠ Skipped (--skip-magic-strings flag enabled)" and bypasses entire phase
51+ - ** Pattern:** Follows same approach as existing ` --skip-clone-detection ` flag
52+ - ** Impact:** Allows scans to complete even when Magic String Detector would timeout
53+ - ** Trade-off:** Skips detection of duplicate option names, transient keys, and capability strings
54+ - ** Examples:**
55+ - ` wpcc --paths . --skip-magic-strings --format json `
56+ - ` wpcc --paths . --disable-magic-strings --format json ` (alias)
57+
58+ ### Changed
59+
60+ - ** Improved exclusion handling in clone detection and file caching**
61+ - Clone detection now uses dynamic ` GREP_EXCLUSIONS ` from ` EXCLUDE_DIRS ` (includes .wpcignore entries)
62+ - File caching now applies .wpcignore exclusions instead of hardcoded ` vendor/ ` and ` node_modules/ `
63+ - Added ` build_grep_exclusions() ` helper function to convert ` EXCLUDE_DIRS ` to grep -v commands
64+ - ** Impact:** Consistent exclusion behavior across all scan phases
65+
66+ ### Technical Details
67+
68+ - ** Files Modified:**
69+ - ` dist/bin/check-performance.sh ` :
70+ - Added ` SKIP_MAGIC_STRINGS=false ` variable (line 150)
71+ - Added ` --skip-magic-strings ` and ` --disable-magic-strings ` to help text (lines 471-472)
72+ - Added argument parsing for both flags (line 834: ` --skip-magic-strings|--disable-magic-strings ` )
73+ - Added skip logic for Magic String Detector (lines 6201-6218, closing fi at line 6272)
74+ - Added ` load_wpcignore() ` function (lines 900-941)
75+ - Added ` build_grep_exclusions() ` helper (lines 960-970)
76+ - Updated ` process_aggregated_pattern() ` with progress indicators (lines 2579-2687)
77+ - Updated ` process_clone_detection() ` to use dynamic exclusions (lines 2815-2834)
78+ - Updated file caching to use dynamic exclusions (lines 3337-3347)
79+ - ` dist/templates/.wpcignore.template ` - Created
80+ - ` /Users/noelsaw/Documents/GH Repos/AI-DDTK/.wpcignore ` - Created
81+
82+ - ** Version:** Bumped to 2.2.5
83+
84+ ### Documentation
85+
86+ - ** TODO:** Update README.md with .wpcignore documentation
87+ - ** TODO:** Update SHELL-QUICKSTART.md with .wpcignore usage
88+ - ** TODO:** Update dist/TEMPLATES/_ AI_INSTRUCTIONS.md with .wpcignore troubleshooting
89+
90+ ---
91+
92+ ### Changed
93+
94+ #### Documentation: AI-DDTK Integration
95+
96+ - ** Added AI-DDTK as installation option** in README.md with comprehensive value proposition
97+ - New "Option 2: Via AI-DDTK" section in Quick Start → Installation
98+ - Detailed comparison table showing all tools included with AI-DDTK
99+ - Key benefits: centralized toolkit, AI-optimized workflows, global access, automatic updates
100+ - Clear guidance on when to choose AI-DDTK vs standalone installation
101+ - ** Added "Related Projects" section** explaining AI-DDTK's git subtree relationship with WPCC
102+ - Documents how AI-DDTK embeds WPCC at ` tools/wp-code-check/ `
103+ - Explains update mechanism (` ./install.sh update-wpcc ` )
104+ - Clarifies that both options provide identical WPCC features
105+ - ** Created strategic analysis document** at ` PROJECT/1-INBOX/STRATEGIC-ANALYSIS-WPCC-VS-AI-DDTK.md `
106+ - Analyzed whether Claude Code Integration features should be ported to AI-DDTK
107+ - Conclusion: Keep all features in WPCC (MCP, AI Triage, GitHub Issues)
108+ - Rationale: AI-DDTK embeds WPCC via git subtree; porting would create circular dependency
109+ - Documents actual AI-DDTK architecture (v1.0.5) vs initial assumptions
110+
111+ ** Context:** AI-DDTK (AI Driven Development ToolKit) is a centralized toolkit that includes WP Code Check plus additional WordPress development tools (local-wp, WP AJAX Test, Playwright, PHPStan recipes, AI agent guidelines). It provides a global ` wpcc ` command and is optimized for AI-driven workflows with Claude Code, Cursor, Augment, etc.
112+
113+ ---
114+
8115## [ 2.2.4] - 2026-02-07
9116
10117### Fixed
0 commit comments