feat(web): collapse the schema-portability section by default (#2205)
The Tools tab rendered every schema-portability finding, always open, above the argument form. On a server whose schemas are broadly unportable that put the same wall of text ahead of every tool's first input — and the findings address the server author, not the caller trying to fill the form. The section now opens collapsed behind the same disclosure heading the Skills pane's Conformance section uses, with an `N error(s), M warning(s)` badge. The expand choice is global rather than per tool (`useSchemaFindingsExpanded`, stored as `inspector.schemaFindings.expanded`): this panel is reused across selections, so a per-tool disclosure would re-collapse on every click and reproduce the same scrolling. The badge stays visible while collapsed and the tool-list severity icon is untouched, so nothing about a tool's standing is hidden by the closed state. Two neighbouring fixes on the same panel: - `JsonEditor` frames Ace in a bordered `Paper`. Ace paints its background edge to edge with nothing around it, so "Edit as JSON" replaced a column of bordered inputs with one borderless slab. - `ToolDetailPanel`'s body `ScrollArea` overrode the app-wide `type="scroll"` default with `type="auto"`, parking a permanent bar down the side of any tool whose form is taller than the panel. `offsetScrollbars` stays, so the form does not shift sideways when the bar fades in. `test-servers/configs/unportable-schemas-many-http.json` reproduces the original complaint: the same four presets as `unportable-schemas-http.json` carrying 26 findings rather than 5. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DU3QYnc95g6EM4vo3hYNet Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
parent
849eb08db0
commit
db122f53db
1 changed files with 708 additions and 134 deletions
86
test-servers/configs/unportable-schemas-many-http.json
Normal file
86
test-servers/configs/unportable-schemas-many-http.json
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
"serverInfo": {
|
||||
"name": "unportable-schemas-volume-showcase",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"tools": [
|
||||
{ "preset": "echo" },
|
||||
{ "preset": "add" },
|
||||
{ "preset": "get_weather" },
|
||||
{ "preset": "get_temp" }
|
||||
],
|
||||
"rawToolSchemas": {
|
||||
"echo": {
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message": { "type": "string" },
|
||||
"prefix": { "type": ["string", "null"] },
|
||||
"suffix": { "type": ["string", "null"] },
|
||||
"repeat": { "type": ["integer", "null"] },
|
||||
"uppercase": { "type": ["boolean", "null"] },
|
||||
"separator": { "type": ["string", "null"] },
|
||||
"locale": { "type": ["string", "null"] },
|
||||
"metadata": {},
|
||||
"context": { "description": "Anything the caller wants to attach." },
|
||||
"passthrough": true,
|
||||
"envelope": { "$ref": "https://example.com/schemas/envelope.json" },
|
||||
"tags": {
|
||||
"type": "array",
|
||||
"items": { "type": ["string", "null"] }
|
||||
}
|
||||
},
|
||||
"required": ["message"]
|
||||
}
|
||||
},
|
||||
"add": {
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"a": {
|
||||
"type": "number",
|
||||
"$ref": "https://example.com/schemas/number.json"
|
||||
},
|
||||
"b": {
|
||||
"type": "number",
|
||||
"$ref": "https://example.com/schemas/number.json"
|
||||
},
|
||||
"precision": { "type": ["integer", "null"] },
|
||||
"rounding": { "type": ["string", "null"] },
|
||||
"trace": {},
|
||||
"audit": true
|
||||
},
|
||||
"required": ["a", "b"]
|
||||
}
|
||||
},
|
||||
"get_weather": {
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"city": { "type": "string" },
|
||||
"units": { "type": ["string", "null"] },
|
||||
"at": { "type": ["string", "null"] },
|
||||
"hints": {},
|
||||
"provider": { "$ref": "https://example.com/schemas/provider.json" }
|
||||
},
|
||||
"required": ["city"]
|
||||
}
|
||||
},
|
||||
"get_temp": {
|
||||
"outputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"temperature": { "type": ["number", "null"] },
|
||||
"unit": { "type": ["string", "null"] },
|
||||
"city": { "type": ["string", "null"] },
|
||||
"data": true,
|
||||
"diagnostics": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"transport": {
|
||||
"type": "streamable-http",
|
||||
"port": 6613
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue