From 901b7be156ae137f3e4e6ac9caa6f585a10bc75a Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Fri, 30 Oct 2026 04:42:40 -0700 Subject: [PATCH] feat(cutover): link the legacy pages from System and when the workspace fails to load System's Overview section ends with one small Legacy pages line (D165). If a workspace module fails to load or throws while starting, the page shows a static message with the same links instead of an empty shell. Part of #525 --- README.md | 2 +- TESTING.md | 20 ++++++-- tests/browser/system-concept.spec.mjs | 4 +- tests/browser/workspace.spec.mjs | 67 ++++++++++++++++++++++++++- tests/comfyui/prompt-manager.spec.mjs | 49 ++++++++++++++++++++ tests/js/workspace-state.test.js | 7 +++ web/js/workspace/index.mjs | 2 + web/js/workspace/state.mjs | 8 ++++ web/js/workspace/system.mjs | 21 ++++++++- web/js/workspace/workspace.css | 1 + web/workspace.html | 14 ++++++ 11 files changed, 186 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2ff8baad..66d96f8b 100644 --- a/README.md +++ b/README.md @@ -252,7 +252,7 @@ match Classic and Focused. 5. **Access the web interface**: - **Workspace**: click **PM** in ComfyUI's top bar or **Web UI** on a node, or open `http://localhost:8188/prompt_manager/workspace` - - **Legacy pages** still work at their URLs, and the workspace doesn't link to them: + - **Legacy pages** still work at their URLs, and System's Overview section links to them: `/prompt_manager/admin` (dashboard), `/prompt_manager/admin#/tags` (tags), `/prompt_manager/gallery` (gallery), `/prompt_manager/gallery.html` (metadata viewer) ### Prerequisites diff --git a/TESTING.md b/TESTING.md index af49b988..f4a36431 100644 --- a/TESTING.md +++ b/TESTING.md @@ -2642,7 +2642,7 @@ the grid) and D43 (sorted chips, checked against the concept with its chips sort D44 needs no mapping: the comparison runs with no Refine filter active, so the button reads "Filters" as the concept's does. Nothing else follows the grid: the legacy "Current prompt library" link is removed from the shelf; the legacy Library stays at -`/prompt_manager/admin` by direct URL, with no workspace link (#525) +`/prompt_manager/admin` by direct URL, linked only from System (#525, D165) (`tests/browser/workspace.spec.mjs`). `library comparison detects mutations` injects `.card-footer { padding: 2px }` and removes `.card-meta .chip.red`. @@ -3110,7 +3110,7 @@ npm run --prefix tools/vendor test:workflows -- history-concept.spec.mjs \ `#/inspect` ("Inspect a file") is a native workspace route; it no longer hands off to the legacy metadata page, which stays at its URL -(`/prompt_manager/gallery.html`) with no workspace link (#525). The page is the concept's `#metadata` +(`/prompt_manager/gallery.html`) linked only from System (#525, D165). The page is the concept's `#metadata` (app.js `renderMetadata` a740–748, selection a1715–1729; style.css 709–722, 1180–1194, 1543–1545, 1559–1564) in the concept's own classes (`.surface`, `.file-drop`, `.spaced-20`, `.local-file-preview`, all from the synced `concept.css`), with no @@ -7022,7 +7022,7 @@ Deploying this backend needs a ComfyUI restart (Python and route changes). `#/tags` ("Tags & categories", page title "Tags") is a native workspace route; it no longer hands off to the legacy tag manager. That page stays at -`/prompt_manager/admin#/tags` with no workspace link (#525); tag search and sort, the untagged +`/prompt_manager/admin#/tags` linked only from System (#525, D165); tag search and sort, the untagged entry (D149) and multi-tag OR (the Library's Tag match, D150) moved to the workspace (#444); bulk prompt delete stays on the legacy admin page (bulk tags: the Prompt library's selection bar, D151). A prompt's category is changed in the Prompt library @@ -7151,6 +7151,16 @@ The top-bar PM button, both Web UI buttons and `/prompt_manager/web` open `/prompt_manager/workspace#/library` (`web/js/workspace-entry.js`; `web/index.html` keeps its own copy, pinned by `tests/js/workspace-entry.test.js`). Overview's cards open native hashes. The legacy pages (`/prompt_manager/admin`, `admin#/tags`, `gallery`, `gallery.html`) stay at -their URLs. Only the workspace's `