Files
Lucas Berger cea1fba8b2 docs(03): capture phase context
Phase 03: Container Actions
- Implementation decisions documented
- Phase boundary established
2026-01-29 14:53:34 -05:00

68 lines
2.3 KiB
Markdown

# Phase 3: Container Actions - Context
**Gathered:** 2026-01-29
**Status:** Ready for planning
<domain>
## 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.
</domain>
<decisions>
## 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
</decisions>
<specifics>
## 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
</specifics>
<deferred>
## Deferred Ideas
None — discussion stayed within phase scope
</deferred>
---
*Phase: 03-container-actions*
*Context gathered: 2026-01-29*