Context. surface studio · domain isis · route /studio/isis/comfyui-nodes · auth signed-in + studio entitlement (AAA-gated — segment comfyui-nodes in AAA_ONLY_STUDIO_ROUTES) · source apps/oshun/web/src/app/studio/isis/comfyui-nodes/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin lane console over the typed ComfyUI node catalog. It reads each node's input/output schema, the workflow classes that depend on it, and its deprecation posture from the node-registry service, then lets an operator deprecate or restore a node — deprecating a depended-on node requires a migration alternative.
Entry points#
- Breadcrumb / quick-action card from
/studio/isis/comfyui-integration - Studio index (
/studio) - Direct URL / bookmark
Layout regions#
page.tsx mounts ShellLayout active="studio" with a breadcrumb panel.
- Breadcrumb panel (
data-isis-comfyui-nodes-breadcrumbs): Studio → Isis ComfyUI Integration → (current) - Workspace panel (
data-isis-comfyui-nodes-workspace):<h1>"Isis ComfyUI Nodes Workspace" (WorkspaceHeading)- Summary paragraph (
data-isis-comfyui-nodes-summary) - Registry summary (
data-comfy-summary) with category chips (data-comfy-category-count={category}) - Filters (
data-comfy-search,data-comfy-category-filter,data-comfy-deprecated-filter) - Selected-node detail with the deprecation form (
data-comfy-deprecation-form)
- Route map panel (
data-isis-comfyui-nodes-route-map):<h2>"Route Map" enumeratingSTUDIO_ISIS_COMFYUI_NODES_ROUTE_MAP - Quick-actions panel:
quickActionlinks to/studio/isis/comfyui-integration,/studio/isis/controlnet,/studio/isis/ip-adapter, and "Back to Studio workspace index" →/studio
States#
- Loading —
data-comfy-loading"Loading node registry…" - Unauthorized —
data-comfy-unauthorized(admin-scope fail-closed on 401/403) - Error —
data-comfy-erroron non-OK / malformed response - Ready — summary + filters + node detail render
- Result —
data-comfy-deprecation-resultwithdata-comfy-deprecation-status(ok/error); deprecating a depended-on node without an alternative is rejected
Interactions#
Filters#
- Search —
data-comfy-searchsearch input (class / name / description / tag) - Category —
data-comfy-category-filterselect - Status —
data-comfy-deprecated-filterselect (includesdeprecated); prefs persisted locally
Deprecation form (data-comfy-deprecation-form)#
- Migration alternative (required when depended-on) —
data-comfy-alternative-selectselect - Deprecate node / Restore node —
data-comfy-deprecation-submitbutton; POSTs to/v1/admin/isis/comfy-nodes/deprecation, then reloads the registry
Route map#
- Route-map articles — non-interactive path + purpose entries
Quick-actions#
- Open Isis ComfyUI Integration workspace →
/studio/isis/comfyui-integration - Open Isis ControlNet workspace →
/studio/isis/controlnet - Open Isis IP Adapter workspace →
/studio/isis/ip-adapter - Back to Studio workspace index →
/studio
Data & contracts#
- Reads:
GET /v1/admin/isis/comfy-nodes(COMFY_NODES_ENDPOINT) on mount — node catalog - Writes:
POST /v1/admin/isis/comfy-nodes/deprecation(COMFY_DEPRECATION_ENDPOINT) — deprecate / restore a node - Realtime: None
- Caching: client
fetchon mount,cache: 'no-store',buildBffAuthHeaders(); filter prefs persisted locally - Auth: admin-scoped fail-closed (401/403 → unauthorized state); AAA-gated studio route behind the signed-in + studio proxy gate
- Component sources:
apps/oshun/web/src/components/studio/StudioIsisComfyuiNodesWorkspace.tsxapps/oshun/web/src/components/studio/StudioIsisComfyuiNodesRouteMap.ts
Cross-references#
- Studio overview:
../../studio-overview.md - Sibling routes:
Open questions / known gaps#
- Migration alternative is required only when the node is used by ≥1 workflow class; confirm the depended-on detection source
- Deprecation posture is mutated in the node-registry service — confirm durability across restarts