@xnng/browser-relay 1.6.0

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.
Files changed (79) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +445 -0
  3. package/docs/README.zh-CN.md +421 -0
  4. package/docs/benchmarks/browser-gaps-codex-ax.json +418 -0
  5. package/docs/benchmarks/browser-gaps-relay-after.json +655 -0
  6. package/docs/benchmarks/browser-gaps-relay-baseline.json +679 -0
  7. package/docs/benchmarks/browser-readiness-cost.json +106 -0
  8. package/docs/benchmarks/browser-runtime-balanced-headed.json +412 -0
  9. package/docs/benchmarks/browser-runtime-balanced-rtt50.json +412 -0
  10. package/docs/benchmarks/browser-runtime-balanced.json +412 -0
  11. package/docs/benchmarks/browser-runtime-rtt50.json +194 -0
  12. package/docs/benchmarks/browser-runtime.json +254 -0
  13. package/docs/benchmarks/browser-use-parity.json +54 -0
  14. package/docs/benchmarks/codex-extension-audit.json +131 -0
  15. package/docs/benchmarks/codex-native-protocol.md +69 -0
  16. package/docs/benchmarks/codex-native-replay.js +116 -0
  17. package/docs/benchmarks/codex-native-status.json +81 -0
  18. package/docs/benchmarks/codex-native.json +1003 -0
  19. package/docs/benchmarks/extension-sessions.png +0 -0
  20. package/docs/benchmarks/extension-tasks.png +0 -0
  21. package/docs/benchmarks/iframe-routing-regression.json +37 -0
  22. package/docs/browser-use-comparison.md +331 -0
  23. package/docs/browser-use-gap-audit.md +141 -0
  24. package/docs/browser-use-parity.md +105 -0
  25. package/docs/demo/intranet.html +103 -0
  26. package/docs/releases/v1.5.0.md +59 -0
  27. package/docs/releases/v1.5.1.md +16 -0
  28. package/docs/releases/v1.5.2.md +42 -0
  29. package/docs/releases/v1.5.3.md +33 -0
  30. package/docs/releases/v1.5.4.md +42 -0
  31. package/docs/releases/v1.6.0.md +16 -0
  32. package/docs/remote-control-hub.md +523 -0
  33. package/extension/activity.js +328 -0
  34. package/extension/automation.js +1839 -0
  35. package/extension/background.js +1854 -0
  36. package/extension/i18n.js +149 -0
  37. package/extension/icons/icon128.png +0 -0
  38. package/extension/icons/icon16.png +0 -0
  39. package/extension/icons/icon32.png +0 -0
  40. package/extension/icons/icon48.png +0 -0
  41. package/extension/manifest.json +47 -0
  42. package/extension/observations.js +109 -0
  43. package/extension/options.html +289 -0
  44. package/extension/options.js +269 -0
  45. package/extension/popup.html +74 -0
  46. package/extension/popup.js +105 -0
  47. package/extension/protocol.js +45 -0
  48. package/extension/remote-auth.js +18 -0
  49. package/extension/sessions.js +134 -0
  50. package/extension/snapshot.js +161 -0
  51. package/extension/task-groups.js +108 -0
  52. package/extension/tasks.js +186 -0
  53. package/extension/wait.js +89 -0
  54. package/hub/README.md +42 -0
  55. package/hub/package-lock.json +1544 -0
  56. package/hub/package.json +13 -0
  57. package/hub/src/rpc.js +41 -0
  58. package/hub/src/worker.js +322 -0
  59. package/hub/wrangler.example.toml +19 -0
  60. package/package.json +83 -0
  61. package/server/cdp-bridge.js +200 -0
  62. package/server/cli.js +1798 -0
  63. package/server/hub-server.js +258 -0
  64. package/server/install.js +250 -0
  65. package/server/mcp-server.js +504 -0
  66. package/server/npx-runner.js +96 -0
  67. package/server/relay-server.js +1356 -0
  68. package/server/remote-protocol.js +76 -0
  69. package/server/runtime-worker.js +166 -0
  70. package/server/script-runtime.js +189 -0
  71. package/server/sdk.js +307 -0
  72. package/server/service-state.js +103 -0
  73. package/server/snapshot.js +161 -0
  74. package/server/uninstall.js +61 -0
  75. package/server/windows-service-entry.js +58 -0
  76. package/server/windows-service.js +360 -0
  77. package/skills/browser-relay/SKILL.md +192 -0
  78. package/skills/browser-relay/references/legacy-api.md +163 -0
  79. package/skills/browser-relay/references/runtime.md +240 -0
