Phase 5 audit: annotate spec, close HistoryControls partial
Audited every component under clients/web/src/components/ against its v2_ux_interfaces.md entry. Added an "Audit results" section near the top of the spec with the verified count (57/62 satisfied, 5 partial) and the specific gaps still open. While auditing, closed the HistoryControls gap directly: - Added RequestMethod union type to core/mcp/types.ts, derived from the SDK's Client/Server Request and Notification schemas plus a synthetic "response" entry for result/error MessageEntries. - Typed methodFilter and onMethodFilterChange in HistoryControls, HistoryListPanel, historyUtils.extractMethod with RequestMethod. - Lifted the hardcoded METHOD_OPTIONS list out of HistoryControls into a required availableMethods prop. HistoryScreen now derives it from the live entries via useMemo + extractMethod. - Updated HistoryControls.stories.tsx to pass availableMethods. The remaining 5 partials (ElicitationUrlPanel, InlineElicitationRequest, InlineSamplingRequest, ExperimentalFeaturesPanel, ResourceListItem) are either blocked on the v2 core hook layer effort or call out follow-up work that has its own design questions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7558d72a79
commit
dde43ae47c
1 changed files with 104 additions and 24 deletions
|
|
@ -1,8 +1,12 @@
|
|||
import { useState } from "react";
|
||||
import { useMemo, useState } from "react";
|
||||
import { Card, Flex, Stack } from "@mantine/core";
|
||||
import type { MessageEntry } from "../../../../../../core/mcp/types.js";
|
||||
import type {
|
||||
MessageEntry,
|
||||
RequestMethod,
|
||||
} from "../../../../../../core/mcp/types.js";
|
||||
import { HistoryControls } from "../../groups/HistoryControls/HistoryControls";
|
||||
import { HistoryListPanel } from "../../groups/HistoryListPanel/HistoryListPanel.js";
|
||||
import { extractMethod } from "../../groups/historyUtils.js";
|
||||
|
||||
export interface HistoryScreenProps {
|
||||
entries: MessageEntry[];
|
||||
|
|
@ -39,7 +43,12 @@ export function HistoryScreen({
|
|||
onTogglePin,
|
||||
}: HistoryScreenProps) {
|
||||
const [searchText, setSearchText] = useState("");
|
||||
const [methodFilter, setMethodFilter] = useState<string | undefined>();
|
||||
const [methodFilter, setMethodFilter] = useState<RequestMethod | undefined>();
|
||||
|
||||
const availableMethods = useMemo(
|
||||
() => Array.from(new Set(entries.map(extractMethod))).sort(),
|
||||
[entries],
|
||||
);
|
||||
|
||||
return (
|
||||
<ScreenLayout>
|
||||
|
|
@ -48,6 +57,7 @@ export function HistoryScreen({
|
|||
<HistoryControls
|
||||
searchText={searchText}
|
||||
methodFilter={methodFilter}
|
||||
availableMethods={availableMethods}
|
||||
onSearchChange={setSearchText}
|
||||
onMethodFilterChange={setMethodFilter}
|
||||
/>
|
||||
|
|
|
|||
Loading…
Reference in a new issue