Editor has no path-duplicate or 'Save as New' / 'Save Copy' — saving an in-progress edit clobbers the original design, and the user has no way to fork a design #187
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#187
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
src/components/editor/Editor.tsx'shandleSave(line 810) callssaveDesignToGallerywithloadedDesignIdRef.current. The result hasupdated: truewhen an existing design was updated,updated: falsewhen a new one was created (persaveDesign.ts:138-197).The Editor UI offers only one Save button. There is no "Save Copy" / "Save As" / "Save as New" option. Once a user loads a design from the gallery, edits it, and clicks Save, the gallery row is updated in place. The original is gone unless they explicitly duplicated it before opening the Editor.
The Gallery has a per-card Duplicate action (per
RightClickMenu), but a user who:...now has a single design with the experiment, not the original + the experiment.
Path-level duplicate is also missing: the Editor has no "duplicate this path" operation. A user with a 30-node path they want to mirror or offset has to redraw it.
grep -rn 'duplicate.*path\|clonePath' src/returns 0 hits.Where
src/pages/Editor.tsx:810-840src/components/editor/EditorHeader.tsx(single Save button at line 220)src/components/editor/EditorRightPanel.tsx(no Duplicate button next to Add Node / Delete)grep -n 'DUPLICATE_PATH\|CLONE_PATH' src/components/editor/returns 0 hitsSuggested fix shape
Save Copy in the Editor's Save button (turn it into a dropdown):
handleSaveAsNewclearsloadedDesignIdRef.current(or sets it to null) before callingsaveDesignToGallery, forcing a new row.Path duplicate in the Editor's right panel — add a "Duplicate Path" button next to "Add Node" / "Delete" that:
onDuplicateSelectedPathdispatches aDUPLICATE_PATHaction that clones the path (deep copy nodes, new id, offset by +10px), inserts it into the paths array, and pushes history so undo works.Severity
Medium. The "Save Copy" is a common pattern in any editor; users expect it. Path duplicate is lower priority.
Discovered by
Gap analysis (2026-10-02) of editor save semantics.
Related
loadedDesignId. Same bridge; same place to add a "save as new" handler.Closed by commit
117c193(origin/main).fix(#187): Editor Save split-button + Duplicate Path so in-progress edits can fork without clobbering the original.
Closes: #187.
Mark referenced this issue2026-10-04 02:13:58 +00:00