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:
+5
-5
@@ -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.
|
||||
Reference in New Issue
Block a user