docs(03): capture phase context
Phase 03: Container Actions - Implementation decisions documented - Phase boundary established
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# 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*
|
||||
Reference in New Issue
Block a user