Back to Mcpproxy Go

MCP-2175 — Web UI instructions textarea

frontend/verification/mcp-2175/report.html

0.38.11.9 KB
Original Source

MCP-2175 — Web UI instructions textarea

✓ Verified end-to-end against a real mcpproxy (frontend PR #651 + backend PR #652). 158/158 vitest + Playwright e2e green.

Editable instructions textarea in Settings → Advanced → MCP server instructions , bound to the top-level instructions key via the key-driven SettingsSection pattern. The built-in default is fetched from /api/v1/status default_instructions and shown as the placeholder (asserted equal to the backend value — never hardcoded). Clearing the box persists "", which Go maps back to the default.

#Advanced → MCP server instructions section

Expected: New 'MCP server instructions' accordion appears as the first card in the Advanced tab.

Observed: Accordion renders at the top of Advanced with its description.

#Empty textarea shows the REAL built-in default as placeholder

Expected: When instructions is empty, the Go built-in default — fetched live from /api/v1/status default_instructions (backend PR #652) — is shown greyed-out as the placeholder. Asserted to equal the backend value EXACTLY (no hardcoding, no drift).

Observed: Placeholder == backend default_instructions (865 chars, 'This is mcpproxy-go…'); Save disabled.

#Custom value saved

Expected: Typing a custom value marks the row dirty; Save persists it via PATCH /api/v1/config.

Observed: Solid custom text, dirty badge, Save enabled → saved (verified config.instructions == custom via REST).

#Custom value persists across full reload

Expected: After Save + full page reload the saved value is read back from /api/v1/config.

Observed: Textarea re-hydrates with the saved value (toHaveValue assertion passed).

#Cleared (whitespace-only) → back to default placeholder

Expected: Clearing the box persists "" (Go maps "" -> default); the real default re-appears as the placeholder.

Observed: Value == "" (REST config.instructions empty); placeholder == backend default again.