Files
Lucas Berger 1ef726942a docs(12): plan phase with Unraid badge research and UAT
Research found Unraid badge issue is architectural (bot bypasses
Unraid's XML template system). Updated plans to document limitation
with workaround instead of attempting programmatic fix. Plan 01
covers docs/env/debt, Plan 02 covers deferred Update All UAT.

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

9.4 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous, must_haves
phase plan type wave depends_on files_modified autonomous must_haves
12-polish-audit 01 execute 1
DEPLOY-SUBWORKFLOWS.md
README.md
.planning/REQUIREMENTS.md
true
truths artifacts key_links
README documents that TELEGRAM_BOT_TOKEN is stored in n8n credential and referenced via $env in HTTP Request nodes
README documents that user ID is hardcoded in IF nodes with instructions to change it
README documents docker-socket-proxy architecture instead of direct socket mount
DEBT-02 is verified fixed (single --max-time flag) and marked complete in REQUIREMENTS.md
Unraid badge limitation is either solved programmatically or documented as known limitation with workaround
path provides contains
README.md Updated installation and configuration documentation docker-socket-proxy
path provides contains
DEPLOY-SUBWORKFLOWS.md Unraid badge limitation documentation (if not solvable) Known Limitation
path provides contains
.planning/REQUIREMENTS.md Updated requirement status for DEBT-02, ENV-01, ENV-02 DEBT-02
from to via pattern
README.md n8n-workflow.json installation instructions reference workflow configuration IF User Authenticated|IF Callback Authenticated
Investigate Unraid update badge clearing, update environment configuration documentation, and verify DEBT-02 is resolved.

Purpose: Close out documentation requirements (ENV-01, ENV-02), verify and close DEBT-02, and either solve or document the Unraid badge persistence issue (UNR-01). Output: Updated README.md with accurate installation/config docs, updated REQUIREMENTS.md marking DEBT-02 complete, Unraid badge solution or documented limitation.

<execution_context> @/home/luc/.claude/get-shit-done/workflows/execute-plan.md @/home/luc/.claude/get-shit-done/templates/summary.md </execution_context>

@.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md @.planning/phases/12-polish-audit/12-RESEARCH.md @README.md @DEPLOY-SUBWORKFLOWS.md @.planning/REQUIREMENTS.md Task 1: Update README with accurate environment and architecture documentation README.md, .planning/REQUIREMENTS.md Update README.md to reflect the current architecture and clarify environment configuration. The current README is outdated -- it documents direct docker.sock mounting instead of docker-socket-proxy.

Section 1 -- Installation (replace "Configure n8n Container" section):

Replace the docker run example and flags to document docker-socket-proxy architecture:

  • n8n communicates with Docker via docker-socket-proxy container on dockernet network
  • No direct docker.sock mount on n8n container
  • n8n container needs --network dockernet and the static curl binary mount
  • docker-socket-proxy container handles Docker API filtering (blocks exec, build, commit)
  • Reference DEPLOYMENT_GUIDE.md for detailed setup

Section 2 -- Telegram Configuration (replace/expand "Configure Your User ID" and "Create Telegram API Credential" sections):

Clarify ENV-01 and ENV-02:

For TELEGRAM_BOT_TOKEN (ENV-02):

  • Bot token is stored in n8n's credential manager (Settings > Credentials > Telegram API)
  • HTTP Request nodes reference it via $env.TELEGRAM_BOT_TOKEN environment variable
  • Both are needed: the credential for Telegram Trigger node, the env var for HTTP Request nodes that send messages/edit keyboards
  • Document: "Set TELEGRAM_BOT_TOKEN environment variable on your n8n container to the same bot token used in the credential"

For TELEGRAM_USERID (ENV-01):

  • User ID is hardcoded in two IF nodes: "IF User Authenticated" and "IF Callback Authenticated"
  • No environment variable needed -- edit the workflow nodes directly
  • Keep existing step-by-step instructions for changing the user ID
  • Clarify: "No TELEGRAM_USERID environment variable is used. The user ID is configured directly in the workflow."

Section 3 -- Sub-workflows:

Add a brief note that the bot uses 7 sub-workflows that must be imported separately. Reference DEPLOY-SUBWORKFLOWS.md for details. List the files: n8n-update.json, n8n-actions.json, n8n-logs.json, n8n-batch-ui.json, n8n-status.json, n8n-confirmation.json, n8n-matching.json.

Section 4 -- Commands table:

Add missing commands to the usage table:

  • update all -- Update all containers with :latest tag
  • /list -- Alias for status command
  • Inline keyboard -- mention "Use /status to access the interactive container list with action buttons"

DEBT-02 verification and closure:

In .planning/REQUIREMENTS.md, verify and update DEBT-02:

  • Grep confirmed only ONE --max-time 600 flag exists in n8n-update.json line 137
  • No duplicate flags found in any n8n-*.json file
  • Mark DEBT-02 as complete with note: "Verified -- single --max-time 600 flag, no duplicates found"
  • Also mark ENV-01 and ENV-02 as complete after README update
  • Update the traceability table status for DEBT-02, ENV-01, ENV-02
  1. grep -c "docker-socket-proxy" README.md returns at least 1
  2. grep -c "TELEGRAM_BOT_TOKEN" README.md returns at least 1
  3. grep -c "IF User Authenticated" README.md returns at least 1
  4. grep -c "update all" README.md returns at least 1
  5. grep "DEBT-02" .planning/REQUIREMENTS.md shows completed status
  6. grep "ENV-01" .planning/REQUIREMENTS.md shows completed status README documents docker-socket-proxy architecture (not direct socket mount), clarifies TELEGRAM_BOT_TOKEN is both n8n credential AND env var, clarifies user ID is hardcoded in IF nodes (no env var), lists all commands including "update all" and /list. DEBT-02 marked complete in REQUIREMENTS.md. ENV-01 and ENV-02 marked complete.
Task 2: Document Unraid update badge limitation (UNR-01) DEPLOY-SUBWORKFLOWS.md Document the Unraid update badge limitation as a known issue with clear explanation and workaround.

Root cause (confirmed by user testing):

  • The bot uses Docker API directly to pull images and recreate containers
  • Unraid manages containers through its own XML template system (/boot/config/plugins/dockerMan/templates-user/)
  • When Unraid checks for updates, it compares the running container's image against the registry
  • Since the bot bypassed Unraid's template system, Unraid shows "apply update" even though the container may already be running the new image
  • "Check for Updates" does NOT clear the badge — it actually CREATES the badge if the bot updated a container Unraid hadn't checked yet
  • "Apply Update" completes instantly because the image is already cached — Unraid just recreates from its template

Add a "Known Limitations" section to DEPLOY-SUBWORKFLOWS.md:

## Known Limitations

### Unraid Update Badges (UNR-01)

After the bot updates a container, Unraid's Docker tab may show "apply update"
on the next update check. This is expected behavior.

**Why this happens:** The bot uses the Docker API directly to pull images and
recreate containers. Unraid manages containers through its own XML template
system and doesn't know the container was updated outside of its control.

**What to do:** Click "Apply Update" in Unraid's Docker tab. It completes
instantly because the image is already pulled and cached — Unraid just
recreates the container from its template to sync its internal tracking.

**Important:** "Check for Updates" in Unraid does NOT clear an existing badge.
It may actually cause a new badge to appear if the bot updated a container that
Unraid hadn't checked yet.

**Why not fix programmatically:** Clearing the badge would require calling
Unraid's internal web API to "apply" the update through its template system.
This adds significant complexity (Unraid web UI access, authentication,
template parsing) for a cosmetic issue that takes one click to resolve.

Also update .planning/REQUIREMENTS.md to mark UNR-01 status as "Documented limitation with workaround" and update the traceability table.

  1. grep -c "Known Limitations" DEPLOY-SUBWORKFLOWS.md returns at least 1
  2. grep -c "UNR-01" DEPLOY-SUBWORKFLOWS.md returns at least 1
  3. grep "UNR-01" .planning/REQUIREMENTS.md shows updated status Unraid update badge limitation documented in DEPLOY-SUBWORKFLOWS.md with root cause explanation and workaround. UNR-01 marked as resolved (documented limitation) in REQUIREMENTS.md.
- README.md accurately reflects current architecture (docker-socket-proxy, not direct socket) - README.md clearly documents TELEGRAM_BOT_TOKEN and user ID configuration - REQUIREMENTS.md has DEBT-02, ENV-01, ENV-02 marked complete - Unraid badge clearing either implemented or documented as known limitation

<success_criteria>

  • README installation instructions match actual docker-socket-proxy architecture
  • ENV-01 satisfied: Documentation clarifies user ID is hardcoded, no env var needed
  • ENV-02 satisfied: Documentation clarifies bot token needs both n8n credential AND env var
  • DEBT-02 satisfied: Verified single --max-time flag, marked complete
  • UNR-01: Either programmatic solution deployed OR limitation documented with workaround </success_criteria>
After completion, create `.planning/phases/12-polish-audit/12-01-SUMMARY.md`