Files
unraid-docker-manager/.planning/phases/10.2-better-logging-and-log-management/10.2-UAT.md
T
Lucas Berger f86ed83d00 docs(10.2-04): update UAT status - gaps 1-3 closed, gap 4 accepted
- Updated UAT status to gap-closure-complete
- Marked gaps 1-3 as closed by 10.2-04-PLAN.md
- Marked gap 4 as accepted (minor, no scope creep)
2026-02-08 18:56:44 -05:00

7.0 KiB

status, phase, source, started, updated, gap_closure
status phase source started updated gap_closure
gap-closure-complete 10.2-better-logging-and-log-management 10.2-01-SUMMARY.md, 10.2-02-SUMMARY.md, 10.2-03-SUMMARY.md, 10.2-04-SUMMARY.md 2026-02-08T18:00:00Z 2026-02-08T20:37:00Z 2026-02-08T20:37:00Z

Current Test

[testing complete]

Tests

1. Basic Bot Functionality (No Regression)

expected: Send a container command (e.g., "status" or tap an inline button). Bot responds normally with no errors or changed behavior. result: pass

2. Correlation ID in Execution Logs

expected: Send a text command to the bot (e.g., "status"). Then check the n8n execution log for that execution. The data flowing through "Generate Correlation ID" node should show a correlationId field (format: timestamp-randomstring, e.g., "1770573038000-k3j8d9f2x"). result: issue reported: "generate correlation IDs are not wired with connections. Additionally there are 8 orphan nodes" severity: major

3. Callback Correlation ID in Execution Logs

expected: Tap an inline keyboard button (e.g., a container action button). Check the n8n execution log. The data flowing through "Generate Callback Correlation ID" node should show a correlationId field in the same format. result: issue reported: "Same as above — callback correlation ID node also not wired" severity: major

4. Sub-workflow Receives Correlation ID

expected: Trigger a sub-workflow call (e.g., send "status" which calls the Status sub-workflow). In the n8n execution log for the sub-workflow execution, the input data should contain a correlationId field passed from the main workflow. result: issue reported: "Same as above — correlation IDs can't reach sub-workflows since generators aren't wired" severity: major

5. Structured Error Return from Sub-workflow

expected: Trigger an action that would cause a Docker API error (e.g., try to stop a container that doesn't exist, or an action on an invalid container name). The sub-workflow should return a structured object with success: false and an error object containing workflow, node, message fields — visible in the n8n execution log output. result: pass

6. Debug Commands Removed (No False Triggers)

expected: Send "/errors" or "/debug status" as a message to the bot. The bot should NOT crash or produce unexpected behavior. These commands were removed — the bot should either ignore them or treat them as unrecognized input. result: issue reported: "/errors gives the commands menu and /debug status returns 'no container found matching /debug'" severity: minor

Summary

total: 6 passed: 2 issues: 4 pending: 0 skipped: 0

Gaps

  • truth: "Correlation ID generated and visible in execution logs for text commands" status: closed closed_by: 10.2-04-PLAN.md reason: "FIXED: Connection keys renamed to node names, IF User Authenticated rewired to Generate Correlation ID -> Keyword Router" severity: major test: 2 root_cause: "Connection key mismatch: connections object uses node ID 'code-generate-correlation-id' instead of node name 'Generate Correlation ID'. n8n resolves connections by name, not ID. Additionally, no incoming connection from IF User Authenticated — it connects directly to Keyword Router, bypassing the generator. Also: 2 fully orphan nodes (Delete Batch Confirm Message, Send Text Update Started), 1 ghost connection key (code-log-error with no matching node)." artifacts:

    • path: "n8n-workflow.json" issue: "Connection key 'code-generate-correlation-id' should be 'Generate Correlation ID'"
    • path: "n8n-workflow.json" issue: "IF User Authenticated connects directly to Keyword Router, bypassing Generate Correlation ID"
    • path: "n8n-workflow.json" issue: "Orphan node: Delete Batch Confirm Message (http-delete-batch-confirm-msg)"
    • path: "n8n-workflow.json" issue: "Orphan node: Send Text Update Started (telegram-text-update-started)"
    • path: "n8n-workflow.json" issue: "Ghost connection key: code-log-error (no matching node)" missing:
    • "Fix connection key from ID to name for Generate Correlation ID"
    • "Wire: IF User Authenticated -> Generate Correlation ID -> Keyword Router"
    • "Remove orphan nodes and ghost connection key" debug_session: ""
  • truth: "Correlation ID generated and visible in execution logs for callback commands" status: closed closed_by: 10.2-04-PLAN.md reason: "FIXED: Connection keys renamed to node names, IF Callback Authenticated rewired to Generate Callback Correlation ID -> Parse Callback Data" severity: major test: 3 root_cause: "Same connection key mismatch: 'code-generate-callback-correlation-id' used instead of 'Generate Callback Correlation ID'. No incoming connection from IF Callback Authenticated — it connects directly to Parse Callback Data." artifacts:

    • path: "n8n-workflow.json" issue: "Connection key 'code-generate-callback-correlation-id' should be 'Generate Callback Correlation ID'"
    • path: "n8n-workflow.json" issue: "IF Callback Authenticated connects directly to Parse Callback Data, bypassing Generate Callback Correlation ID" missing:
    • "Fix connection key from ID to name for Generate Callback Correlation ID"
    • "Wire: IF Callback Authenticated -> Generate Callback Correlation ID -> Parse Callback Data" debug_session: ""
  • truth: "Sub-workflows receive correlationId from main workflow" status: closed closed_by: 10.2-04-PLAN.md reason: "FIXED: Automatically resolved by fixing tests 2 and 3. Generators now execute, correlationId flows to Prepare Input nodes" severity: major test: 4 root_cause: "Downstream consequence of tests 2 and 3. The 19 Prepare Input nodes already reference $input.item.json.correlationId correctly, but since the generators never execute, correlationId is always empty/undefined. Fixing the generator wiring (tests 2/3) will automatically fix this." artifacts:

    • path: "n8n-workflow.json" issue: "Prepare Input nodes reference correlationId but generators never execute" missing:
    • "Fix correlation ID generator wiring (same fix as tests 2/3)" debug_session: ""
  • truth: "Removed debug commands don't trigger unexpected behavior" status: accepted closed_by: 10.2-04-PLAN.md reason: "ACCEPTED AS-IS: Minor cosmetic issue, commands have no real users, no crashes. Adding startsWith rules would be scope creep." severity: minor test: 6 root_cause: "Keyword Router has no interception rules for removed commands. '/debug status' matches rule index 1 ('contains status') because substring 'status' appears in the text, routing to Prepare Status Input which treats '/debug' as container name. '/errors' matches no rules and falls to fallback output -> Show Menu." artifacts:

    • path: "n8n-workflow.json" issue: "Keyword Router has no startsWith rules to intercept /debug or /errors before generic contains rules" missing:
    • "Either accept current behavior (minor cosmetic) or add startsWith rules for /debug and /errors routing to fallback" debug_session: ".planning/debug/keyword-router-debug-routing.md"