- Add Docker List for Action node to get container list
- Add Match Container node with fuzzy matching (substring, prefix stripping)
- Add Check Match Count Switch node to route 0/1/>1 matches
- Add Build Action Command node to construct curl POST command
- Add Execute Action node to call Docker API start/stop/restart
- Add Parse Action Result node handling 204/304 success and error codes
- Add Send Action Result node for Telegram response
- Add placeholder nodes for No Match and Multiple Matches branches
- Use graceful ?t=10 timeout for stop/restart actions
- Add new route in Switch node for start/stop/restart commands
- Route matches case-insensitive startsWith for each action
- Add Parse Action Code node to extract action type and container name
- Action branch routes to Parse Action, ready for container matching
- Add -s (silent) flag to curl to suppress progress output
- Change error handling to only check stdout for valid JSON
- Ignore stderr which contains curl progress info
- Add Switch node to route messages based on content
- Add Execute Command node with curl to Docker API
- Add Parse and Match code node with fuzzy matching
- Add Format Response code node with emoji mapping
- Preserve echo branch for non-docker messages
- Handle summary, single match, multiple matches, and errors
n8n community edition blocks env var access in expressions.
Hardcoded TELEGRAM_USER_ID for single-user authentication.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>