cea1fba8b2
Phase 03: Container Actions - Implementation decisions documented - Phase boundary established
68 lines
2.3 KiB
Markdown
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*
|