Releases: logtide-dev/logtide-javascript
Release list
v0.11.0
Audit of every package's public exports against the documentation, fixing all import/usage mismatches found (same class of bug as the missing initLogtide export in 0.10.0).
Added
@logtide/browser:LogtideErrorBoundary— the React error boundary documented at logtide.dev/integrations/react (import { LogtideErrorBoundary } from '@logtide/browser') is now actually exported.reactis an optional peer dependency.@logtide/nextjs/clientre-exports this shared implementation.@logtide/nuxt:useLogtide()composable — auto-imported composable (const { captureLog, captureError, addBreadcrumb } = useLogtide()) for manual capture, as documented. Previously documented but not implemented.@logtide/cli:--pathoption and--apiKey/--apiUrlaliases forsourcemaps upload— the documented invocation now works; directory may be positional or--path.
Fixed
@logtide/nuxt:tracesSampleRate,apiUrlandapiKeyoptions are now honored (previously dropped/ignored unless adsnwas set).@logtide/sdk-nodeREADME: middleware examples import from@logtide/sdk-node/middleware.@logtide/nuxtREADME: corrected defaultserviceto'nuxt'.
Full Changelog: v0.10.0...v0.11.0
v0.10.0
Added
@logtide/browser:initLogtideexport — the browser SDK now exposesinitLogtide(options)directly, matching the React integration docs (import { initLogtide } from '@logtide/browser'). Wires up the global error handler, default browser integrations (click/network breadcrumbs, optional Web Vitals) and offline resilience, then binds the session id to the global scope. Resolves #9.@logtide/browser:buildBrowserIntegrations/buildBrowserTransportWrapperhelpers — exported building blocks used byinitLogtideand the framework wrappers.
Changed
- Framework client init now delegates to
@logtide/browser(@logtide/nextjs,@logtide/sveltekit,@logtide/angular): the previously duplicated browser-init logic is gone — all three call the sharedinitLogtide, passing their owndefaultService. @logtide/sveltekit: default service is now'sveltekit'whenserviceis not provided (was'unknown'), aligning it with Next.js and Angular. An explicitservicestill wins.
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Added
@logtide/fastify:includeResponseBodyoption — captures the serialized response payload (truncated to 4096 chars) into the span attributehttp.response_body. Opt-in; no redaction is applied, so gate it to non-sensitive routes if needed.
Fixed
- Duplicate integrations are now ignored (
@logtide/core):Client.addIntegrationskips an integration whosenameis already installed. Previously a caller that re-passed the framework defaults double-wrappedconsole.*(every log produced two identical breadcrumbs) and double-bound the global error handler. - Per-request breadcrumbs in logs (
@logtide/core):captureLog/captureErrornow attach the breadcrumbs of the providedScopeinstead of the app-wide global buffer. This stops the global, accumulated console history from leaking into a single request's log metadata. Logs emitted without a scope (or with a partial scope from a framework boundary) still use the global buffer as before.
v0.8.0
Added
- Every entry now carries
metadata.sdk = {"name": "logtide-javascript", "version": ...}(caller-providedsdkkey wins). Retry-Afterheader on429responses now overrides the computed backoff delay.HttpErrorcarrying the response status and parsedRetry-After.
Changed
- Client errors (4xx except 408/429) are no longer retried: the batch is dropped after the first attempt instead of burning the full retry budget.
- DSN paths are now preserved as a base-path prefix (
https://lp_key@host/logtide→ ingest athttps://host/logtide/api/v1/ingest) for reverse-proxied installs. Previously the path was ignored — remove any leftover project-id path from your DSN if you relied on that.
v0.7.2
What's Changed
Fixed
- 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.
Changed
- 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.
Full Changelog: https://github.com/logtide-dev/logtide-javascript/blob/main/CHANGELOG.md#072---2026-04-07
v0.7.1 — Fix workspace:* leak in published tarballs
Fixed
-
Broken 0.7.0 release: All
@logtide/*@0.7.0packages were published with literalworkspace:*specifiers in theirdependencies, causingERR_PNPM_WORKSPACE_PKG_NOT_FOUNDonpnpm addand equivalent failures on npm. All packages have been republished as0.7.1with proper version specifiers.Fixes logtide-dev/logtide#189.
Changed
- 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.
Upgrade
# pnpm
pnpm add @logtide/sveltekit@0.7.1
pnpm add @logtide/nextjs@0.7.1
pnpm add @logtide/nuxt@0.7.1
# ... etc.
# npm
npm install @logtide/sveltekit@0.7.1Affected packages
| Package | Version |
|---|---|
| @logtide/types | 0.7.1 |
| @logtide/core | 0.7.1 |
| @logtide/browser | 0.7.1 |
| @logtide/sdk-node | 0.7.1 |
| @logtide/express | 0.7.1 |
| @logtide/fastify | 0.7.1 |
| @logtide/nextjs | 0.7.1 |
| @logtide/nuxt | 0.7.1 |
| @logtide/sveltekit | 0.7.1 |
| @logtide/hono | 0.7.1 |
| @logtide/angular | 0.7.1 |
| @logtide/elysia | 0.7.1 |
| @logtide/cli | 0.7.1 |
If you were on 0.7.0 and hit installation errors, upgrade directly to 0.7.1.
v0.7.0
Added
Browser SDK (@logtide/browser)
- 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
CLI (@logtide/cli)
- New
@logtide/clipackage —logtidecommand-line tool logtide sourcemaps uploadcommand for uploading source maps to LogTide server- Built with
commanderfor CLI argument parsing
Framework Improvements
- Framework-specific improvements across all packages
Full Changelog: v0.6.1...v0.7.0
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