# Changelog ## [Unreleased] ## [0.56.2] - 2026-03-05 ## [0.56.1] - 2026-03-05 ## [0.56.0] - 2026-03-04 ## [0.55.4] - 2026-03-02 ## [0.55.3] - 2026-02-27 ## [0.55.2] - 2026-02-27 ## [0.55.1] - 2026-02-26 ## [0.55.0] - 2026-02-24 ## [0.54.2] - 2026-02-23 ## [0.54.1] - 2026-02-22 ## [0.54.0] - 2026-02-19 ## [0.53.1] - 2026-02-19 ## [0.53.0] - 2026-02-17 ## [0.52.12] - 2026-02-13 ### Added - Added `transport` to `AgentOptions` and `AgentLoopConfig` forwarding, allowing stream transport preference (`"sse"`, `"websocket"`, `"auto"`) to flow into provider calls. ## [0.52.11] - 2026-02-13 ## [0.52.10] - 2026-02-12 ## [0.52.9] - 2026-02-08 ## [0.52.8] - 2026-02-07 ## [0.52.7] - 2026-02-06 ### Fixed - Fixed `continue()` to resume queued steering/follow-up messages when context currently ends in an assistant message, and preserved one-at-a-time steering ordering during assistant-tail resumes ([#1312](https://github.com/badlogic/companion-mono/pull/1312) by [@ferologics](https://github.com/ferologics)) ## [0.52.6] - 2026-02-05 ## [0.52.5] - 2026-02-05 ## [0.52.4] - 2026-02-05 ## [0.52.3] - 2026-02-05 ## [0.52.2] - 2026-02-05 ## [0.52.1] - 2026-02-05 ## [0.52.0] - 2026-02-05 ## [0.51.6] - 2026-02-04 ## [0.51.5] - 2026-02-04 ## [0.51.4] - 2026-02-03 ## [0.51.3] - 2026-02-03 ## [0.51.2] - 2026-02-03 ## [0.51.1] - 2026-02-02 ## [0.51.0] - 2026-02-01 ## [0.50.9] - 2026-02-01 ## [0.50.8] - 2026-02-01 ### Added - Added `maxRetryDelayMs` option to `AgentOptions` to cap server-requested retry delays. Passed through to the underlying stream function. ([#1123](https://github.com/badlogic/companion-mono/issues/1123)) ## [0.50.7] - 2026-01-31 ## [0.50.6] - 2026-01-30 ## [0.50.5] - 2026-01-30 ## [0.50.3] - 2026-01-29 ## [0.50.2] - 2026-01-29 ## [0.50.1] - 2026-01-26 ## [0.50.0] - 2026-01-26 ## [0.49.3] - 2026-01-22 ## [0.49.2] - 2026-01-19 ## [0.49.1] - 2026-01-18 ## [0.49.0] - 2026-01-17 ## [0.48.0] - 2026-01-16 ## [0.47.0] - 2026-01-16 ## [0.46.0] - 2026-01-15 ## [0.45.7] - 2026-01-13 ## [0.45.6] - 2026-01-13 ## [0.45.5] - 2026-01-13 ## [0.45.4] - 2026-01-13 ## [0.45.3] - 2026-01-13 ## [0.45.2] - 2026-01-13 ## [0.45.1] - 2026-01-13 ## [0.45.0] - 2026-01-13 ## [0.44.0] - 2026-01-12 ## [0.43.0] - 2026-01-11 ## [0.42.5] - 2026-01-11 ## [0.42.4] - 2026-01-10 ## [0.42.3] - 2026-01-10 ## [0.42.2] - 2026-01-10 ## [0.42.1] - 2026-01-09 ## [0.42.0] - 2026-01-09 ## [0.41.0] - 2026-01-09 ## [0.40.1] - 2026-01-09 ## [0.40.0] - 2026-01-08 ## [0.39.1] - 2026-01-08 ## [0.39.0] - 2026-01-08 ## [0.38.0] - 2026-01-08 ### Added - `thinkingBudgets` option on `Agent` and `AgentOptions` to customize token budgets per thinking level ([#529](https://github.com/badlogic/companion-mono/pull/529) by [@melihmucuk](https://github.com/melihmucuk)) ## [0.37.8] - 2026-01-07 ## [0.37.7] - 2026-01-07 ## [0.37.6] - 2026-01-06 ## [0.37.5] - 2026-01-06 ## [0.37.4] - 2026-01-06 ## [0.37.3] - 2026-01-06 ### Added - `sessionId` option on `Agent` to forward session identifiers to LLM providers for session-based caching. ## [0.37.2] - 2026-01-05 ## [0.37.1] - 2026-01-05 ## [0.37.0] - 2026-01-05 ### Fixed - `minimal` thinking level now maps to `minimal` reasoning effort instead of being treated as `low`. ## [0.36.0] - 2026-01-05 ## [0.35.0] - 2026-01-05 ## [0.34.2] - 2026-01-04 ## [0.34.1] - 2026-01-04 ## [0.34.0] - 2026-01-04 ## [0.33.0] - 2026-01-04 ## [0.32.3] - 2026-01-03 ## [0.32.2] - 2026-01-03 ## [0.32.1] - 2026-01-03 ## [0.32.0] - 2026-01-03 ### Breaking Changes - **Queue API replaced with steer/followUp**: The `queueMessage()` method has been split into two methods with different delivery semantics ([#403](https://github.com/badlogic/companion-mono/issues/403)): - `steer(msg)`: Interrupts the agent mid-run. Delivered after current tool execution, skips remaining tools. - `followUp(msg)`: Waits until the agent finishes. Delivered only when there are no more tool calls or steering messages. - **Queue mode renamed**: `queueMode` option renamed to `steeringMode`. Added new `followUpMode` option. Both control whether messages are delivered one-at-a-time or all at once. - **AgentLoopConfig callbacks renamed**: `getQueuedMessages` split into `getSteeringMessages` and `getFollowUpMessages`. - **Agent methods renamed**: - `queueMessage()` → `steer()` and `followUp()` - `clearMessageQueue()` → `clearSteeringQueue()`, `clearFollowUpQueue()`, `clearAllQueues()` - `setQueueMode()`/`getQueueMode()` → `setSteeringMode()`/`getSteeringMode()` and `setFollowUpMode()`/`getFollowUpMode()` ### Fixed - `prompt()` and `continue()` now throw if called while the agent is already streaming, preventing race conditions and corrupted state. Use `steer()` or `followUp()` to queue messages during streaming, or `await` the previous call. ## [0.31.1] - 2026-01-02 ## [0.31.0] - 2026-01-02 ### Breaking Changes - **Transport abstraction removed**: `ProviderTransport`, `AppTransport`, and `AgentTransport` interface have been removed. Use the `streamFn` option directly for custom streaming implementations. - **Agent options renamed**: - `transport` → removed (use `streamFn` instead) - `messageTransformer` → `convertToLlm` - `preprocessor` → `transformContext` - **`AppMessage` renamed to `AgentMessage`**: All references to `AppMessage` have been renamed to `AgentMessage` for consistency. - **`CustomMessages` renamed to `CustomAgentMessages`**: The declaration merging interface has been renamed. - **`UserMessageWithAttachments` and `Attachment` types removed**: Attachment handling is now the responsibility of the `convertToLlm` function. - **Agent loop moved from `@mariozechner/companion-ai`**: The `agentLoop`, `agentLoopContinue`, and related types have moved to this package. Import from `@mariozechner/companion-agent-core` instead. ### Added - `streamFn` option on `Agent` for custom stream implementations. Default uses `streamSimple` from companion-ai. - `streamProxy()` utility function for browser apps that need to proxy LLM calls through a backend server. Replaces the removed `AppTransport`. - `getApiKey` option for dynamic API key resolution (useful for expiring OAuth tokens like GitHub Copilot). - `agentLoop()` and `agentLoopContinue()` low-level functions for running the agent loop without the `Agent` class wrapper. - New exported types: `AgentLoopConfig`, `AgentContext`, `AgentTool`, `AgentToolResult`, `AgentToolUpdateCallback`, `StreamFn`. ### Changed - `Agent` constructor now has all options optional (empty options use defaults). - `queueMessage()` is now synchronous (no longer returns a Promise).