Cliff Hall
b2a6ee1dcf
fix(web): block close on incomplete EMA config, not just an invalid issuer ( closes #1546 ) ( #1547 )
...
Follow-up to #1545 . The close-block only fired for an invalid issuer, so an
EMA config enabled with a valid issuer but a blank client ID was still silently
dropped on close by the persist gate — the same no-feedback bug, different
field.
- validateClientSettings gains a requireComplete mode that also flags the
required IdP fields (issuer, clientId) when blank, with distinct per-field
messages. Inline (as-you-type) validation is unchanged — required-but-blank
errors only surface on reveal, so the form never nags about not-yet-filled
fields.
- canPersistClientSettingsDraft is redefined in terms of that mode, so the
persist gate and the close-time field errors share one source of truth.
- ClientSettingsModal.handleClose now blocks + reveals on ANY require-complete
error (invalid issuer OR blank required field) and keeps the modal open. The
form prop revealIssuerError becomes revealErrors and surfaces the client-ID
error too. Escape hatch: disable enterprise IdP (an empty issuer no longer
closes, since that's itself incomplete).
Tests cover the blank-clientId close path, fix-each-field, and disable-EMA
escape, plus requireComplete validation.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 17:49:34 -04:00
..
AppControls
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
AppDetailPanel
feat(web): render pending sampling/elicitation requests ( #1407 ) ( #1411 )
2026-06-02 17:52:20 -04:00
AppListItem
feat(apps): add AppListItem and AppDetailPanel groups ( #1261 ) ( #1273 )
2026-05-04 10:28:58 -04:00
ClientSettingsForm
fix(web): block close on incomplete EMA config, not just an invalid issuer ( closes #1546 ) ( #1547 )
2026-06-29 17:49:34 -04:00
ClientSettingsModal
fix(web): block close on incomplete EMA config, not just an invalid issuer ( closes #1546 ) ( #1547 )
2026-06-29 17:49:34 -04:00
ConnectionInfoContent
Guided-auth removal, OAuth smoke testing, and TUI/CLI support ( #1531 )
2026-06-29 15:35:51 -04:00
ConnectionInfoModal
Guided-auth removal, OAuth smoke testing, and TUI/CLI support ( #1531 )
2026-06-29 15:35:51 -04:00
ElicitationFormPanel
feat(web): render pending sampling/elicitation requests ( #1407 ) ( #1411 )
2026-06-02 17:52:20 -04:00
ElicitationUrlPanel
feat(web): URL elicitation — explicit completion step + error-path (-32042) handling ( #1415 ) ( #1436 )
2026-06-06 18:25:01 -04:00
ExperimentalFeaturesPanel
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
HistoryControls
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
HistoryEntry
feat(web): History — Pin & Replay, plus two history-status fixes ( #1438 ) ( #1441 )
2026-06-07 20:21:52 -04:00
HistoryListPanel
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
ImportServerJsonPanel
feat(web,core): import client configs and registry server.json ( #1348 ) ( #1511 )
2026-06-23 19:52:08 -04:00
InlineElicitationRequest
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
InlineSamplingRequest
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
LogControls
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
LogStreamPanel
fix(web): give History/Network/Logging list scrollbars a gutter, hide when idle ( #1474 ) ( #1475 )
2026-06-14 10:03:30 -04:00
MessageDirectionFilter
fix(web): filter toggle hover as border, not background ( #1460 ) ( #1461 )
2026-06-13 19:52:27 -04:00
NetworkControls
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
NetworkEntry
feat(web): History — Pin & Replay, plus two history-status fixes ( #1438 ) ( #1441 )
2026-06-07 20:21:52 -04:00
NetworkStreamPanel
fix(web): give History/Network/Logging list scrollbars a gutter, hide when idle ( #1474 ) ( #1475 )
2026-06-14 10:03:30 -04:00
OutputValidationModal
feat(apps): render running MCP Apps end-to-end ( #1370 ) ( #1403 )
2026-06-01 18:01:44 -04:00
PendingClientRequestModal
feat(web): add Mantine clear buttons to text inputs app-wide ( #1333 ) ( #1448 )
2026-06-12 09:51:05 -04:00
PendingClientRequests
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
PromptArgumentsForm
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
PromptControls
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
PromptListItem
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
PromptMessagesDisplay
Port resource preview UX improvements to PromptsScreen ( #1328 ) ( #1331 )
2026-05-23 09:20:20 -04:00
ResourceControls
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
ResourceLink
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ResourceListItem
feat(apps): AppsScreen and InspectorView wiring ( #1263 ) ( #1286 )
2026-05-07 14:18:27 -04:00
ResourcePreviewPanel
fix(web): hide resource subscription UI when server lacks subscribe capability ( #1479 )
2026-06-14 12:54:19 -04:00
ResourceSubscribedItem
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ResourceTemplatePanel
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
RootsTable
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
SamplingRequestPanel
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
SchemaForm
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ServerAddMenu
feat(web,core): import client configs and registry server.json ( #1348 ) ( #1511 )
2026-06-23 19:52:08 -04:00
ServerCard
fix(web): remove mantine-border-animate, use green highlight border ( #1536 )
2026-06-27 17:04:25 -04:00
ServerConfigModal
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ServerImportConfigModal
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ServerImportJsonModal
feat(web,core): import client configs and registry server.json ( #1348 ) ( #1511 )
2026-06-23 19:52:08 -04:00
ServerListControls
feat(web): catalog vs read-only session launch model + apply --header ( #1481 , #1483 ) ( #1496 )
2026-06-16 14:24:58 -04:00
ServerRemoveConfirmModal
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ServerSettingsForm
Guided-auth removal, OAuth smoke testing, and TUI/CLI support ( #1531 )
2026-06-29 15:35:51 -04:00
ServerSettingsModal
Guided-auth removal, OAuth smoke testing, and TUI/CLI support ( #1531 )
2026-06-29 15:35:51 -04:00
SortableServerCard
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
TaskCard
feat(web): History — Pin & Replay, plus two history-status fixes ( #1438 ) ( #1441 )
2026-06-07 20:21:52 -04:00
TaskControls
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
TaskListPanel
feat(web): tool progress toasts + persist all per-screen state across navigation ( #1414 , #1417 ) ( #1420 )
2026-06-03 12:46:37 -04:00
ToolControls
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
ToolDetailPanel
fix(web): collapsible tool description in ToolDetailPanel — shown by default ( #1381 ) ( #1459 )
2026-06-13 19:13:29 -04:00
ToolListItem
feat(apps): render tool.icons on ToolListItem and ToolDetailPanel ( #1264 ) ( #1293 )
2026-05-09 15:45:53 -04:00
ToolResultPanel
feat(web): expandable resource_link with read-on-demand ( #1449 ) ( #1456 )
2026-06-13 17:15:25 -04:00
UrlElicitationErrorModal
feat(web): URL elicitation — explicit completion step + error-path (-32042) handling ( #1415 ) ( #1436 )
2026-06-06 18:25:01 -04:00
ViewHeader
test: raise per-file coverage gate to 90 across all clients ( closes #1271 ) ( #1532 )
2026-06-27 15:26:03 -04:00
historyUtils.test.ts
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
historyUtils.ts
feat(web): History — Pin & Replay, plus two history-status fixes ( #1438 ) ( #1441 )
2026-06-07 20:21:52 -04:00