|
1 | 1 | # evlog |
2 | 2 |
|
| 3 | +## 2.8.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- [#196](https://github.com/HugoRCD/evlog/pull/196) [`abda28c`](https://github.com/HugoRCD/evlog/commit/abda28cc00b6276a59c2cf9dcfca295f4d7b878c) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add `evlog/ai` integration for AI SDK v6+ observability. |
| 8 | + |
| 9 | + - `createAILogger(log)` returns an `AILogger` with `wrap()` and `captureEmbed()` |
| 10 | + - Model middleware captures token usage, tool calls, finish reason, and streaming metrics |
| 11 | + - Supports `generateText`, `streamText`, `generateObject`, `streamObject`, and `ToolLoopAgent` |
| 12 | + - Accumulates data across multi-step agent runs (steps, models, tokens) |
| 13 | + - String model IDs resolved via `gateway()` with full autocompletion |
| 14 | + - Gateway provider parsing extracts actual provider and model name |
| 15 | + - Streaming metrics: `msToFirstChunk`, `msToFinish`, `tokensPerSecond` |
| 16 | + - Cache tokens (`cacheReadTokens`, `cacheWriteTokens`) and reasoning tokens tracked |
| 17 | + - Error capture from failed model calls and stream error chunks |
| 18 | + - `captureEmbed()` for embedding calls (`embed`, `embedMany`) |
| 19 | + - `ai` is an optional peer dependency |
| 20 | + |
| 21 | +- [#189](https://github.com/HugoRCD/evlog/pull/189) [`d92fb46`](https://github.com/HugoRCD/evlog/commit/d92fb46b2d272dca0de73a0ffedda746304f57b6) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add `evlog/vite` plugin for build-time DX enhancements in any Vite-based framework. |
| 22 | + |
| 23 | + - Zero-config auto-initialization via Vite `define` (no `initLogger()` needed) |
| 24 | + - Build-time `log.debug()` stripping in production builds (default) |
| 25 | + - Source location injection (`__source: 'file:line'`) for object-form log calls |
| 26 | + - Opt-in auto-imports for `log`, `createEvlogError`, `parseError` |
| 27 | + - Client-side logger injection via `transformIndexHtml` |
| 28 | + - New `evlog/client` public entrypoint |
| 29 | + - Nuxt module gains `strip` and `sourceLocation` options (no breaking changes) |
| 30 | + |
| 31 | +### Patch Changes |
| 32 | + |
| 33 | +- [#197](https://github.com/HugoRCD/evlog/pull/197) [`3601d30`](https://github.com/HugoRCD/evlog/commit/3601d303c122509a8f665f20e8275248e6e6e7f5) Thanks [@HugoRCD](https://github.com/HugoRCD)! - Add retry with exponential backoff to all HTTP drain adapters and improve timeout error messages. |
| 34 | + |
| 35 | + - Transient failures (timeouts, network errors, 5xx) are retried up to 2 times with exponential backoff (200ms, 400ms) |
| 36 | + - `AbortError` timeout errors now display a clear message: `"Axiom request timed out after 5000ms"` instead of the cryptic `"DOMException [AbortError]: This operation was aborted"` |
| 37 | + - New `retries` option on all adapter configs (Axiom, OTLP, Sentry, PostHog, Better Stack) |
| 38 | + - 4xx client errors are never retried |
| 39 | + |
3 | 40 | ## 2.7.0 |
4 | 41 |
|
5 | 42 | ### Minor Changes |
|
0 commit comments