docs(09): capture phase context
Phase 09: Batch Operations - Implementation decisions documented - Phase boundary established
This commit is contained in:
@@ -0,0 +1,75 @@
|
|||||||
|
# Phase 9: Batch Operations - Context
|
||||||
|
|
||||||
|
**Gathered:** 2026-02-03
|
||||||
|
**Status:** Ready for planning
|
||||||
|
|
||||||
|
<domain>
|
||||||
|
## Phase Boundary
|
||||||
|
|
||||||
|
Execute actions on multiple containers in a single command with individual progress and consolidated results. Supports text commands and inline keyboard batch selection. "Update all" targets containers with available updates only.
|
||||||
|
|
||||||
|
</domain>
|
||||||
|
|
||||||
|
<decisions>
|
||||||
|
## Implementation Decisions
|
||||||
|
|
||||||
|
### Command syntax
|
||||||
|
- Space-separated container names: "update plex sonarr radarr"
|
||||||
|
- "Update all" = all containers with updates available (not all containers)
|
||||||
|
- No "start all", "stop all", or "restart all" commands — user cannot picture needing these
|
||||||
|
- Multiple named containers supported for start, stop, restart (e.g., "stop plex sonarr")
|
||||||
|
- Fuzzy name matching means disambiguation may be needed (see Confirmation rules)
|
||||||
|
|
||||||
|
### Inline keyboard batch
|
||||||
|
- Support batch operations via UI buttons (Phase 8 keyboard infrastructure)
|
||||||
|
- Claude's discretion on selection UX — pick approach that fits existing keyboard flow (multi-select toggle or checkbox-style)
|
||||||
|
|
||||||
|
### Progress display
|
||||||
|
- Claude's discretion on message strategy (single editing message vs stacked)
|
||||||
|
- Summary emphasizes failures over successes — user cares about what broke and why
|
||||||
|
- No retry button after completion — user manually re-runs if needed
|
||||||
|
- Claude's discretion on cancel button during batch
|
||||||
|
|
||||||
|
### Failure handling
|
||||||
|
- Continue attempting remaining containers after a failure (don't abort batch)
|
||||||
|
- Show container name + failure reason (actionable error info)
|
||||||
|
- Distinguish warnings vs errors:
|
||||||
|
- Warning: "already stopped", "no update available" — non-critical
|
||||||
|
- Error: "image pull failed", "timeout" — actual failures
|
||||||
|
- Claude's discretion on whether warnings appear in final summary
|
||||||
|
|
||||||
|
### Confirmation rules
|
||||||
|
- "Update all" requires confirmation showing count only: "Update 5 containers?"
|
||||||
|
- Named batches run immediately without confirmation (user was explicit)
|
||||||
|
- Exception: Batch stop confirms due to fuzzy matching risk
|
||||||
|
- If "stop plex" matches multiple containers (plex, jellyplex), show disambiguation
|
||||||
|
- Claude's discretion on handling exact-match vs fuzzy-match (when user wants JUST plex, not jellyplex)
|
||||||
|
|
||||||
|
### Claude's Discretion
|
||||||
|
- Inline keyboard selection UX
|
||||||
|
- Single editing message vs stacked messages for progress
|
||||||
|
- Cancel button during batch (complexity vs usefulness)
|
||||||
|
- Warning visibility in final summary
|
||||||
|
- Exact-match priority vs fuzzy-match disambiguation behavior
|
||||||
|
|
||||||
|
</decisions>
|
||||||
|
|
||||||
|
<specifics>
|
||||||
|
## Specific Ideas
|
||||||
|
|
||||||
|
- Fuzzy name matching should allow disambiguation: if "plex" matches both "plex" and "jellyplex", the user should be able to specify they want only "plex"
|
||||||
|
- Failures need to be identifiable with reason — "why did it fail?" is the key question
|
||||||
|
|
||||||
|
</specifics>
|
||||||
|
|
||||||
|
<deferred>
|
||||||
|
## Deferred Ideas
|
||||||
|
|
||||||
|
None — discussion stayed within phase scope
|
||||||
|
|
||||||
|
</deferred>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Phase: 09-batch-operations*
|
||||||
|
*Context gathered: 2026-02-03*
|
||||||
Reference in New Issue
Block a user