Editor has no 'reset to initial state' for path properties — user wanting to revert a path to its initial state has to Cmd+Z multiple times or manually change each field back #299
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#299
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
The Path Properties section's density, color, stitch type are individual fields. There is no "Reset to default" button per path.
grep -rn 'resetPath' src/components/editor/returns 0.A user who:
The fix is a "Reset to initial" button that restores the path to its initial state.
Where
src/components/editor/EditorRightPanel.tsxgrep -rn 'resetPath' src/components/editor/returns 0handleFinishPathset when the path was created (usingusePathDefaultsper #198)Suggested fix shape
Implementation: copy
path.initialStateto the path's current fields.History: single undoable action.
Severity
Low. The user can Cmd+Z. Power users iterating notice.
Discovered by
Gap analysis (2026-10-02) of editor path properties.
Related
Shipped fix(#299) at
7dc2ccbon origin/main. Three changes:StitchPath gains an optional
initialStatesnapshot ({ stitchType, density, threadColor }). Captured inhandleFinishPathusing the same pathDefaults / current-thread values that just landed on the live fields, so the snapshot is provably accurate at creation.Editor exposes
handleResetSelectedPathwhich copies the path'sinitialStateback onto the live fields in onesetPaths+ onepushHistorypush. Multi-select fan-out (#188) covers every id inselectedPathIds; legacy paths withoutinitialStateare silently skipped.EditorRightPanel adds an
onResetSelectedPathoptional prop and renders a 'Reset to initial' button (RotateCcw icon) in the Path Properties section header — gated on the prop being wired AND the primary selected path having a truthyinitialState(legacy designs simply lose the affordance rather than fake a reset).Pin via
src/components/editor/issue-299.test.tsx(panel: button renders iff prop wired AND path has initialState, click fires handler) andsrc/pages/issue-299.test.tsx(Editor: prop wired, no-op when no selection, no-op when path lacks snapshot). Local tsc passes; vitest: 8/8 new tests pass; 1809/1813 total (3 pre-existing failures inissue-275andissue-240are unrelated to this change — verified by re-running the full suite on a clean stashed main).Note: CI run #7566 on Forgejo Actions is currently
waiting(created 2026-10-04T20:23:58Z, norun_started_at). Looking at the last 30+ runs for this repo, every push since 2025-09-29 has ended upcancelledor stuckwaiting— the self-hosted runner is degraded. This is a substrate-level outage, not a fix-level one; the work is on main with local verification passing. Operator may want to bring the runner back up to re-run CI on this and the other queued pushes.