cliffhall
c9fb461bf0
fix(web): address Copilot review on the shared JSON editor
...
- Cap the read-only editor's `maxLines` at 200. Uncapped, Ace renders every
line of a payload and its viewport virtualization never engages — which
matters because the Protocol and Network lists are not virtualized and keep
each entry's payload mounted inside its `Collapse`. 200 is chosen so no real
payload nests a scrollbar inside its host's while the pathological one stays
bounded; the StructuredOutputPanel `Large` story now pins both halves (full
payload in the document, only part of it in the DOM).
- Take a disabled editor out of the tab order and give it `aria-disabled`.
Ace has no disabled state, so its hidden textarea kept `tabindex="0"` and a
keyboard user could tab into a field every neighbouring control had dropped
— landing somewhere that looks editable and swallows what they type. A
merely read-only editor stays focusable, since a payload has to be
keyboard-scrollable (WCAG SC 2.1.1).
- Reword a confusing comment in the EditReplayModal test.
The `Disabled` story additionally scopes the axe `color-contrast` rule off:
WCAG 1.4.3 exempts inactive components, and axe cannot see that the dimmed
gutter belongs to one because the disabled state lives on Ace's hidden
textarea. Scoped to that one story so the rule still covers everything else.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UL9retfvAXRgvi6EWk4SY4
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-08-27 02:44:21 -04:00
..
AnnotationBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
AppElicitation
fix(apps): make a covered elicitation dialog inert
2026-08-23 00:02:37 -04:00
AppRenderer
test(web): raise the theme-flip waitFor budget
2026-08-24 08:45:40 -04:00
CapabilityItem
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
CategoryBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ClearButton
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
CodeHighlight
feat(web): use the Ace JSON editor everywhere, and restore the raw-JSON toggle
2026-08-27 02:24:22 -04:00
ConnectionToggle
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
ContentViewer
fix(web): address Copilot review on the shared JSON editor
2026-08-27 02:44:21 -04:00
CopyButton
fix: disambiguate the two token rows' controls for screen readers ( #2019 )
2026-08-15 21:13:11 -04:00
CopyrightBadge
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
EditReplayButton
feat(web): use the Ace JSON editor everywhere, and restore the raw-JSON toggle
2026-08-27 02:24:22 -04:00
EmbeddableScrollArea
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
EnlargeButton
fix(web): take the enlarge button out of the tab order
2026-08-26 01:13:32 -04:00
EraBadge
History: MRTR conversation grouping + modern message vocabulary ( #1705 )
2026-07-17 20:02:11 -04:00
ExpandToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
FilterToggleButton
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
JsonEditor
fix(web): address Copilot review on the shared JSON editor
2026-08-27 02:44:21 -04:00
JsonObjectInput
feat(web): use the Ace JSON editor everywhere, and restore the raw-JSON toggle
2026-08-27 02:24:22 -04:00
ListChangedIndicator
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
ListLoadError
fix: surface list-fetch failures instead of swallowing them
2026-08-08 16:48:48 -04:00
ListPaginationControls
Thread cacheMode through managed list refresh via SDK cache-aware verbs ( #1721 ) ( #1723 )
2026-07-19 01:06:31 -04:00
ListToggle
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
LogEntry
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
LogLevelBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
MalformedItemsWarning
fix: salvage a list result's valid entries when one is malformed ( #1909 )
2026-08-15 16:52:11 -04:00
McpErrorBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MessageBubble
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
MessageDirectionBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MethodBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MonitoringToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MrtrOriginNote
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
PinToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ProgressDisplay
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
ReplayButton
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ResizeHandle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ResourceLinkInfo
web: Group tool-result resource_links in a scrollable "Resource Links" box with Protocol colors ( #1686 )
2026-07-15 14:07:27 -04:00
SchemaFindingsList
feat: flag unportable tool schemas in all three clients
2026-08-25 01:18:53 -04:00
ScreenStage
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
SecretStorageFooter
fix(auth): land the round-20 UI wiring that never applied, and nonce the staging name
2026-08-22 22:30:21 -04:00
ServerStatusIndicator
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
SortToggle
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
SubscribeButton
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
SubscriptionStreamBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
TaskStatusBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
Toasts
chore(web): move App.tsx's module-level block into files ( #2127 )
2026-08-26 18:07:40 -04:00
TransportBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
VersionBadge
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
accessibleTextColor.test.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
accessibleTextColor.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
filledBadgeColor.test.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
filledBadgeColor.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00