Repository navigation
[fix] scrub fields: escape reverts typing, rows refresh after undo, one undo step per gesture (37 R26) - #338
Merged
Merged
Conversation
…ne undo step per gesture 37 R26 (QUESTIONS-38-lock Q1-Q3): - DragRow: Escape after TYPING puts the box text back and ignores the blur's change event, so the typed value is no longer re-committed (Q1) - history: undo/redo poke selectedObject, so the Inspector transform rows show the restored values at once (Q2) - history gestures ($lib/historyGesture.js, a leaf): DragRow opens one per scrub and per typing session, SliderRow one per range drag; entries recorded in one gesture fold into the stack top in place (per-kind merges for transform, transformSet, aibatch, props, anim, animspeed, shadergraph; else a 'gesture' composite), and a fold that nets to nothing is dropped (Q3) - Inspector: the debounced transform seal carries its gesture; render order and light values (intensity + LIGHT_PARAMS) record props entries; Animation speed records an 'animspeed' entry - new e2e suite scrub-undo (NOT YET RUN at this commit: queued behind e2e slots) svelte-check 318/47 = baseline. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
37 R26 (Q3, the last red of scrub-undo run 1): the click that ends a scrub on an unselected node SELECTS it, and ShaderEditor wrote xyflow's `selected` into the replicated graph doc - a second undo step per scrub (Ctrl+Z undid the selection) and a broadcast of local view state. - view keys (selected, dragging, measured, resizing) never enter the doc (the nodesHandler.serializeNode rule); an older save's copy is ignored - selection and xyflow's measured size are carried locally across a rebuild scrub-undo: 156 PASS / 0 FAIL (was 154/2). svelte-check 318/47 = baseline, vitest 1544 green. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Roadmap 37, item R26 (P1): the three scrub-field + undo bugs the 38 behaviour lock found (QUESTIONS-38-lock Q1-Q3).
What changed
change, so the typed value is no longer re-committed. It leaves no undo step.history.undo()/redo()pokeselectedObjectafter any replay, so the Inspector's transform rows show the restored values at once.$lib/historyGesture.js(a leaf) holds the current gesture token. DragRow opens one per scrub and one per typing session; SliderRow opens one per range drag.history.recordEntryfolds an entry into the stack top in place when both carry the same token (per-kind merges: transform, transformSet, aibatch, props, anim, the newanimspeed, shadergraph; anything else becomes agesturecomposite). A fold that nets to nothing is dropped.selected,dragging,measured,resizing) no longer goes into the replicated graph document (thenodesHandler.serializeNoderule). Clicking a node used to be an undoable, broadcast graph edit, and it was the second undo step on a shader-vector scrub.Proof
scrub-undo: 156 PASS / 0 FAIL. It covers transforms, render order, light intensity, the light-distance slider and box, a shader vec2, and the Animation window's length, speed, fps and step: scrub, typed edit, slow typing, Escape, and the value shown right after undo.scrub-undo):shader-editor(texture-decode check) andanimation-curves(graph-key right-click).npm run buildgreen.38 lock
The lock-dragrow flip (KNOWN Q1-Q3 → fixed) lives on
feat/37-bugs-lock, for the redesign lanes to merge once 1.27 is in their base. See NOTES-38.Do not merge from the lane; the 1.27 integrator merges.
🤖 Generated with Claude Code