button-contract
chromium > full-ui-verification.spec.ts > full deterministic UI verification > route accounts for every visible button /agent/messages
e2e/full-ui-verification.spec.ts:79
Error: Every visible enabled button on /agent/messages must have a deterministic interaction contract
expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 12
- Array []
+ Array [
+ Object {
+ "hiddenFromAccessibility": false,
+ "name": "Notifications",
+ "ordinal": 0,
+ },
+ Object {
+ "hiddenFromAccessibility": false,
+ "name": "Open user menu",
+ "ordinal": 0,
+ },
+ ]interaction-contract
chromium > full-ui-verification.spec.ts > full deterministic UI verification > route accounts for every visible interactive element /agent/messages
e2e/full-ui-verification.spec.ts:87
Error: Every visible enabled interactive element on /agent/messages must be covered by the route, button/link, or field crawlers
expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 7
- Array []
+ Array [
+ Object {
+ "label": "Harmony",
+ "reason": "role=img",
+ "tagName": "svg",
+ },
+ ]interaction-crawler
chromium > full-ui-verification.spec.ts > full deterministic UI verification > route reachable interaction graph /agent/messages
e2e/full-ui-verification.spec.ts:107
Error: expect(received).toEqual(expected) // deep equality
- Expected - 1
+ Received + 123
- Array []
+ Array [
+ "/agent/messages initial state: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open user menu\" #1 after filling visible fields: Expected button named Open user menu to have item at ordinal 0 in the active interaction surface
+
+ expect(received).toBeGreaterThan(expected)
+
+ Expected: > 0
+ Received: 0",
+ "/agent/messages button \"All\" #1 after filling visible fields: button \"All\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"All\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Unread\" #1 after filling visible fields: button \"Unread\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"Unread\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Notifications\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Open user menu\" #1 after filling visible fields: Expected button named Open user menu to have item at ordinal 0 in the active interaction surface
+
+ expect(received).toBeGreaterThan(expected)
+
+ Expected: > 0
+ Received: 0",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"All\" #1 after filling visible fields: button \"All\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"All\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Unread\" #1 after filling visible fields: button \"Unread\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"Unread\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Open user menu\" #1 after filling visible fields: Expected button named Open user menu to have item at ordinal 0 in the active interaction surface
+
+ expect(received).toBeGreaterThan(expected)
+
+ Expected: > 0
+ Received: 0",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"All\" #1 after filling visible fields: button \"All\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"All\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'All', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Unread\" #1 after filling visible fields: button \"Unread\" #1 after filling visible fields did not become pressed after activation
+
+ expect(locator).toHaveAttribute(expected) failed
+
+ Locator: locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ Expected: \"true\"
+ Received: \"false\"
+ Timeout: 5000ms
+
+ Call log:
+ - button \"Unread\" #1 after filling visible fields did not become pressed after activation with timeout 5000ms
+ - waiting for locator('body').getByRole('button', { name: 'Unread', exact: true }).first()
+ 9 × locator resolved to <button type=\"button\" aria-pressed=\"false\" class=\"inline-flex h-8 items-center gap-1.5 rounded-full text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 px-3 border border-border bg-background text-foreground hover:bg-muted\">…</button>
+ - unexpected value \"false\"
+ ",
+ "/agent/messages button \"Send\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Notifications\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Open thread with Maria Garcia\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Open thread with Robert Chen\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with James Wilson\" #1 after filling visible fields -> button \"Send\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Notifications\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Open thread with Maria Garcia\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Open thread with James Wilson\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ "/agent/messages button \"Open thread with Robert Chen\" #1 after filling visible fields -> button \"Send\" #1 after filling visible fields: unhandled visible interactive element svg \"Harmony\" (role=img)",
+ ]