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.
0.7.2 - 2026-04-07
- Smoke test regression: Upgraded
expressto v5 intest-app-node-express— thepath-to-regexp >=8.4.0security override broke express 4.x, which calls thepathRegexpnamed export removed in 8.4.0. Express 5 uses path-to-regexp 8.4+ natively.
- Security hardening: Patched all 54 Dependabot security alerts via
pnpm.overridesin the rootpackage.json. Affected packages include:tar,esbuild,webpack,cookie,minimatch,rollup,ajv,qs,devalue,hono,@angular/core,@angular/compiler,@sveltejs/kit,svelte,nanotar,simple-git,@hono/node-server,defu,elysia,h3,immutable,lodash,node-forge,path-to-regexp,picomatch,serialize-javascript,svgo,undici,vite,brace-expansion,fastify,file-type,next,srvx,unhead, andyaml.pnpm auditreports no known vulnerabilities.
0.7.1 - 2026-04-07
- Broken 0.7.0 release: All
@logtide/*@0.7.0packages were published withworkspace:*literals in theirdependencies, causingERR_PNPM_WORKSPACE_PKG_NOT_FOUNDonpnpm addand equivalent failures on npm. Republished with proper version specifiers (#189).
- CI hardening:
publish.ymlnow fails fast if anypackage.jsonstill contains theworkspace:protocol after the version-rewrite step, preventing future broken releases. - CI completeness:
publish.ymlnow also publishes@logtide/browserand@logtide/cli, which were previously missing from the publish job.
0.7.0 - 2026-03-09
- New
@logtide/browserpackage with session context, anonymous session ID, and page URL tracking WebVitalsIntegration— captures Core Web Vitals (LCP, FID, CLS, INP, TTFB), wired into all framework packages- Click breadcrumb integration — automatic tracking of user clicks with element selector
- Network breadcrumb integration — tracks fetch/XHR requests with method, URL, status, and duration
OfflineTransportwithnavigator.sendBeaconsupport for reliable delivery on page unload
- New
@logtide/clipackage —logtidecommand-line tool logtide sourcemaps uploadcommand for uploading source maps to LogTide server- Built with
commanderfor CLI argument parsing
- Framework-specific improvements across all packages (phase 6)
- Fixed CLI typecheck: typed
response.json()asRecord
0.6.1 - 2026-02-28
- Security Updates: Addressed multiple security vulnerabilities across the workspace:
- Updated
minimatchto>=10.2.3(fixes several ReDoS vulnerabilities). - Updated
rollupto>=4.59.0(fixes Arbitrary File Write via Path Traversal). - Updated
tarto>=7.5.8(fixes Hardlink Target Escape). - Updated
nanotarto^0.2.1(fixes Path Traversal). - Updated
@angular/coreto^19.2.19(fixes XSS in i18n). - Updated
@sveltejs/kitto^2.52.2andsvelteto^5.53.5(fixes XSS and Resource Exhaustion). - Updated
ajvto>=8.18.0(fixes ReDoS). - Updated
qsto>=6.14.2(fixes DoS). - Updated
honoto^4.11.10(Timing attack hardening). - Updated
devalueto>=5.6.3(fixes Prototype Pollution and Resource Exhaustion).
- Updated
0.6.0 - 2026-02-28
- 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)