- Updated n8n from 1.117.2 to 1.118.1
- Updated n8n-core from 1.116.0 to 1.117.0
- Updated n8n-workflow from 1.114.0 to 1.115.0
- Updated @n8n/n8n-nodes-langchain from 1.116.2 to 1.117.0
- Rebuilt node database with 542 nodes (439 from n8n-nodes-base, 103 from @n8n/n8n-nodes-langchain)
- Updated README badge with new n8n version
- Updated CHANGELOG with dependency changes
Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Fixes#376
Without this environment variable, Claude Desktop shows JSON parsing errors
because debug logs contaminate the JSON-RPC stdout channel.
Added prominent warning to Quick Start section explaining:
- Why MCP_MODE=stdio is required
- What happens without it (JSON parse errors)
- How it prevents the issue (suppresses console output)
Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
Co-authored-by: Claude Code Assistant <noreply@anthropic.com>
Add 158 unit tests (157 passing, 1 skipped) across 5 new test files to
achieve strong coverage of the workflow versioning and auto-update features.
New test files:
- workflow-versioning-service.test.ts (39 tests)
* Version backup, restore, deletion, pruning
* Version history and comparison
* Storage statistics and auto-pruning
* Edge cases: missing API, version not found, restore failures
- node-version-service.test.ts (37 tests)
* Version discovery and caching (with TTL)
* Version comparison and upgrade analysis
* Breaking change detection and confidence scoring
* Upgrade path suggestions and intermediate versions
- node-migration-service.test.ts (32 tests, 1 skipped)
* Node parameter migrations (add/remove/rename/set default)
* Webhook UUID generation
* Nested property migrations
* Batch workflow migrations with validation
- breaking-change-detector.test.ts (26 tests)
* Registry-based and dynamic breaking change detection
* Property additions/removals/requirement changes
* Severity calculation and change merging
* Nested property handling and recommendations
- post-update-validator.test.ts (24 tests)
* Post-update guidance generation
* Required actions and deprecated properties
* Behavior change documentation (Execute Workflow, Webhook)
* Migration steps, confidence calculation, time estimation
Also update README.md to include the new n8n_workflow_versions tool
in the Workflow Management tools section.
Coverage impact:
- Targets services with highest missing coverage from Codecov report
- Addresses 1630+ lines of missing coverage in new services
- Comprehensive mocking of dependencies (database, API clients)
- Follows existing test patterns from workflow-auto-fixer.test.ts
All tests use vitest with proper mocking, edge case coverage, and
deterministic assertions following project conventions.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
* docs: Update CLAUDE.md with development notes
* chore: update n8n to v1.116.2
- Updated n8n from 1.115.2 to 1.116.2
- Updated n8n-core from 1.114.0 to 1.115.1
- Updated n8n-workflow from 1.112.0 to 1.113.0
- Updated @n8n/n8n-nodes-langchain from 1.114.1 to 1.115.1
- Rebuilt node database with 542 nodes
- Updated version to 2.20.7
- Updated n8n version badge in README
- All changes will be validated in CI with full test suite
Conceived by Romuald Członkowski - www.aiadvisors.pl/en
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: regenerate package-lock.json to sync with updated dependencies
Fixes CI failure caused by package-lock.json being out of sync with
the updated n8n dependencies.
- Regenerated with npm install to ensure all dependency versions match
- Resolves "npm ci" sync errors in CI pipeline
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: align FTS5 tests with production boosting logic
Tests were failing because they used raw FTS5 ranking instead of the
exact-match boosting logic that production uses. Updated both test files
to replicate production search behavior from src/mcp/server.ts.
- Updated node-fts5-search.test.ts to use production boosting
- Updated database-population.test.ts to use production boosting
- Both tests now use JOIN + CASE statement for exact-match prioritization
This makes tests more accurate and less brittle to FTS5 ranking changes.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* fix: prioritize exact matches in FTS5 search with case-insensitive comparison
Root cause: SQL ORDER BY was sorting by FTS5 rank first, then CASE statement.
Since ranks are unique, the CASE boosting never applied. Additionally, the
CASE statement used case-sensitive comparison which failed to match nodes
like "Webhook" when searching for "webhook".
Changes:
- Changed ORDER BY from "rank, CASE" to "CASE, rank" in production code
- Added LOWER() for case-insensitive exact match detection
- Updated both test files to match the corrected SQL logic
- Exact matches now consistently rank first regardless of FTS5 score
Impact:
- Improves search quality by ensuring exact matches appear first
- More efficient SQL (less JavaScript sorting needed)
- Tests now accurately validate production search behavior
- Fixes 2/705 failing integration tests
Verified:
- Both tests pass locally after fix
- SQL query tested with SQLite CLI showing webhook ranks 1st
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: update CHANGELOG with FTS5 search fix details
Added comprehensive documentation for the FTS5 search ranking bug fix:
- Problem description with SQL examples showing wrong ORDER BY
- Root cause analysis explaining why CASE statement never applied
- Case-sensitivity issue details
- Complete fix description for production code and tests
- Impact section covering search quality, performance, and testing
- Verified search results showing exact matches ranking first
This documents the critical bug fix that ensures exact matches
appear first in search results (webhook, http, code, etc.) with
case-insensitive matching.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
* feat: Add Claude Skills documentation and setup guide
- Added skills section to README.md with video thumbnail
- Added detailed skills installation guide to Claude Code setup
- Included new skills.png image for video preview
- Referenced n8n-skills repository for all 7 complementary skills
Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
* feat: Add YouTube video link to skills documentation
- Updated placeholder with actual YouTube video URL
- Video demonstrates skills setup and usage
Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
* fix: clarified n8n_update_partial_workflow instructions in system message
* fix: document IF node branch parameter for addConnection operations
Add critical documentation for using the `branch` parameter when connecting
IF nodes with addConnection operations. Without this parameter, both TRUE
and FALSE outputs route to the same destination, causing logic errors.
Includes:
- Examples of branch="true" and branch="false" usage
- Common pattern for complete IF node routing
- Warning about omitting the branch parameter
Related to GitHub Issue #327🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Added list of most popular nodes based on telemetry data (16,211 workflows)
- Includes full nodeType identifiers for easy reference
- Helps AI assistants prioritize commonly-used nodes
- Data sourced from real-world usage analysis
This commit implements HIGH-02 (Rate Limiting) and HIGH-03 (SSRF Protection)
from the security audit, protecting against brute force attacks and
Server-Side Request Forgery.
Security Enhancements:
- Rate limiting: 20 attempts per 15 minutes per IP (configurable)
- SSRF protection: Three security modes (strict/moderate/permissive)
- DNS rebinding prevention
- Cloud metadata blocking in all modes
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change outer markdown fence from 3 to 4 backticks to prevent nested code blocks from breaking the fence
- Update code block labels from 'javascript' to 'json' for MCP tool parameters to avoid confusion
- Remove language labels from workflow example blocks (mixed content with annotations)
Fixes#260🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## Bug Description
handleCreateWorkflow and handleUpdateFullWorkflow were incorrectly
normalizing node types from FULL form (n8n-nodes-base.webhook) to
SHORT form (nodes-base.webhook) before validation and API calls.
This caused 100% failure rate for workflow creation because:
- n8n API requires FULL form (n8n-nodes-base.*)
- Database stores SHORT form (nodes-base.*)
- NodeTypeNormalizer converts TO SHORT form (for database)
- But was being used BEFORE API calls (incorrect)
## Root Cause
NodeTypeNormalizer was designed for database lookups but was
incorrectly applied to API operations. The method name
`normalizeToFullForm()` is misleading - it actually normalizes
TO SHORT form.
## Changes
1. handlers-n8n-manager.ts:
- Removed NodeTypeNormalizer.normalizeWorkflowNodeTypes() from
handleCreateWorkflow (line 288)
- Removed normalization from handleUpdateFullWorkflow (line 544-557)
- Added proactive SHORT form detection with helpful errors
- Added comments explaining n8n API expects FULL form
2. node-type-normalizer.ts:
- Added prominent WARNING about not using before API calls
- Added examples showing CORRECT vs INCORRECT usage
- Clarified this is FOR DATABASE OPERATIONS ONLY
3. handlers-n8n-manager.test.ts:
- Fixed test to expect FULL form (not SHORT) sent to API
- Removed incorrect expectedNormalizedInput assertion
4. NEW: workflow-creation-node-type-format.test.ts:
- 7 integration tests with real validation (unmocked)
- Tests FULL form acceptance, SHORT form rejection
- Tests real-world workflows (webhook, schedule trigger)
- Regression test to prevent bug reintroduction
## Verification
Before fix:
❌ Manual Trigger → Set: FAILED
❌ Webhook → HTTP Request: FAILED
Failure rate: 100%
After fix:
✅ Manual Trigger → Set: SUCCESS (ID: kTAaDZwdpzj8gqzM)
✅ Webhook → HTTP Request: SUCCESS (ID: aPtQUb54uuHIqX52)
✅ All 39 tests passing (32 unit + 7 integration)
Success rate: 100%
## Impact
- Fixes: Complete blocking bug preventing all workflow creation
- Risk: Zero (removing buggy behavior)
- Breaking: None (external API unchanged)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove all references to deprecated get_node_for_task tool
- Add includeExamples parameter documentation for search_nodes and get_node_essentials
- Update Claude Project instructions with new template-based examples approach
- Update example usage to show includeExamples parameter
- Add template configuration metrics (2,646 pre-extracted configs)
- Update n8n version to v1.113.3
- Update Features section to highlight real-world examples and template library
- Update Overview section with template metrics
- Updated n8n from 1.112.3 to 1.113.3
- Updated n8n-core from 1.111.0 to 1.112.1
- Updated n8n-workflow from 1.109.0 to 1.110.0
- Updated @n8n/n8n-nodes-langchain from 1.111.1 to 1.112.2
- Rebuilt node database with 536 nodes
- Bumped version to 2.14.3
- Updated n8n version badge in README
- All validation tests passing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated test badge to show 2,883 passing tests
- Corrected unit test count to 2,526 across 99 files
- Corrected integration test count to 357 across 20 files
- Reflects actual CI test results
Adds zero-configuration anonymous usage statistics to track:
- Number of active users with deterministic user IDs
- Which MCP tools AI agents use most
- What workflows are built (sanitized to protect privacy)
- Common errors and issues
Key features:
- Zero-configuration design with hardcoded write-only credentials
- Privacy-first approach with comprehensive data sanitization
- Opt-out support via config file and environment variables
- Docker-friendly with environment variable support
- Multi-process safe with immediate flush strategy
- Row Level Security (RLS) policies for write-only access
Technical implementation:
- Supabase backend with anon key for INSERT-only operations
- Workflow sanitization removes all sensitive data
- Environment variables checked for opt-out (TELEMETRY_DISABLED, etc.)
- Telemetry enabled by default but respects user preferences
- Cleaned up all debug logging for production readiness
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove 5-operation limit from n8n_update_partial_workflow
- Update CHANGELOG.md with version 2.13.1 entry
- Bump version in package.json to 2.13.1
- Remove static version badge from README.md (npm badge remains)
The workflow diff engine now supports unlimited operations per request,
enabling complex workflow refactoring in single API calls.
## 🎉 Release Highlights
### ✨ New Features
- **Webhook Path Autofixer**: Automatically generates UUIDs for webhook nodes missing path configuration
- **Enhanced Node Type Suggestions**: Intelligent node type correction with similarity matching
- **n8n_autofix_workflow Tool**: New MCP tool for automatic workflow error correction
### 🔒 Security & Performance
- Eliminated ReDoS vulnerability in NodeSimilarityService
- Optimized Levenshtein distance algorithm from O(m*n) to O(n) space
- Added cache invalidation with version tracking to prevent memory leaks
### 📚 Documentation
- Comprehensive CHANGELOG entry with detailed feature descriptions
- Updated README with new autofixer tool documentation
- Added tool usage examples in validation workflow
All 16 test cases passing with 100% success rate.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated n8n from 1.111.0 to 1.112.3
- Updated n8n-core from 1.110.0 to 1.111.0
- Updated n8n-workflow from 1.108.0 to 1.109.0
- Updated @n8n/n8n-nodes-langchain from 1.110.0 to 1.111.1
- Rebuilt node database with 536 nodes (438 from n8n-nodes-base, 98 from langchain)
- Bumped version to 2.12.2
- Updated README.md badges to reflect new n8n version
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Add validateErrorOutputConfiguration method to detect when multiple nodes are incorrectly placed in main[0]
- Fix checkWorkflowPatterns to check main[1] for error outputs instead of outputs.error
- Cross-validate onError property matches actual connection structure
- Provide clear error messages with JSON examples showing correct configuration
- Use heuristic detection for error handler nodes (names containing error, fail, catch, etc.)
- Add comprehensive test coverage with 16+ test cases
- Bump version to 2.12.1
Fixes issues where AI agents would incorrectly configure error outputs by placing multiple nodes in the same array instead of separating them into success (main[0]) and error (main[1]) paths.
🤖 Generated with Claude Code (https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Bump version from 2.11.3 to 2.12.0
- Add comprehensive documentation for flexible instance configuration
- Update CHANGELOG with new features, security enhancements, and performance improvements
- Document architecture, usage examples, and security considerations
- Include migration guide for existing deployments
This release introduces flexible instance configuration, enabling n8n-mcp to serve
multiple users with different n8n instances dynamically, with full backward compatibility.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Bump version from 2.11.2 to 2.11.3
- Update README.md version badge
- Add CHANGELOG.md entry documenting the fix for n8n_update_partial_workflow tool
- Fix resolves GitHub issues #159 and #168
- Bumped version from 2.11.1 to 2.11.2
- Updated README version badge to 2.11.2
- Updated README n8n version badge to ^1.111.0
- Added comprehensive CHANGELOG entry for v2.11.2
- Documented n8n dependency updates and test results
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add mandatory attribution instructions to Claude Project Setup
- Require AI to share template author name, username, and n8n.io link
- Add Template Attribution section to Acknowledgments
- Credit top template contributors without specific counts
- Explain automatic attribution behavior in AI agent instructions
This ensures proper credit to template creators and demonstrates respect
for the n8n community's contributions while maintaining legal compliance.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement OpenAI batch API integration for metadata generation
- Add search_templates_by_metadata tool with advanced filtering
- Enhance list_templates to include descriptions and optional metadata
- Generate metadata for 2,534 templates (97.5% coverage)
- Update README with Template Tools section and enhanced Claude setup
- Add comprehensive documentation for metadata system
Enables intelligent template discovery through:
- Complexity levels (simple/medium/complex)
- Setup time estimates (5-480 minutes)
- Target audience filtering (developers/marketers/analysts)
- Required services detection
- Category and use case classification
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated n8n from 1.106.3 to 1.107.4
- Updated n8n-core from 1.105.3 to 1.106.2
- Updated n8n-workflow from 1.103.3 to 1.104.1
- Updated @n8n/n8n-nodes-langchain from 1.105.3 to 1.106.2
- Rebuilt node database with 535 nodes
- Bumped version to 2.10.5
- All tests passing
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated n8n from 1.105.2 to 1.106.3
- Updated n8n-core from 1.104.1 to 1.105.3
- Updated n8n-workflow from 1.102.1 to 1.103.3
- Updated @n8n/n8n-nodes-langchain from 1.104.1 to 1.105.3
- Rebuilt node database with 535 nodes
- All 1,728 tests passing
- Bumped version to 2.10.4
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated README.md version badge from 2.10.2 to 2.10.3
- Added n8n-mcp-tester agent for testing MCP functionality
- Agent successfully validated all validation fixes for issues #58, #68, #70, #73
- Update N8N_DEPLOYMENT.md to recommend test-n8n-integration.sh
- Remove outdated test-n8n-mode.sh and related files
- The integration test script properly tests full n8n integration with correct protocol version (2024-11-05)
- Removed scripts: test-n8n-mode.sh, test-n8n-mode.ts, debug-n8n-mode.js
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated version in package.json and package.runtime.json
- Updated README version badge
- Moved changelog entry from Unreleased to v2.10.1
- Added version comparison link for v2.10.1
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added automated release system with GitHub Actions
- Implemented CI/CD pipeline for zero-touch releases
- Added security fixes for deprecated actions and vulnerabilities
- Created developer tools for release preparation
- Full documentation in docs/AUTOMATED_RELEASES.md
- Bumped version from 2.9.0 to 2.9.1
- Updated version badge in README.md
- Added comprehensive changelog entry documenting fixedCollection validation fixes
- Increased test coverage from 79.95% to 80.16% to meet CI requirements
- Added 50 new tests for fixed-collection-validator and console-manager
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This major update adds comprehensive n8n integration, enabling n8n-mcp to run
as an MCP server within n8n workflows using the MCP Client Tool node.
## Key Features
### n8n Integration (NEW)
- Full MCP Client Tool compatibility with protocol version negotiation
- Dedicated n8n mode with optimized Docker deployment
- Workflow examples and n8n-friendly tool descriptions
- Quick deployment script for easy setup
### Protocol & Compatibility
- Intelligent protocol version selection (2024-11-05 for n8n, 2025-03-26 for others)
- Fixed schema validation issues with n8n's nested output format
- Enhanced parameter validation with clear error messages
- Comprehensive test suite for protocol negotiation
### Security Enhancements
- Dynamic UID/GID generation (10000-59999) for Docker containers
- Improved error sanitization for production environments
- Fixed information leakage in error responses
- Enhanced permission handling for mounted volumes
### Performance Optimizations
- Docker build time reduced from 13+ minutes to 1-2 minutes
- Image size reduced from ~1.5GB to ~280MB
- Fixed ARM64 build failures
- Optimized to use runtime-only dependencies
### Developer Experience
- Comprehensive parameter validation for all MCP tools
- Made README version badge dynamic from package.json
- Enhanced test coverage with session management tests
- Improved CI/CD with informational patch coverage
### Documentation
- Added comprehensive N8N_DEPLOYMENT.md guide
- Updated CHANGELOG.md for version 2.9.0
- Enhanced CLAUDE.md with n8n-specific instructions
- Added deployment scripts and examples
## Technical Details
Files Added:
- Dockerfile.n8n, docker-compose.n8n.yml for n8n deployment
- Protocol version negotiation utilities
- n8n integration test suite
- Session management tests
- Deployment and test scripts
- Version badge update scripts
Files Modified:
- Enhanced MCP server with n8n mode support
- Improved HTTP server with better error handling
- Updated Docker configurations for security
- Enhanced logging for n8n compatibility
- CHANGELOG.md with comprehensive update description
This update makes n8n-mcp a first-class citizen in the n8n ecosystem,
enabling powerful AI-assisted workflow automation.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated version in package.json and package.runtime.json
- Updated version badge in README.md
- Added comprehensive changelog entry for v2.8.3
- Fixed TypeScript lint errors in test files by making env vars optional
- Fixed edge-cases test to include required NODE_ENV
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit adds comprehensive support for JSON configuration files in Docker containers,
addressing the issue where the Docker image fails to start in server mode and ignores
configuration files.
## Changes
### Docker Configuration Support
- Added parse-config.js to safely parse JSON configs and export as shell variables
- Implemented secure shell quoting to prevent command injection
- Added dangerous environment variable blocking for security
- Support for all JSON data types with proper edge case handling
### Docker Server Mode Fix
- Added support for "n8n-mcp serve" command in entrypoint
- Properly transforms serve command to HTTP mode
- Fixed missing n8n-mcp binary issue in Docker image
### Security Enhancements
- POSIX-compliant shell quoting without eval
- Blocked dangerous variables (PATH, LD_PRELOAD, etc.)
- Sanitized configuration keys to prevent invalid shell variables
- Protection against shell metacharacters in values
### Testing
- Added 53 comprehensive tests for Docker configuration
- Unit tests for parsing, security, and edge cases
- Integration tests for Docker entrypoint behavior
- Security-focused tests for injection prevention
### Documentation
- Updated Docker README with config file mounting examples
- Enhanced troubleshooting guide with config file issues
- Added version bump to 2.8.2
### Additional Files
- Included deployment-engineer and technical-researcher agent files
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated n8n to ^1.104.1
- Updated n8n-core to ^1.103.1
- Updated n8n-workflow to ^1.101.0
- Updated @n8n/n8n-nodes-langchain to ^1.103.1
- Rebuilt node database with 532 nodes
- Sanitized 499 workflow templates
- All 1,182 tests passing (933 unit, 249 integration)
- All validation tests passing
- Built and prepared for npm publish
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update package.json version from 2.7.23 to 2.8.0
- Update README.md test count from 1,182 to 1,356 tests
- Add comprehensive CHANGELOG entry for v2.8.0
- Document all test improvements and fixes from PR #104🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Bump version from 2.7.22 to 2.7.23 in package.json
- Update version badge in README.md
- Add tests badge showing 1,182 passing tests
- Add comprehensive CHANGELOG entry for v2.7.23 documenting:
- Complete testing infrastructure implementation
- 933 unit tests and 249 integration tests
- All CI test failures fixed
- Test architecture enhancements
- Documentation updates
- Development artifact cleanup
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update testing-architecture.md with accurate test counts (1,182 tests)
- Document 933 unit tests and 249 integration tests
- Add real code examples and directory structure
- Include lessons learned and common issues/solutions
- Update README.md testing section with comprehensive test overview
- Include test distribution by component
- Add CI test results from run #41
- Update CLAUDE.md with latest development guidance