cea1fba8b2
Phase 03: Container Actions - Implementation decisions documented - Phase boundary established
2.3 KiB
2.3 KiB
Phase 3: Container Actions - Context
Gathered: 2026-01-29 Status: Ready for planning
## Phase BoundaryControl containers through natural language commands — start, stop, restart, update by name with fuzzy matching. Users issue conversational commands and get feedback on execution.
## Implementation DecisionsConfirmation 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
- 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
None — discussion stayed within phase scope
Phase: 03-container-actions Context gathered: 2026-01-29