@@ -0,0 +1,679 @@
1
+ {
2
+ "measuredAt": "2026-09-09T06:18:39.847Z",
3
+ "label": "baseline",
4
+ "browser": "153.0.8010.12",
5
+ "viewport": {
6
+ "width": 1466,
7
+ "height": 925
8
+ },
9
+ "headless": false,
10
+ "scope": "UI outcome probes, not a general model success benchmark. Refusal probes additionally require a surfaced error. Disabled option is an explicit UI-faithfulness criterion, not an assertion about the Playwright API contract.",
11
+ "summary": {
12
+ "delayed-enabled": {
13
+ "runs": 3,
14
+ "successes": 0
15
+ },
16
+ "appearance": {
17
+ "runs": 3,
18
+ "successes": 0
19
+ },
20
+ "temporary-cover": {
21
+ "runs": 3,
22
+ "successes": 0
23
+ },
24
+ "moving": {
25
+ "runs": 3,
26
+ "successes": 3
27
+ },
28
+ "scoped": {
29
+ "runs": 3,
30
+ "successes": 0
31
+ },
32
+ "rerender": {
33
+ "runs": 3,
34
+ "successes": 3
35
+ },
36
+ "trusted-checkbox": {
37
+ "runs": 3,
38
+ "successes": 0
39
+ },
40
+ "custom-checkbox": {
41
+ "runs": 3,
42
+ "successes": 0
43
+ },
44
+ "disabled-option": {
45
+ "runs": 3,
46
+ "successes": 0
47
+ },
48
+ "readonly": {
49
+ "runs": 3,
50
+ "successes": 3
51
+ },
52
+ "richtext": {
53
+ "runs": 3,
54
+ "successes": 3
55
+ },
56
+ "shadow-cover": {
57
+ "runs": 3,
58
+ "successes": 3
59
+ },
60
+ "frame-cover": {
61
+ "runs": 3,
62
+ "successes": 0
63
+ }
64
+ },
65
+ "samples": [
66
+ {
67
+ "case": "delayed-enabled",
68
+ "iteration": 0,
69
+ "expectedResult": "Enabled done",
70
+ "expectRefusal": false,
71
+ "success": false,
72
+ "elapsedMs": 22,
73
+ "error": {
74
+ "code": "element_disabled",
75
+ "message": "Target is disabled"
76
+ },
77
+ "visibleResult": "Enabling",
78
+ "controlValue": null,
79
+ "coveredFrameText": null,
80
+ "initialState": "[e25deac16_1] RootWebArea \"Browser reliability probes\" focused=true\n[e25deac16_2] heading \"Browser reliability probes\" level=1\n[e25deac16_3] status\n[e25deac16_5] StaticText \"Case: delayed-enabled\"\n[e25deac16_6] button \"Start enabling\"\n[e25deac16_7] button \"Delayed action\" disabled=true\n[e25deac16_8] StaticText \"Ready\"\n[e25deac16_11] RootWebArea \"Frame\" frame=BA1236F7C42170D797D995D52C30ABFC",
81
+ "finalState": null
82
+ },
83
+ {
84
+ "case": "appearance",
85
+ "iteration": 0,
86
+ "expectedResult": "Appeared done",
87
+ "expectRefusal": false,
88
+ "success": false,
89
+ "elapsedMs": 106,
90
+ "error": {
91
+ "code": "element_not_found",
92
+ "message": "No matching accessible element"
93
+ },
94
+ "visibleResult": "Waiting for appearance",
95
+ "controlValue": null,
96
+ "coveredFrameText": null,
97
+ "initialState": "[e64787cb9_1] RootWebArea \"Browser reliability probes\" focused=true\n[e64787cb9_2] heading \"Browser reliability probes\" level=1\n[e64787cb9_3] status\n[e64787cb9_5] StaticText \"Case: appearance\"\n[e64787cb9_6] button \"Start appearance\"\n[e64787cb9_7] StaticText \"Ready\"\n[e64787cb9_8] StaticText \"Expected target: Appeared action\"\n[e64787cb9_10] RootWebArea \"Frame\" frame=A64458DA1332D374FBEB678BE227112C",
98
+ "finalState": null
99
+ },
100
+ {
101
+ "case": "temporary-cover",
102
+ "iteration": 0,
103
+ "expectedResult": "Covered done",
104
+ "expectRefusal": false,
105
+ "success": false,
106
+ "elapsedMs": 62.3,
107
+ "error": {
108
+ "code": "element_obscured",
109
+ "message": "Target is covered by another element; observe before retrying"
110
+ },
111
+ "visibleResult": "Covering",
112
+ "controlValue": null,
113
+ "coveredFrameText": null,
114
+ "initialState": "[ecd7c4137_1] RootWebArea \"Browser reliability probes\" focused=true\n[ecd7c4137_2] heading \"Browser reliability probes\" level=1\n[ecd7c4137_3] status\n[ecd7c4137_5] StaticText \"Case: temporary-cover\"\n[ecd7c4137_6] button \"Start temporary cover\"\n[ecd7c4137_7] StaticText \"Ready\"\n[ecd7c4137_9] button \"Covered action\"\n[ecd7c4137_11] RootWebArea \"Frame\" frame=3EFC71902488B92DEC19B3E72C033B39",
115
+ "finalState": null
116
+ },
117
+ {
118
+ "case": "moving",
119
+ "iteration": 0,
120
+ "expectedResult": "Moving done",
121
+ "expectRefusal": false,
122
+ "success": true,
123
+ "elapsedMs": 64.7,
124
+ "error": null,
125
+ "visibleResult": "Moving done",
126
+ "controlValue": null,
127
+ "coveredFrameText": null,
128
+ "initialState": "[ea8a3992c_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea8a3992c_2] heading \"Browser reliability probes\" level=1\n[ea8a3992c_3] status\n[ea8a3992c_5] StaticText \"Case: moving\"\n[ea8a3992c_6] button \"Start movement\"\n[ea8a3992c_7] StaticText \"Ready\"\n[ea8a3992c_9] button \"Moving action\"\n[ea8a3992c_10] StaticText \"Go\"\n[ea8a3992c_11] RootWebArea \"Frame\" frame=D8185421544D371F1B9A517ED9AD7447",
129
+ "finalState": "- [ea8a3992c_7] StaticText \"Ready\"\n+ [ea8a3992c_13] StaticText \"Moving done\"\n~ [ea8a3992c_9] button \"Moving action\" focused=true"
130
+ },
131
+ {
132
+ "case": "scoped",
133
+ "iteration": 0,
134
+ "expectedResult": "South saved",
135
+ "expectRefusal": false,
136
+ "success": false,
137
+ "elapsedMs": 5.3,
138
+ "error": {
139
+ "code": "ambiguous_target",
140
+ "message": "Target matches 2 elements; use a ref or frameId"
141
+ },
142
+ "visibleResult": "Ready",
143
+ "controlValue": null,
144
+ "coveredFrameText": null,
145
+ "initialState": "[ea2b529b8_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea2b529b8_2] heading \"Browser reliability probes\" level=1\n[ea2b529b8_3] status\n[ea2b529b8_5] StaticText \"Case: scoped\"\n[ea2b529b8_6] group \"North\"\n[ea2b529b8_7] group \"South\"\n[ea2b529b8_8] StaticText \"Ready\"\n[ea2b529b8_9] button \"Save\"\n[ea2b529b8_10] button \"Save\"\n[ea2b529b8_11] StaticText \"North\"\n[ea2b529b8_13] StaticText \"South\"\n[ea2b529b8_15] RootWebArea \"Frame\" frame=B567E5F77557511847F5EA83C1E4C6BF",
146
+ "finalState": null
147
+ },
148
+ {
149
+ "case": "rerender",
150
+ "iteration": 0,
151
+ "expectedResult": "Replacement done",
152
+ "expectRefusal": false,
153
+ "success": true,
154
+ "elapsedMs": 37.9,
155
+ "error": null,
156
+ "visibleResult": "Replacement done",
157
+ "controlValue": null,
158
+ "coveredFrameText": null,
159
+ "initialState": "[e7f8b82e1_1] RootWebArea \"Browser reliability probes\" focused=true\n[e7f8b82e1_2] heading \"Browser reliability probes\" level=1\n[e7f8b82e1_3] status\n[e7f8b82e1_5] StaticText \"Case: rerender\"\n[e7f8b82e1_6] button \"Replace target\"\n[e7f8b82e1_7] button \"Replaceable action\"\n[e7f8b82e1_8] StaticText \"Ready\"\n[e7f8b82e1_11] RootWebArea \"Frame\" frame=DDA17F102A2C8A5AF5311B2F94085363",
160
+ "finalState": "- [e7f8b82e1_7] button \"Replaceable action\"\n- [e7f8b82e1_8] StaticText \"Ready\"\n+ [e7f8b82e1_12] button \"Replaceable action\" focused=true\n+ [e7f8b82e1_15] StaticText \"Replacement done\""
161
+ },
162
+ {
163
+ "case": "trusted-checkbox",
164
+ "iteration": 0,
165
+ "expectedResult": "Checked=true; trusted=true",
166
+ "expectRefusal": false,
167
+ "success": false,
168
+ "elapsedMs": 33,
169
+ "error": null,
170
+ "visibleResult": "Checked=true; trusted=false",
171
+ "controlValue": null,
172
+ "coveredFrameText": null,
173
+ "initialState": "[e1af09a0c_1] RootWebArea \"Browser reliability probes\" focused=true\n[e1af09a0c_2] heading \"Browser reliability probes\" level=1\n[e1af09a0c_3] status\n[e1af09a0c_5] StaticText \"Case: trusted-checkbox\"\n[e1af09a0c_6] checkbox \"Trusted choice\" checked=\"false\"\n[e1af09a0c_7] StaticText \"Ready\"\n[e1af09a0c_8] RootWebArea \"Frame\" frame=7DC37B93A74D64C447BF39C37A537023",
174
+ "finalState": "- [e1af09a0c_7] StaticText \"Ready\"\n~ [e1af09a0c_6] checkbox \"Trusted choice\" checked=\"true\"\n+ [e1af09a0c_9] StaticText \"Checked=true; trusted=false\""
175
+ },
176
+ {
177
+ "case": "custom-checkbox",
178
+ "iteration": 0,
179
+ "expectedResult": "Custom checked=true",
180
+ "expectRefusal": false,
181
+ "success": false,
182
+ "elapsedMs": 6.8,
183
+ "error": {
184
+ "code": "not_checkable",
185
+ "message": "not_checkable"
186
+ },
187
+ "visibleResult": "Ready",
188
+ "controlValue": null,
189
+ "coveredFrameText": null,
190
+ "initialState": "[efed2991f_1] RootWebArea \"Browser reliability probes\" focused=true\n[efed2991f_2] heading \"Browser reliability probes\" level=1\n[efed2991f_3] status\n[efed2991f_5] StaticText \"Case: custom-checkbox\"\n[efed2991f_6] checkbox \"Custom choice\" checked=\"false\"\n[efed2991f_7] StaticText \"Ready\"\n[efed2991f_8] StaticText \"Custom choice\"\n[efed2991f_9] RootWebArea \"Frame\" frame=EB068FB315AC9F42D90F80ACC1A34CE3",
191
+ "finalState": null
192
+ },
193
+ {
194
+ "case": "disabled-option",
195
+ "iteration": 0,
196
+ "expectedResult": "Ready",
197
+ "expectRefusal": true,
198
+ "success": false,
199
+ "elapsedMs": 23.9,
200
+ "error": null,
201
+ "visibleResult": "Selected=closed",
202
+ "controlValue": "closed",
203
+ "coveredFrameText": null,
204
+ "initialState": "[e94dc8ad7_1] RootWebArea \"Browser reliability probes\" focused=true\n[e94dc8ad7_2] heading \"Browser reliability probes\" level=1\n[e94dc8ad7_3] status\n[e94dc8ad7_5] StaticText \"Case: disabled-option\"\n[e94dc8ad7_6] StaticText \"Ready\"\n[e94dc8ad7_7] StaticText \"Availability\"\n[e94dc8ad7_8] combobox \"Availability\" value=\"Open\" expanded=false\n[e94dc8ad7_9] option \"Open\" selected=true\n[e94dc8ad7_10] option \"Closed\" disabled=true\n[e94dc8ad7_11] RootWebArea \"Frame\" frame=C7B554CCC0A4F2CD22719A8D850852D9",
205
+ "finalState": "- [e94dc8ad7_6] StaticText \"Ready\"\n+ [e94dc8ad7_12] StaticText \"Selected=closed\"\n~ [e94dc8ad7_8] combobox \"Availability\" value=\"Closed\" expanded=false\n~ [e94dc8ad7_9] option \"Open\" selected=false"
206
+ },
207
+ {
208
+ "case": "readonly",
209
+ "iteration": 0,
210
+ "expectedResult": "Ready",
211
+ "expectRefusal": true,
212
+ "success": true,
213
+ "elapsedMs": 7.1,
214
+ "error": {
215
+ "code": "not_editable",
216
+ "message": "not_editable"
217
+ },
218
+ "visibleResult": "Ready",
219
+ "controlValue": "unchanged",
220
+ "coveredFrameText": null,
221
+ "initialState": "[eec48b277_1] RootWebArea \"Browser reliability probes\" focused=true\n[eec48b277_2] heading \"Browser reliability probes\" level=1\n[eec48b277_3] status\n[eec48b277_5] StaticText \"Case: readonly\"\n[eec48b277_6] StaticText \"Ready\"\n[eec48b277_7] StaticText \"Read only\"\n[eec48b277_8] textbox \"Read only\" required=false\n[eec48b277_9] StaticText \"unchanged\"\n[eec48b277_10] RootWebArea \"Frame\" frame=CD1AB511EAEC861C461CFF0DCD02E76D",
222
+ "finalState": null
223
+ },
224
+ {
225
+ "case": "richtext",
226
+ "iteration": 0,
227
+ "expectedResult": "Rich=New note",
228
+ "expectRefusal": false,
229
+ "success": true,
230
+ "elapsedMs": 24.5,
231
+ "error": null,
232
+ "visibleResult": "Rich=New note",
233
+ "controlValue": null,
234
+ "coveredFrameText": null,
235
+ "initialState": "[edb5a2b23_1] RootWebArea \"Browser reliability probes\" focused=true\n[edb5a2b23_2] heading \"Browser reliability probes\" level=1\n[edb5a2b23_3] status\n[edb5a2b23_5] StaticText \"Case: richtext\"\n[edb5a2b23_6] textbox \"Rich note\" required=false\n[edb5a2b23_7] StaticText \"Ready\"\n[edb5a2b23_8] StaticText \"Old note\"\n[edb5a2b23_9] RootWebArea \"Frame\" frame=95386BDAA562F5F8CAE7F67C1C5023E8",
236
+ "finalState": "- [edb5a2b23_7] StaticText \"Ready\"\n- [edb5a2b23_8] StaticText \"Old note\"\n~ [edb5a2b23_6] textbox \"Rich note\" focused=true required=false\n+ [edb5a2b23_10] StaticText \"Rich=New note\"\n+ [edb5a2b23_11] StaticText \"New note\""
237
+ },
238
+ {
239
+ "case": "shadow-cover",
240
+ "iteration": 0,
241
+ "expectedResult": "Ready",
242
+ "expectRefusal": true,
243
+ "success": true,
244
+ "elapsedMs": 4.8,
245
+ "error": {
246
+ "code": "element_obscured",
247
+ "message": "Target is covered by another element; observe before retrying"
248
+ },
249
+ "visibleResult": "Ready",
250
+ "controlValue": null,
251
+ "coveredFrameText": null,
252
+ "initialState": "[e622933be_1] RootWebArea \"Browser reliability probes\" focused=true\n[e622933be_2] heading \"Browser reliability probes\" level=1\n[e622933be_3] status\n[e622933be_5] StaticText \"Case: shadow-cover\"\n[e622933be_6] StaticText \"Ready\"\n[e622933be_7] button \"Shadow covered action\"\n[e622933be_8] StaticText \"Permanent cover\"\n[e622933be_10] RootWebArea \"Frame\" frame=640FB4750CF52D1604ED9B855445E62D",
253
+ "finalState": null
254
+ },
255
+ {
256
+ "case": "frame-cover",
257
+ "iteration": 0,
258
+ "expectedResult": "Ready",
259
+ "expectRefusal": true,
260
+ "success": false,
261
+ "elapsedMs": 33.8,
262
+ "error": null,
263
+ "visibleResult": "Ready",
264
+ "controlValue": null,
265
+ "coveredFrameText": "Frame action",
266
+ "initialState": "[eb5381b8b_1] RootWebArea \"Browser reliability probes\" focused=true\n[eb5381b8b_2] heading \"Browser reliability probes\" level=1\n[eb5381b8b_3] status\n[eb5381b8b_5] StaticText \"Case: frame-cover\"\n[eb5381b8b_6] StaticText \"Ready\"\n[eb5381b8b_7] Iframe \"Covered frame\"\n[eb5381b8b_8] StaticText \"Permanent cover\"\n[eb5381b8b_9] RootWebArea \"Frame\" frame=167C76CC787595105D2B7EC457CDEC7E\n[eb5381b8b_10] button \"Frame action\" frame=167C76CC787595105D2B7EC457CDEC7E",
267
+ "finalState": "(no changes)"
268
+ },
269
+ {
270
+ "case": "delayed-enabled",
271
+ "iteration": 1,
272
+ "expectedResult": "Enabled done",
273
+ "expectRefusal": false,
274
+ "success": false,
275
+ "elapsedMs": 16.2,
276
+ "error": {
277
+ "code": "element_disabled",
278
+ "message": "Target is disabled"
279
+ },
280
+ "visibleResult": "Enabling",
281
+ "controlValue": null,
282
+ "coveredFrameText": null,
283
+ "initialState": "[e2b21c40a_1] RootWebArea \"Browser reliability probes\" focused=true\n[e2b21c40a_2] heading \"Browser reliability probes\" level=1\n[e2b21c40a_3] status\n[e2b21c40a_5] StaticText \"Case: delayed-enabled\"\n[e2b21c40a_6] button \"Start enabling\"\n[e2b21c40a_7] button \"Delayed action\" disabled=true\n[e2b21c40a_8] StaticText \"Ready\"\n[e2b21c40a_11] RootWebArea \"Frame\" frame=FEC15ED59803CF07737DB217C0091A83",
284
+ "finalState": null
285
+ },
286
+ {
287
+ "case": "appearance",
288
+ "iteration": 1,
289
+ "expectedResult": "Appeared done",
290
+ "expectRefusal": false,
291
+ "success": false,
292
+ "elapsedMs": 17.3,
293
+ "error": {
294
+ "code": "element_not_found",
295
+ "message": "No matching accessible element"
296
+ },
297
+ "visibleResult": "Waiting for appearance",
298
+ "controlValue": null,
299
+ "coveredFrameText": null,
300
+ "initialState": "[e73b164a9_1] RootWebArea \"Browser reliability probes\" focused=true\n[e73b164a9_2] heading \"Browser reliability probes\" level=1\n[e73b164a9_3] status\n[e73b164a9_5] StaticText \"Case: appearance\"\n[e73b164a9_6] button \"Start appearance\"\n[e73b164a9_7] StaticText \"Ready\"\n[e73b164a9_8] StaticText \"Expected target: Appeared action\"\n[e73b164a9_10] RootWebArea \"Frame\" frame=874AAAAF22E9D1D1D74CFD0EE6EB208D",
301
+ "finalState": null
302
+ },
303
+ {
304
+ "case": "temporary-cover",
305
+ "iteration": 1,
306
+ "expectedResult": "Covered done",
307
+ "expectRefusal": false,
308
+ "success": false,
309
+ "elapsedMs": 16.8,
310
+ "error": {
311
+ "code": "element_obscured",
312
+ "message": "Target is covered by another element; observe before retrying"
313
+ },
314
+ "visibleResult": "Covering",
315
+ "controlValue": null,
316
+ "coveredFrameText": null,
317
+ "initialState": "[e8d86300b_1] RootWebArea \"Browser reliability probes\" focused=true\n[e8d86300b_2] heading \"Browser reliability probes\" level=1\n[e8d86300b_3] status\n[e8d86300b_5] StaticText \"Case: temporary-cover\"\n[e8d86300b_6] button \"Start temporary cover\"\n[e8d86300b_7] StaticText \"Ready\"\n[e8d86300b_9] button \"Covered action\"\n[e8d86300b_11] RootWebArea \"Frame\" frame=CF689E5BBF1E51EABA770E80510EB567",
318
+ "finalState": null
319
+ },
320
+ {
321
+ "case": "moving",
322
+ "iteration": 1,
323
+ "expectedResult": "Moving done",
324
+ "expectRefusal": false,
325
+ "success": true,
326
+ "elapsedMs": 33.7,
327
+ "error": null,
328
+ "visibleResult": "Moving done",
329
+ "controlValue": null,
330
+ "coveredFrameText": null,
331
+ "initialState": "[e4a95e844_1] RootWebArea \"Browser reliability probes\" focused=true\n[e4a95e844_2] heading \"Browser reliability probes\" level=1\n[e4a95e844_3] status\n[e4a95e844_5] StaticText \"Case: moving\"\n[e4a95e844_6] button \"Start movement\"\n[e4a95e844_7] StaticText \"Ready\"\n[e4a95e844_9] button \"Moving action\"\n[e4a95e844_10] StaticText \"Go\"\n[e4a95e844_11] RootWebArea \"Frame\" frame=51667765B6848D613EC97E5C1A99DBE2",
332
+ "finalState": "- [e4a95e844_7] StaticText \"Ready\"\n+ [e4a95e844_13] StaticText \"Moving done\"\n~ [e4a95e844_9] button \"Moving action\" focused=true"
333
+ },
334
+ {
335
+ "case": "scoped",
336
+ "iteration": 1,
337
+ "expectedResult": "South saved",
338
+ "expectRefusal": false,
339
+ "success": false,
340
+ "elapsedMs": 4.3,
341
+ "error": {
342
+ "code": "ambiguous_target",
343
+ "message": "Target matches 2 elements; use a ref or frameId"
344
+ },
345
+ "visibleResult": "Ready",
346
+ "controlValue": null,
347
+ "coveredFrameText": null,
348
+ "initialState": "[ef3e44360_1] RootWebArea \"Browser reliability probes\" focused=true\n[ef3e44360_2] heading \"Browser reliability probes\" level=1\n[ef3e44360_3] status\n[ef3e44360_5] StaticText \"Case: scoped\"\n[ef3e44360_6] group \"North\"\n[ef3e44360_7] group \"South\"\n[ef3e44360_8] StaticText \"Ready\"\n[ef3e44360_9] button \"Save\"\n[ef3e44360_10] button \"Save\"\n[ef3e44360_11] StaticText \"North\"\n[ef3e44360_13] StaticText \"South\"\n[ef3e44360_15] RootWebArea \"Frame\" frame=674FDD4C10EBF68DAF233207619394A8",
349
+ "finalState": null
350
+ },
351
+ {
352
+ "case": "rerender",
353
+ "iteration": 1,
354
+ "expectedResult": "Replacement done",
355
+ "expectRefusal": false,
356
+ "success": true,
357
+ "elapsedMs": 40.2,
358
+ "error": null,
359
+ "visibleResult": "Replacement done",
360
+ "controlValue": null,
361
+ "coveredFrameText": null,
362
+ "initialState": "[e731339bf_1] RootWebArea \"Browser reliability probes\" focused=true\n[e731339bf_2] heading \"Browser reliability probes\" level=1\n[e731339bf_3] status\n[e731339bf_5] StaticText \"Case: rerender\"\n[e731339bf_6] button \"Replace target\"\n[e731339bf_7] button \"Replaceable action\"\n[e731339bf_8] StaticText \"Ready\"\n[e731339bf_11] RootWebArea \"Frame\" frame=B4986D77D66AD5BCEBCD0D32693199EE",
363
+ "finalState": "- [e731339bf_7] button \"Replaceable action\"\n- [e731339bf_8] StaticText \"Ready\"\n+ [e731339bf_12] button \"Replaceable action\" focused=true\n+ [e731339bf_15] StaticText \"Replacement done\""
364
+ },
365
+ {
366
+ "case": "trusted-checkbox",
367
+ "iteration": 1,
368
+ "expectedResult": "Checked=true; trusted=true",
369
+ "expectRefusal": false,
370
+ "success": false,
371
+ "elapsedMs": 24.1,
372
+ "error": null,
373
+ "visibleResult": "Checked=true; trusted=false",
374
+ "controlValue": null,
375
+ "coveredFrameText": null,
376
+ "initialState": "[ef0a1a166_1] RootWebArea \"Browser reliability probes\" focused=true\n[ef0a1a166_2] heading \"Browser reliability probes\" level=1\n[ef0a1a166_3] status\n[ef0a1a166_5] StaticText \"Case: trusted-checkbox\"\n[ef0a1a166_6] checkbox \"Trusted choice\" checked=\"false\"\n[ef0a1a166_7] StaticText \"Ready\"\n[ef0a1a166_8] RootWebArea \"Frame\" frame=D871FCA16B281FE2DC5460B3DD9FC9CC",
377
+ "finalState": "- [ef0a1a166_7] StaticText \"Ready\"\n~ [ef0a1a166_6] checkbox \"Trusted choice\" checked=\"true\"\n+ [ef0a1a166_9] StaticText \"Checked=true; trusted=false\""
378
+ },
379
+ {
380
+ "case": "custom-checkbox",
381
+ "iteration": 1,
382
+ "expectedResult": "Custom checked=true",
383
+ "expectRefusal": false,
384
+ "success": false,
385
+ "elapsedMs": 4.6,
386
+ "error": {
387
+ "code": "not_checkable",
388
+ "message": "not_checkable"
389
+ },
390
+ "visibleResult": "Ready",
391
+ "controlValue": null,
392
+ "coveredFrameText": null,
393
+ "initialState": "[e302cb7b5_1] RootWebArea \"Browser reliability probes\" focused=true\n[e302cb7b5_2] heading \"Browser reliability probes\" level=1\n[e302cb7b5_3] status\n[e302cb7b5_5] StaticText \"Case: custom-checkbox\"\n[e302cb7b5_6] checkbox \"Custom choice\" checked=\"false\"\n[e302cb7b5_7] StaticText \"Ready\"\n[e302cb7b5_8] StaticText \"Custom choice\"\n[e302cb7b5_9] RootWebArea \"Frame\" frame=A05217489684E1B5B195AE2D6ABDFBBE",
394
+ "finalState": null
395
+ },
396
+ {
397
+ "case": "disabled-option",
398
+ "iteration": 1,
399
+ "expectedResult": "Ready",
400
+ "expectRefusal": true,
401
+ "success": false,
402
+ "elapsedMs": 24.2,
403
+ "error": null,
404
+ "visibleResult": "Selected=closed",
405
+ "controlValue": "closed",
406
+ "coveredFrameText": null,
407
+ "initialState": "[e258f1d39_1] RootWebArea \"Browser reliability probes\" focused=true\n[e258f1d39_2] heading \"Browser reliability probes\" level=1\n[e258f1d39_3] status\n[e258f1d39_5] StaticText \"Case: disabled-option\"\n[e258f1d39_6] StaticText \"Ready\"\n[e258f1d39_7] StaticText \"Availability\"\n[e258f1d39_8] combobox \"Availability\" value=\"Open\" expanded=false\n[e258f1d39_9] option \"Open\" selected=true\n[e258f1d39_10] option \"Closed\" disabled=true\n[e258f1d39_11] RootWebArea \"Frame\" frame=87298326707866737F76DCED54CDD0E0",
408
+ "finalState": "- [e258f1d39_6] StaticText \"Ready\"\n+ [e258f1d39_12] StaticText \"Selected=closed\"\n~ [e258f1d39_8] combobox \"Availability\" value=\"Closed\" expanded=false\n~ [e258f1d39_9] option \"Open\" selected=false"
409
+ },
410
+ {
411
+ "case": "readonly",
412
+ "iteration": 1,
413
+ "expectedResult": "Ready",
414
+ "expectRefusal": true,
415
+ "success": true,
416
+ "elapsedMs": 7,
417
+ "error": {
418
+ "code": "not_editable",
419
+ "message": "not_editable"
420
+ },
421
+ "visibleResult": "Ready",
422
+ "controlValue": "unchanged",
423
+ "coveredFrameText": null,
424
+ "initialState": "[e5cb3b86a_1] RootWebArea \"Browser reliability probes\" focused=true\n[e5cb3b86a_2] heading \"Browser reliability probes\" level=1\n[e5cb3b86a_3] status\n[e5cb3b86a_5] StaticText \"Case: readonly\"\n[e5cb3b86a_6] StaticText \"Ready\"\n[e5cb3b86a_7] StaticText \"Read only\"\n[e5cb3b86a_8] textbox \"Read only\" required=false\n[e5cb3b86a_9] StaticText \"unchanged\"\n[e5cb3b86a_10] RootWebArea \"Frame\" frame=A288202A785D25AA59CBECA7F233F02F",
425
+ "finalState": null
426
+ },
427
+ {
428
+ "case": "richtext",
429
+ "iteration": 1,
430
+ "expectedResult": "Rich=New note",
431
+ "expectRefusal": false,
432
+ "success": true,
433
+ "elapsedMs": 23.8,
434
+ "error": null,
435
+ "visibleResult": "Rich=New note",
436
+ "controlValue": null,
437
+ "coveredFrameText": null,
438
+ "initialState": "[e2bcc4d8e_1] RootWebArea \"Browser reliability probes\" focused=true\n[e2bcc4d8e_2] heading \"Browser reliability probes\" level=1\n[e2bcc4d8e_3] status\n[e2bcc4d8e_5] StaticText \"Case: richtext\"\n[e2bcc4d8e_6] textbox \"Rich note\" required=false\n[e2bcc4d8e_7] StaticText \"Ready\"\n[e2bcc4d8e_8] StaticText \"Old note\"\n[e2bcc4d8e_9] RootWebArea \"Frame\" frame=2DEE9048D265CED2B341A3710B5E981E",
439
+ "finalState": "- [e2bcc4d8e_7] StaticText \"Ready\"\n- [e2bcc4d8e_8] StaticText \"Old note\"\n~ [e2bcc4d8e_6] textbox \"Rich note\" focused=true required=false\n+ [e2bcc4d8e_10] StaticText \"Rich=New note\"\n+ [e2bcc4d8e_11] StaticText \"New note\""
440
+ },
441
+ {
442
+ "case": "shadow-cover",
443
+ "iteration": 1,
444
+ "expectedResult": "Ready",
445
+ "expectRefusal": true,
446
+ "success": true,
447
+ "elapsedMs": 4.4,
448
+ "error": {
449
+ "code": "element_obscured",
450
+ "message": "Target is covered by another element; observe before retrying"
451
+ },
452
+ "visibleResult": "Ready",
453
+ "controlValue": null,
454
+ "coveredFrameText": null,
455
+ "initialState": "[ee8e784ea_1] RootWebArea \"Browser reliability probes\" focused=true\n[ee8e784ea_2] heading \"Browser reliability probes\" level=1\n[ee8e784ea_3] status\n[ee8e784ea_5] StaticText \"Case: shadow-cover\"\n[ee8e784ea_6] StaticText \"Ready\"\n[ee8e784ea_7] button \"Shadow covered action\"\n[ee8e784ea_8] StaticText \"Permanent cover\"\n[ee8e784ea_10] RootWebArea \"Frame\" frame=4141C20A43BA3218836F9969EB3BE322",
456
+ "finalState": null
457
+ },
458
+ {
459
+ "case": "frame-cover",
460
+ "iteration": 1,
461
+ "expectedResult": "Ready",
462
+ "expectRefusal": true,
463
+ "success": false,
464
+ "elapsedMs": 32.5,
465
+ "error": null,
466
+ "visibleResult": "Ready",
467
+ "controlValue": null,
468
+ "coveredFrameText": "Frame action",
469
+ "initialState": "[e25943cb0_1] RootWebArea \"Browser reliability probes\" focused=true\n[e25943cb0_2] heading \"Browser reliability probes\" level=1\n[e25943cb0_3] status\n[e25943cb0_5] StaticText \"Case: frame-cover\"\n[e25943cb0_6] StaticText \"Ready\"\n[e25943cb0_7] Iframe \"Covered frame\"\n[e25943cb0_8] StaticText \"Permanent cover\"\n[e25943cb0_9] RootWebArea \"Frame\" frame=DDA9254F92C2769B3ABCFE1E002C2456\n[e25943cb0_10] button \"Frame action\" frame=DDA9254F92C2769B3ABCFE1E002C2456",
470
+ "finalState": "(no changes)"
471
+ },
472
+ {
473
+ "case": "delayed-enabled",
474
+ "iteration": 2,
475
+ "expectedResult": "Enabled done",
476
+ "expectRefusal": false,
477
+ "success": false,
478
+ "elapsedMs": 10.2,
479
+ "error": {
480
+ "code": "element_disabled",
481
+ "message": "Target is disabled"
482
+ },
483
+ "visibleResult": "Enabling",
484
+ "controlValue": null,
485
+ "coveredFrameText": null,
486
+ "initialState": "[ea6d6e857_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea6d6e857_2] heading \"Browser reliability probes\" level=1\n[ea6d6e857_3] status\n[ea6d6e857_5] StaticText \"Case: delayed-enabled\"\n[ea6d6e857_6] button \"Start enabling\"\n[ea6d6e857_7] button \"Delayed action\" disabled=true\n[ea6d6e857_8] StaticText \"Ready\"\n[ea6d6e857_11] RootWebArea \"Frame\" frame=4655FA170079AA6F237D9F153F4D01CE",
487
+ "finalState": null
488
+ },
489
+ {
490
+ "case": "appearance",
491
+ "iteration": 2,
492
+ "expectedResult": "Appeared done",
493
+ "expectRefusal": false,
494
+ "success": false,
495
+ "elapsedMs": 16.2,
496
+ "error": {
497
+ "code": "element_not_found",
498
+ "message": "No matching accessible element"
499
+ },
500
+ "visibleResult": "Waiting for appearance",
501
+ "controlValue": null,
502
+ "coveredFrameText": null,
503
+ "initialState": "[e5891d6d8_1] RootWebArea \"Browser reliability probes\" focused=true\n[e5891d6d8_2] heading \"Browser reliability probes\" level=1\n[e5891d6d8_3] status\n[e5891d6d8_5] StaticText \"Case: appearance\"\n[e5891d6d8_6] button \"Start appearance\"\n[e5891d6d8_7] StaticText \"Ready\"\n[e5891d6d8_8] StaticText \"Expected target: Appeared action\"\n[e5891d6d8_10] RootWebArea \"Frame\" frame=0D751D6ADDDBF9602C99EC02DAF38D0B",
504
+ "finalState": null
505
+ },
506
+ {
507
+ "case": "temporary-cover",
508
+ "iteration": 2,
509
+ "expectedResult": "Covered done",
510
+ "expectRefusal": false,
511
+ "success": false,
512
+ "elapsedMs": 9.3,
513
+ "error": {
514
+ "code": "element_obscured",
515
+ "message": "Target is covered by another element; observe before retrying"
516
+ },
517
+ "visibleResult": "Covering",
518
+ "controlValue": null,
519
+ "coveredFrameText": null,
520
+ "initialState": "[edb5f64c7_1] RootWebArea \"Browser reliability probes\" focused=true\n[edb5f64c7_2] heading \"Browser reliability probes\" level=1\n[edb5f64c7_3] status\n[edb5f64c7_5] StaticText \"Case: temporary-cover\"\n[edb5f64c7_6] button \"Start temporary cover\"\n[edb5f64c7_7] StaticText \"Ready\"\n[edb5f64c7_9] button \"Covered action\"\n[edb5f64c7_11] RootWebArea \"Frame\" frame=E86564C70E1EB439DCC1EB4C9E209421",
521
+ "finalState": null
522
+ },
523
+ {
524
+ "case": "moving",
525
+ "iteration": 2,
526
+ "expectedResult": "Moving done",
527
+ "expectRefusal": false,
528
+ "success": true,
529
+ "elapsedMs": 40.6,
530
+ "error": null,
531
+ "visibleResult": "Moving done",
532
+ "controlValue": null,
533
+ "coveredFrameText": null,
534
+ "initialState": "[e7af40ff9_1] RootWebArea \"Browser reliability probes\" focused=true\n[e7af40ff9_2] heading \"Browser reliability probes\" level=1\n[e7af40ff9_3] status\n[e7af40ff9_5] StaticText \"Case: moving\"\n[e7af40ff9_6] button \"Start movement\"\n[e7af40ff9_7] StaticText \"Ready\"\n[e7af40ff9_9] button \"Moving action\"\n[e7af40ff9_10] StaticText \"Go\"\n[e7af40ff9_11] RootWebArea \"Frame\" frame=60F110B09918435A510BB3160703A4CF",
535
+ "finalState": "- [e7af40ff9_7] StaticText \"Ready\"\n+ [e7af40ff9_13] StaticText \"Moving done\"\n~ [e7af40ff9_9] button \"Moving action\" focused=true"
536
+ },
537
+ {
538
+ "case": "scoped",
539
+ "iteration": 2,
540
+ "expectedResult": "South saved",
541
+ "expectRefusal": false,
542
+ "success": false,
543
+ "elapsedMs": 4.1,
544
+ "error": {
545
+ "code": "ambiguous_target",
546
+ "message": "Target matches 2 elements; use a ref or frameId"
547
+ },
548
+ "visibleResult": "Ready",
549
+ "controlValue": null,
550
+ "coveredFrameText": null,
551
+ "initialState": "[e9f96de49_1] RootWebArea \"Browser reliability probes\" focused=true\n[e9f96de49_2] heading \"Browser reliability probes\" level=1\n[e9f96de49_3] status\n[e9f96de49_5] StaticText \"Case: scoped\"\n[e9f96de49_6] group \"North\"\n[e9f96de49_7] group \"South\"\n[e9f96de49_8] StaticText \"Ready\"\n[e9f96de49_9] button \"Save\"\n[e9f96de49_10] button \"Save\"\n[e9f96de49_11] StaticText \"North\"\n[e9f96de49_13] StaticText \"South\"\n[e9f96de49_15] RootWebArea \"Frame\" frame=E9735DA77382819FE39C857AF88E12B3",
552
+ "finalState": null
553
+ },
554
+ {
555
+ "case": "rerender",
556
+ "iteration": 2,
557
+ "expectedResult": "Replacement done",
558
+ "expectRefusal": false,
559
+ "success": true,
560
+ "elapsedMs": 38,
561
+ "error": null,
562
+ "visibleResult": "Replacement done",
563
+ "controlValue": null,
564
+ "coveredFrameText": null,
565
+ "initialState": "[e3dd4ddb1_1] RootWebArea \"Browser reliability probes\" focused=true\n[e3dd4ddb1_2] heading \"Browser reliability probes\" level=1\n[e3dd4ddb1_3] status\n[e3dd4ddb1_5] StaticText \"Case: rerender\"\n[e3dd4ddb1_6] button \"Replace target\"\n[e3dd4ddb1_7] button \"Replaceable action\"\n[e3dd4ddb1_8] StaticText \"Ready\"\n[e3dd4ddb1_11] RootWebArea \"Frame\" frame=B5790AE848D001708F951B133AC23ACF",
566
+ "finalState": "- [e3dd4ddb1_7] button \"Replaceable action\"\n- [e3dd4ddb1_8] StaticText \"Ready\"\n+ [e3dd4ddb1_12] button \"Replaceable action\" focused=true\n+ [e3dd4ddb1_15] StaticText \"Replacement done\""
567
+ },
568
+ {
569
+ "case": "trusted-checkbox",
570
+ "iteration": 2,
571
+ "expectedResult": "Checked=true; trusted=true",
572
+ "expectRefusal": false,
573
+ "success": false,
574
+ "elapsedMs": 20.4,
575
+ "error": null,
576
+ "visibleResult": "Checked=true; trusted=false",
577
+ "controlValue": null,
578
+ "coveredFrameText": null,
579
+ "initialState": "[e8c70a2cd_1] RootWebArea \"Browser reliability probes\" focused=true\n[e8c70a2cd_2] heading \"Browser reliability probes\" level=1\n[e8c70a2cd_3] status\n[e8c70a2cd_5] StaticText \"Case: trusted-checkbox\"\n[e8c70a2cd_6] checkbox \"Trusted choice\" checked=\"false\"\n[e8c70a2cd_7] StaticText \"Ready\"\n[e8c70a2cd_8] RootWebArea \"Frame\" frame=44073DF1957D19B18A8DA2C557B943E1",
580
+ "finalState": "- [e8c70a2cd_7] StaticText \"Ready\"\n~ [e8c70a2cd_6] checkbox \"Trusted choice\" checked=\"true\"\n+ [e8c70a2cd_9] StaticText \"Checked=true; trusted=false\""
581
+ },
582
+ {
583
+ "case": "custom-checkbox",
584
+ "iteration": 2,
585
+ "expectedResult": "Custom checked=true",
586
+ "expectRefusal": false,
587
+ "success": false,
588
+ "elapsedMs": 5.8,
589
+ "error": {
590
+ "code": "not_checkable",
591
+ "message": "not_checkable"
592
+ },
593
+ "visibleResult": "Ready",
594
+ "controlValue": null,
595
+ "coveredFrameText": null,
596
+ "initialState": "[ef1618912_1] RootWebArea \"Browser reliability probes\" focused=true\n[ef1618912_2] heading \"Browser reliability probes\" level=1\n[ef1618912_3] status\n[ef1618912_5] StaticText \"Case: custom-checkbox\"\n[ef1618912_6] checkbox \"Custom choice\" checked=\"false\"\n[ef1618912_7] StaticText \"Ready\"\n[ef1618912_8] StaticText \"Custom choice\"\n[ef1618912_9] RootWebArea \"Frame\" frame=B2CBCD7E6367651152A5E509026A966E",
597
+ "finalState": null
598
+ },
599
+ {
600
+ "case": "disabled-option",
601
+ "iteration": 2,
602
+ "expectedResult": "Ready",
603
+ "expectRefusal": true,
604
+ "success": false,
605
+ "elapsedMs": 17.9,
606
+ "error": null,
607
+ "visibleResult": "Selected=closed",
608
+ "controlValue": "closed",
609
+ "coveredFrameText": null,
610
+ "initialState": "[ee0c59624_1] RootWebArea \"Browser reliability probes\" focused=true\n[ee0c59624_2] heading \"Browser reliability probes\" level=1\n[ee0c59624_3] status\n[ee0c59624_5] StaticText \"Case: disabled-option\"\n[ee0c59624_6] StaticText \"Ready\"\n[ee0c59624_7] StaticText \"Availability\"\n[ee0c59624_8] combobox \"Availability\" value=\"Open\" expanded=false\n[ee0c59624_9] option \"Open\" selected=true\n[ee0c59624_10] option \"Closed\" disabled=true\n[ee0c59624_11] RootWebArea \"Frame\" frame=E715A20388A0836FF7EC9365B54E3FEC",
611
+ "finalState": "- [ee0c59624_6] StaticText \"Ready\"\n+ [ee0c59624_12] StaticText \"Selected=closed\"\n~ [ee0c59624_8] combobox \"Availability\" value=\"Closed\" expanded=false\n~ [ee0c59624_9] option \"Open\" selected=false"
612
+ },
613
+ {
614
+ "case": "readonly",
615
+ "iteration": 2,
616
+ "expectedResult": "Ready",
617
+ "expectRefusal": true,
618
+ "success": true,
619
+ "elapsedMs": 6.5,
620
+ "error": {
621
+ "code": "not_editable",
622
+ "message": "not_editable"
623
+ },
624
+ "visibleResult": "Ready",
625
+ "controlValue": "unchanged",
626
+ "coveredFrameText": null,
627
+ "initialState": "[eea6cc631_1] RootWebArea \"Browser reliability probes\" focused=true\n[eea6cc631_2] heading \"Browser reliability probes\" level=1\n[eea6cc631_3] status\n[eea6cc631_5] StaticText \"Case: readonly\"\n[eea6cc631_6] StaticText \"Ready\"\n[eea6cc631_7] StaticText \"Read only\"\n[eea6cc631_8] textbox \"Read only\" required=false\n[eea6cc631_9] StaticText \"unchanged\"\n[eea6cc631_10] RootWebArea \"Frame\" frame=D22083BCB9ED8AA9D310BF2307C445C0",
628
+ "finalState": null
629
+ },
630
+ {
631
+ "case": "richtext",
632
+ "iteration": 2,
633
+ "expectedResult": "Rich=New note",
634
+ "expectRefusal": false,
635
+ "success": true,
636
+ "elapsedMs": 17.8,
637
+ "error": null,
638
+ "visibleResult": "Rich=New note",
639
+ "controlValue": null,
640
+ "coveredFrameText": null,
641
+ "initialState": "[e876f15b8_1] RootWebArea \"Browser reliability probes\" focused=true\n[e876f15b8_2] heading \"Browser reliability probes\" level=1\n[e876f15b8_3] status\n[e876f15b8_5] StaticText \"Case: richtext\"\n[e876f15b8_6] textbox \"Rich note\" required=false\n[e876f15b8_7] StaticText \"Ready\"\n[e876f15b8_8] StaticText \"Old note\"\n[e876f15b8_9] RootWebArea \"Frame\" frame=0E45C89B0533ABB95F76690C2DFE3097",
642
+ "finalState": "- [e876f15b8_7] StaticText \"Ready\"\n- [e876f15b8_8] StaticText \"Old note\"\n~ [e876f15b8_6] textbox \"Rich note\" focused=true required=false\n+ [e876f15b8_10] StaticText \"Rich=New note\"\n+ [e876f15b8_11] StaticText \"New note\""
643
+ },
644
+ {
645
+ "case": "shadow-cover",
646
+ "iteration": 2,
647
+ "expectedResult": "Ready",
648
+ "expectRefusal": true,
649
+ "success": true,
650
+ "elapsedMs": 5.9,
651
+ "error": {
652
+ "code": "element_obscured",
653
+ "message": "Target is covered by another element; observe before retrying"
654
+ },
655
+ "visibleResult": "Ready",
656
+ "controlValue": null,
657
+ "coveredFrameText": null,
658
+ "initialState": "[ea1d68f90_1] RootWebArea \"Browser reliability probes\" focused=true\n[ea1d68f90_2] heading \"Browser reliability probes\" level=1\n[ea1d68f90_3] status\n[ea1d68f90_5] StaticText \"Case: shadow-cover\"\n[ea1d68f90_6] StaticText \"Ready\"\n[ea1d68f90_7] button \"Shadow covered action\"\n[ea1d68f90_8] StaticText \"Permanent cover\"\n[ea1d68f90_10] RootWebArea \"Frame\" frame=E61A5E1A09B688D772D5558445F260BA",
659
+ "finalState": null
660
+ },
661
+ {
662
+ "case": "frame-cover",
663
+ "iteration": 2,
664
+ "expectedResult": "Ready",
665
+ "expectRefusal": true,
666
+ "success": false,
667
+ "elapsedMs": 24.2,
668
+ "error": null,
669
+ "visibleResult": "Ready",
670
+ "controlValue": null,
671
+ "coveredFrameText": "Frame action",
672
+ "initialState": "[e0b498927_1] RootWebArea \"Browser reliability probes\" focused=true\n[e0b498927_2] heading \"Browser reliability probes\" level=1\n[e0b498927_3] status\n[e0b498927_5] StaticText \"Case: frame-cover\"\n[e0b498927_6] StaticText \"Ready\"\n[e0b498927_7] Iframe \"Covered frame\"\n[e0b498927_8] StaticText \"Permanent cover\"\n[e0b498927_9] RootWebArea \"Frame\" frame=109A7BA70235C49B4D20DF34D56ACBF2\n[e0b498927_10] button \"Frame action\" frame=109A7BA70235C49B4D20DF34D56ACBF2",
673
+ "finalState": "(no changes)"
674
+ }
675
+ ],
676
+ "fixtureSha256": "fef08bbcad5a90096bac6f5e7c538757835b7cff4951933af199bd38d6e2fc66",
677
+ "implementationBaseCommit": "1f1d80c",
678
+ "implementationPhase": "before fixes"
679
+ }