Repository navigation
v0.3.0
0.3.0 — 2026-09-19
Tools tab, Anthropic server tools, TypeSafe System One, MCP resources, and two new warnings.
Added
- Tools tab: a request that declares tools gets a
Tools (n)tab with one card per tool —
description, parameter table, and how many times it was called (#86). - Anthropic server-tool blocks (
server_tool_use, web search and web fetch results) render
as cards, with numbered citations and a sources list per message (#88). - Tool call args and tool results that parse to an object render as a readable field list,
with multi-line strings unescaped; Raw JSON still shows the exact bytes (#91). - TypeSafe System One (Jev) support:
typesafe-systemonetraffic — direct/v1/systemoneor
OpenRouter's/api/alpha/decisions— is detected instead of falling toraw, with a
Decisions view (one card per question, probability bars) and same-backend replay (#122). - Two new warnings:
repetitive_outputfor a response stuck in a loop, and
slow_responsefor a non-streamed request slower thanwarnings.slowResponseMs
(default 120s,0disables; editable in the Config panel) (#90). - MCP resources:
vessel://requests/{id}andvessel://sessions/{id}, with
resources/listreturning the most recent requests and sessions (#92). - OpenRouter and TypeSafe in the "Add backend" catalog (#124).
Fixed
- A queued replay whose backend was repointed while it waited is refused with
409 replay_target_changedinstead of sending the old credential to the new
destination (#106). - MCP request reads decode bodies under
capture.maxBodyMbrather than unbounded, and
report truncation withdecodeTruncated(#107). - While a listen-address change is pending restart, the UI/API stays reachable on the
address the process is actually bound to (#112). path_missing_v1only fires for the missing-/v1mistake: an OpenAI SDK path suffix, no
/v1/segment anywhere, and a backendbaseUrlwith no path of its own (#123).- Anthropic server-tool blocks are included in MCP
include=textand full-text search;
encrypted_*fields never reach the flattened text (#89). openai-chatreasoning text under thereasoningkey (e.g. Ollama) is no longer dropped
from the thinking block and search (#80).- Anthropic rate-limit headers are parsed (#108).
- Parameter sweeps on OpenAI Responses replays use
max_output_tokens(#111). - Config validation rejects a backend with
"type": null(#109). - Multi-replay rejects a null variation with
invalid_requestand the offending index,
before dispatching anything (#110).