From ec06120a0011010722077ab4717eaec06065a47d Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Fri, 30 Oct 2026 04:27:03 -0700 Subject: [PATCH] feat(cutover): every entry point opens the workspace; legacy pages stay reachable The top-bar PM button, the nodes' Web UI buttons and /prompt_manager/web now open the workspace Library. Overview's cards open their native pages. The legacy pages stay at their URLs, with no route changed. Classic Web UI no longer navigates the canvas away when a popup is blocked; it shows a notification, as the focused node does. Closes #525 --- README.md | 13 ++--- TESTING.md | 22 +++++--- tests/browser/classic-node.spec.mjs | 24 ++++++++- tests/browser/focused-node.spec.mjs | 2 +- tests/browser/workspace.spec.mjs | 53 ++++++++++++++------ tests/comfyui/focused-node.spec.mjs | 6 +-- tests/comfyui/prompt-manager.spec.mjs | 17 +++++-- tests/comfyui/workspace.spec.mjs | 6 +-- tests/js/workspace-entry.test.js | 34 +++++++++++++ tests/js/workspace-state.test.js | 21 ++++++-- tools/vendor/frontend-coverage-baseline.json | 6 +++ web/comfy/prompt_manager.js | 19 +++---- web/index.html | 10 ++-- web/js/focused-node.js | 3 +- web/js/workspace-entry.js | 2 + web/js/workspace/index.mjs | 9 ++-- web/js/workspace/state.mjs | 28 +++++------ 17 files changed, 197 insertions(+), 78 deletions(-) create mode 100644 tests/js/workspace-entry.test.js create mode 100644 web/js/workspace-entry.js diff --git a/README.md b/README.md index 946967d1..2ff8baad 100644 --- a/README.md +++ b/README.md @@ -251,9 +251,9 @@ match Classic and Focused. - **PromptManagerText**: Look for "Prompt Manager Text" in the PromptManager/Text category - outputs STRING for any text node 5. **Access the web interface**: - - **Admin Dashboard**: `http://localhost:8188/prompt_manager/admin` - Full management interface - - **Metadata Viewer**: `http://localhost:8188/prompt_manager/metadata.html` - Standalone PNG analysis tool - - **Simple Interface**: `http://localhost:8188/prompt_manager/` - Basic prompt browser + - **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: + `/prompt_manager/admin` (dashboard), `/prompt_manager/admin#/tags` (tags), `/prompt_manager/gallery` (gallery), `/prompt_manager/gallery.html` (metadata viewer) ### Prerequisites @@ -324,9 +324,10 @@ The comprehensive gallery system provides complete access to all your ComfyUI ou #### **πŸ“ Accessing the Gallery** -1. **Open the admin interface** at `http://localhost:8188/prompt_manager/admin` -2. **Click the "πŸ–ΌοΈ Gallery" button** to open the output-wide gallery -3. **Browse all content** from your ComfyUI output directory +1. **Open the workspace's Images page** at `http://localhost:8188/prompt_manager/workspace#/images` +2. **Browse all content** from your ComfyUI output directory + +The legacy gallery stays at `http://localhost:8188/prompt_manager/gallery`. #### **🎬 Video & Image Support** diff --git a/TESTING.md b/TESTING.md index 3f9f3b36..af49b988 100644 --- a/TESTING.md +++ b/TESTING.md @@ -2641,8 +2641,8 @@ applied), D35 (singular captions), D36 (sorted categories), D40 (the continuatio the grid) and D43 (sorted chips, checked against the concept with its chips sorted). 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; Overview's legacy card ("Open -existing prompt library") and the sidebar still link `/prompt_manager/admin` +"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) (`tests/browser/workspace.spec.mjs`). `library comparison detects mutations` injects `.card-footer { padding: 2px }` and removes `.card-meta .chip.red`. @@ -3109,8 +3109,8 @@ npm run --prefix tools/vendor test:workflows -- history-concept.spec.mjs \ ### Inspect a file page and recorded deviations (#249 local Inspect, PR L2) `#/inspect` ("Inspect a file") is a native workspace route; it no longer hands off to -the legacy metadata page, which stays reachable from Overview's "Open existing metadata -inspector" card (`/prompt_manager/gallery.html`). The page is the concept's `#metadata` +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` (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 @@ -7021,8 +7021,8 @@ Deploying this backend needs a ComfyUI restart (Python and route changes). ## Native vocabulary UI (#236) `#/tags` ("Tags & categories", page title "Tags") is a native workspace route; it no -longer hands off to the legacy tag manager. That page stays reachable from Overview's -"Open existing tag manager" card for its own page; tag search and sort, the untagged +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 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 @@ -7144,3 +7144,13 @@ until acceptance. Not compared: hover states and the dialog focus ring (the page keyboard ring and link ring offsets are asserted). No coverage floor was lowered; `vocabulary-state.mjs`, `vocabulary.mjs` and `vocabulary-dialog.mjs` have additive floors in `frontend-coverage-baseline.json`. + +## Cutover entry points (#525) + +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 `