diff --git a/.planning/phases/08-inline-keyboard-infrastructure/08-CONTEXT.md b/.planning/phases/08-inline-keyboard-infrastructure/08-CONTEXT.md new file mode 100644 index 0000000..2804d95 --- /dev/null +++ b/.planning/phases/08-inline-keyboard-infrastructure/08-CONTEXT.md @@ -0,0 +1,67 @@ +# Phase 8: Inline Keyboard Infrastructure - Context + +**Gathered:** 2026-02-03 +**Status:** Ready for planning + + +## Phase Boundary + +Users interact with containers via tappable buttons instead of typing commands. This phase adds inline keyboard buttons to the existing Telegram bot, creating a visual interface for container control. The core functionality (start, stop, restart, update, logs) remains the same — this changes HOW users invoke it. + + + + +## Implementation Decisions + +### Button layout & grouping +- Icons only for button labels (▶️ ⏹️ 🔄 ⬆️) — compact, mobile-friendly +- Container list is paginated (not all at once) +- Each container shows: name + status (e.g., "plex — Running") +- Update available indicator: use Unraid's native update detection if accessible (research needed) + +### Container selection +- Two entry points: `/status` command AND a persistent menu button ("Containers") +- Tap container name → submenu with status details + action buttons +- Direct access supported: `/status plex` jumps straight to that container's submenu +- Submenu shows container status info (state, details) plus action buttons + +### Confirmation flow +- Confirmation required for: Stop and Update only (not restart) +- Edit same message with "Stop plex? Yes / No" — keeps chat clean +- Timeout after 30 seconds — reverts to original buttons if no response + +### Progress feedback +- Quick actions (start/stop/restart): show final result only +- Updates and batch operations: show progress (simple status, not detailed steps) +- Format: "Updating plex..." → "plex updated ✅" +- After completion: show result + "Back to menu" button + +### Claude's Discretion +- Button row arrangement (single row vs grouped) +- Number of containers per page in list +- "No" confirmation behavior (return to container buttons or list) +- Error/failure handling approach + + + + +## Specific Ideas + +- Navigation pattern: List → tap name → submenu (status details + actions) → tap action → execute +- Persistent menu button provides always-available access without typing +- Direct container access (`/status plex`) preserves power-user shortcuts + + + + +## Deferred Ideas + +- Cached update status checking — only pursue if Unraid native detection isn't accessible +- Detailed progress steps during updates — keep simple for now + + + +--- + +*Phase: 08-inline-keyboard-infrastructure* +*Context gathered: 2026-02-03*