Mercury CLI
Documentation

Releases

1.0.0-beta.36

published 15 October 2026

  • Added exact test results for vitest, jest and Go projects: the Test tool's run reads the runner's own machine report (vitest's and jest's JSON report, go test -json) and answers passed, failed and skipped counts with each failing case's name, file, line and message; rerunFailed selects exactly the recorded failures by the names the runner itself matches
  • Added a debugger stop on one selected test for vitest and jest (under the bundled js-debug), Go (under delve, built in test mode) and cargo (under lldb-dap or gdb, from the test binary cargo builds), with locals readable, as python and node tests already had; a debugger that is not installed answers "unavailable" with its install line
  • Added to the launch.json import: env and envFile (launch.json's env over the file over the shell; workspaceFolder and env macros expanded, other macros refused by name), a plain preLaunchTask from tasks.json that runs before the launch and stops it with the reason when the task fails or its shape cannot be run, python module launches, and attach configurations as attach profiles that name the Debug tool's attach call
  • Changed Recall by meaning on Linux and Windows to answer in about a tenth of a second instead of about a second and a half: the embedding model's matrix maths runs a vectorised kernel (NEON on arm64, AVX2 with FMA on x86-64); macOS keeps Accelerate and its few hundredths; stored vectors are re-embedded once on first use
  • Fixed a message sent while Mercury was mid-turn getting an answer you could not tell from the rest: the reply now paints under one faint line, "answering your 00:09:25 message" (the clock your own row wears; "answering your 00:09:25 and 00:09:26 messages" when one reply answers two), in time order with the tool rows that ran between them left in place; the transcript record carries the message's id and send clock, the headless text row carries in_reply_to, and mercury://transcript ends the reply's row with the same words; a reply already composed when you press esc stays on the screen and in the transcript
  • Fixed vitest rerunFailed selecting nothing (the recorded id "suite > name" never matched vitest's -t): the id is the runner's full name
  • Fixed Go rerunFailed dropping sibling tests (a bare alternation of full names is split per level by go's -run): the rerun anchors the top-level names
  • Fixed /usage's Gemini rows: the models this session spent on through Gemini, crewmates included, are listed as used this session with what is left and when it resets (a crewmate's spend used to be counted under the other roster models while the totals named it), and opening /usage re-reads the figures once (a re-open inside the minute serves the last read; when Google refuses or does not answer, the last figures keep their true age and the section says so in Google's words)
  • Fixed the Test tool being offered by name only: in a project with a declared test runner it is offered directly, so a plain request to run the tests reaches it
  • Fixed a headless run that finished its work after a denied tool call reporting blocked: it reports completion, with the denial kept as a note