Files
unraid-docker-manager/.planning/phases/11-update-all-callback-limits/11-02-SUMMARY.md
T
Lucas Berger 642d1ec73d docs(11-02): complete plan — Update All button, deployment, UAT
UAT results: tests 1-3,6 pass (bitmap, long names, batch exec, regression).
Tests 4-5 (Update All UAT) deferred to after Phase 12.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:56:44 -05:00

5.1 KiB

phase, plan, subsystem, tags, dependency_graph, tech_stack, key_files, decisions, metrics
phase plan subsystem tags dependency_graph tech_stack key_files decisions metrics
11-update-all-callback-limits 02 update-all-button
inline-keyboard
update-all
telegram-api
deployment
requires provides affects
Plan 11-01 bitmap encoding
Update All inline keyboard button
deployed workflows
n8n-status.json
n8n-workflow.json
added patterns
Dual-origin callback/text routing
answerCallbackQuery acknowledgment
created modified
n8n-status.json
Added Update All :latest button to container list keyboard
n8n-workflow.json
Added uall:start parser, Route Callback rule, Answer node, dual-origin Check Available Updates
Update All button placed after nav row and before Select Multiple
uall:start callback routed to existing update-all confirmation flow
Check Available Updates uses try/catch for dual Keyword Router / Parse Callback Data origin
Tests 4-5 (Update All UAT) deferred to after Phase 12 (Unraid UI sync)
duration completed tasks files_modified nodes_added nodes_total
2m 44s 2026-02-08 3 2 1 172

Phase 11 Plan 02: Update All Button & Deployment — Summary

One-liner: Added "Update All :latest" inline keyboard button to container list, deployed all Phase 11 workflows, and verified bitmap encoding works end-to-end.

Overview

Added the BATCH-05 inline keyboard entry point for update-all functionality. The container list now shows an "Update All :latest" button that routes through the existing update-all confirmation flow. Deployed all three modified workflows (main, batch-ui, status) and ran UAT.

What Was Done

Task 1: Add Update All Button and Wire Callback Routing

Commit: 81f64ad

  1. n8n-status.json — Build Container List & Build Paginated List: Added "Update All :latest" button row with uall:start callback_data (10 bytes). Button appears on every page of the container list, after navigation and before Select Multiple.

  2. n8n-workflow.json — Parse Callback Data: Added uall:start exact-match parser returning isUpdateAllStart: true.

  3. n8n-workflow.json — Route Callback: Added updateallstart rule checking isUpdateAllStart flag.

  4. n8n-workflow.json — Answer Update All Start: New Telegram answerCallbackQuery node with "Checking for updates..." text.

  5. n8n-workflow.json — Check Available Updates: Fixed dual-origin support with try/catch — reads chatId/messageId from Keyword Router (text command) or Parse Callback Data (inline button).

  6. Wiring: Route Callback [updateallstart] → Answer Update All Start → Get All Containers For Update All → Check Available Updates → existing confirmation flow.

Task 2: Deploy All Workflows

All 3 modified workflows deployed to n8n with HTTP 200:

  • Main workflow (172 nodes)
  • Batch UI sub-workflow (17 nodes)
  • Status sub-workflow (11 nodes)

Task 3: User Acceptance Testing

Test Description Result
1 Batch selection 5+ containers (BATCH-06) PASS
2 Long container names 20+ chars (BATCH-07) PASS
3 Batch execution (stop confirmation, start) PASS
4 Update All from keyboard (BATCH-05) DEFERRED (Phase 12)
5 Update All from text (BATCH-04) DEFERRED (Phase 12)
6 Regression: single container actions PASS

Note: Tests 4-5 deferred — Update All functionality depends on Unraid UI sync behavior being addressed in Phase 12.

Bug Fixes During Execution

Three bugs found and fixed in the batch stop bitmap resolution flow (from Plan 11-01):

  1. Parse Callback Data missing bitmap in return (commit 66617f3): bstop parser detected bitmap but didn't include bitmap or isBitmapBatchStop fields in the return object.

  2. Wrong wiring for Is Bitmap Batch Stop (commit 66617f3): Node was on expired branch [0] instead of not-expired branch [1]. Build Batch Stop Expired handler was disconnected.

  3. Bitmap node references using $json instead of $("Parse Callback Data") (commit 241bd60): Is Bitmap Batch Stop and Resolve Batch Stop Names checked $json.bitmap which contained the Telegram API response, not the parsed callback data.

Success Criteria

  • Container list keyboard shows "Update All :latest" button
  • Batch selection works with 5+ containers (no callback limit)
  • Containers with long names selectable in batch mode
  • All existing bot functionality unaffected (regression test pass)
  • Update All button triggers confirmation (deferred to Phase 12)
  • "update all" text command triggers confirmation (deferred to Phase 12)

Files Modified

  • n8n-status.json — Container Status sub-workflow (11 nodes, unchanged count)
  • n8n-workflow.json — Main workflow (172 nodes, +1 Answer Update All Start)

Commits

  • 81f64ad — feat(11-02): add Update All button and wire callback routing
  • 66617f3 — fix(11-01): fix batch stop bitmap resolution wiring and parser return
  • 241bd60 — fix(11-01): fix bitmap node references to use Parse Callback Data

Self-Check: PASSED

Bitmap encoding verified end-to-end via user testing. Batch stop confirmation works with bitmap-encoded callbacks. Update All button deployed but UAT deferred.