docs(10.1-02): complete batch UI extraction plan
Tasks completed: 3/3 - Task 1: Create n8n-batch-ui.json sub-workflow (16 nodes) - Task 2: Update main workflow (192 -> 179 nodes, -13) - Task 3: Create backup for rollback SUMMARY: .planning/phases/10.1-aggressive-workflow-modularization/10.1-02-SUMMARY.md
This commit is contained in:
+33
-11
@@ -4,9 +4,9 @@
|
||||
|
||||
- **Milestone:** v1.2 — Modularization & Polish
|
||||
- **Phase:** 10.1 of 13 (Aggressive Workflow Modularization)
|
||||
- **Plan:** 1 of 5 complete
|
||||
- **Plan:** 2 of 5 complete
|
||||
- **Status:** In progress
|
||||
- **Last activity:** 2026-02-05 — Completed 10.1-01 (Foundation and Domain Analysis)
|
||||
- **Last activity:** 2026-02-05 — Completed 10.1-02 (Batch UI Sub-workflow)
|
||||
|
||||
## Progress
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
v1.0: [██████████] 100% SHIPPED
|
||||
v1.1: [██████████] 100% SHIPPED
|
||||
|
||||
v1.2: [███░░░░░░░] 30%
|
||||
v1.2: [████░░░░░░] 40%
|
||||
|
||||
Phase 10: Workflow Modularization [██████████] 100% COMPLETE (+ 10-07 UAT fixes)
|
||||
Phase 10.1: Aggressive Modularization [██ ] 20% (1/5 plans)
|
||||
Phase 10.1: Aggressive Modularization [████ ] 40% (2/5 plans)
|
||||
Phase 10.2: Better Logging & Log Management [ ] Pending (INSERTED)
|
||||
Phase 11: Update All & Callback Limits [ ] Pending
|
||||
Phase 12: Polish & Audit [ ] Pending
|
||||
@@ -47,10 +47,11 @@ Phase 13: Documentation Overhaul [ ] Pending
|
||||
|
||||
## Key Artifacts
|
||||
|
||||
- `n8n-workflow.json` — Main workflow (192 nodes)
|
||||
- `n8n-container-update.json` — ID: `7AvTzLtKXM2hZTio92_mC`
|
||||
- `n8n-container-actions.json` — ID: `fYSZS5PkH0VSEaT5`
|
||||
- `n8n-container-logs.json` — ID: `oE7aO2GhbksXDEIw`
|
||||
- `n8n-workflow.json` — Main workflow (179 nodes, down from 192)
|
||||
- `n8n-batch-ui.json` — Batch UI sub-workflow (16 nodes) — TODO_DEPLOY
|
||||
- `n8n-update.json` — ID: `7AvTzLtKXM2hZTio92_mC`
|
||||
- `n8n-actions.json` — ID: `fYSZS5PkH0VSEaT5`
|
||||
- `n8n-logs.json` — ID: `oE7aO2GhbksXDEIw`
|
||||
|
||||
## Technical Notes
|
||||
|
||||
@@ -67,6 +68,12 @@ Phase 13: Documentation Overhaul [ ] Pending
|
||||
- Container Update: containerId, containerName, chatId, messageId, responseMode
|
||||
- Container Actions: containerId, containerName, action, chatId, messageId, responseMode
|
||||
- Container Logs: containerId/containerName, lineCount, chatId, messageId, responseMode
|
||||
- Batch UI: chatId, messageId, queryId, callbackData, action, batchPage, selectedCsv, toggleName
|
||||
|
||||
**Sub-workflow output patterns:**
|
||||
- Batch UI returns `action` field (keyboard/confirmation/execute/cancel/limit_reached)
|
||||
- Main workflow routes based on action to appropriate Telegram response handler
|
||||
- This pattern should be used for future sub-workflow extractions
|
||||
|
||||
**Data chain pattern (10-07):**
|
||||
- Use `$('Build Progress Message').item.json` to reference data across async nodes
|
||||
@@ -84,25 +91,40 @@ Phase 13: Documentation Overhaul [ ] Pending
|
||||
| 10-07 | Fuzzy matching in logs sub-workflow | Simpler than duplicating Docker query infrastructure |
|
||||
| 10.1-01 | Realistic target 115-125 nodes (not 50-80) | 58 Telegram response nodes locked to main workflow |
|
||||
| 10.1-01 | Wave 2: Batch UI + Container List extraction | Highest-value domains with clear boundaries |
|
||||
| 10.1-02 | Partial batch UI extraction (UI only, not loop) | Batch execution loop cannot be in sub-workflow due to n8n limitations |
|
||||
| 10.1-02 | Action-based sub-workflow routing | Sub-workflow returns action field, main routes to Telegram handlers |
|
||||
|
||||
## Phase 10.1 Progress
|
||||
|
||||
| Plan | Description | Status |
|
||||
|------|-------------|--------|
|
||||
| 10.1-01 | Foundation and Domain Analysis | Complete |
|
||||
| 10.1-02 | Batch UI Sub-workflow (Wave 2) | Pending |
|
||||
| 10.1-02 | Batch UI Sub-workflow (Wave 2) | Complete |
|
||||
| 10.1-03 | Container List Sub-workflow (Wave 2) | Pending |
|
||||
| 10.1-04 | Confirmation Sub-workflow (Wave 3) | Pending |
|
||||
| 10.1-05 | Integration Verification | Pending |
|
||||
|
||||
**Node count progress:**
|
||||
- Start: 192 nodes
|
||||
- After 10.1-02: 179 nodes (-13)
|
||||
- Target: 115-125 nodes
|
||||
|
||||
**Approved extraction plan:**
|
||||
- Wave 2: Batch UI (48->30-35), Container List (17->12-15)
|
||||
- Wave 2: Batch UI (done: -13), Container List (17->12-15)
|
||||
- Wave 3: Confirmation (30->15-20), Matching (optional)
|
||||
- Target: 115-125 nodes (realistic given 58 locked Telegram nodes)
|
||||
|
||||
## Deployment Required
|
||||
|
||||
**n8n-batch-ui.json needs deployment:**
|
||||
1. Import to n8n instance
|
||||
2. Note assigned workflow ID
|
||||
3. Replace `TODO_DEPLOY_BATCH_UI_WORKFLOW` in n8n-workflow.json
|
||||
4. Re-import main workflow
|
||||
|
||||
## Next Step
|
||||
|
||||
Run plan 10.1-02 to extract Batch UI sub-workflow.
|
||||
Run plan 10.1-03 to extract Container List sub-workflow.
|
||||
|
||||
---
|
||||
*Auto-maintained by GSD workflow*
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
---
|
||||
phase: 10.1-aggressive-workflow-modularization
|
||||
plan: 02
|
||||
subsystem: workflow
|
||||
tags: [n8n, modularization, sub-workflows, batch-ui, refactoring]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 10.1-01
|
||||
provides: Domain boundary analysis and approved extraction plan
|
||||
- phase: 10-workflow-modularization
|
||||
provides: Existing sub-workflows (Update, Actions, Logs)
|
||||
provides:
|
||||
- n8n-batch-ui.json sub-workflow for batch selection UI
|
||||
- Main workflow batch UI callback routing to sub-workflow
|
||||
- Batch UI result handling with Telegram response dispatch
|
||||
affects: [10.1-03, 10.1-04, 10.1-05]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns:
|
||||
- "Sub-workflow returns structured action/data, main workflow dispatches Telegram responses"
|
||||
- "Route switch on sub-workflow action output for different response paths"
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- n8n-batch-ui.json
|
||||
- n8n-workflow.json.backup-batch
|
||||
modified:
|
||||
- n8n-workflow.json
|
||||
|
||||
key-decisions:
|
||||
- "Extracted batch selection UI to sub-workflow while keeping execution loop in main"
|
||||
- "Sub-workflow returns action type (keyboard/confirmation/execute/cancel/limit_reached) for routing"
|
||||
- "Main workflow keeps Telegram response nodes per CONTEXT.md locked decision"
|
||||
|
||||
patterns-established:
|
||||
- "Sub-workflow action-based routing: result.action determines Telegram response path"
|
||||
- "Execute workflow placeholder pattern: TODO_DEPLOY_X_WORKFLOW for n8n import"
|
||||
|
||||
# Metrics
|
||||
duration: ~8min
|
||||
completed: 2026-02-05
|
||||
---
|
||||
|
||||
# Phase 10.1 Plan 02: Batch UI Sub-workflow Summary
|
||||
|
||||
**Extracted batch selection UI logic to n8n-batch-ui.json sub-workflow, reducing main workflow from 192 to 179 nodes**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Duration:** ~8 min
|
||||
- **Started:** 2026-02-05T02:13:18Z
|
||||
- **Completed:** 2026-02-05T02:20:00Z
|
||||
- **Tasks:** 3
|
||||
- **Files modified:** 3 (1 created, 2 modified)
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Created n8n-batch-ui.json sub-workflow with 16 nodes handling batch selection UI
|
||||
- Reduced main workflow from 192 to 179 nodes (13 node reduction)
|
||||
- Implemented action-based routing for sub-workflow results (keyboard/confirmation/execute/cancel/limit_reached)
|
||||
- Maintained batch execution loop in main workflow (orchestration cannot be in sub-workflow)
|
||||
- Created backup file for rollback capability
|
||||
|
||||
## Task Commits
|
||||
|
||||
Each task was committed atomically:
|
||||
|
||||
1. **Task 1: Create n8n-batch-ui.json sub-workflow** - `07a62d1` (feat)
|
||||
2. **Task 2-3: Update main workflow and create backup** - `8b9af17` (feat)
|
||||
|
||||
**Plan metadata:** (this commit)
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
- `n8n-batch-ui.json` - New sub-workflow with 16 nodes for batch selection UI
|
||||
- Execute Workflow Trigger for input
|
||||
- Route Batch UI Action switch (mode/toggle/nav/exec/clear/cancel)
|
||||
- Build/Rebuild Batch Keyboard nodes
|
||||
- Handle Toggle/Nav/Exec/Clear/Cancel nodes
|
||||
- Fetch Containers HTTP requests
|
||||
- `n8n-workflow.json` - Updated main workflow
|
||||
- Added: Prepare Batch UI Input, Execute Batch UI, Route Batch UI Result, 6 Telegram response nodes
|
||||
- Removed: 22 batch UI nodes now in sub-workflow
|
||||
- Updated: Route Callback batch outputs (14-19) to new sub-workflow path
|
||||
- Updated: Prepare Batch Exec to accept sub-workflow output format
|
||||
- `n8n-workflow.json.backup-batch` - Backup for rollback
|
||||
|
||||
## Decisions Made
|
||||
|
||||
1. **Partial extraction strategy:** Extracted batch selection UI while keeping execution loop in main workflow. The execution loop (Initialize Batch State -> Prepare Batch Loop -> ... -> Is Batch Complete) cannot be in sub-workflow due to n8n's sub-workflow limitations with loops back to caller.
|
||||
|
||||
2. **Action-based routing:** Sub-workflow returns an `action` field (keyboard/confirmation/execute/cancel/limit_reached) that main workflow routes to appropriate Telegram response handlers.
|
||||
|
||||
3. **Node count outcome:** Reduced from 192 to 179 nodes (13 reduction). Lower than planned 30-35 because:
|
||||
- Batch execution loop (10+ nodes) must stay in main workflow
|
||||
- Telegram response nodes (16) stay in main per CONTEXT.md
|
||||
- Added 9 new infrastructure nodes for sub-workflow integration
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
**1. [Rule 3 - Blocking] Updated Prepare Batch Exec node for new input format**
|
||||
- **Found during:** Task 2 (main workflow update)
|
||||
- **Issue:** Prepare Batch Exec referenced removed node "Prepare Immediate Batch Exec"
|
||||
- **Fix:** Updated node to accept sub-workflow output format directly
|
||||
- **Files modified:** n8n-workflow.json
|
||||
- **Verification:** Node code updated to handle new data structure
|
||||
- **Committed in:** 8b9af17 (Task 2-3 commit)
|
||||
|
||||
---
|
||||
|
||||
**Total deviations:** 1 auto-fixed (1 blocking)
|
||||
**Impact on plan:** Auto-fix was necessary for correct data flow. No scope creep.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
1. **Lower node reduction than planned:** Plan expected 30-35 node reduction, achieved 13. This is because:
|
||||
- Batch execution loop cannot be extracted (n8n sub-workflow limitation)
|
||||
- Telegram response nodes locked to main workflow per CONTEXT.md
|
||||
- New infrastructure nodes needed for sub-workflow integration
|
||||
|
||||
2. **Complex data flow refactoring:** Had to carefully update data references after removing nodes that were referenced by others.
|
||||
|
||||
## User Setup Required
|
||||
|
||||
**Deployment steps required.** After importing sub-workflow to n8n:
|
||||
|
||||
1. Import `n8n-batch-ui.json` to n8n instance
|
||||
2. Note the assigned workflow ID
|
||||
3. Update `n8n-workflow.json`: Replace `TODO_DEPLOY_BATCH_UI_WORKFLOW` with actual ID
|
||||
4. Re-import main workflow
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
Ready to proceed with Plan 10.1-03: Container List Sub-workflow extraction.
|
||||
|
||||
**Notes for next plan:**
|
||||
- Same pattern: sub-workflow returns structured data, main handles Telegram responses
|
||||
- Container List domain has 17 nodes per analysis, expect 12-15 node reduction
|
||||
- Watch for similar data flow dependencies
|
||||
|
||||
---
|
||||
*Phase: 10.1-aggressive-workflow-modularization*
|
||||
*Completed: 2026-02-05*
|
||||
Reference in New Issue
Block a user