- Floating viewer compare modes (A/B, side by side, grid) now build their
primary video/audio with the Studio player, like the simple mode. The
legacy video controls, their media bridge, styles and tests are removed;
only the sidebar's preview controls remain.
- The Studio viewer closes again when the empty area around the picture is
clicked (quick click only, so panning never dismisses it).
The Studio viewer now covers everything the classic overlay did, so the
classic runtime (toolbar, panzoom, A/B and side-by-side engine, scopes,
loupe, probe, grading and WebGL video processors, filmstrip, context menu,
keyboard handling), its styles and its tests are deleted.
- Every open request goes to the Studio viewer; requestViewerOpen no longer
falls back to a viewer singleton.
- Drop the classic-only settings (use classic viewer, pan without zoom,
disable WebGL) and their internal options and constants.
- Studio tells the grid which asset it ended on when it closes, and the
rating hotkeys yield to it while it is open.
- Remove dead helpers left behind (image processor, media player helpers,
3D helpers, metadata block, viewerbar controls variant) and unused CSS.
- Update the viewer tutorial, hotkeys doc and changelog.
- Watcher: a sidecar JSON created or edited next to an unchanged media
file now invalidates that file's metadata cache and scan journal and
forces a re-extraction; a non-incremental re-index no longer skips
assets that already have a metadata row when the cache was cleared.
- Merge index rows that are one file under different Windows path
spellings at startup, keeping the best rating, all tags, the stack
cover, execution ids and the vector embedding.
- Remove deleted/removed assets from the generated feed too.
- Scope the floating viewer's single-letter shortcuts to the viewer
(pointer, focus or pop-out) instead of the whole page.
- Take LGraph/LGraphCanvas types from comfyui-frontend-types and drop
@comfyorg/litegraph; delete five dead frontend files.
- Fix an order-dependent test that leaked an input-directory override.
Docs:
- Fix stale version/date banner in docs/DOCUMENTATION_INDEX.md (2.4.9 -> 2.5.1)
- Normalize CHANGELOG.md section headers to plain text (strip inconsistent
emoji prefixes used in older entries)
- Add missing diacritics in French command labels (locales/fr/commands.json)
- Add ToC anchors for nested Installation subsections in README.md
Backend:
- Document the comfy_entrypoint() wrapper's rationale in __init__.py
Frontend:
- Wire tsconfig.strict.json into an actual npm script (typecheck:js:strict,
now part of quality:strict) instead of leaving it dead/unenforced
- Fix the 8 strict-mode type errors this surfaced across
comfyWorkflowParser.ts, canvasLoaderNode.ts, FloatingViewer.impl.ts and
workflowGraphMapActions.ts
- Rebuild dist/ to match source
Deferred (too large/risky to blind-fix in this pass):
- ui/vue/** ESLint+Vue+TS linting: typescript-eslint currently has no
compatible release for this repo's typescript@7.0.2, so adding
eslint-plugin-vue/typescript-eslint is blocked upstream
- Converting all 44 .vue SFCs to lang="ts" with typed defineProps
- Eliminating the ~230 any/as any occurrences under ui/vue
- Auditing/reducing the ~1082 except Exception: blocks repo-wide