v0.14.1
๐ Fixed
Runtime
- Vault
getretries once after a stale DEK wrap when master rotation commits mid-read. Concurrent reads return the intact value, notINVALID_KEY.
changelog
Written down before it is announced. The page is generated from changelog.md in the repo.
get retries once after a stale DEK wrap when master rotation commits mid-read. Concurrent reads return the intact value, not INVALID_KEY.fx.json.stream(chunks) returns HTTP text/event-stream (data: frames, then data: [DONE]). Pass fx.stream(...) so tokens reach the client. JSON flows stay { data, error }.request.signal as the ambient abort. fx.ask, fx.stream, and fx.run cancel the provider fetch on client disconnect. Anthropic complete now forwards signal.ai.model({ driverId }) opens that protocol instead of the app default. fx.stream(model, { via }) advances after a retryable failure before the first chunk.ai.mcpServer(name, { url | command, auth, tools }) consumes an external MCP server. Allowlisted tools join fx.ask / ai.agent on the same fx.call path as mcp:<server>/<tool> (OKE1007 when undeclared).mcp:<server>/<tool> calls draw one AI node per server and a call-blue edge. Trace events label them **MCP call**.call effects on mcp: resources next to asks.Call github โ create_issue and use the AI icon.budget.maxCostPerCall and agent maxCostPerRun are enforced at runtime. Over-budget asks journal budget_exceeded and do not advance via. Disconnect AbortError is not retryable.*/15, @hourly, IANA timezone). Leader instances wake in-process; store, lease, catch-up, and Console pause stay source of truth. Fall-back overlap fires once.eval / xadd / xreadgroup / xack / xgroup.oven/bun:1.4.fx.json.stream, HTTP disconnect abort, runtime budget enforcement, and ai.model({ driverId }).ai.mcpServer consume vs the served :6535 endpoint, plus Console graph / Units / traces surfaces.fx.emit in a Flow) from listener (on(signal, flow) vs bus.live()), and Flow no longer claims there is no subscribe for live replay.