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>
This commit is contained in:
Lucas Berger
2026-02-08 16:39:34 -05:00
parent 0810c0919a
commit 642d1ec73d
2 changed files with 115 additions and 5 deletions
+5 -5
View File
@@ -4,9 +4,9 @@
- **Milestone:** v1.2 -- Modularization & Polish
- **Phase:** 11 of 13 (Update All & Callback Limits)
- **Plan:** 1 of 2 complete
- **Status:** Phase 11 IN PROGRESS (bitmap encoding implemented)
- **Last activity:** 2026-02-08 -- Completed 11-01 (Bitmap encoding for batch selection)
- **Plan:** 2 of 2 complete
- **Status:** Phase 11 COMPLETE (bitmap encoding + Update All button deployed, UAT 4/6 pass, 2 deferred)
- **Last activity:** 2026-02-08 -- Completed 11-02 (Update All button, deployment, UAT)
## Progress
@@ -14,12 +14,12 @@
v1.0: [**********] 100% SHIPPED
v1.1: [**********] 100% SHIPPED
v1.2: [********__] 75%
v1.2: [*********_] 83%
Phase 10: Workflow Modularization [**********] 100% COMPLETE (+ 10-07 UAT fixes)
Phase 10.1: Aggressive Modularization [**********] 100% COMPLETE (9/9 plans + UAT closure)
Phase 10.2: Better Logging & Log Management [**********] 100% COMPLETE (4/4 plans complete)
Phase 11: Update All & Callback Limits [*****_____] 50% IN PROGRESS (1/2 plans complete)
Phase 11: Update All & Callback Limits [**********] 100% COMPLETE (2/2 plans, UAT 4/6 pass)
Phase 12: Polish & Audit [ ] Pending
Phase 13: Documentation Overhaul [ ] Pending
```
@@ -0,0 +1,110 @@
---
phase: 11-update-all-callback-limits
plan: 02
subsystem: update-all-button
tags: [inline-keyboard, update-all, telegram-api, deployment]
dependency_graph:
requires: [Plan 11-01 bitmap encoding]
provides: [Update All inline keyboard button, deployed workflows]
affects: [n8n-status.json, n8n-workflow.json]
tech_stack:
added: []
patterns: [Dual-origin callback/text routing, answerCallbackQuery acknowledgment]
key_files:
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"
decisions:
- 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)
metrics:
duration: "2m 44s"
completed: "2026-02-08"
tasks: 3
files_modified: 2
nodes_added: 1
nodes_total: 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
- [x] Container list keyboard shows "Update All :latest" button
- [x] Batch selection works with 5+ containers (no callback limit)
- [x] Containers with long names selectable in batch mode
- [x] 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.