Commit Graph

14 Commits

Author SHA1 Message Date
95cbcd4f6c Offset timeline padding to avoid floating sidebar overlap
Detect whether the sidebar icon strip is in floating mode and on which
side, then add matching padding so timeline markers aren't hidden
behind it. Connected mode (sidebar pushes canvas) needs no offset.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:27:38 +01:00
0219d86301 Revert canvas parent z-index to avoid masking sidebar
Keep only the timeline z-index: 1000 bump. Setting z-index on the
canvas parent would create a stacking context that paints over the
sidebar panel, blocking interaction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:25:04 +01:00
862045ecf1 Fix timeline bar hidden behind sidebar by raising z-index
ComfyUI's sidebar container uses z-index: 10. The timeline was at the
same level and lost in the stacking order. Bump timeline to z-index
1000 and set z-index 20 on the canvas parent so it forms a stacking
context above the sidebar.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:24:32 +01:00
0b8304f458 Optimize detectChangeType to avoid unnecessary JSON.stringify
Use node count shortcut, element-wise widget comparison, link length
and boundary checks, and skip-when-flagged guards to eliminate most
serialization work in the common case.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:13:09 +01:00
8a8a01adff Add Fusion 360-style change-type icons to timeline markers
Each snapshot now detects what kind of change it represents (node add,
node remove, connection, parameter, move, mixed) and displays a distinct
colored icon on the timeline. Sidebar meta line shows the change type.
Existing snapshots without change data gracefully fall back to a faded
"unknown" dot.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 00:10:36 +01:00
ee4051ad72 Add timeline active marker, auto-save before swap, snapshot button & Ctrl+S
- Track active (white ring) and current (green dot) snapshots on timeline
- Auto-capture "Current" state before swapping so user can navigate back
- Add "Snapshot" button to timeline bar for quick manual captures
- Register Ctrl+S / Cmd+S shortcut for manual snapshots
- Clear active/current markers on new captures and workflow switches
- Return record.id from captureSnapshot (backward-compatible truthy value)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 23:40:03 +01:00
3877c5838c Add SaveSnapshot node with visual separation and rolling limit
Introduce a SaveSnapshot custom node that triggers snapshot captures
via WebSocket. Node-triggered snapshots are visually distinct in the
sidebar (purple left border + "Node" badge) and managed with their
own independent rolling limit (maxNodeSnapshots setting), separate
from auto/manual snapshot pruning. Node snapshots skip hash-dedup
so repeated queue runs always capture.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:22:53 +01:00
838b3d0b00 Fix swapSnapshot using stale app.workflowManager reference
Missed one occurrence of the old API in swapSnapshot() — the workflow
passed to loadGraphData was always undefined, making Swap behave
like Restore (new tab instead of in-place replacement).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 20:57:29 +01:00
4cbd8fd0a9 Fix workflow key detection — use extensionManager.workflow store
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>
2026-02-24 20:55:22 +01:00
d32349bfdf Migrate snapshot storage from IndexedDB to server-side JSON files (v2.0.0)
Some checks failed
Publish to ComfyUI Registry / Publish Custom Node to Registry (push) Has been cancelled
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>
2026-02-24 20:13:23 +01:00
4eec4cf135 Fix workflow key detection — use .key/.filename instead of .name
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>
2026-02-24 19:39:08 +01:00
b90ebba068 Add workflow browser — browse snapshots from any workflow (v1.1.0)
Some checks failed
Publish to ComfyUI Registry / Publish Custom Node to Registry (push) Has been cancelled
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>
2026-02-24 19:29:44 +01:00
df76bcb3b9 Add lock/pin snapshots — protected from pruning & deletion (v1.0.1)
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>
2026-02-24 18:44:37 +01:00
e1d63e58d6 Initial release: Workflow Snapshot Manager v1.0.0
Some checks failed
Publish to ComfyUI Registry / Publish Custom Node to Registry (push) Has been cancelled
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>
2026-02-24 17:31:32 +01:00