Releases: logtide-dev/logtide-javascript
Releases · logtide-dev/logtide-javascript
v0.6.1
v0.6.0
Added
- 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.
Changed
- 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
- Fixed a bug in Nuxt Nitro plugin where spans were always marked as 'ok' regardless of the actual response status.
Full Changelog: v0.5.6...v0.6.0
v0.5.6
Changed
DSN Simplified
- 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)
Dynamic Service Name
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'
Mock Server
- Removed
X-Project-Idfrom CORS headers and request tracking
Documentation
- Updated DSN format examples across all package READMEs
Full Changelog: v0.5.5...v0.5.6
v0.5.5
Added
Monorepo Structure
- Restructured as pnpm monorepo with 9 packages under
packages/* - Unified versioning across all packages (0.5.5)
- Version bump script (
pnpm version:set <version>)
Core (@logtide/core)
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
Types (@logtide/types)
- Shared TypeScript interfaces:
LogEntry,Span,Breadcrumb,Transport,Integration,ClientOptions
Node.js SDK (@logtide/sdk-node)
- Standalone Node.js client with batching, retry, circuit breaker, query API, live streaming
- Express middleware and Fastify plugin for auto-logging HTTP requests
Next.js (@logtide/nextjs)
- 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 (@logtide/nuxt)
- 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)
SvelteKit (@logtide/sveltekit)
logtideHandle()— request spans, trace context propagation, scope inevent.localslogtideHandleError()— unexpected error capturelogtideHandleFetch()—traceparentpropagation on server-side fetchesinitLogtide()for client-side error handling
Hono (@logtide/hono)
- Middleware for automatic request tracing, error capture, breadcrumbs
- Scope accessible via
c.get('logtideScope') - Works on Node.js, Bun, Deno, Cloudflare Workers
Angular (@logtide/angular)
LogtideErrorHandler— captures all uncaught Angular errorsLogtideHttpInterceptor— traces outgoing HTTP, injectstraceparent, captures HTTP errorsprovideLogtide()for standalone apps (Angular 17+)getLogtideProviders()for NgModule-based apps
Elysia (@logtide/elysia)
- Plugin with
onRequest,onAfterHandle,onErrorlifecycle hooks - Automatic request spans, error capture,
traceparentpropagation - Registered as global plugin (
.as('global'))
CI/CD
- 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
Documentation
- 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)