v0.5.1 — the panel gets tests
Five things that were owed.
The panel had no tests
Nothing in ui/ was reachable from the suite, and three regressions shipped through that gap while 187 tests stayed green:
- a highlight that could not be commented on
- a loading screen that swallowed its own error
- a view that removed the editor entirely
Each is now a named test in test/panel, rendered under jsdom. Reintroducing all three turns five of the nine red — which is the only evidence a regression test is worth keeping.
Fixed
-
A renamed path could strand the panel forever.
editor_pendingcomparedtarget.requestedby string equality against whatever the host handed back. Any normalisation — slashes, case, relative to absolute — missed, and the panel then retried a string it could never match. It compares resolved paths now, and falls back to the single open proposal when there is exactly one.The first cut of that fallback returned the newest open proposal on any miss, and the e2e suite caught it straight away: a panel asking before its own proposal existed got handed somebody else's. With several open it now guesses nothing.
-
Tests no longer leak server processes when an assertion fails.
Added
- The panel says when it is a different build from the server. The
.mcpband the Claude Code plugin update independently, and a stale half looks exactly like a bug in the other one — it cost two debugging sessions before anything said so.
Changed
- Version lives in one module per half rather than as a literal inside unrelated code.
AGENTS.mdrecords why a tool call must not wait for the panel — the measurements, the line of spec that makes it the host's choice, and why elicitation is not the way out.
196 tests.