@voltro/plugin-duckdb 0.66.1 → 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 +44 -0
- package/THIRD-PARTY-NOTICES.md +23 -23
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -39,6 +39,50 @@ _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
|
+
|
|
42
86
|
## [0.66.1] — 2026-09-06
|
|
43
87
|
|
|
44
88
|
### Fixed
|
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -51,7 +51,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
51
51
|
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.
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
## @effect/cluster@0.60.
|
|
54
|
+
## @effect/cluster@0.60.2
|
|
55
55
|
|
|
56
56
|
License: MIT
|
|
57
57
|
|
|
@@ -79,7 +79,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
79
79
|
SOFTWARE.
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
## @effect/platform-node@0.108.
|
|
82
|
+
## @effect/platform-node@0.108.1
|
|
83
83
|
|
|
84
84
|
License: MIT
|
|
85
85
|
|
|
@@ -107,7 +107,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
107
107
|
SOFTWARE.
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
## @effect/platform-node-shared@0.61.
|
|
110
|
+
## @effect/platform-node-shared@0.61.1
|
|
111
111
|
|
|
112
112
|
License: MIT
|
|
113
113
|
|
|
@@ -135,7 +135,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
135
135
|
SOFTWARE.
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
## @effect/sql@0.52.
|
|
138
|
+
## @effect/sql@0.52.1
|
|
139
139
|
|
|
140
140
|
License: MIT
|
|
141
141
|
|
|
@@ -163,7 +163,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
163
163
|
SOFTWARE.
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
## @effect/workflow@0.19.
|
|
166
|
+
## @effect/workflow@0.19.1
|
|
167
167
|
|
|
168
168
|
License: MIT
|
|
169
169
|
|
|
@@ -428,7 +428,7 @@ Apache License
|
|
|
428
428
|
limitations under the License.
|
|
429
429
|
```
|
|
430
430
|
|
|
431
|
-
## @opentelemetry/api-logs@0.
|
|
431
|
+
## @opentelemetry/api-logs@0.222.0
|
|
432
432
|
|
|
433
433
|
License: Apache-2.0
|
|
434
434
|
|
|
@@ -636,7 +636,7 @@ Apache License
|
|
|
636
636
|
limitations under the License.
|
|
637
637
|
```
|
|
638
638
|
|
|
639
|
-
## @opentelemetry/context-async-hooks@2.
|
|
639
|
+
## @opentelemetry/context-async-hooks@2.11.0
|
|
640
640
|
|
|
641
641
|
License: Apache-2.0
|
|
642
642
|
|
|
@@ -844,7 +844,7 @@ Apache License
|
|
|
844
844
|
limitations under the License.
|
|
845
845
|
```
|
|
846
846
|
|
|
847
|
-
## @opentelemetry/core@2.
|
|
847
|
+
## @opentelemetry/core@2.10.0
|
|
848
848
|
|
|
849
849
|
License: Apache-2.0
|
|
850
850
|
|
|
@@ -1052,7 +1052,7 @@ Apache License
|
|
|
1052
1052
|
limitations under the License.
|
|
1053
1053
|
```
|
|
1054
1054
|
|
|
1055
|
-
## @opentelemetry/exporter-metrics-otlp-http@0.
|
|
1055
|
+
## @opentelemetry/exporter-metrics-otlp-http@0.222.0
|
|
1056
1056
|
|
|
1057
1057
|
License: Apache-2.0
|
|
1058
1058
|
|
|
@@ -1260,7 +1260,7 @@ Apache License
|
|
|
1260
1260
|
limitations under the License.
|
|
1261
1261
|
```
|
|
1262
1262
|
|
|
1263
|
-
## @opentelemetry/exporter-trace-otlp-http@0.
|
|
1263
|
+
## @opentelemetry/exporter-trace-otlp-http@0.222.0
|
|
1264
1264
|
|
|
1265
1265
|
License: Apache-2.0
|
|
1266
1266
|
|
|
@@ -1468,7 +1468,7 @@ Apache License
|
|
|
1468
1468
|
limitations under the License.
|
|
1469
1469
|
```
|
|
1470
1470
|
|
|
1471
|
-
## @opentelemetry/otlp-exporter-base@0.
|
|
1471
|
+
## @opentelemetry/otlp-exporter-base@0.222.0
|
|
1472
1472
|
|
|
1473
1473
|
License: Apache-2.0
|
|
1474
1474
|
|
|
@@ -1676,7 +1676,7 @@ Apache License
|
|
|
1676
1676
|
limitations under the License.
|
|
1677
1677
|
```
|
|
1678
1678
|
|
|
1679
|
-
## @opentelemetry/otlp-transformer@0.
|
|
1679
|
+
## @opentelemetry/otlp-transformer@0.222.0
|
|
1680
1680
|
|
|
1681
1681
|
License: Apache-2.0
|
|
1682
1682
|
|
|
@@ -1884,7 +1884,7 @@ Apache License
|
|
|
1884
1884
|
limitations under the License.
|
|
1885
1885
|
```
|
|
1886
1886
|
|
|
1887
|
-
## @opentelemetry/resources@2.
|
|
1887
|
+
## @opentelemetry/resources@2.11.0
|
|
1888
1888
|
|
|
1889
1889
|
License: Apache-2.0
|
|
1890
1890
|
|
|
@@ -2092,7 +2092,7 @@ Apache License
|
|
|
2092
2092
|
limitations under the License.
|
|
2093
2093
|
```
|
|
2094
2094
|
|
|
2095
|
-
## @opentelemetry/sdk-logs@0.
|
|
2095
|
+
## @opentelemetry/sdk-logs@0.222.0
|
|
2096
2096
|
|
|
2097
2097
|
License: Apache-2.0
|
|
2098
2098
|
|
|
@@ -2300,7 +2300,7 @@ Apache License
|
|
|
2300
2300
|
limitations under the License.
|
|
2301
2301
|
```
|
|
2302
2302
|
|
|
2303
|
-
## @opentelemetry/sdk-metrics@2.
|
|
2303
|
+
## @opentelemetry/sdk-metrics@2.11.0
|
|
2304
2304
|
|
|
2305
2305
|
License: Apache-2.0
|
|
2306
2306
|
|
|
@@ -2508,7 +2508,7 @@ Apache License
|
|
|
2508
2508
|
limitations under the License.
|
|
2509
2509
|
```
|
|
2510
2510
|
|
|
2511
|
-
## @opentelemetry/sdk-trace@2.
|
|
2511
|
+
## @opentelemetry/sdk-trace@2.11.0
|
|
2512
2512
|
|
|
2513
2513
|
License: Apache-2.0
|
|
2514
2514
|
|
|
@@ -2716,7 +2716,7 @@ Apache License
|
|
|
2716
2716
|
limitations under the License.
|
|
2717
2717
|
```
|
|
2718
2718
|
|
|
2719
|
-
## @opentelemetry/sdk-trace-base@2.
|
|
2719
|
+
## @opentelemetry/sdk-trace-base@2.11.0
|
|
2720
2720
|
|
|
2721
2721
|
License: Apache-2.0
|
|
2722
2722
|
|
|
@@ -2924,7 +2924,7 @@ Apache License
|
|
|
2924
2924
|
limitations under the License.
|
|
2925
2925
|
```
|
|
2926
2926
|
|
|
2927
|
-
## @opentelemetry/sdk-trace-node@2.
|
|
2927
|
+
## @opentelemetry/sdk-trace-node@2.11.0
|
|
2928
2928
|
|
|
2929
2929
|
License: Apache-2.0
|
|
2930
2930
|
|
|
@@ -3396,7 +3396,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
3396
3396
|
SOFTWARE.
|
|
3397
3397
|
```
|
|
3398
3398
|
|
|
3399
|
-
## @upstash/redis@1.38.
|
|
3399
|
+
## @upstash/redis@1.38.3
|
|
3400
3400
|
|
|
3401
3401
|
License: MIT
|
|
3402
3402
|
|
|
@@ -3998,7 +3998,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
3998
3998
|
SOFTWARE.
|
|
3999
3999
|
```
|
|
4000
4000
|
|
|
4001
|
-
## jose@6.2.
|
|
4001
|
+
## jose@6.2.10
|
|
4002
4002
|
|
|
4003
4003
|
License: MIT
|
|
4004
4004
|
|
|
@@ -4144,7 +4144,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
4144
4144
|
SOFTWARE.
|
|
4145
4145
|
```
|
|
4146
4146
|
|
|
4147
|
-
## multipasta@0.2.
|
|
4147
|
+
## multipasta@0.2.8
|
|
4148
4148
|
|
|
4149
4149
|
License: MIT
|
|
4150
4150
|
|
|
@@ -4188,7 +4188,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
4188
4188
|
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.
|
|
4189
4189
|
```
|
|
4190
4190
|
|
|
4191
|
-
## picomatch@4.0.
|
|
4191
|
+
## picomatch@4.0.7
|
|
4192
4192
|
|
|
4193
4193
|
License: MIT
|
|
4194
4194
|
|
|
@@ -4565,7 +4565,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
4565
4565
|
SOFTWARE.
|
|
4566
4566
|
```
|
|
4567
4567
|
|
|
4568
|
-
## undici@8.
|
|
4568
|
+
## undici@8.10.0
|
|
4569
4569
|
|
|
4570
4570
|
License: MIT
|
|
4571
4571
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voltro/plugin-duckdb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.0",
|
|
4
4
|
"description": "Embedded DuckDB AnalyticsSink. Runs DuckDB in-process for real OLAP performance without an external service. Events land in a DuckDB column-store table; aggregate / timeseries / topN queries execute vectorized.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"voltro",
|
|
@@ -33,13 +33,13 @@
|
|
|
33
33
|
"node": ">=24.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@voltro/runtime": "0.
|
|
36
|
+
"@voltro/runtime": "0.67.0"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
39
|
"@duckdb/node-api": "1.5.5-r.4"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"effect": "^3.22.
|
|
42
|
+
"effect": "^3.22.1"
|
|
43
43
|
},
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|