diff --git a/README.md b/README.md
index 9d1b134..e7039ec 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 00d5f56..62f6706 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -98,7 +98,7 @@ gtag('config', '${gaMeasurementId}');`,
outline: { level: [2, 3] },
nav: [
{ text: '
', link: 'https://github.com/loglayer/loglayer-go/releases' },
- { text: '
', link: 'https://pkg.go.dev/go.loglayer.dev' },
+ { text: '
', link: 'https://pkg.go.dev/go.loglayer.dev/v2' },
{ text: "What's New", link: '/whats-new' },
{ text: 'Get Started', link: '/getting-started' },
{ text: 'TypeScript Version', link: 'https://loglayer.dev' },
diff --git a/plugins/oteltrace/README.md b/plugins/oteltrace/README.md
index 64adcdb..ce30dd7 100644
--- a/plugins/oteltrace/README.md
+++ b/plugins/oteltrace/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/plugins/oteltrace
-[](https://pkg.go.dev/go.loglayer.dev/plugins/oteltrace)
+[](https://pkg.go.dev/go.loglayer.dev/plugins/oteltrace/v2)
LogLayer plugin that injects the active OTel `trace_id` and `span_id` (plus optional trace flags, W3C trace state, and W3C baggage members) into every log entry that carries a `context.Context`. Use with non-OTel transports for log/trace correlation; `transports/otellog` does this automatically via the SDK.
diff --git a/transports/charmlog/README.md b/transports/charmlog/README.md
index 2bcfd72..b5fdcf9 100644
--- a/transports/charmlog/README.md
+++ b/transports/charmlog/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/charmlog
-[](https://pkg.go.dev/go.loglayer.dev/transports/charmlog)
+[](https://pkg.go.dev/go.loglayer.dev/transports/charmlog/v2)
LogLayer transport that wraps a `*charmbracelet/log.Logger`. Map metadata becomes individual key/value attrs; struct metadata lands under a configurable key. The package name is `charmlog` to avoid colliding with the stdlib `log`.
diff --git a/transports/datadog/README.md b/transports/datadog/README.md
index e9013c7..1781239 100644
--- a/transports/datadog/README.md
+++ b/transports/datadog/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/datadog
-[](https://pkg.go.dev/go.loglayer.dev/transports/datadog)
+[](https://pkg.go.dev/go.loglayer.dev/transports/datadog/v2)
Datadog Logs HTTP intake transport for LogLayer. Built on `transports/http` with a Datadog-specific encoder, site-aware URL, and `DD-API-KEY` header. Rejects non-https URLs by default; opt-in via `Config.AllowInsecureURL` for on-prem TLS-terminating proxies. The API key is redacted in `String()` output and tagged `json:"-"` to keep it out of accidental config dumps.
diff --git a/transports/http/README.md b/transports/http/README.md
index 81bba37..ece4bf1 100644
--- a/transports/http/README.md
+++ b/transports/http/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/http
-[](https://pkg.go.dev/go.loglayer.dev/transports/http)
+[](https://pkg.go.dev/go.loglayer.dev/transports/http/v2)
Generic batched HTTP POST transport for LogLayer. Pluggable encoder, async worker, configurable batching and retries. Default `Client` refuses cross-host redirects so an `Authorization` header (or any other credential you set on the request) can't leak to a redirected host. Use it directly to talk to any log-ingestion API; the Datadog transport is built on top of it.
diff --git a/transports/logrus/README.md b/transports/logrus/README.md
index cc082e3..1cddbf9 100644
--- a/transports/logrus/README.md
+++ b/transports/logrus/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/logrus
-[](https://pkg.go.dev/go.loglayer.dev/transports/logrus)
+[](https://pkg.go.dev/go.loglayer.dev/transports/logrus/v2)
LogLayer transport that wraps a `*logrus.Logger`. Map metadata becomes individual logrus fields; struct metadata lands under a configurable key. Fatal-level entries route through `Log()` so loglayer's `DisableFatalExit` is honored.
diff --git a/transports/lumberjack/README.md b/transports/lumberjack/README.md
index 90fa3ee..2965e85 100644
--- a/transports/lumberjack/README.md
+++ b/transports/lumberjack/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/lumberjack
-[](https://pkg.go.dev/go.loglayer.dev/transports/lumberjack)
+[](https://pkg.go.dev/go.loglayer.dev/transports/lumberjack/v2)
File transport for LogLayer with built-in rotation. Writes one JSON object per log entry; rotation is delegated to [lumberjack.v2](https://github.com/natefinch/lumberjack) (size-triggered rollover, backup retention, age-based cleanup, optional gzip compression). On-disk format matches `transports/structured`.
diff --git a/transports/otellog/README.md b/transports/otellog/README.md
index f2868ed..19f1f5c 100644
--- a/transports/otellog/README.md
+++ b/transports/otellog/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/otellog
-[](https://pkg.go.dev/go.loglayer.dev/transports/otellog)
+[](https://pkg.go.dev/go.loglayer.dev/transports/otellog/v2)
OpenTelemetry Logs transport for LogLayer. Emits each entry as an OTel `log.Record` on a configured `LoggerProvider`, propagating `WithContext` so the SDK's span correlation works.
diff --git a/transports/phuslu/README.md b/transports/phuslu/README.md
index 834b8a4..58bf3d9 100644
--- a/transports/phuslu/README.md
+++ b/transports/phuslu/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/phuslu
-[](https://pkg.go.dev/go.loglayer.dev/transports/phuslu)
+[](https://pkg.go.dev/go.loglayer.dev/transports/phuslu/v2)
LogLayer transport that wraps a `*phuslu/log.Logger`. Map metadata becomes individual phuslu fields; struct metadata lands under a configurable key. **Fatal entries always exit the process** since phuslu has no public hook to suppress its `os.Exit` (every other wrapper honors `Config.DisableFatalExit`).
diff --git a/transports/pretty/README.md b/transports/pretty/README.md
index 6e05f96..ab99204 100644
--- a/transports/pretty/README.md
+++ b/transports/pretty/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/pretty
-[](https://pkg.go.dev/go.loglayer.dev/transports/pretty)
+[](https://pkg.go.dev/go.loglayer.dev/transports/pretty/v2)
Colorized terminal renderer for LogLayer. Theme-aware, three view modes (inline, message-only, expanded). Color auto-disables when stdout isn't a TTY. Recommended for local development.
diff --git a/transports/sentry/README.md b/transports/sentry/README.md
index c906b1d..621fb01 100644
--- a/transports/sentry/README.md
+++ b/transports/sentry/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/sentry
-[](https://pkg.go.dev/go.loglayer.dev/transports/sentry)
+[](https://pkg.go.dev/go.loglayer.dev/transports/sentry/v2)
LogLayer transport that forwards entries to a caller-supplied `sentry.Logger` (Sentry's structured-logs API). The user owns Sentry initialization; this transport just hands each entry off via the chain-builder API. Fatal-level entries skip Sentry's `Fatal()` / `Panic()` (which would terminate the process) so loglayer's `DisableFatalExit` is honored.
diff --git a/transports/zap/README.md b/transports/zap/README.md
index b734c40..c343eb9 100644
--- a/transports/zap/README.md
+++ b/transports/zap/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/zap
-[](https://pkg.go.dev/go.loglayer.dev/transports/zap)
+[](https://pkg.go.dev/go.loglayer.dev/transports/zap/v2)
LogLayer transport that wraps a `*zap.Logger`. Map metadata becomes individual zap fields; struct metadata lands under a configurable key. Fatal-level entries are routed through a custom `CheckWriteHook` so loglayer's `DisableFatalExit` is honored.
diff --git a/transports/zerolog/README.md b/transports/zerolog/README.md
index 3ae5f02..968771f 100644
--- a/transports/zerolog/README.md
+++ b/transports/zerolog/README.md
@@ -1,6 +1,6 @@
# go.loglayer.dev/transports/zerolog
-[](https://pkg.go.dev/go.loglayer.dev/transports/zerolog)
+[](https://pkg.go.dev/go.loglayer.dev/transports/zerolog/v2)
LogLayer transport that wraps a `*zerolog.Logger`. Map metadata becomes individual zerolog fields; struct metadata lands under a configurable key. Fatal-level entries skip zerolog's default `os.Exit` so loglayer's `DisableFatalExit` is honored.