From 403ac53b90c8a60f33a533209b7cbc85f5a8b7c4 Mon Sep 17 00:00:00 2001 From: Lucas Berger Date: Mon, 9 Feb 2026 12:48:24 -0500 Subject: [PATCH] =?UTF-8?q?wip:=2016-api-migration=20paused=20=E2=80=94=20?= =?UTF-8?q?waiting=20for=20Unraid=207.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../phases/16-api-migration/.continue-here.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .planning/phases/16-api-migration/.continue-here.md diff --git a/.planning/phases/16-api-migration/.continue-here.md b/.planning/phases/16-api-migration/.continue-here.md new file mode 100644 index 0000000..8dd20f0 --- /dev/null +++ b/.planning/phases/16-api-migration/.continue-here.md @@ -0,0 +1,71 @@ +--- +phase: 16-api-migration +task: UAT +total_tasks: 6 plans + UAT +status: paused +last_updated: 2026-02-09T17:47:48.705Z +--- + + +v1.4 milestone PAUSED. Phase 16 code was built and pushed, but UAT revealed that the Unraid GraphQL API on the user's server (Unraid 7.2.x) only has `start` and `stop` Docker mutations. The `updateContainer`, `updateContainers`, and `updateAllContainers` mutations exist in the Unraid API source code (GitHub commit 277ac42046) but only ship in Unraid 7.3+ which has not been released yet. + +v1.3 workflows have been restored to n8n and are running in production. The v1.4 work is preserved on branch `gsd/v1.0-unraid-api-native`. + + + + +- Phase 15 (Infrastructure Foundation): 2/2 plans complete — Container ID Registry, Token Encoder/Decoder, GraphQL Normalizer, Error Handler +- Phase 16 Plan 01: Container Status migration (n8n-status.json) — WORKING +- Phase 16 Plan 02: Container Actions migration (n8n-actions.json) — WORKING (start/stop/restart) +- Phase 16 Plan 03: Container Update migration (n8n-update.json) — BLOCKED (updateContainer mutation doesn't exist on 7.2.x) +- Phase 16 Plan 04: Batch UI migration (n8n-batch-ui.json) — WORKING +- Phase 16 Plan 05: Main workflow routing migration (n8n-workflow.json) — PARTIALLY WORKING (queries work, batch update mutation doesn't exist) +- Phase 16 Plan 06: Gap closure (text command paths) — WORKING but had paired item bugs (fixed in debug) +- UAT: 6/9 tests passed, 3 blocked on missing updateContainer mutation +- Debug fixes committed: batch cancel wiring, text command paired item fix (.first().json), batch confirmation HTTP node +- v1.3 workflows restored to n8n (all 8 workflows, HTTP 200) +- STATE.md and ROADMAP.md updated to reflect pause + + + + +- Wait for Unraid 7.3 release (ships updateContainer, updateContainers, updateAllContainers mutations) +- Re-run `/gsd:verify-work 16` to validate update operations work with 7.3 +- Fix any remaining issues from UAT re-test +- Phase 17 (Cleanup): Remove docker-socket-proxy artifacts, container logs feature +- Phase 18 (Documentation): Update docs for Unraid API-native architecture + + + + +- PAUSE v1.4 rather than maintain hybrid Docker proxy + GraphQL architecture +- ROLLBACK to v1.3 workflows on n8n for stable production use +- v1.4 work preserved on branch (mutation signatures match what 7.3 will ship) +- The `DOCKER:UPDATE_ANY` API key permission exists because permission system was defined before mutations shipped +- Container update internally calls legacy Bash script (`/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/update_container`) + + + +- Unraid 7.3 not released — `updateContainer` mutation unavailable on current server (7.2.x) +- No workaround that maintains the "fully Unraid API native" architecture goal + + + +The entire v1.4 milestone was about replacing Docker socket proxy with Unraid's GraphQL API. Status queries and start/stop/restart all migrated successfully and passed UAT. But container updates (single, batch, update-all) require a mutation that only exists in Unraid 7.3+. The user decided to pause rather than maintain a hybrid architecture. When Unraid 7.3 ships, the existing Phase 16 code should work as-is since the mutation signatures in our code match what the API source defines. + +UAT also uncovered 3 bugs that were diagnosed and fixed by parallel debug agents: +1. Batch cancel button: Route Callback output 20 was wired to empty array +2. Text commands: Paired item breakage after GraphQL chain expansion (.item.json → .first().json) +3. Batch confirmation buttons: Telegram node double-serialized reply_markup (converted to HTTP Request) + +These fixes are committed on the branch and will be ready when v1.4 resumes. + + + +When Unraid 7.3 releases: +1. Check `__type(name: "DockerMutations")` introspection to confirm updateContainer is available +2. Switch to branch `gsd/v1.0-unraid-api-native` +3. Push v1.4 workflows to n8n +4. Run `/gsd:verify-work 16` — the 3 previously-blocked tests should now pass +5. Continue to Phase 17 (Cleanup) and Phase 18 (Documentation) +