v0.0.5
Fixes
- Codex/Claude/Pi assistant-turn images: an image attached to an assistant turn was placed directly in the assistant message content, which both Claude's and Codex's APIs reject once the conversation continues. Now carried through a synthetic tool call/result instead (matching the pattern already used for Grok).
- Pi tool-name sanitization: Pi can route through OpenAI/Azure-backed models (e.g.
--model auto,openrouter/auto), which enforce the same function-name pattern Codex does. Cross-agent tool labels with spaces/punctuation are now sanitized before writing. - Non-object tool-call input (Claude, OpenCode, Pi): a tool call whose input didn't parse to a JSON object (a bare string, array, or unparseable text) was passed straight through, causing a live "Input should be an object" API error on resume. Now always wrapped into a valid object.
- OpenCode large-session export truncation: capturing
opencode export's output via a pipedexecFileSynccall silently truncated large exports at a fixed byte offset, causingread()to return zero turns with no error. Now captured via a temp file instead, matching how shell redirection behaves correctly. - Search snippet highlighting: a fuzzy/prefix-expanded search term (used for ranking) could get highlighted in a result's preview even though it wasn't literally in your query -- e.g. searching "uxp plugin" could highlight an unrelated word like "uxpcleanup". Highlighting now always reflects your literal query terms only.
- Also includes a community PR (#1) fixing the same class of Codex-specific tool-name/image-placement issues, plus a target-CLI existence check before resume so a missing agent binary fails with a clear message instead of a raw crash.
All fixes were verified against real, live resumes -- including a stress-test pass converting each of the 5 supported agents' largest real session on this machine into another agent and sending a follow-up message.
Full changelog: v0.0.4...v0.0.5