| pi-telemetry-0.0.2 | ### Fixed - Telemetry export no longer blocks Pi's agent lifecycle at the end of a run. Trace uploads are dispatched asynchronously after span construction so the TUI can leave the working/loading state immediately. - Failed telemetry uploads are now silent unless debug logging is enabled, avoiding direct stderr writes that can disturb Pi's interactive terminal layout. | High | 5/21/2026 |
| openclaw-telemetry-cli-0.0.7 | Initial release of the standalone installer CLI. The runtime split that landed in `@latitude-data/openclaw-telemetry` 0.0.6 ([PR #2920](https://github.com/latitude-dev/latitude-llm/pull/2920)) deleted the bundled CLI from the runtime package so that runtime would pass OpenClaw 2026.4.25+'s install-time `dangerous-exec` security scan. The 0.0.6 manual install flow asked operators to run six `openclaw config set` commands plus a hand-edited `plugins.allow` array; this package brings the one-shot | High | 4/29/2026 |
| openclaw-telemetry-0.0.1 | ### Added - Initial release. OpenClaw plugin that streams every agent run to Latitude as OTLP traces by subscribing to OpenClaw's typed `llm_input` / `llm_output` / `before_tool_call` / `after_tool_call` / `agent_end` hooks. - Per-run state accumulator keyed by `runId` that pairs LLM input/output into single calls, nests tool invocations under their parent LLM call, and handles out-of-order tool events defensively. - OTLP span tree with three span kinds โ `interaction` (per agent run), `llm_re | High | 4/24/2026 |
| claude-code-telemetry-0.0.6 | ### Fixed - **Fixed URL domain** from `app.latitude.so` to `console.latitude.so`. | High | 4/21/2026 |
| claude-code-telemetry-0.0.5 | ### Changed - **Install UX rewritten with [`@clack/prompts`](https://www.npmjs.com/package/@clack/prompts)** โ the interactive wizard now opens with a proper welcome banner, renders each prompt inside a gutter with a description line explaining the field + the relevant Latitude URL to fetch it from, masks the API key input with `โข` as you type, and ends with a "Next step" panel plus a direct link to your project's trace view. Spinners stream in as each install step completes. - **README restru | High | 4/20/2026 |
| claude-code-telemetry-0.0.4 | ### Added - **Interactive `install` wizard** โ `npx -y @latitude-data/claude-code-telemetry install` now prompts for `LATITUDE_API_KEY` and `LATITUDE_PROJECT`, merges them into `~/.claude/settings.json` under `env`, and installs the Stop-hook entry if missing. On macOS it also offers to set `BUN_OPTIONS` via `launchctl` and persist it with a `~/Library/LaunchAgents/so.latitude.claude-code-telemetry.plist`. Existing values are shown as defaults (API keys masked); a backup of `settings.json` is | High | 4/20/2026 |
| claude-code-telemetry-0.0.2 | ### Added - **Workspace and git context on every span** โ the hook now reads the Claude Code session's `cwd` and derives `workspace.name` / `workspace.path`, `git.branch` / `git.commit` / `git.repo`, `claude_code.version`, `host.user`, and `hook.event`. The workspace name is attached as a span tag (`latitude.tags`); the full set is attached as shared trace metadata (`latitude.metadata`) on every emitted span so traces can be sliced by repo, branch, or CLI version in the Latitude UI. - **Full c | High | 4/20/2026 |
| typescript-telemetry-3.0.0-alpha.5 | ### Fixed - `capture()` now starts a new Latitude root trace when called under an active non-Latitude span, so wrapper spans such as workflow-level capture names are preserved instead of being absorbed into foreign traces. - Nested Latitude `capture()` calls still reuse the existing Latitude-owned trace and merge context as before. | High | 4/17/2026 |
| claude-code-telemetry-0.0.1 | Package updates and improvements | High | 4/17/2026 |
| typescript-telemetry-3.0.0-alpha.4 | ### Fixed - **Provider SDK version coupling** โ moved provider SDK packages (`openai`, `@anthropic-ai/sdk`, etc.) from `optionalDependencies` to `devDependencies` so they are no longer installed alongside `@latitude-data/telemetry`. Users can now use any compatible version of their provider SDK without conflicts. - **Bumped all Traceloop instrumentations to `^0.25.0`** โ notably extends OpenAI support from `>=4 <6` to `>=4 <7`, fixing auto-instrumentation for users on `openai@6.x`. | Medium | 4/14/2026 |
| typescript-telemetry-3.0.0-alpha.3 | ### Added - **`serviceName` on `LatitudeSpanProcessor` and `initLatitude()`** โ optional `LatitudeSpanProcessorOptions.serviceName` / `InitLatitudeOptions.serviceName` sets OpenTelemetry **`service.name`** on each span so Latitude ingest can attribute telemetry to your service. When using `initLatitude()`, the value is also applied to the `NodeTracerProvider` resource (falling back to `npm_package_name` or `"unknown"` when omitted). | Medium | 4/7/2026 |
| typescript-telemetry-3.0.0-alpha.2 | ### Changed - OpenTelemetry peer stack upgraded to align with **@opentelemetry/sdk-trace-node 2.6** and **@opentelemetry/exporter-trace-otlp-http / instrumentation 0.213** (previously 1.x / 0.57), so `LatitudeSpanProcessor` and related types match apps using **@opentelemetry/sdk-node** 0.213+. ### Fixed - `initLatitude()` and examples now use `resourceFromAttributes()` instead of `new Resource()` (OpenTelemetry JS 2.x API). - Span filtering reads `ReadableSpan.instrumentationScope` instead o | Medium | 4/7/2026 |
| typescript-telemetry-3.0.0-alpha.1 | ### Breaking Changes - **Complete SDK re-architecture** โ monolithic `Telemetry` class replaced with modular, composable API - **New bootstrap API** โ `initLatitude()` replaces `new Telemetry()` as primary entry point - **`capture()` no longer creates spans** โ now only attaches context to spans created by auto-instrumentation - **Context propagation changed** โ uses OpenTelemetry's native Context API instead of baggage - Removed manual instrumentation (`telemetry.tracer` still available via a | Medium | 4/2/2026 |
| typescript-telemetry-3.0.0-alpha.0 | ### Breaking Changes - Constructor now requires `projectSlug` as second argument - `capture()` no longer takes `path`/`projectId` โ takes `tags`/`metadata`/`sessionId`/`userId` instead - Removed opinionated span methods (`span.completion()`, `span.tool()`, etc.) โ use `telemetry.tracer` directly - Removed `rosetta-ai` dependency - Env var renamed from `GATEWAY_BASE_URL` to `LATITUDE_TELEMETRY_URL` ### Added - `telemetry.tracer` exposes raw OTel Tracer for custom span creation - `capture()` c | Medium | 4/1/2026 |
| python-telemetry-3.0.0a0 | ### Breaking Changes - Constructor now requires `project_slug` as second argument - `capture()` no longer takes `path`/`project_id` โ takes `tags`/`metadata`/`session_id`/`user_id` instead - Removed opinionated span methods (`span.completion()`, `span.tool()`, etc.) โ use `telemetry.tracer` directly - Removed `GatewayOptions` and `InternalOptions` โ SDK reads `LATITUDE_TELEMETRY_URL` env var directly - Removed `SpanType`, `LogSources`, `SpanKind`, `SpanStatus`, `SPAN_SPECIFICATIONS` ### Added | Medium | 4/1/2026 |
| typescript-telemetry-2.0.4 | ### Changed - `capture()` now propagates `path`, `project`, `commit`, and `conversation` references through baggage so child spans inherit the same metadata. | Low | 2/26/2026 |
| python-telemetry-2.0.4 | ### Changed - `capture()` now writes prompt reference fields into baggage so child spans inherit `path`, `project`, `commit`, and `conversation` metadata. | Low | 2/26/2026 |
| typescript-sdk-5.7.0 | ### Added - Bumped PromptL to 0.11.0 | Low | 2/25/2026 |
| typescript-sdk-5.6.0 | ### Added - Added `prompts.delete(path, options?)` method to soft-delete a document/prompt from a draft project version. | Low | 2/23/2026 |
| typescript-sdk-5.5.0 | ### Added - Added `messages` parameter to `prompts.run()` method. This allows appending any kind of messages to the conversation after the compiled prompt. Note: This is not compatible with the `<step>` feature of PromptL. ### Deprecated - The `userMessage` parameter in `prompts.run()` is now deprecated. Use the `messages` parameter instead. The `userMessage` parameter will be removed in a future version. | Low | 2/17/2026 |
| typescript-telemetry-3.0.0-beta.0 | ### Changed - Marked the 3.x line as a beta prerelease so stable users stay on 2.x until 3.x is production-ready. - Added `telemetry.context.setAttributes()` to attach baggage attributes once and propagate trace metadata to child spans through context. - Latitude baggage keys are normalized to snake_case automatically (`latitude.documentUuid` -> `latitude.document_uuid`). ### Removed - Removed prompt/chat/external span option aliases (`documentLogUuid`, `promptUuid`, `versionUuid`, `source`, | Low | 2/17/2026 |
| python-telemetry-3.0.0b0 | ### Changed - Marked the 3.x line as a beta prerelease so stable users stay on 2.x until 3.x is production-ready. - Added `telemetry.context.set_attributes()` to set baggage attributes once and propagate trace metadata to child spans. ### Removed - Removed manual instrumentation option aliases for prompt/chat/external/completion spans (including `documentLogUuid`, `promptUuid`, `versionUuid`, and related fields). Pass trace metadata with `attributes` or context baggage instead. | Low | 2/17/2026 |
| typescript-telemetry-3.0.0 | ### Changed - Added `telemetry.context.setAttributes()` to attach baggage attributes once and propagate trace metadata to child spans through context. - Latitude baggage keys are normalized to snake_case automatically (`latitude.documentUuid` -> `latitude.document_uuid`). ### Removed - Removed prompt/chat/external span option aliases (`documentLogUuid`, `promptUuid`, `versionUuid`, `source`, and related fields) from manual instrumentation options; pass these via `attributes` or `context.setA | Low | 2/17/2026 |
| python-telemetry-3.0.0 | ### Changed - Added `telemetry.context.set_attributes()` to set baggage attributes once and propagate trace metadata to child spans. ### Removed - Removed manual instrumentation option aliases for prompt/chat/external/completion spans (including `documentLogUuid`, `promptUuid`, `versionUuid`, and related fields). Pass trace metadata with `attributes` or context baggage instead. | Low | 2/17/2026 |
| typescript-telemetry-2.0.2 | ### Fixed - Bump Rosetta AI version | Low | 2/9/2026 |
| typescript-telemetry-2.0.1 | ### Fixed - Move Rosetta AI to dependencies ## [2.0.0] - 2026-02-04 ### Added - Manually instrumented completions now support any provider messages - The manual instrumentation now exports compliant GenAI messages | Low | 2/9/2026 |
| typescript-telemetry-1.1.1 | ### Fixed - Disabled `enrichTokens` for OpenAI and TogetherAI instrumentations to fix failures when using `stream: true` | Low | 2/2/2026 |
| typescript-sdk-5.4.1 | ### Fixed - Re-exported `LogSources` from shared constants to keep SDK log source values aligned with the API. | Low | 2/2/2026 |
| typescript-sdk-5.4.0 | ### Changed - Replaced `node-fetch` with native `fetch`. This reduces bundle size and improves abort signal handling. Requires Node.js 18+ (which has been the minimum supported version since Node.js 16 and 17 reached EOL). ### Fixed - Fixed abort signal propagation when cancelling streaming requests. The SDK now properly cancels in-flight requests when the abort signal is triggered. | Low | 1/29/2026 |
| cli-4.0.0 | ### Changed - Prompts are now always stored as plain `.promptl` text files instead of JS/TS variables. ### Removed - Removed npm project detection and JS/TS/ESM format support. - Removed `verifyNpmProject` functionality. - Removed `npm` field from `latitude-lock.json` interface. - Removed JS/ESM import logic from `push`, `pull`, and `status` commands. | Low | 1/23/2026 |
| typescript-sdk-5.3.1 | - Quick fix: move constants dependency to dev dependency since it's transpiled at build time and it cannot be required at runtime because we do not publish it. | Low | 1/19/2026 |
| typescript-sdk-5.3.0 | ### Added - Added `mcpHeaders` parameter to `prompts.run()` and `prompts.chat()` methods for passing custom headers to MCP servers at runtime. Headers are keyed by integration name to support multiple MCP integrations per prompt. Example usage: ```typescript latitude.prompts.run('my-prompt', { parameters: { name: 'John' }, mcpHeaders: { myMcpIntegration: { 'customer-id': 'abc123' }, anotherMcp: { 'x-tenant-id': 'tenant-456' }, }, }) ``` | Low | 1/19/2026 |
| typescript-sdk-5.2.3 | - Removed deprecated span types from internal telemetry. | Low | 12/31/2025 |
| typescript-sdk-5.2.2 | - Fixed `prompts.chat()` method was not including custom tools in the request | Low | 11/13/2025 |
| typescript-sdk-5.2.1 | - Exports MessageRole enum instead of the type only | Low | 10/15/2025 |
| typescript-sdk-5.2.0 | Official release of v5.2.0. - Implements run background executions. Pass `background: true` to `prompts.run()` to run a prompt in the background. - Adds `runs.attach()` method to attach to running prompts. - Changes default stream option to true for prompts.run() and prompts.chat() methods. - Official pre-release of v5.2.0 | Low | 10/10/2025 |
| typescript-sdk-5.2.0-beta.6 | - Official pre-release of v5.2.0 | Low | 10/9/2025 |
| typescript-sdk-5.2.0-beta.5 | ### Changed - Now `prompts.run()`, `prompts.chat()` and `runs.attach()` methods, of the TypeScript SDK, have `stream` option set to `true` by default | Low | 10/2/2025 |
| typescript-sdk-5.2.0-beta.4 | ### Fixed - Fixed `prompts.run()` method return types of the TypeScript SDK | Low | 9/30/2025 |
| typescript-sdk-5.1.0 | ### Added - Add background option when running a prompt | Low | 9/19/2025 |
| cli-3.0.0 | ### Removed - Dropped CommonJS prompt support; CLI now writes `.js` default exports for npm projects. | Low | 9/17/2025 |
| cli-2.0.5 | ### Changed - Prompts are default exports instead of named in js/ts projects to avoid name conflicts. | Low | 9/9/2025 |
| typescript-sdk-5.0.1 | ### Changed Throw error if sdk fails to create version | Low | 9/9/2025 |
| cli-2.0.4 | ### Added - Adds `login` command to change the stored API key. | Low | 9/8/2025 |
| cli-2.0.3 | ### Changed - Fixes escaping of special characters in prompts when pulled into JS/TS projects. [Unreleased]: https://github.com/latitude-dev/latitude-llm/compare/cli-2.0.3...HEAD [2.0.3]: https://github.com/latitude-dev/latitude-llm/releases/tag/cli-2.0.3 | Low | 9/8/2025 |
| typescript-sdk-5.0.0 | Official release of v5. Targets the new agent runtime, which introduces several improvements to agent performance and reliability. Breaking changes: - Agents now respond as regular prompts rather than in the custom `agentResponse` key. | Low | 9/8/2025 |
| typescript-sdk-5.0.0-beta.3 | ### Added - Added `versions.getAll()` method to TypeScript SDK for retrieving all versions of a project | Low | 9/6/2025 |
| typescript-sdk-5.0.0-beta.2 | - Add userMessage to `run` method of the Typescript SDK in beta version. In the beta version of the SDK v5 we want to allow to run a prompt with a user message on it. We want this to allow prompts to be run like if in GPT where you can start asking something to a preconfigured AI. In this case could be a Latitude AI agent. | Low | 8/25/2025 |
| typescript-sdk-4.1.14 | ## What's Changed - Package updates and improvements | Low | 8/22/2025 |