chrometools-mcp 3.1.7 → 3.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,124 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [3.2.6] - 2026-01-28
6
+
7
+ ### Removed
8
+ - **getAllInteractiveElements tool** — Removed redundant tool, fully replaced by analyzePage (54 → 53 tools)
9
+ - `analyzePage` provides superior functionality: hierarchical tree, element registration, APOM IDs, metadata
10
+ - `getAllInteractiveElements` only returned flat list with CSS selectors
11
+ - Affected files: `index.js`, `server/tool-definitions.js`, `server/tool-schemas.js`, `server/tool-groups.js`, `README.md`
12
+
13
+ ### Fixed
14
+ - **analyzePage visibility detection** — Fixed critical bug where analyzePage returned tree: null with interactiveCount: 0 on Angular Material pages
15
+ - Changed `isVisible()` check from `offsetParent` to `offsetWidth/offsetHeight > 0`
16
+ - Now correctly detects elements inside `position: fixed` containers (Angular Material overlays, dialogs, selects)
17
+ - Handles `position: sticky` elements properly
18
+ - Testing on my-autotests.segmento.ru: interactiveCount increased from 0 → 329 elements
19
+ - Affected file: `pom/apom-tree-converter.js`
20
+ - **type() text corruption** — Fixed text input corruption (duplicated/swapped characters)
21
+ - Changed default keystroke delay from 0ms to 30ms
22
+ - Prevents character corruption on fast-reacting inputs (Google Search, autocomplete fields)
23
+ - Example: "puppeteer automation" no longer becomes "ppuuppppeetteeeerr baruotwosmeart"
24
+ - Affected file: `index.js:454`
25
+
26
+ ## [3.2.5] - 2026-01-28
27
+
28
+ ### Fixed
29
+ - **CSS selector validation** — Fixed analyzePage crash when elements have numeric IDs
30
+ - Added validation to skip IDs starting with digits (e.g., `id="301178"`)
31
+ - CSS selectors don't support IDs starting with numbers (per CSS specification)
32
+ - Added try-catch for invalid selector edge cases
33
+ - Affected file: `pom/apom-tree-converter.js`
34
+
35
+ ## [3.2.4] - 2026-01-27
36
+
37
+ ### Performance
38
+ - **Compact APOM format** — Reduced analyzePage output size by ~70%
39
+ - Containers now use `"tag_id": [children]` format (instead of `{id, tag, selector, children}`)
40
+ - Selectors removed from output (registered internally for getElementDetails/click/type)
41
+ - Bottom-up pruning removes container branches without interactive elements
42
+ - Example: Google Search reduced from ~33K tokens (281 elements) to ~10K tokens (~80 elements)
43
+ - `includeAll: true` retains full format with selectors for debugging
44
+
45
+ ### Removed
46
+ - **getElement tool** — Redundant tool replaced by analyzePage (55 → 54 tools)
47
+
48
+ ## [3.2.3] - 2026-01-27
49
+
50
+ ### Removed
51
+ - **Reverted experimental features** — Removed `resolveComponentPaths` and `detectFrameworks` due to technical limitations
52
+ - Component path resolution was unreliable across different build configurations
53
+ - Framework detection removed from analyzePage tool
54
+ - Simplified codebase and improved performance
55
+
56
+ ## [3.2.2] - 2026-01-27
57
+
58
+ ### Fixed
59
+ - **APOM ID resolution** — Fixed element ID lookup in `click` and `type` tools
60
+ - Added CSS selector generation to APOM tree elements
61
+ - Both interactive and container elements now include `selector` field
62
+ - APOM IDs (e.g., `textarea_25`, `button_45`) now work correctly with click/type tools
63
+ - **Improved click reliability** — Enhanced click method with fallback strategies
64
+ - Primary method: standard Puppeteer click
65
+ - Fallback 1: scroll element into view and retry click
66
+ - Fallback 2: JavaScript click for hidden/overlapping elements
67
+ - Fixes issues with Google Search button and similar elements
68
+
69
+ ## [3.2.1] - 2026-01-27
70
+
71
+ ### Changed
72
+ - **Unified element analysis tools** — Merged `analyzeElementById` into `getElementDetails`
73
+ - `getElementDetails` now has optional `analyzeChildren` parameter
74
+ - Set `analyzeChildren: true` to get children tree structure
75
+ - Simplified API reduces tool count and improves consistency
76
+ - Children analysis includes same `includeAll` and `refresh` options
77
+
78
+ ### Removed
79
+ - **`getElementByApomId`** — Removed deprecated method (use `getElementDetails` instead)
80
+ - **`analyzeElementById`** — Merged into `getElementDetails` with `analyzeChildren` parameter
81
+
82
+ ## [3.2.0] - 2026-01-27
83
+
84
+ ### Added
85
+ - **New tool: `getElementDetails`** — Get comprehensive details about element by APOM ID
86
+ - Returns bounds, CSS selector, position, attributes, computed styles
87
+ - Use when `analyzePage` output is simplified and full element info is needed
88
+ - **New tool: `analyzeElementById`** — Analyze children elements starting from specific APOM ID
89
+ - Useful for analyzing specific page sections without re-analyzing entire page
90
+ - Supports `includeAll` and `refresh` parameters
91
+
92
+ ### Changed
93
+ - **Optimized `analyzePage` output** — Significantly reduced token usage
94
+ - Parent/container elements now show only `tag` and `id` (minimal info)
95
+ - Interactive elements no longer include `bounds` and `selector` in main output
96
+ - Use `getElementDetails` to get full information when needed
97
+ - ~50-70% reduction in output size for typical pages
98
+ - **Improved cursor:pointer detection** — Only detects explicitly set cursor, not inherited
99
+ - Filters out inherited `cursor:pointer` from parent elements
100
+ - Reduces false positives in interactive element detection
101
+ - More accurate identification of clickable elements
102
+
103
+ ### Deprecated
104
+ - **`getElementByApomId`** — Use `getElementDetails` instead (same functionality, clearer name)
105
+ - Filters out Angular dynamic classes (e.g., `_ng*`)
106
+ - Prefers stable class names for more reliable selectors across page loads
107
+
108
+ ## [3.1.8] - 2026-01-27
109
+
110
+ ### Changed
111
+ - **Enhanced interactivity detection in analyzePage** — Improved detection of JavaScript-enabled interactive elements
112
+ - Added detection of elements with `cursor: pointer` CSS property
113
+ - Added detection of elements with JavaScript `addEventListener('click')`
114
+ - Added detection of elements with `onclick` property set via JavaScript
115
+ - DIV and SPAN elements with click handlers now correctly detected as interactive
116
+ - Added `interactivityReason` metadata field showing why element was marked interactive
117
+ - Reasons: `native-html`, `aria-role`, `onclick-attr`, `onclick-prop`, `cursor-pointer`, `event-listener`, `tabindex`, `contenteditable`
118
+
119
+ ### Performance
120
+ - Optimized `markInteractiveElements` to skip event listener checks during bulk scan (performance)
121
+ - Event listener detection only runs for individual element type determination
122
+
5
123
  ## [3.1.7] - 2026-01-27
6
124
 
7
125
  ### Fixed