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
|
|
@ -70,12 +70,27 @@ merely handled unevenly — and selecting the tool renders a **Schema
|
|||
portability** section (`SchemaFindingsList`) above the argument form, one block
|
||||
per finding with its path, the problem, and a concrete fix.
|
||||
|
||||
That section **opens collapsed**, behind a count badge reading
|
||||
`N error(s), M warning(s)` (`#2205`). The findings address the *server author*
|
||||
but render in the panel the *caller* fills in, so on a server whose schemas are
|
||||
broadly unportable they used to put the same wall of text ahead of every tool's
|
||||
first input —
|
||||
`test-servers/configs/unportable-schemas-many-http.json` is 26 findings over
|
||||
four tools, none of which a caller needs in order to fill the form. Expanding it
|
||||
is one click, and the 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 either way, so nothing about a tool's standing is hidden by the closed
|
||||
state.
|
||||
|
||||
Both read [`core/json/schemaLint.ts`](../../core/json/schemaLint.ts), which is
|
||||
also what backs the TUI's detail pane and the CLI's `--strict` report — so the
|
||||
three clients cannot disagree about whether a schema is portable. That module's
|
||||
header explains why it is a portability lint rather than a JSON Schema
|
||||
validator. `test-servers/configs/unportable-schemas-http.json` is a server that
|
||||
exercises every rule.
|
||||
exercises every rule, and `unportable-schemas-many-http.json` the same rules at
|
||||
volume.
|
||||
|
||||
## Non-component code: `src/lib` vs `src/utils`
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue