@voltro/plugin-clickhouse 0.66.0 → 0.67.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -39,6 +39,58 @@ _Changes staged for the next release accumulate here (rolled up from
39
39
 
40
40
  ---
41
41
 
42
+ ## [0.67.0] — 2026-09-07
43
+
44
+ ### ⚠ BREAKING
45
+
46
+ - **@voltro/client, @voltro/protocol, @voltro/runtime, @voltro/cli, @voltro/web** — Confirmed optimistic writes now reconcile against a token-bound post-ACK primary snapshot, never an unrelated delta, changed row or timeout. Matching snapshots retire only covered previews; server normalisation and later writers remain authoritative. Same-tick acknowledgements coalesce, and affected cache entries preserve primary consistency across same-subject reconnects. Migration: deploy matching client/server framework versions together and account for an additional subscription read per affected acknowledgement group; affected entries use primary snapshots instead of replica reads/delta-resume for their cache lifetime. Native hooks need no source rewrite. Direct callers of the public `supersedesConfirmedPatches(event, baseBefore, baseAfter)` helper must migrate to `(event, reconciliationToken)` using the token of the post-ACK read, or use the native `SubscriptionCache`; row comparison cannot be mechanically rewritten into causal proof.
47
+
48
+ **`voltro update` carries you across this** — codemod `0.67.0/01_subscription-reconciliation`. If you pin versions by hand and never run it, print the notes without changing anything: `voltro update --codemods-only --from <your current version> --dry-run` (this one ships in 0.67.0).
49
+ - **@voltro/cli** — `voltro support sentry <eventId>` is removed. It wrapped `sentry-cli sourcemaps explain`, which sentry-cli 3 dropped in favour of Sentry's in-product source-map debugger; `@voltro/cli` now depends on `@sentry/cli` 3, whose `execute(args, live)` takes a boolean. Migration: delete the invocation from scripts, CI jobs and runbooks and read the event's source-map resolution in Sentry itself. `voltro support collect` is unchanged.
50
+
51
+ **`voltro update` carries you across this** — codemod `0.67.0/03_support-sentry-removed`. If you pin versions by hand and never run it, print the notes without changing anything: `voltro update --codemods-only --from <your current version> --dry-run` (this one ships in 0.67.0).
52
+ - **@voltro/cli, @voltro/workflow, @voltro/testing** — `voltro test` runs on vitest 5, and `@voltro/workflow` names `vitest ^5.0.0` as its peer. Migration: set `vitest` and `@vitest/coverage-v8` to `^5.0.0` together in every app that declares them (the coverage provider peer-pins the exact vitest version), install, and run the suite once — vitest 5 clears mocks before each test by default, fails a test whose async assertion was not awaited, and no longer looks a config file up in ancestor directories. Scaffolded templates ship on 5.
53
+
54
+ **`voltro update` carries you across this** — codemod `0.67.0/02_vitest-5`. If you pin versions by hand and never run it, print the notes without changing anything: `voltro update --codemods-only --from <your current version> --dry-run` (this one ships in 0.67.0).
55
+
56
+ ### Added
57
+
58
+ - **@voltro/ui-shadcn, @voltro/cli, @voltro/devtools, @voltro/devtools-ui** — Add the opt-in Signal brand stylesheet, accessible `SignalHeader` and pausable `SignalField` with reduced-motion and visibility handling. Development and production builds resolve the stylesheet from the same UI-kit installation; the in-browser devtools use the matching plum/violet palette and declare the Tailwind dependency required to compile their source stylesheet locally.
59
+
60
+ Code blocks use matching light/dark surfaces, code comparisons retain readable contrast, and the shared routes view uses a direct heading.
61
+
62
+ `DocsLayout` supports custom header and introduction slots and an optional desktop sidebar. Its mobile drawer uses native modal focus and Escape behavior; search contains keyboard focus and restores the opener when dismissed.
63
+
64
+ `VoltroWordmark` owns product badges and an operator warning tone. `SignalHeader` shares responsive brand geometry and an optional sticky reading surface; `AppShell` accepts a custom header slot. All first-party product headers and footers use this composition, including the compact local Devtools identity.
65
+
66
+ Shared `SignalPreferences`, `SignalSearch` and `SignalHeaderAction` align header controls across public and operating apps. Signal fields support both themes; `ProfileMenu` accepts a custom trigger and preserves an explicit System choice.
67
+
68
+ ### Changed
69
+
70
+ - **@voltro/cli, @voltro/runtime, @voltro/database, @voltro/protocol, @voltro/voltro, @voltro/sql-mssql, @voltro/sql-turso, @voltro/workflow, @voltro/plugin-sso-saml, @voltro/plugin-sentry** — Dependency refresh: Effect 3.22.1 with the matching `@effect/*` patch releases (`@effect/cluster` 0.60.2, `@effect/sql-mssql` 0.54.0, `@effect/platform` 0.97.1, `@effect/rpc` 0.76.2, `@effect/sql` 0.52.1, `@effect/workflow` 0.19.1), `@libsql/client` 0.18.0 — and `@effect/sql-mssql` 0.54.0 flipped its TLS default to encrypt-and-verify, so the mssql dialect now passes `encrypt: false` explicitly for an unset connection to keep the documented modes (unset → plaintext, `sslmode=require` → encrypt without verification) — `@sentry/cli` 3, `xml-encryption` 6, vite 8.2.2, and the tracked minor/patch lines. The mssql patch for `@effect/cluster` — the four SQL fixes plus the shard-release backoff — was regenerated against 0.60.2 (upstream refactored `SqlMessageStorage`, so the 0.60.0 hunks no longer applied) and ships as `patches/@effect__cluster@0.60.2.patch`; `voltro add mssql` writes the new key. Projects scaffolded by the CLI record the pnpm that ran it, which is 12.x on the framework's own toolchain; pnpm 11+ replaced `onlyBuiltDependencies` with `allowBuilds`, and the framework's workspaces declare it.
71
+
72
+ ### Fixed
73
+
74
+ - **@voltro/cli, @voltro/runtime, @voltro/database, @voltro/voltro** — The tunable readers that take `env = process.env` (`resolveEagerFallbackWarnIntervalMs`, `resolveWorkflowRecordingMode`, `readPollCeilingMs`, and the `SchedulingEnv` / `ReactiveEnv` / `InspectRingsEnv` shapes) accept a bare `NodeJS.ProcessEnv` again. They were typed as all-optional literals, which TypeScript's weak-type check rejects for `Dict<string>` the moment nothing in the compilation augments `ProcessEnv` — an app that compiles framework source with only `@types/node` (a mobile app, which declares no env) failed `tsc` on `dbMetrics.ts`. The parameters now carry an index signature.
75
+ - **@voltro/client, @voltro/web** — The subscription recovery watchdog knows when it was throttled. A browser delays timers in a hidden tab, so the stall timer could fire long after it was due, report the interval it was armed with as the interval waited, warn, and invalidate entries whose deliveries were queued behind the same throttling. It now compares its due time with its fire time: late beyond a tolerance, or firing in a hidden tab, it records one `subscription.recovery-timer-late` per attempt (with `timerLateMs` and `hidden`) and re-arms; the first on-time fire in a visible tab decides. `subscription.recovery-stuck` carries the time actually waited and the number of deferrals.
76
+
77
+ The client runtime yields to the event loop through a `MessageChannel` in the browser instead of `setTimeout`, so tasks queued behind Effect's periodic yield are not held to the hidden-tab timer grid. `runtime.resolved` records the channel in use as `scheduler`.
78
+
79
+ `socket.frames` marks frame-arrival bursts on the raw socket — the first frame after open and each frame that follows a gap of five seconds or more, at most eight per socket — so an export separates a late arrival from late processing.
80
+
81
+ `apiSurface: compatible` — the golden churn in `@voltro/client` and `@voltro/web` is two members added to the `ClientDiagnosticKind` union (`socket.frames`, `subscription.recovery-timer-late`); every existing member is unchanged, the framework is the only producer, and a reader that does not know the new kinds sees two more events it can ignore. Only a switch exhaustive over the vocabulary needs two arms.
82
+ - **@voltro/cli** — Web middleware is precompiled into the server production output and rooted by runtime pruning, preserving its behavior in source-free Docker deployments. Missing transitive imports now fail loudly instead of silently disabling a present middleware; rebuilding after removal clears the previous policy. Runtime tracing also preserves transitive dependencies when a deploy directory is reached through a symlink. Native bundle imports now propagate missing-library and initialization errors instead of returning a circular shim's empty exports. Rebuild and deploy the complete `.framework` output; no application API changes are required.
83
+
84
+ ---
85
+
86
+ ## [0.66.1] — 2026-09-06
87
+
88
+ ### Fixed
89
+
90
+ - **@voltro/cli** — API serve and web start bundles preserve esbuild's caught-import handling: a missing `require()` inside `try/catch` or a caught dynamic import can use its source fallback without a package.json optional-dependency declaration. This fixes the 0.66.0 minified MySQL/MariaDB serve-build regression at mysql2's optional `cardinal` debug highlighter; no direct `cardinal` dependency is needed after upgrading and rebuilding the API. Unhandled missing dependencies and broken installed exports still fail the build. Regression tests execute minified fallback code and build/import production serve bundles for every registered SQL-driver package, plus MariaDB, without requiring database services.
91
+
92
+ ---
93
+
42
94
  ## [0.66.0] — 2026-09-06
43
95
 
44
96
  ### ⚠ BREAKING
@@ -219,7 +219,7 @@ Copyright 2016-2024 ClickHouse, Inc.
219
219
  limitations under the License.
220
220
  ```
221
221
 
222
- ## @effect/cluster@0.60.0
222
+ ## @effect/cluster@0.60.2
223
223
 
224
224
  License: MIT
225
225
 
@@ -247,7 +247,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
247
247
  SOFTWARE.
248
248
  ```
249
249
 
250
- ## @effect/platform-node@0.108.0
250
+ ## @effect/platform-node@0.108.1
251
251
 
252
252
  License: MIT
253
253
 
@@ -275,7 +275,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
275
275
  SOFTWARE.
276
276
  ```
277
277
 
278
- ## @effect/platform-node-shared@0.61.0
278
+ ## @effect/platform-node-shared@0.61.1
279
279
 
280
280
  License: MIT
281
281
 
@@ -303,7 +303,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
303
303
  SOFTWARE.
304
304
  ```
305
305
 
306
- ## @effect/sql@0.52.0
306
+ ## @effect/sql@0.52.1
307
307
 
308
308
  License: MIT
309
309
 
@@ -331,7 +331,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
331
331
  SOFTWARE.
332
332
  ```
333
333
 
334
- ## @effect/workflow@0.19.0
334
+ ## @effect/workflow@0.19.1
335
335
 
336
336
  License: MIT
337
337
 
@@ -596,7 +596,7 @@ Apache License
596
596
  limitations under the License.
597
597
  ```
598
598
 
599
- ## @opentelemetry/api-logs@0.221.0
599
+ ## @opentelemetry/api-logs@0.222.0
600
600
 
601
601
  License: Apache-2.0
602
602
 
@@ -804,7 +804,7 @@ Apache License
804
804
  limitations under the License.
805
805
  ```
806
806
 
807
- ## @opentelemetry/context-async-hooks@2.10.0
807
+ ## @opentelemetry/context-async-hooks@2.11.0
808
808
 
809
809
  License: Apache-2.0
810
810
 
@@ -1012,7 +1012,7 @@ Apache License
1012
1012
  limitations under the License.
1013
1013
  ```
1014
1014
 
1015
- ## @opentelemetry/core@2.9.0
1015
+ ## @opentelemetry/core@2.10.0
1016
1016
 
1017
1017
  License: Apache-2.0
1018
1018
 
@@ -1220,7 +1220,7 @@ Apache License
1220
1220
  limitations under the License.
1221
1221
  ```
1222
1222
 
1223
- ## @opentelemetry/exporter-metrics-otlp-http@0.221.0
1223
+ ## @opentelemetry/exporter-metrics-otlp-http@0.222.0
1224
1224
 
1225
1225
  License: Apache-2.0
1226
1226
 
@@ -1428,7 +1428,7 @@ Apache License
1428
1428
  limitations under the License.
1429
1429
  ```
1430
1430
 
1431
- ## @opentelemetry/exporter-trace-otlp-http@0.221.0
1431
+ ## @opentelemetry/exporter-trace-otlp-http@0.222.0
1432
1432
 
1433
1433
  License: Apache-2.0
1434
1434
 
@@ -1636,7 +1636,7 @@ Apache License
1636
1636
  limitations under the License.
1637
1637
  ```
1638
1638
 
1639
- ## @opentelemetry/otlp-exporter-base@0.221.0
1639
+ ## @opentelemetry/otlp-exporter-base@0.222.0
1640
1640
 
1641
1641
  License: Apache-2.0
1642
1642
 
@@ -1844,7 +1844,7 @@ Apache License
1844
1844
  limitations under the License.
1845
1845
  ```
1846
1846
 
1847
- ## @opentelemetry/otlp-transformer@0.221.0
1847
+ ## @opentelemetry/otlp-transformer@0.222.0
1848
1848
 
1849
1849
  License: Apache-2.0
1850
1850
 
@@ -2052,7 +2052,7 @@ Apache License
2052
2052
  limitations under the License.
2053
2053
  ```
2054
2054
 
2055
- ## @opentelemetry/resources@2.10.0
2055
+ ## @opentelemetry/resources@2.11.0
2056
2056
 
2057
2057
  License: Apache-2.0
2058
2058
 
@@ -2260,7 +2260,7 @@ Apache License
2260
2260
  limitations under the License.
2261
2261
  ```
2262
2262
 
2263
- ## @opentelemetry/sdk-logs@0.221.0
2263
+ ## @opentelemetry/sdk-logs@0.222.0
2264
2264
 
2265
2265
  License: Apache-2.0
2266
2266
 
@@ -2468,7 +2468,7 @@ Apache License
2468
2468
  limitations under the License.
2469
2469
  ```
2470
2470
 
2471
- ## @opentelemetry/sdk-metrics@2.10.0
2471
+ ## @opentelemetry/sdk-metrics@2.11.0
2472
2472
 
2473
2473
  License: Apache-2.0
2474
2474
 
@@ -2676,7 +2676,7 @@ Apache License
2676
2676
  limitations under the License.
2677
2677
  ```
2678
2678
 
2679
- ## @opentelemetry/sdk-trace@2.10.0
2679
+ ## @opentelemetry/sdk-trace@2.11.0
2680
2680
 
2681
2681
  License: Apache-2.0
2682
2682
 
@@ -2884,7 +2884,7 @@ Apache License
2884
2884
  limitations under the License.
2885
2885
  ```
2886
2886
 
2887
- ## @opentelemetry/sdk-trace-base@2.10.0
2887
+ ## @opentelemetry/sdk-trace-base@2.11.0
2888
2888
 
2889
2889
  License: Apache-2.0
2890
2890
 
@@ -3092,7 +3092,7 @@ Apache License
3092
3092
  limitations under the License.
3093
3093
  ```
3094
3094
 
3095
- ## @opentelemetry/sdk-trace-node@2.10.0
3095
+ ## @opentelemetry/sdk-trace-node@2.11.0
3096
3096
 
3097
3097
  License: Apache-2.0
3098
3098
 
@@ -3564,7 +3564,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3564
3564
  SOFTWARE.
3565
3565
  ```
3566
3566
 
3567
- ## @upstash/redis@1.38.2
3567
+ ## @upstash/redis@1.38.3
3568
3568
 
3569
3569
  License: MIT
3570
3570
 
@@ -4166,7 +4166,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4166
4166
  SOFTWARE.
4167
4167
  ```
4168
4168
 
4169
- ## jose@6.2.8
4169
+ ## jose@6.2.10
4170
4170
 
4171
4171
  License: MIT
4172
4172
 
@@ -4312,7 +4312,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4312
4312
  SOFTWARE.
4313
4313
  ```
4314
4314
 
4315
- ## multipasta@0.2.7
4315
+ ## multipasta@0.2.8
4316
4316
 
4317
4317
  License: MIT
4318
4318
 
@@ -4356,7 +4356,7 @@ The above copyright notice and this permission notice shall be included in all c
4356
4356
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4357
4357
  ```
4358
4358
 
4359
- ## picomatch@4.0.5
4359
+ ## picomatch@4.0.7
4360
4360
 
4361
4361
  License: MIT
4362
4362
 
@@ -4733,7 +4733,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4733
4733
  SOFTWARE.
4734
4734
  ```
4735
4735
 
4736
- ## undici@8.9.0
4736
+ ## undici@8.10.0
4737
4737
 
4738
4738
  License: MIT
4739
4739
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltro/plugin-clickhouse",
3
- "version": "0.66.0",
3
+ "version": "0.67.0",
4
4
  "description": "ClickHouse AnalyticsSink. Native HTTP ingest into a ClickHouse cluster — self-hosted OR ClickHouse Cloud. Production-grade OLAP for high-cardinality events with millisecond aggregate queries over billions of rows.",
5
5
  "keywords": [
6
6
  "voltro",
@@ -34,11 +34,11 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@clickhouse/client": "^1.23.1",
37
- "@voltro/logger": "0.66.0",
38
- "@voltro/runtime": "0.66.0"
37
+ "@voltro/logger": "0.67.0",
38
+ "@voltro/runtime": "0.67.0"
39
39
  },
40
40
  "peerDependencies": {
41
- "effect": "^3.22.0"
41
+ "effect": "^3.22.1"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"