fix(web): reset a tool form by row identity, not by tool name

Copilot review round 4 on #2109. A `tools/list` may repeat a name (#1957) and
ToolsScreen already disambiguates those rows with a key of its own, but the
detail panel handed SchemaForm only the name — so switching between two
same-named tools looked like the same entity and left the first one's enlarged
fields (and its in-progress number/JSON text, which predates this PR) in place.

ToolDetailPanel now takes an optional `resetKey`, defaulting to the name for
callers whose list cannot repeat one, and ToolsScreen passes the row key.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JTHVxSu8AUgHRLvo1ntZ8H
Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
cliffhall 2026-08-24 10:18:55 -04:00
commit d47071d535

View file

@ -258,6 +258,9 @@ export function ToolsScreen({
<ContentCard>
<ToolDetailPanel
tool={selectedTool}
// The row key, not the name — a server may list the same tool
// name twice (#1957), and the panel is reused across selections.
resetKey={selectedToolKey}
formValues={formValues}
isExecuting={isExecuting}
progress={callState?.progress}