diff --git a/.planning/phases/03-container-actions/03-CONTEXT.md b/.planning/phases/03-container-actions/03-CONTEXT.md new file mode 100644 index 0000000..5020e8d --- /dev/null +++ b/.planning/phases/03-container-actions/03-CONTEXT.md @@ -0,0 +1,67 @@ +# 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*