Editor has no Bezier-handle numeric input — the right panel shows node X/Y but the user can only edit the controlIn/controlOut handles by dragging them in the canvas, with no numeric precision #211
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#211
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/EditorRightPanel.tsx's "Node Edit" section shows:<NodeCoordInput axis="x" ... />)<NodeCoordInput axis="y" ... />)It does NOT show
controlInorcontrolOut(the Bezier handle coordinates for smooth/symmetric nodes).grep -n 'controlIn\|controlOut' src/components/editor/EditorRightPanel.tsxreturns 0 matches. The control points are drawn on the canvas (canvasRenderer.ts:75-76and:155, :185, :206) and can be dragged via the canvas, but the right panel has no numeric input for them.A user with a smooth node at (100, 100) with
controlInat (95, 95) wants to nudge the handle to (95, 100) (to make the curve flow more horizontally):A numeric input
<NodeCoordInput axis="ci.x" ... />with the same step + commit pattern as X/Y would let them type the exact value.Where
src/components/editor/EditorRightPanel.tsx:255-280(X, Y, type)grep -n 'controlIn' src/components/editor/EditorRightPanel.tsxreturns 0src/components/editor/types.ts:10(controlIn?: Point,controlOut?: Point)src/components/editor/canvasRenderer.ts:278-282(draws handles)onControlDragor similarSuggested fix shape
For nodes where
type === 'smooth' || type === 'symmetric', show two more rows in the right panel:onUpdateControlPoint(a new prop on the right panel) dispatches an action that updates the node'scontrolInorcontrolOutand pushes history.The symmetric case needs care: for a symmetric node, editing controlIn should mirror the change to controlOut (and vice versa). The canvas's Bezier-handle dragging already does this; the right panel should too.
Severity
Low. Users with smooth/symmetric nodes want precision; the canvas drag works for most cases. Power users notice.
Discovered by
Gap analysis (2026-10-02) of editor node editing.
Related
NodeCoordInputis the pattern to mirror; the helper is local to the file.Shipped via commit
878e8abonorigin/main. The right panel now renders two extra 2-col grids (CI.X / CI.Y for controlIn, CO.X / CO.Y for controlOut) under the existing X/Y row whenever a smooth or symmetric node is selected. Corner nodes keep the original X/Y-only UI.For symmetric nodes, editing one handle mirrors the change onto the other (anti-symmetric reflection around the anchor) so the bezier stays well-formed. Smooth nodes only touch the requested handle.
onUpdateControlPointis optional — older callers without it simply don't render the handle rows, so no migration is required to keep the panel working.1031/1032 tests pass; tsc / lint / build clean.