@powerhousedao/switchboard 6.2.2-dev.2 → 6.2.2-dev.21

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
@@ -1,3 +1,113 @@
1
+ ## 6.2.2-dev.21 (2026-07-27)
2
+
3
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
4
+
5
+ ## 6.2.2-dev.20 (2026-07-27)
6
+
7
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
8
+
9
+ ## 6.2.2-dev.19 (2026-07-27)
10
+
11
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
12
+
13
+ ## 6.2.2-dev.18 (2026-07-27)
14
+
15
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
16
+
17
+ ## 6.2.2-dev.17 (2026-07-26)
18
+
19
+ ### 🚀 Features
20
+
21
+ - **attachments:** S3-compatible storage, direct transfers, and document-derived authorization ([#2884](https://github.com/powerhouse-inc/powerhouse/pull/2884))
22
+
23
+ ### ❤️ Thank You
24
+
25
+ - Guillermo Puente Sandoval @gpuente
26
+
27
+ ## 6.2.2-dev.16 (2026-07-25)
28
+
29
+ ### 🩹 Fixes
30
+
31
+ - code review fixes ([318cbefa9](https://github.com/powerhouse-inc/powerhouse/commit/318cbefa9))
32
+ - version 0 is reserved and only 1 and on is available for setting ([193ac4c56](https://github.com/powerhouse-inc/powerhouse/commit/193ac4c56))
33
+ - resolve a contradiction in group membership ([39845a65c](https://github.com/powerhouse-inc/powerhouse/commit/39845a65c))
34
+ - grant evaluation needs to ignore features that do not exist yet ([0c1d06396](https://github.com/powerhouse-inc/powerhouse/commit/0c1d06396))
35
+
36
+ ### ❤️ Thank You
37
+
38
+ - Benjamin Jordan
39
+
40
+ ## 6.2.2-dev.15 (2026-07-24)
41
+
42
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
43
+
44
+ ## 6.2.2-dev.14 (2026-07-23)
45
+
46
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
47
+
48
+ ## 6.2.2-dev.13 (2026-07-23)
49
+
50
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
51
+
52
+ ## 6.2.2-dev.12 (2026-07-23)
53
+
54
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
55
+
56
+ ## 6.2.2-dev.11 (2026-07-22)
57
+
58
+ ### 🚀 Features
59
+
60
+ - **connect:** dynamic packages can contribute to the PWA configuration ([da867e21d](https://github.com/powerhouse-inc/powerhouse/commit/da867e21d))
61
+
62
+ ### ❤️ Thank You
63
+
64
+ - Yasiel Cabrera @YasielCabrera
65
+
66
+ ## 6.2.2-dev.10 (2026-07-21)
67
+
68
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
69
+
70
+ ## 6.2.2-dev.9 (2026-07-20)
71
+
72
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
73
+
74
+ ## 6.2.2-dev.8 (2026-07-19)
75
+
76
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
77
+
78
+ ## 6.2.2-dev.7 (2026-07-18)
79
+
80
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
81
+
82
+ ## 6.2.2-dev.6 (2026-07-17)
83
+
84
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
85
+
86
+ ## 6.2.2-dev.5 (2026-07-17)
87
+
88
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
89
+
90
+ ## 6.2.2-dev.4 (2026-07-17)
91
+
92
+ ### 🚀 Features
93
+
94
+ - **switchboard, reactor:** worker config integration on switchboard, including auto mode ([38c3b3de6](https://github.com/powerhouse-inc/powerhouse/commit/38c3b3de6))
95
+ - **vetra-e2e:** full e2e spec for shared worker ([ed1b3fbd2](https://github.com/powerhouse-inc/powerhouse/commit/ed1b3fbd2))
96
+
97
+ ### ❤️ Thank You
98
+
99
+ - Benjamin Jordan
100
+
101
+ ## 6.2.2-dev.3 (2026-07-16)
102
+
103
+ ### 🚀 Features
104
+
105
+ - **registry:** postgres-backed auth plugin with persistent accounts and package ownership ([0c1ffbeb4](https://github.com/powerhouse-inc/powerhouse/commit/0c1ffbeb4))
106
+
107
+ ### ❤️ Thank You
108
+
109
+ - Guillermo Puente @gpuente
110
+
1
111
  ## 6.2.2-dev.2 (2026-07-16)
2
112
 
3
113
  This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
package/README.md CHANGED
@@ -112,6 +112,50 @@ pnpm add -g @powerhousedao/switchboard
112
112
 
113
113
  See [Observability](#observability) below for Sentry and OpenTelemetry variables.
114
114
 
115
+ ### Executor Worker Pool
116
+
117
+ By default the reactor executes jobs on a single in-process executor. Setting
118
+ `REACTOR_WORKERS` to a value greater than 0 moves job execution into N
119
+ `node:worker_threads` workers; jobs route to a worker stickily by document id,
120
+ and each worker opens its own Postgres pool.
121
+
122
+ | Variable | Description | Default |
123
+ | ------------------------------- | -------------------------------------------------------------- | ------- |
124
+ | `REACTOR_WORKERS` | Executor worker threads: a number (0 = in-process) or `auto` | `0` |
125
+ | `REACTOR_DB_POOL_SIZE_WORKER` | Per-worker Postgres pool size | `2` |
126
+ | `REACTOR_DB_ACQUIRE_TIMEOUT_MS` | Pool connection acquire timeout (ms) | `5000` |
127
+
128
+ `REACTOR_WORKERS=auto` lets the runtime size the pool from the machine's
129
+ available cores (`os.availableParallelism()`, which respects container CPU
130
+ limits): `max(1, min(8, cores - 2))`. Two cores stay reserved for the host
131
+ event loop and the cap keeps the worker connection budget bounded; `auto`
132
+ always enables worker mode with at least one worker.
133
+
134
+ Requirements when `REACTOR_WORKERS > 0`:
135
+
136
+ - **Postgres only.** The reactor database must be a `postgres://` URL with
137
+ explicit credentials (`PH_REACTOR_DATABASE_URL` or
138
+ `PH_SWITCHBOARD_DATABASE_URL`). PGlite cannot be shared across threads,
139
+ so switchboard refuses to start on local PGlite storage.
140
+ - **Built packages only.** Worker threads import document models by file path,
141
+ so every configured package needs a built `document-models` entry. `dev`
142
+ mode (Vite-loaded models, e.g. `ph vetra`) is rejected.
143
+ - **Connection budget.** Total Postgres connections are roughly
144
+ `host pool + REACTOR_WORKERS x REACTOR_DB_POOL_SIZE_WORKER`; keep this
145
+ under the server's `max_connections`.
146
+
147
+ Example:
148
+
149
+ ```bash
150
+ PH_SWITCHBOARD_DATABASE_URL=postgres://reactor:reactor@localhost:5433/switchboard \
151
+ REACTOR_WORKERS=4 \
152
+ ph switchboard
153
+ ```
154
+
155
+ The same settings are available programmatically via
156
+ `startSwitchboard({ workerPool: { numWorkers, dbPoolSizePerWorker, acquireTimeoutMs } })`,
157
+ which takes precedence over the environment variables.
158
+
115
159
  ### Authentication Configuration
116
160
 
117
161
  ```typescript
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5a65c537-fadb-5705-95c0-4cec44d7b4d2")}catch(e){}}();
4
- import { a as parseForcePgVersion, r as startSwitchboard } from "./server-DgBz3TJW.mjs";
4
+ import { a as parseForcePgVersion, r as startSwitchboard } from "./server-ChK0GLG8.mjs";
5
5
  import "./utils-Baw7rThP.mjs";
6
6
  import { metrics } from "@opentelemetry/api";
7
7
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";