Skip to content

feat(tree): optionally merge per-glyph Word nodes into line runs - #534

Open
FaberVi wants to merge 1 commit into
CursorTouch:mainfrom
FaberVi:fix/issue-495-merge-word-runs-v2
Open

FaberVi wants to merge 1 commit into
CursorTouch:mainfrom
FaberVi:fix/issue-495-merge-word-runs-v2

Conversation

@FaberVi

@FaberVi FaberVi commented Nov 1, 2026 •

Copy link
Copy Markdown

Summary

With WINDOWS_MCP_MERGE_WORD_NODES enabled, adjacent Word nodes on the same text line are merged into one node covering the run (no spaces between CJK glyphs, one space between Latin words). Default behaviour is unchanged.

Motivation

Electron/Chromium apps can report one UI Automation word range per glyph, so CJK text becomes hundreds of single-character nodes that dominate Snapshot output.

Fixes #495

Testing

Testing: Linux run with Windows-only modules stubbed (pytest, Python 3.14). tests/test_tree_word_runs.py: 13 passed. No new failures or collection errors compared with upstream main 7fd39b4 (on main the Linux harness has 6 known failures and 75 modules that cannot be collected without Windows). The Windows test suite passes on a real Windows 11 desktop; not yet tried live against an Electron app, which is the main target of the merge.

…rsorTouch#495)

Electron/Chromium apps can report one UI Automation word range per glyph,
so CJK text turns into hundreds of single-character Word nodes that
dominate Snapshot output. With WINDOWS_MCP_MERGE_WORD_NODES enabled,
adjacent words on the same text line are merged into one node whose box
covers the run (no spaces between CJK glyphs, one space between Latin
words). Default behaviour is unchanged.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Snapshot: per-character word leaves dominate the UI tree output for Electron/Chromium apps

1 participant