All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- OTLP Span Events: Breadcrumbs are now automatically converted to OTLP Span Events, providing a detailed timeline of events within the trace viewer.
- Child Spans API: New
startChildSpan()andfinishChildSpan()APIs in@logtide/coreto create hierarchical spans for operations like DB queries or external API calls. - Rich Span Attributes: Added standardized attributes to request spans across all frameworks:
http.user_agent,net.peer.ip,http.query_string(at start)http.status_code,duration_ms,http.route(at finish)
- Express Error Handler: Exported
logtideErrorHandlerto capture unhandled errors and associate them with the current request scope.
- Enriched Breadcrumbs: Request/Response breadcrumbs now include more metadata (
method,url,status,duration_ms) by default. - Improved Nuxt Tracing: Nitro plugin now accurately captures response status codes and durations.
- Improved Angular Tracing:
LogtideHttpInterceptornow captures status codes for both successful and failed outgoing requests.
- Fixed a bug in Nuxt Nitro plugin where spans were always marked as 'ok' regardless of the actual response status.
0.5.6 - 2026-02-08
- Removed redundant
projectIdfrom DSN format — the API key already embeds the project ID - New DSN format:
https://lp_APIKEY@host(legacy format with path still accepted for backward compatibility) - Added
apiUrl+apiKeyas alternative to DSN string (backward compatible with@logtide/sdk-nodeconfig format) - Added
resolveDSN()helper that accepts eitherdsnorapiUrl+apiKey - Removed
projectIdfield fromDSNinterface (@logtide/types) - Removed
X-Project-Idheader fromLogtideHttpTransportandOtlpHttpTransport(@logtide/core)
serviceinClientOptionsis now optional — each framework package defaults to its own name ('express','fastify','hono','elysia','nextjs','sveltekit','nuxt','angular')- Added
service?: stringfield andsetService()method toScope— allows overriding service name per-request or per-module - Service resolution chain:
scope.service→options.service→ framework default →'unknown'
- Removed
X-Project-Idfrom CORS headers and request tracking
- Updated DSN format examples across all package READMEs
0.5.5 - 2026-02-07
- Restructured as pnpm monorepo with 9 packages under
packages/* - Unified versioning across all packages (0.5.5)
- Version bump script (
pnpm version:set <version>)
LogtideClient— capture logs, errors, breadcrumbs, and spansHub— global singleton for convenient accessScope— per-request context isolation with tags, extras, and breadcrumbsSpanManager— distributed tracing with W3C Trace Context (traceparent)BatchTransport— automatic batching with retry logic and circuit breakerLogtideHttpTransportandOtlpHttpTransportfor log and span deliveryConsoleIntegration— intercepts console methods, records breadcrumbsGlobalErrorIntegration— captures unhandled rejections and uncaught exceptions- DSN parsing, error serialization, trace ID generation
- Shared TypeScript interfaces:
LogEntry,Span,Breadcrumb,Transport,Integration,ClientOptions
- Standalone Node.js client with batching, retry, circuit breaker, query API, live streaming
- Express middleware and Fastify plugin for auto-logging HTTP requests
- Server-side:
registerLogtide()forinstrumentation.ts,captureRequestErrorforonRequestError - Client-side:
initLogtide(),trackNavigation()for SPA breadcrumbs instrumentRequest()/finishRequest()for manual request tracing- App Router and Pages Router support
- Nuxt 3 module with zero-config setup via
nuxt.config.ts - Nitro server plugin: request tracing, error capture via lifecycle hooks
- Vue client plugin:
errorHandler, navigation breadcrumbs - Runtime config injection (server + public)
logtideHandle()— request spans, trace context propagation, scope inevent.localslogtideHandleError()— unexpected error capturelogtideHandleFetch()—traceparentpropagation on server-side fetchesinitLogtide()for client-side error handling
- Middleware for automatic request tracing, error capture, breadcrumbs
- Scope accessible via
c.get('logtideScope') - Works on Node.js, Bun, Deno, Cloudflare Workers
LogtideErrorHandler— captures all uncaught Angular errorsLogtideHttpInterceptor— traces outgoing HTTP, injectstraceparent, captures HTTP errorsprovideLogtide()for standalone apps (Angular 17+)getLogtideProviders()for NgModule-based apps
- Plugin with
onRequest,onAfterHandle,onErrorlifecycle hooks - Automatic request spans, error capture,
traceparentpropagation - Registered as global plugin (
.as('global'))
- GitHub Actions CI: build, typecheck, test on push/PR to
main/develop - GitHub Actions publish: npm publish on tag
v*.*.*, GitHub Release, or manual dispatch - Publish order: types → core → all framework packages
- Branch model:
develop→main, hotfix directly tomain
- README for every package with badges, quick start, API reference
- Root README with package table, architecture diagram, development guide
- Branch protection documentation (
.github/BRANCH_PROTECTION.md)