You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let a person point at, inspect, move, resize, or restyle what they can see while Flect converts that intent into attributable edits in the same canonical workspace and conversation.
Direct manipulation must feel like editing the real running interface, not temporary design-canvas state.
Dependencies
Builds on the live canvas in #32, persistent workspace in #33, typed agent tools in #34, performance budgets in #20, and accessibility/reflow contract in #22.
Required behavior
Provide a protected selection overlay that remains outside user-generated application authority and does not mutate the guest DOM as hidden source state.
Support pointer, keyboard, trackpad-equivalent, and touch selection with platform-correct focus, scrolling, zoom, context-menu, and escape behavior.
Resolve a selected rendered element to a stable semantic identity, source location, component ancestry, layout box, computed styles, accessibility state, and current workspace revision.
Keep selection stable across safe incremental updates when semantic identity survives; clear or explain it when the target no longer exists.
Send selection and manipulation as typed edit intents to the same visible agent and canonical workspace used by conversational edits.
Apply bounded unambiguous actions such as reorder, resize, spacing, text, and token changes directly when validation succeeds; route ambiguous structural changes through the agent without opening a separate review mode.
Create the same automatic Git-backed checkpoint as a conversational edit after a valid visible result.
Never steal normal product clicks, text selection, form input, scrolling, drag and drop, or keyboard behavior unless edit targeting is explicitly active.
Preserve the last-known-good canvas, focus, scroll position, and selected context while a patch builds or fails.
Respect reduced motion, forced colors, system appearance, large text, screen readers, narrow layouts, and platform-specific input conventions.
Acceptance criteria
A person can select a visible element with pointer and keyboard, see an accessible target indication, and ask the same agent to change it without naming a file or component.
Reordering a fixture element updates source, incremental preview, Git checkpoint, and semantic selection without a full reload or state loss.
A failed or stale manipulation leaves source, history, and the running canvas on the last-known-good revision and gives the agent actionable diagnostics.
Selection works through nested components, scrolling containers, responsive breakpoints, and the isolated preview boundary.
Escape, Undo, reload, breakpoint changes, reduced motion, light/dark, keyboard-only, touch, and screen-reader paths pass production Chromium and packaged macOS tests.
Edit targeting never exposes host chrome, protected composer controls, credentials, native surfaces, or unrelated document data to the guest application.
Fifty consecutive selection and manipulation operations leave no orphan overlays, listeners, Workers, previews, or unbounded memory growth.
Non-goals
Building a general-purpose Figma clone or permanent inspector panel.
Storing edits only as pixel coordinates or transient DOM mutations.
Making arbitrary structural changes without agent reasoning and validation.
Replacing normal application interaction with edit mode by default.
Outcome
Let a person point at, inspect, move, resize, or restyle what they can see while Flect converts that intent into attributable edits in the same canonical workspace and conversation.
Direct manipulation must feel like editing the real running interface, not temporary design-canvas state.
Dependencies
Builds on the live canvas in #32, persistent workspace in #33, typed agent tools in #34, performance budgets in #20, and accessibility/reflow contract in #22.
Required behavior
Acceptance criteria
Non-goals