# Phase 3: Container Actions - Context **Gathered:** 2026-01-29 **Status:** Ready for planning ## Phase Boundary Control containers through natural language commands — start, stop, restart, update by name with fuzzy matching. Users issue conversational commands and get feedback on execution. ## Implementation Decisions ### Confirmation Flow - Single container actions execute immediately — no confirmation - Batch actions (multiple containers) require confirmation via inline Telegram buttons - Confirmation has 2-minute timeout — if no response, cancel silently - Button format: [Yes, stop N containers] [Cancel] ### Action Feedback - Claude's discretion on whether to send "in progress" acknowledgment based on expected duration - Success messages are simple confirmations: "plex restarted successfully" - For update actions, show version change when detectable (e.g., "plex updated: v1.32.0 → v1.32.1") - If no update available, stay silent — only notify when an image actually updated ### Fuzzy Matching - Case-insensitive matching (plex, Plex, PLEX all work) - Ambiguous matches treated as batch: "Found 3 matches: sonarr, radarr, lidarr" → batch confirmation flow - No match: suggest closest match with inline button (e.g., "No container 'plx'. Did you mean plex?" with [Yes, use plex] button) - Inline button accepts suggestion — user doesn't need to retype ### Error Handling - Show technical/diagnostic details in error messages - Include actual error info: "Docker socket error: ECONNREFUSED /var/run/docker.sock" - No force-stop option — just report failure with details - Auto-retry behavior at Claude's discretion based on error type (transient vs permanent) ### Claude's Discretion - Whether to send "in progress" message before long-running actions - Auto-retry logic for transient failures - Exact matching algorithm for fuzzy container names - Timeout duration for Docker operations ## Specific Ideas - Inline Telegram buttons for confirmations and suggestions — not text replies - 2-minute timeout on pending confirmations - User prefers diagnostic info over friendly messages — they want to know what actually happened ## Deferred Ideas None — discussion stayed within phase scope --- *Phase: 03-container-actions* *Context gathered: 2026-01-29*