Files
unraid-docker-manager/.planning/phases/09-batch-operations/09-04-PLAN.md
T
Lucas Berger a409671dc6 docs(09): create phase plan
Phase 09: Batch Operations
- 4 plans in 4 waves
- 3 autonomous, 1 with checkpoint
- Ready for execution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:01:06 -05:00

168 lines
5.3 KiB
Markdown

---
phase: 09-batch-operations
plan: 04
type: execute
wave: 4
depends_on: [09-03]
files_modified: [n8n-workflow.json]
autonomous: false
must_haves:
truths:
- "All batch operation flows work correctly via text commands"
- "All batch operation flows work correctly via inline keyboard"
- "Error handling behaves correctly when containers fail"
- "Existing single-container commands still work (no regression)"
artifacts: []
key_links: []
---
<objective>
Verify all batch operation flows work correctly and existing functionality is preserved.
Purpose: Ensure batch operations meet requirements before marking phase complete.
Output: Verified working batch system with human confirmation.
</objective>
<execution_context>
@/home/luc/.claude/get-shit-done/workflows/execute-plan.md
@/home/luc/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/phases/09-batch-operations/09-CONTEXT.md
@.planning/phases/09-batch-operations/09-01-SUMMARY.md
@.planning/phases/09-batch-operations/09-02-SUMMARY.md
@.planning/phases/09-batch-operations/09-03-SUMMARY.md
@n8n-workflow.json
</context>
<tasks>
<task type="auto">
<name>Task 1: Deploy and test batch text commands</name>
<files>n8n-workflow.json</files>
<action>
Deploy the updated workflow and test all batch text command flows.
1. Import updated workflow to n8n (via API or manual upload)
2. Test batch text commands via Telegram:
Test A: Multi-container update
- Send: "update plex sonarr" (use actual container names from your server)
- Expected: Progress shows for each container, summary shows results
Test B: Multi-container start
- First stop two containers via existing single commands
- Send: "start plex sonarr"
- Expected: Both start without confirmation, summary shows results
Test C: Multi-container stop (requires confirmation)
- Send: "stop plex sonarr"
- Expected: Confirmation prompt appears
- Tap Confirm: Both stop, summary shows
- (Test cancel in separate attempt)
Test D: Fuzzy matching
- Send: "update plex" (when jellyplex also exists, or use your actual partial matches)
- Expected: Exact match wins, no disambiguation
Test E: Disambiguation
- Send: "update jelly" (if it matches multiple containers)
- Expected: Disambiguation prompt with options
3. Test "update all" command:
- Send: "update all"
- Expected: Shows confirmation with count of containers needing updates
- If all up to date: Shows "All containers are up to date!"
- Confirm: Batch update executes for listed containers
4. Document any issues found for fixing before checkpoint.
</action>
<verify>
All text command tests pass:
- "update plex sonarr" executes sequential batch update
- "stop plex sonarr" shows confirmation first
- "update all" only targets containers with updates
- Disambiguation works for ambiguous names
</verify>
<done>All batch text commands tested and working</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<what-built>Complete batch operations system with text commands and inline keyboard multi-select</what-built>
<how-to-verify>
Test the following flows in Telegram:
**Text Command Tests:**
1. **Batch Update:**
- Send: "update {container1} {container2}" (replace with your container names)
- Verify: Progress updates for each container, final summary shows
2. **Batch Stop (confirmation required):**
- Send: "stop {container1} {container2}"
- Verify: Confirmation prompt appears
- Tap Confirm and verify both stop
3. **Update All:**
- Send: "update all"
- Verify: Shows count of containers with updates, or "All up to date"
- If updates exist, confirm and verify batch executes
**Inline Keyboard Tests:**
4. **Multi-Select Mode:**
- Send: "/status"
- Tap "Select Multiple" button
- Verify: Container list appears with toggle capability
5. **Toggle Selection:**
- Tap containers to toggle checkmarks
- Verify: Checkmarks appear/disappear on each tap
6. **Execute Batch:**
- With 2+ containers selected, tap action button (e.g., "Update Selected")
- Verify: Batch executes for selected containers with progress
**Error Handling Test:**
7. **Failure Isolation:**
- If possible, trigger a failure (e.g., update a container that doesn't exist)
- Verify: Other containers in batch still process, summary shows failure details
**Regression Tests:**
8. **Single-container commands still work:**
- "status" shows keyboard
- "start plex" starts single container
- "logs plex" shows logs
</how-to-verify>
<resume-signal>Type "approved" if all flows work, or describe any issues found</resume-signal>
</task>
</tasks>
<verification>
Human verified all batch flows work correctly via Telegram testing.
</verification>
<success_criteria>
- BAT-01: User can update multiple containers in one command
- BAT-02: Batch updates execute sequentially with per-container feedback
- BAT-03: "Update all" updates only containers with updates available
- BAT-04: "Update all" requires confirmation
- BAT-05: One failure doesn't abort remaining batch
- BAT-06: Final summary shows success/failure count
- Inline keyboard batch selection works
- No regression in existing commands
</success_criteria>
<output>
After completion, create `.planning/phases/09-batch-operations/09-04-SUMMARY.md`
</output>