diff --git a/.changeset/admission-control-check-shape-existence.md b/.changeset/admission-control-check-shape-existence.md deleted file mode 100644 index d065ce00fe..0000000000 --- a/.changeset/admission-control-check-shape-existence.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Classify admission control requests by actual shape existence instead of offset value. Prevents shape creation storms after restarts/redeploys from bypassing initial request limits, and avoids penalising reconnecting clients to shared shapes. diff --git a/.changeset/brave-dingos-retire.md b/.changeset/brave-dingos-retire.md deleted file mode 100644 index e1bc615b05..0000000000 --- a/.changeset/brave-dingos-retire.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'electric-ax': patch ---- - -fix: ensure stable name for the started service diff --git a/.changeset/brave-doors-flow.md b/.changeset/brave-doors-flow.md deleted file mode 100644 index 94257a415a..0000000000 --- a/.changeset/brave-doors-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Fix race condition where HTTP readers crash with ArgumentError on deleted ETS buffer table during stack restarts diff --git a/.changeset/eleven-nails-argue.md b/.changeset/eleven-nails-argue.md deleted file mode 100644 index 147520356d..0000000000 --- a/.changeset/eleven-nails-argue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/electric-telemetry': patch ---- - -Add binary memory, average number of off-heap binaries and their ref counts to top processes by memory metric. diff --git a/.changeset/fix-admission-control-error-handler.md b/.changeset/fix-admission-control-error-handler.md deleted file mode 100644 index 2e36ad2a8a..0000000000 --- a/.changeset/fix-admission-control-error-handler.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Fix admission control permit leak in error handlers. `register_before_send` callbacks are not available in `Plug.ErrorHandler` because it uses the original conn, so permits must be released explicitly. diff --git a/.changeset/fix-last-processed-lsn-missing.md b/.changeset/fix-last-processed-lsn-missing.md deleted file mode 100644 index b2fad1d0f2..0000000000 --- a/.changeset/fix-last-processed-lsn-missing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@core/sync-service": patch ---- - -Fix crash when LsnTracker ETS table is empty during long-poll timeout. Return nil instead of crashing, fall back to shape offset, and align request read-only flag with runtime status. Also fix stale flushed_wal (always 0) when populating LsnTracker during replication slot creation. diff --git a/.changeset/fix-replication-keepalive-timeout.md b/.changeset/fix-replication-keepalive-timeout.md deleted file mode 100644 index e345227fcd..0000000000 --- a/.changeset/fix-replication-keepalive-timeout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@core/sync-service": patch ---- - -Fix replication connection drops caused by PostgreSQL's wal_sender_timeout during backpressure. The replication client now sends periodic keepalive messages while event processing is paused, preventing the connection from being killed during slow downstream processing. diff --git a/.changeset/fix-stack-prometheus-ets-leak.md b/.changeset/fix-stack-prometheus-ets-leak.md deleted file mode 100644 index 8669b40ec9..0000000000 --- a/.changeset/fix-stack-prometheus-ets-leak.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/electric-telemetry': patch ---- - -Remove unused stack-level Prometheus reporter to fix unbounded ETS table growth diff --git a/.changeset/forty-pillows-laugh.md b/.changeset/forty-pillows-laugh.md deleted file mode 100644 index 1ebb0e06a6..0000000000 --- a/.changeset/forty-pillows-laugh.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Include stack_id in otel opts for stack metrics. It had been omitted by mistake before. diff --git a/.changeset/neat-kiwis-agree.md b/.changeset/neat-kiwis-agree.md deleted file mode 100644 index bd929da524..0000000000 --- a/.changeset/neat-kiwis-agree.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/elixir-client': patch ---- - -Include support for electric ~> 1.5.1 diff --git a/.changeset/nice-bugs-think.md b/.changeset/nice-bugs-think.md deleted file mode 100644 index 6aa0198b71..0000000000 --- a/.changeset/nice-bugs-think.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Add sync-service telemetry for indexed vs unindexed shape counts, backed by maintained in-memory counters so periodic metrics stay O(1) even on very large stacks. diff --git a/.changeset/nice-taxis-shake.md b/.changeset/nice-taxis-shake.md deleted file mode 100644 index eb56e71683..0000000000 --- a/.changeset/nice-taxis-shake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Add optional PhoenixLiveDashboard with configurable port to listen on. diff --git a/.changeset/shaggy-phones-remember.md b/.changeset/shaggy-phones-remember.md deleted file mode 100644 index 9307d9b7ab..0000000000 --- a/.changeset/shaggy-phones-remember.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@core/sync-service': patch ---- - -Handle transient errors when creating shapes gracefully rather than crashing entire stack diff --git a/packages/electric-ax/CHANGELOG.md b/packages/electric-ax/CHANGELOG.md new file mode 100644 index 0000000000..6b8f7b2759 --- /dev/null +++ b/packages/electric-ax/CHANGELOG.md @@ -0,0 +1,7 @@ +# electric-ax + +## 0.1.1 + +### Patch Changes + +- 2cc77cb: fix: ensure stable name for the started service diff --git a/packages/electric-ax/package.json b/packages/electric-ax/package.json index b641c916ee..ff7ccbcf0d 100644 --- a/packages/electric-ax/package.json +++ b/packages/electric-ax/package.json @@ -1,6 +1,6 @@ { "name": "electric-ax", - "version": "0.1.0", + "version": "0.1.1", "description": "CLI for Electric Agents", "author": "ElectricSQL team and contributors", "license": "Apache-2.0", diff --git a/packages/electric-telemetry/CHANGELOG.md b/packages/electric-telemetry/CHANGELOG.md index e1d12a2dc2..bc2e4a158d 100644 --- a/packages/electric-telemetry/CHANGELOG.md +++ b/packages/electric-telemetry/CHANGELOG.md @@ -1,5 +1,12 @@ # @core/electric-telemetry +## 0.2.1 + +### Patch Changes + +- e9db22c: Add binary memory, average number of off-heap binaries and their ref counts to top processes by memory metric. +- 1a4d094: Remove unused stack-level Prometheus reporter to fix unbounded ETS table growth + ## 0.2.0 ### Minor Changes diff --git a/packages/electric-telemetry/package.json b/packages/electric-telemetry/package.json index 5c879a65ea..e27334ca71 100644 --- a/packages/electric-telemetry/package.json +++ b/packages/electric-telemetry/package.json @@ -1,5 +1,5 @@ { "name": "@core/electric-telemetry", "private": true, - "version": "0.2.0" + "version": "0.2.1" } diff --git a/packages/elixir-client/CHANGELOG.md b/packages/elixir-client/CHANGELOG.md index bdd31e5837..d6bf261571 100644 --- a/packages/elixir-client/CHANGELOG.md +++ b/packages/elixir-client/CHANGELOG.md @@ -1,5 +1,11 @@ # @core/elixir-client +## 0.9.5 + +### Patch Changes + +- dffd198: Include support for electric ~> 1.5.1 + ## 0.9.4 ### Patch Changes diff --git a/packages/elixir-client/package.json b/packages/elixir-client/package.json index aa5e1d9ef3..c6cd696f56 100644 --- a/packages/elixir-client/package.json +++ b/packages/elixir-client/package.json @@ -1,7 +1,7 @@ { "name": "@core/elixir-client", "private": true, - "version": "0.9.4", + "version": "0.9.5", "scripts": { "publish:hex": "../../scripts/publish_hex.sh electric_client" } diff --git a/packages/sync-service/CHANGELOG.md b/packages/sync-service/CHANGELOG.md index 1b8d171f6f..ab3c0143fb 100644 --- a/packages/sync-service/CHANGELOG.md +++ b/packages/sync-service/CHANGELOG.md @@ -1,5 +1,19 @@ # @core/sync-service +## 1.5.2 + +### Patch Changes + +- 388ec63: Classify admission control requests by actual shape existence instead of offset value. Prevents shape creation storms after restarts/redeploys from bypassing initial request limits, and avoids penalising reconnecting clients to shared shapes. +- 902970b: Fix race condition where HTTP readers crash with ArgumentError on deleted ETS buffer table during stack restarts +- 0fd30fc: Fix admission control permit leak in error handlers. `register_before_send` callbacks are not available in `Plug.ErrorHandler` because it uses the original conn, so permits must be released explicitly. +- b6a82be: Fix crash when LsnTracker ETS table is empty during long-poll timeout. Return nil instead of crashing, fall back to shape offset, and align request read-only flag with runtime status. Also fix stale flushed_wal (always 0) when populating LsnTracker during replication slot creation. +- 365dd17: Fix replication connection drops caused by PostgreSQL's wal_sender_timeout during backpressure. The replication client now sends periodic keepalive messages while event processing is paused, preventing the connection from being killed during slow downstream processing. +- e9db22c: Include stack_id in otel opts for stack metrics. It had been omitted by mistake before. +- 59a96b8: Add sync-service telemetry for indexed vs unindexed shape counts, backed by maintained in-memory counters so periodic metrics stay O(1) even on very large stacks. +- 0afe007: Add optional PhoenixLiveDashboard with configurable port to listen on. +- f842bc0: Handle transient errors when creating shapes gracefully rather than crashing entire stack + ## 1.5.1 ### Patch Changes diff --git a/packages/sync-service/package.json b/packages/sync-service/package.json index 731d115805..adb21c2b2f 100644 --- a/packages/sync-service/package.json +++ b/packages/sync-service/package.json @@ -1,7 +1,7 @@ { "name": "@core/sync-service", "private": true, - "version": "1.5.1", + "version": "1.5.2", "scripts": { "publish:hex": "../../scripts/publish_hex.sh electric", "changeset": "pushd ../..; pnpm changeset; popd"