Repository navigation
Add strict Studio widget path selectors - #335
Closed
ZhangHanDong wants to merge 1 commit into
Closed
ZhangHanDong wants to merge 1 commit into
ZhangHanDong wants to merge 1 commit into
Conversation
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.
Repeated widget IDs in retained panes cannot be selected safely from flat snapshot geometry. This adds an optional Studio selector
path, backed by the native visibility-aware widget-path query from the companion Makepad change.Integration status: the complete change is included in #336, which targets main directly. This Draft remains available to review the narrower diff; it does not need to merge before #336. Validation below applies to this branch's revision. Final integration validation and current limitations are recorded in #336.
The harness validates a bounded list of safe named segments, sends a correlated native
WidgetQuery, requires exactly one native rectangle, and intersects that result with a fresh widget snapshot including text, value, window identity, and window-coordinate translation; enabled state is then enforced by the existing input guard. Zero, multiple, malformed, mismatched-build/query, and old-server responses fail closed. Snapshot-only matching rejects path selectors at every nesting depth, and the harness never falls back to flat ID matching, geometry order, or the first result.Validation:
4dfb79e47a4c3656dfb5f2ac81ea88aa6ab4c749; locked release app and harness builds passedinfo_button/inner_buttonselected the visible control in the intended retained pane and opened the corresponding information view; before/after state and the resulting frame were reviewedThe companion Makepad #9/#10 changes have now entered dev through Makepad #11. The live check above validates this control path only; it is not an overall approval E2E or Computer Use validation.
The native query and snapshot are sequential observations rather than one atomic frame. A visibility/layout change between them fails when the rectangles differ; identical state that changes away and back cannot be causally distinguished. Existing bounded deadlines and no-replay behavior remain in force.