* fix: n8n_test_workflow webhookId resolution and form handling (v2.28.2)
## Bug Fixes
- **webhookId Resolution**: Fixed trigger handlers using `node.id` instead of
`node.webhookId` for building webhook URLs. This caused 404 errors when
nodes had custom IDs.
- **Chat Trigger URL**: Fixed chat triggers using wrong URL pattern. Now
correctly uses `/webhook/<webhookId>/chat` endpoint.
- **Form Content-Type**: Fixed form triggers failing with "Expected
multipart/form-data" error by switching to proper multipart encoding.
## Enhancements
- **Form Field Types**: Added support for all n8n form field types (text,
textarea, email, number, password, date, dropdown, checkbox, file, hidden)
- **Checkbox Arrays**: Automatically converts arrays to `field[]` format
- **Helpful Warnings**: Reports missing required fields with names and labels
- **Error Hints**: Provides complete field structure on failure
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>
* fix: address code review issues for form trigger improvements
- Add form-data as direct dependency (was only in devDependencies)
- Add TypeScript interfaces (FormFieldValue, FormFieldOption) replacing any types
- Add FORM_FIELD_TYPES constants for type-safe switch statements
- Add isValidBase64() validation for file uploads with size limits
- Add MAX_FILE_SIZE_BYTES (10MB) constant with validation
- Update form-handler.test.ts for FormData instead of JSON
- Update trigger-detector.test.ts for chat URL /chat suffix
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>
* feat: configurable MAX_SESSIONS via N8N_MCP_MAX_SESSIONS env var (v2.28.3) (#468)
Make MAX_SESSIONS limit configurable for multi-tenant SaaS deployments.
- Add N8N_MCP_MAX_SESSIONS environment variable (default: 100)
- Include safety floor with Math.max(1, ...) to prevent invalid configs
- Update documentation in LIBRARY_USAGE.md, SESSION_PERSISTENCE.md
- Update CLAUDE.md and CHANGELOG.md
Fixes#468
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>
* fix: add QEMU setup for multi-arch Docker builds
Add docker/setup-qemu-action@v3 before Buildx setup to enable
proper QEMU emulation for linux/arm64 builds on GitHub Actions.
Fixes CI Docker build failure with "execve: No such file or directory"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Romuald Członkowski <romualdczlonkowski@MacBook-Pro-Romuald.local>
Created detailed production documentation for the session persistence API
covering implementation, security, best practices, and troubleshooting.
Documentation includes:
- Architecture overview and session state components
- Complete API reference with examples
- Security considerations (encryption, key management)
- Implementation examples (Express, Kubernetes, Docker Compose)
- Best practices (timeouts, monitoring, graceful shutdown)
- Performance considerations and limits
- Comprehensive troubleshooting guide
- Version compatibility matrix
Target audience: Production engineers deploying n8n-mcp in multi-tenant
environments with zero-downtime requirements.
Related: Session persistence API fixes in commit 5d2c5df
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>