Repository navigation
v0.8.0
Added utils/jsx to hook into bun's jsx support as a react-like jsx view layer for the UI, and then refactored most of the webui to use that. There's also a bunch of little QoL things and bug fixes in this release.
-
llm-client - retries now honor a server
Retry-Afterheader (delta-seconds and HTTP-date forms, capped at 60s) instead of the fixed exponential backoff; absent or malformed headers fall back to the existing ladder -
llm-client - error responses are now read up to the 200K cap but quoted in the LlmError message up to 2K (with a
[truncated]marker), so a broken endpoint returning a full HTML page no longer dumps hundreds of KB into the sink, logs, and retry lines -
agent -
run()is now guarded against re-entrancy: a second overlappingrun()throwsAgentError.AlreadyRunninginstead of silently interleaving loop state (iteration count, abort controller, stream replay buffers) -
tool-executor - "Tool 'x' is not available for this agent" now suggests near-matching tools from the set the model was offered (case/separator differences first, then prefix/substring near-matches), so a misspelled or case-flipped tool name self-corrects in one retry
-
cli - unknown flags are now fatal (exit 1) with a "Did you mean" suggestion when a registered flag is a near-match, instead of a warning that let the run proceed with the flag silently dropped
-
session - a throwing channel event handler is now logged at debug level instead of being swallowed silently; other handlers still run
-
package - minimum bun bumped to 1.3.1 (the
--only-failuresflag used by the test scripts landed in 1.3.1) -
internals
- webui - rewrote in jsx
- marker mangler - compiled escape/unescape regexes are now built once per name pair instead of rebuilt per protected prefix on every escape() call
- cleanup session - remove unused SessionManager.deserialize and related unused serialize/deserialize hooks
- task-manager - drop unsafe last-set bus fallback
- task-manager - release the finished task's Agent reference from the registry when a task reaches a terminal state (completed/failed/cancelled); previously dead tasks pinned their full agent context for the manager's lifetime, an unbounded leak on long-lived hosts like the webui
- tool-utils - remove legacy parseToolArgs (its invalid-JSON
{input: ...}fallback was a footgun); subagents now use parseToolInput like every other tool
-
CLI colors now honor the NO_COLOR environment convention and TERM=dumb: color output is disabled regardless of config when either is present
Full Changelog: v0.7.3...v0.8.0