app.workflowManager doesn't exist in the modern Vue-based frontend.
The active workflow is accessed via the Pinia store at
app.extensionManager.workflow.activeWorkflow. Also replaces the
non-existent addEventListener("changeWorkflow") with Pinia's
$onAction watching for "openWorkflow" actions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Snapshots are now stored as individual JSON files on the server under
data/snapshots/, making them persistent across browsers and resilient
to browser data loss. Existing IndexedDB data is auto-migrated on
first load.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ComfyUI activeWorkflow object doesn't have a .name property. It uses
.key (path minus workflows/ prefix) and .filename (no extension). The old
code always fell through to "default", making all snapshots share one key.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a workflow selector to the sidebar so users can browse and recover
snapshots from any workflow in the database, including renamed or deleted
ones. Includes amber viewing banner, take-snapshot guard, and lazy-loaded
workflow picker with counts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Locked snapshots survive auto-pruning and "Clear All". Each snapshot
gets a padlock toggle; deleting a locked snapshot requires confirmation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Auto-capture workflow snapshots with per-workflow hash map, promise-based
restore lock, custom naming, search/filter, theme-aware CSS, toast
notifications, and native confirm/prompt dialogs. Includes README with
SVG/PNG assets, MIT license, and ComfyUI registry publish action.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>