fix(spec): simplify ExecutionFormState to use lastToolResult
Replace toolResponseHistory array with single lastToolResult field. History is the source of truth for execution records - no need to duplicate in UI state. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
d755666e76
commit
adc1791b25
1 changed files with 6 additions and 8 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
**Status:** Draft
|
**Status:** Draft
|
||||||
**Issue:** [#983](https://github.com/modelcontextprotocol/inspector/issues/983)
|
**Issue:** [#983](https://github.com/modelcontextprotocol/inspector/issues/983)
|
||||||
**Last Updated:** 2026-01-19
|
**Last Updated:** 2026-02-01
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
|
@ -169,7 +169,7 @@ See [v2_tech_stack.md](./v2_tech_stack.md#pino-rationale) for Pino configuration
|
||||||
| **Execution State** | useReducer + Context | Complex transitions with pending requests; already implemented in ExecutionContext |
|
| **Execution State** | useReducer + Context | Complex transitions with pending requests; already implemented in ExecutionContext |
|
||||||
| **User Preferences** | Zustand + persist | Simple key-value; needs persistence; avoids prop drilling |
|
| **User Preferences** | Zustand + persist | Simple key-value; needs persistence; avoids prop drilling |
|
||||||
| **Logs Display** | Zustand | Real-time buffer; filter state; pause/resume |
|
| **Logs Display** | Zustand | Real-time buffer; filter state; pause/resume |
|
||||||
| **Execution Forms** | Zustand | Form values; selected items; response history |
|
| **Execution Forms** | Zustand | Form values; selected items; last result display |
|
||||||
| **Testing Profiles** | Zustand + persist | User configurations; active selection |
|
| **Testing Profiles** | Zustand + persist | User configurations; active selection |
|
||||||
| **Server Configs** | Repository (proxy API) | Per spec constraint; not browser storage |
|
| **Server Configs** | Repository (proxy API) | Per spec constraint; not browser storage |
|
||||||
| **History Data** | Repository interface | Storage implementation deferred |
|
| **History Data** | Repository interface | Storage implementation deferred |
|
||||||
|
|
@ -286,7 +286,7 @@ interface ExecutionFormState {
|
||||||
// Tools
|
// Tools
|
||||||
selectedToolName: string | null;
|
selectedToolName: string | null;
|
||||||
toolFormValues: Record<string, unknown>;
|
toolFormValues: Record<string, unknown>;
|
||||||
toolResponseHistory: ToolResponse[];
|
lastToolResult: ToolResult | null;
|
||||||
|
|
||||||
// Resources
|
// Resources
|
||||||
selectedResourceUri: string | null;
|
selectedResourceUri: string | null;
|
||||||
|
|
@ -298,8 +298,7 @@ interface ExecutionFormState {
|
||||||
promptMessages: unknown[] | null;
|
promptMessages: unknown[] | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ToolResponse {
|
interface ToolResult {
|
||||||
id: string;
|
|
||||||
toolName: string;
|
toolName: string;
|
||||||
args: Record<string, unknown>;
|
args: Record<string, unknown>;
|
||||||
result: unknown;
|
result: unknown;
|
||||||
|
|
@ -311,8 +310,7 @@ interface ToolResponse {
|
||||||
interface ExecutionFormActions {
|
interface ExecutionFormActions {
|
||||||
selectTool: (name: string | null) => void;
|
selectTool: (name: string | null) => void;
|
||||||
setToolFormValues: (values: Record<string, unknown>) => void;
|
setToolFormValues: (values: Record<string, unknown>) => void;
|
||||||
addToolResponse: (response: ToolResponse) => void;
|
setLastToolResult: (result: ToolResult | null) => void;
|
||||||
clearToolHistory: () => void;
|
|
||||||
|
|
||||||
selectResource: (uri: string | null) => void;
|
selectResource: (uri: string | null) => void;
|
||||||
setResourceContent: (content: unknown | null) => void;
|
setResourceContent: (content: unknown | null) => void;
|
||||||
|
|
@ -325,7 +323,7 @@ interface ExecutionFormActions {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**History cap:** 50 tool responses
|
**Note:** Full execution history is persisted server-side via Pino/NDJSON and accessed through the History API. The `lastToolResult` field provides immediate display of the most recent result without duplicating the history store.
|
||||||
|
|
||||||
### 4. Testing Profiles Store
|
### 4. Testing Profiles Store
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue