v0.2.2
What's Changed
Added
WAVE_MCP_SESSION_ROOTconfines where session directories land.out_diris chosen by the calling model, so a drifted prompt could scatter sessions across/tmp, the cwd, or a shared regression directory, where two users with different filelists collide on one directory and silently inherit each other's netlist. Set this variable and everyout_dirresolves inside it: a bare name or relative path lands in the root, a path already inside it is kept, and one pointing elsewhere is remapped in by basename. Unset, behaviour is unchanged. The reply'ssession_pathis always the real location.- Environment variables documented in one table. Both READMEs now carry the full set (session root, Verdi/FSDB, vcd2fst, viewer, cache) and state that these belong in the
envblock of the MCP client config, since an agent-spawned server does not inherit an interactive shell's exports.
Fixed
- Viewer backends outlived the process that started them.
SurverManagerrelied solely on anatexithook, which Python skips onSIGTERM, so killing awave-viewCLI or an MCP server left onesurverper open view running indefinitely, holding memory and a listening port. Both entry points now installSIGTERM/SIGINT/SIGHUPhandlers that close views explicitly, andsurverchildren additionally setPR_SET_PDEATHSIGso the kernel reaps them even when the parent isSIGKILLed or crashes.
Changed
- FSDB converter attribution made accurate.
docs/THIRD_PARTY.mdand the headers of both converter sources now record the project name, author, MIT license, and link for the public implementation that informedParseScaleFsand the offlineffrAPIstub.
Full Changelog: v0.2.1...v0.2.2