solid-objects 0.14.0 → 0.14.1

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,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.14.1 - 2026-08-23
4
+
5
+ - Add `solid-objects/signals`, live signals on actor references
6
+ ([#24](https://github.com/cardmagic/solid-objects-js/issues/24)). One
7
+ side-effect import enables `reference.live`: read-only signals on the
8
+ proposed standard JavaScript signals API (`signal-polyfill`, a new
9
+ optional peer dependency) that subscribe through an in-process
10
+ `runtime.realtime` session when first watched and unsubscribe after a
11
+ linger when the last watcher leaves. Value-broadcast observables feed
12
+ named signals; `live.snapshot` re-fetches the authorized snapshot on
13
+ each accepted envelope; `live.payloads.<name>` carries personalized
14
+ payload projections under their independent revision fences; stale
15
+ revisions are fenced. Works in Node and
16
+ in the browser runtime.
17
+
3
18
  ## 0.14.0 - 2026-08-23
4
19
 
5
20
  - Add `solid-objects/database/shared-sqlite-wasm`, the transparent
package/README.md CHANGED
@@ -18,8 +18,9 @@ reminders, the effects, and the realtime invalidations in the database the
18
18
  application already operates.
19
19
 
20
20
  The same runtime also runs inside a browser worker on SQLite WASM, with
21
- durable actor state in the origin's private file system. See
22
- [Solid Objects in the browser](#solid-objects-in-the-browser).
21
+ durable actor state in the origin's private file system, and its offline
22
+ writes can replay onto a Node **or Rails** backend over one shared wire
23
+ contract. See [Solid Objects in the browser](#solid-objects-in-the-browser).
23
24
 
24
25
  > **Early release:** the correctness core has automated coverage. That coverage
25
26
  > includes the supported databases, the Chromium browser client, the browser
@@ -333,9 +334,35 @@ Two companions complete the local-first story:
333
334
  every operation, and other tabs invoke through a `BroadcastChannel` client
334
335
  by name.
335
336
  - `solid-objects/transmit` drains the transactional effects outbox to a
336
- server runtime with at-least-once delivery, per-actor order, and an
337
- idempotent server ingest, so offline writes reconcile when the network
338
- returns.
337
+ server with at-least-once delivery, per-actor order, and an idempotent
338
+ server ingest, so offline writes reconcile when the network returns.
339
+
340
+ ### The backend can be Rails, not only Node
341
+
342
+ The browser runtime does not require a Node server behind it. The transmit
343
+ wire contract is shared with the Ruby gem
344
+ ([solid-objects-ruby](https://github.com/cardmagic/solid-objects-ruby)):
345
+ `SolidObjects::Transmission.receive` accepts the same envelopes as the Node
346
+ ingest `receiveTransmitEnvelope`, dedups on the same `transmit:<effectId>`
347
+ key, and both repositories pin the contract with one shared fixture file.
348
+ A browser front end on `solid-objects/browser/host` inside a Rails
349
+ application therefore replays its offline writes directly onto Ruby server
350
+ actors — no Node service in between:
351
+
352
+ ```ruby
353
+ class TransmitController < ApplicationController
354
+ def create
355
+ head :forbidden and return unless authenticated_device?
356
+
357
+ SolidObjects::Transmission.receive(JSON.parse(request.body.read))
358
+ head :ok
359
+ end
360
+ end
361
+ ```
362
+
363
+ The Ruby side of the family shipped in `solid_objects` 0.14.0, released the
364
+ same day as this package's 0.14.0
365
+ ([solid-objects-ruby#49](https://github.com/cardmagic/solid-objects-ruby/pull/49)).
339
366
 
340
367
  The wire shapes are documented in the
341
368
  [browser protocol](docs/browser-protocol.md), the API in the
@@ -1,6 +1,6 @@
1
1
  const INSTALL_COMMAND = "npm install solid-objects";
2
2
  const AGENT_PROMPT = "where would the solid-objects library be best used in this app?";
3
- const DOCUMENTATION_URL = "https://solidobjects.dev/node";
3
+ const DOCUMENTATION_URL = "https://solidobjects.dev/js";
4
4
  export function formatQuickstartPlan(plan) {
5
5
  return [
6
6
  "Solid Objects quickstart",
@@ -1 +1 @@
1
- {"version":3,"file":"quickstart-report.js","sourceRoot":"","sources":["../../examples/quickstart-report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickstart-report.js","sourceRoot":"","sources":["../../examples/quickstart-report.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Actor, ActorClass } from "./actor.js";
2
2
  import type { SolidObjectsRuntime } from "./runtime.js";
3
- import type { AsyncInvocationOptions, DeepReadonly, DestroyOptions, InvocationOptions, JsonObject, MessageStatus, SnapshotOptions } from "./types.js";
3
+ import type { AsyncInvocationOptions, DeepReadonly, DestroyOptions, InvocationOptions, JsonObject, JsonValue, MessageStatus, SnapshotOptions } from "./types.js";
4
4
  type FunctionKeys<Value> = {
5
5
  [Key in keyof Value]-?: Value[Key] extends (...argumentsValue: any[]) => any ? Key : never;
6
6
  }[keyof Value];
@@ -63,7 +63,21 @@ export declare class ActorMessageSenderCore<ActorType extends Actor> {
63
63
  constructor(reference: ActorReferenceCore<ActorType>);
64
64
  with(options: AsyncInvocationOptions): ActorMessageSender<ActorType>;
65
65
  }
66
+ export interface LiveSignal<Value> {
67
+ get(): Value;
68
+ }
69
+ export type ActorLiveSignals<ActorType extends Actor> = {
70
+ readonly snapshot: LiveSignal<ActorSnapshot<ActorType> | undefined>;
71
+ readonly payloads: {
72
+ readonly [name: string]: LiveSignal<DeepReadonly<JsonValue> | undefined>;
73
+ };
74
+ } & {
75
+ readonly [name: string]: LiveSignal<DeepReadonly<JsonValue> | undefined>;
76
+ };
77
+ export type LiveSignalsFactory = (reference: ActorReferenceCore<Actor>) => object;
78
+ export declare function installLiveSignals(factory: LiveSignalsFactory): void;
66
79
  export declare class ActorReferenceCore<ActorType extends Actor> {
80
+ #private;
67
81
  readonly send: ActorMessageSender<ActorType>;
68
82
  readonly runtime: SolidObjectsRuntime;
69
83
  readonly actorClass: ActorClass<ActorType>;
@@ -80,6 +94,7 @@ export declare class ActorReferenceCore<ActorType extends Actor> {
80
94
  queries: ReadonlySet<string>;
81
95
  });
82
96
  with(options: InvocationOptions): ActorInvoker<ActorType>;
97
+ get live(): ActorLiveSignals<ActorType>;
83
98
  snapshot(options?: SnapshotOptions): Promise<ActorSnapshot<ActorType>>;
84
99
  destroy(options?: DestroyOptions): Promise<boolean>;
85
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
package/dist/reference.js CHANGED
@@ -45,6 +45,10 @@ export class ActorMessageSenderCore {
45
45
  return createMessageSender(this.reference, options);
46
46
  }
47
47
  }
48
+ let liveSignalsFactory;
49
+ export function installLiveSignals(factory) {
50
+ liveSignalsFactory = factory;
51
+ }
48
52
  export class ActorReferenceCore {
49
53
  send;
50
54
  runtime;
@@ -65,6 +69,14 @@ export class ActorReferenceCore {
65
69
  with(options) {
66
70
  return createInvoker(this, options);
67
71
  }
72
+ #live;
73
+ get live() {
74
+ if (!liveSignalsFactory) {
75
+ throw new Error('ref.live is inactive; import "solid-objects/signals" once to enable live signals');
76
+ }
77
+ this.#live ??= liveSignalsFactory(this);
78
+ return this.#live;
79
+ }
68
80
  snapshot(options = {}) {
69
81
  return this.runtime.snapshot(this, options);
70
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type { ActorLiveSignals, LiveSignal } from "./reference.js";
2
+ export interface LiveSignalsConfiguration {
3
+ lingerMilliseconds?: number;
4
+ retryMilliseconds?: number;
5
+ }
6
+ export declare function configureLiveSignals(configuration: LiveSignalsConfiguration): void;
7
+ export declare function liveEntryCount(runtime: object): number;
8
+ export declare function activeLiveSubscriptionCount(): number;
9
+ //# sourceMappingURL=signals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"AAWA,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAElE,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AASD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,wBAAwB,GAAG,IAAI,CAgBlF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD"}
@@ -0,0 +1,299 @@
1
+ import { Signal } from "signal-polyfill";
2
+ import { installLiveSignals, } from "./reference.js";
3
+ const SNAPSHOT_KEY = "snapshot";
4
+ const PAYLOADS_KEY = "payloads";
5
+ let lingerMilliseconds = 1_000;
6
+ let retryMilliseconds = 1_000;
7
+ const openSessions = new Set();
8
+ export function configureLiveSignals(configuration) {
9
+ if (configuration.lingerMilliseconds !== undefined) {
10
+ if (!Number.isFinite(configuration.lingerMilliseconds) ||
11
+ configuration.lingerMilliseconds < 0) {
12
+ throw new TypeError("lingerMilliseconds must be a non-negative number");
13
+ }
14
+ lingerMilliseconds = configuration.lingerMilliseconds;
15
+ }
16
+ if (configuration.retryMilliseconds !== undefined) {
17
+ if (!Number.isFinite(configuration.retryMilliseconds) || configuration.retryMilliseconds < 0) {
18
+ throw new TypeError("retryMilliseconds must be a non-negative number");
19
+ }
20
+ retryMilliseconds = configuration.retryMilliseconds;
21
+ }
22
+ }
23
+ export function liveEntryCount(runtime) {
24
+ const entries = entriesByRuntime.get(runtime);
25
+ if (!entries)
26
+ return 0;
27
+ let alive = 0;
28
+ for (const reference of entries.values()) {
29
+ if (reference.deref() !== undefined)
30
+ alive += 1;
31
+ }
32
+ return alive;
33
+ }
34
+ export function activeLiveSubscriptionCount() {
35
+ return openSessions.size;
36
+ }
37
+ class LiveActorEntry {
38
+ #reference;
39
+ #states = new Map();
40
+ #mirrors = new Map();
41
+ #snapshotState = new Signal.State(undefined);
42
+ #snapshotMirror;
43
+ #payloadStates = new Map();
44
+ #payloadMirrors = new Map();
45
+ #payloadWatcherCounts = new Map();
46
+ #payloadFences = new Map();
47
+ #payloadsProxy;
48
+ #watcherCount = 0;
49
+ #snapshotWatcherCount = 0;
50
+ #session;
51
+ #linger;
52
+ #instanceId;
53
+ #revision = -1n;
54
+ #refreshing = false;
55
+ #refreshQueued = false;
56
+ #retry;
57
+ constructor(reference) {
58
+ this.#reference = reference;
59
+ }
60
+ signalFor(name) {
61
+ const existing = this.#mirrors.get(name);
62
+ if (existing)
63
+ return existing;
64
+ const state = this.stateFor(name);
65
+ const mirror = new Signal.Computed(() => state.get(), {
66
+ [Signal.subtle.watched]: () => this.retain({ snapshot: false }),
67
+ [Signal.subtle.unwatched]: () => this.release({ snapshot: false }),
68
+ });
69
+ this.#mirrors.set(name, mirror);
70
+ return mirror;
71
+ }
72
+ payloadsProxy() {
73
+ this.#payloadsProxy ??= new Proxy({}, {
74
+ get: (_target, property) => {
75
+ if (typeof property !== "string")
76
+ return undefined;
77
+ return this.payloadSignalFor(property);
78
+ },
79
+ has: (_target, property) => typeof property === "string",
80
+ });
81
+ return this.#payloadsProxy;
82
+ }
83
+ payloadSignalFor(name) {
84
+ const existing = this.#payloadMirrors.get(name);
85
+ if (existing)
86
+ return existing;
87
+ const state = this.payloadStateFor(name);
88
+ const mirror = new Signal.Computed(() => state.get(), {
89
+ [Signal.subtle.watched]: () => {
90
+ this.#payloadWatcherCounts.set(name, (this.#payloadWatcherCounts.get(name) ?? 0) + 1);
91
+ this.retain({ snapshot: false, payloadName: name });
92
+ },
93
+ [Signal.subtle.unwatched]: () => {
94
+ const count = (this.#payloadWatcherCounts.get(name) ?? 1) - 1;
95
+ if (count <= 0)
96
+ this.#payloadWatcherCounts.delete(name);
97
+ else
98
+ this.#payloadWatcherCounts.set(name, count);
99
+ this.release({ snapshot: false });
100
+ },
101
+ });
102
+ this.#payloadMirrors.set(name, mirror);
103
+ return mirror;
104
+ }
105
+ payloadStateFor(name) {
106
+ let state = this.#payloadStates.get(name);
107
+ if (!state) {
108
+ state = new Signal.State(undefined);
109
+ this.#payloadStates.set(name, state);
110
+ }
111
+ return state;
112
+ }
113
+ snapshotSignal() {
114
+ this.#snapshotMirror ??= new Signal.Computed(() => this.#snapshotState.get(), {
115
+ [Signal.subtle.watched]: () => this.retain({ snapshot: true }),
116
+ [Signal.subtle.unwatched]: () => this.release({ snapshot: true }),
117
+ });
118
+ return this.#snapshotMirror;
119
+ }
120
+ stateFor(name) {
121
+ let state = this.#states.get(name);
122
+ if (!state) {
123
+ state = new Signal.State(undefined);
124
+ this.#states.set(name, state);
125
+ }
126
+ return state;
127
+ }
128
+ retain(options) {
129
+ this.#watcherCount += 1;
130
+ if (options.snapshot)
131
+ this.#snapshotWatcherCount += 1;
132
+ if (this.#linger !== undefined) {
133
+ clearTimeout(this.#linger);
134
+ this.#linger = undefined;
135
+ }
136
+ if (!this.#session)
137
+ this.open();
138
+ else if (options.payloadName !== undefined)
139
+ this.sendSubscribe(this.#session);
140
+ else if (options.snapshot)
141
+ void this.refreshSnapshot();
142
+ }
143
+ release(options) {
144
+ this.#watcherCount -= 1;
145
+ if (options.snapshot)
146
+ this.#snapshotWatcherCount -= 1;
147
+ if (this.#watcherCount > 0)
148
+ return;
149
+ if (this.#linger !== undefined)
150
+ clearTimeout(this.#linger);
151
+ this.#linger = setTimeout(() => {
152
+ this.#linger = undefined;
153
+ if (this.#watcherCount === 0)
154
+ this.close();
155
+ }, lingerMilliseconds);
156
+ }
157
+ open() {
158
+ if (this.#retry !== undefined) {
159
+ clearTimeout(this.#retry);
160
+ this.#retry = undefined;
161
+ }
162
+ const session = this.#reference.runtime.realtime.connect({
163
+ authorizationContext: undefined,
164
+ send: (envelope) => this.receive(envelope),
165
+ });
166
+ this.#session = session;
167
+ openSessions.add(this);
168
+ void this.sendSubscribe(session)
169
+ .then(() => this.refreshSnapshot())
170
+ .catch((error) => {
171
+ this.#reference.runtime.settings.logger.warn({
172
+ event: "solid_objects.live_signals.subscribe_failed",
173
+ actorType: this.#reference.actorType,
174
+ actorId: this.#reference.actorId,
175
+ error: error instanceof Error ? error.name : "Error",
176
+ });
177
+ if (this.#session !== session)
178
+ return;
179
+ this.close();
180
+ if (this.#watcherCount === 0)
181
+ return;
182
+ this.#retry = setTimeout(() => {
183
+ this.#retry = undefined;
184
+ if (this.#watcherCount > 0 && !this.#session)
185
+ this.open();
186
+ }, retryMilliseconds);
187
+ });
188
+ }
189
+ sendSubscribe(session) {
190
+ const payloadNames = [...this.#payloadWatcherCounts.keys()];
191
+ return session.receive({
192
+ version: 1,
193
+ action: "subscribe",
194
+ actorType: this.#reference.actorType,
195
+ actorId: this.#reference.actorId,
196
+ ...(payloadNames.length > 0 ? { payloads: payloadNames } : {}),
197
+ });
198
+ }
199
+ close() {
200
+ if (this.#retry !== undefined) {
201
+ clearTimeout(this.#retry);
202
+ this.#retry = undefined;
203
+ }
204
+ const session = this.#session;
205
+ if (!session)
206
+ return;
207
+ this.#session = undefined;
208
+ openSessions.delete(this);
209
+ session.close();
210
+ }
211
+ receive(envelope) {
212
+ if (envelope.kind === "payload") {
213
+ this.receivePayload(envelope);
214
+ return;
215
+ }
216
+ if (envelope.kind !== "invalidation")
217
+ return;
218
+ const revision = BigInt(envelope.revision);
219
+ if (this.#instanceId === envelope.instanceId && revision <= this.#revision)
220
+ return;
221
+ this.#instanceId = envelope.instanceId;
222
+ this.#revision = revision;
223
+ for (const [name, value] of Object.entries(envelope.observables)) {
224
+ this.stateFor(name).set(value);
225
+ }
226
+ void this.refreshSnapshot();
227
+ }
228
+ receivePayload(envelope) {
229
+ const revision = BigInt(envelope.revision);
230
+ const fence = this.#payloadFences.get(envelope.name);
231
+ if (fence && fence.instanceId === envelope.instanceId && revision <= fence.revision)
232
+ return;
233
+ this.#payloadFences.set(envelope.name, { instanceId: envelope.instanceId, revision });
234
+ this.payloadStateFor(envelope.name).set(envelope.payload);
235
+ }
236
+ async refreshSnapshot() {
237
+ if (this.#snapshotWatcherCount === 0)
238
+ return;
239
+ if (this.#refreshing) {
240
+ this.#refreshQueued = true;
241
+ return;
242
+ }
243
+ this.#refreshing = true;
244
+ try {
245
+ const snapshot = await this.#reference.snapshot();
246
+ this.#snapshotState.set(snapshot);
247
+ }
248
+ catch (error) {
249
+ this.#reference.runtime.settings.logger.warn({
250
+ event: "solid_objects.live_signals.snapshot_failed",
251
+ actorType: this.#reference.actorType,
252
+ actorId: this.#reference.actorId,
253
+ error: error instanceof Error ? error.name : "Error",
254
+ });
255
+ }
256
+ finally {
257
+ this.#refreshing = false;
258
+ if (this.#refreshQueued) {
259
+ this.#refreshQueued = false;
260
+ void this.refreshSnapshot();
261
+ }
262
+ }
263
+ }
264
+ }
265
+ const entriesByRuntime = new WeakMap();
266
+ const collectedEntries = new FinalizationRegistry((held) => {
267
+ if (held.entries.get(held.key)?.deref() === undefined)
268
+ held.entries.delete(held.key);
269
+ });
270
+ installLiveSignals((reference) => {
271
+ let entries = entriesByRuntime.get(reference.runtime);
272
+ if (!entries) {
273
+ entries = new Map();
274
+ entriesByRuntime.set(reference.runtime, entries);
275
+ }
276
+ const key = `${reference.actorType} ${reference.actorId}`;
277
+ let entry = entries.get(key)?.deref();
278
+ if (!entry) {
279
+ entry = new LiveActorEntry(reference);
280
+ entries.set(key, new WeakRef(entry));
281
+ collectedEntries.register(entry, { entries, key });
282
+ }
283
+ const resolved = entry;
284
+ return new Proxy({}, {
285
+ get(_target, property) {
286
+ if (typeof property !== "string")
287
+ return undefined;
288
+ if (property === SNAPSHOT_KEY)
289
+ return resolved.snapshotSignal();
290
+ if (property === PAYLOADS_KEY)
291
+ return resolved.payloadsProxy();
292
+ return resolved.signalFor(property);
293
+ },
294
+ has(_target, property) {
295
+ return typeof property === "string";
296
+ },
297
+ });
298
+ });
299
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../src/signals.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.14.0";
1
+ export declare const VERSION = "0.14.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.14.0";
1
+ export const VERSION = "0.14.1";
2
2
  //# sourceMappingURL=version.js.map
package/docs/api.md CHANGED
@@ -29,6 +29,8 @@ generic signatures; this index explains the supported role of every export.
29
29
  only its name in the durable envelope when it changes.
30
30
  - `ObservableBroadcast`: the immutable marker type returned by either helper.
31
31
  - `VERSION`: running package version.
32
+ - `reference.live`: read-only live signals for an actor, enabled by the
33
+ `solid-objects/signals` entry point documented below.
32
34
  - `ActorClass`, `ActorReference`, `ActorMessageSender`, `ActorSnapshot`,
33
35
  `ActorOperationNames`, `ActorQueryNames`, `StagedOperations`, and
34
36
  `ScheduledOperations`: inferred actor-class and fluent-dispatch types.
@@ -492,6 +494,67 @@ The transmit wire contract is shared with the Ruby gem
492
494
  ([solid-objects-ruby#49](https://github.com/cardmagic/solid-objects-ruby/pull/49));
493
495
  `compatibility/transmit-envelopes.json` pins it in both repositories.
494
496
 
497
+ ## `solid-objects/signals`
498
+
499
+ Live signals: the read-side adapter on the proposed standard JavaScript
500
+ signals API. One side-effect import enables `reference.live`:
501
+
502
+ ```typescript
503
+ import "solid-objects/signals"
504
+
505
+ const counter = Counter.ref("page-hits")
506
+ counter.live.count // a read-only signal of the broadcast observable
507
+ counter.live.snapshot // a read-only signal of the authorized snapshot
508
+ ```
509
+
510
+ One property, three tenses: `snapshot.count` is one committed read,
511
+ `await counter.count` asks the actor now, and `counter.live.count` stays
512
+ current. From Lit, `watch(counter.live.count)` with the `SignalWatcher`
513
+ mixin renders it with no further glue; any consumer of the standard
514
+ signals API composes the same way.
515
+
516
+ - `configureLiveSignals(options)`: tune the lifecycle.
517
+ `LiveSignalsConfiguration` carries `lingerMilliseconds` (default one
518
+ second): how long a signal with no watchers keeps its subscription
519
+ before the session closes; and `retryMilliseconds` (default one
520
+ second): how long a still-watched signal waits before it retries a
521
+ denied or failed subscription.
522
+ - `activeLiveSubscriptionCount()` and `liveEntryCount(runtime)`: open
523
+ sessions and live per-actor entries, for diagnostics and leak tests.
524
+ The cache holds entries through weak references: one canonical entry
525
+ per actor for as long as any proxy or signal for it is reachable, so
526
+ two references to one actor can never open competing subscriptions,
527
+ and an entry whose signals are all garbage-collected leaves the cache
528
+ with them.
529
+ - `ActorLiveSignals` and `LiveSignal`: the structural types on
530
+ `reference.live`. `LiveSignal` exposes only `get()`, so the package
531
+ types never require the optional peer; at runtime every signal is a
532
+ standard `Signal.Computed`, read-only by construction.
533
+
534
+ Behavior:
535
+
536
+ - A signal subscribes its actor through an in-process
537
+ `runtime.realtime` session when the first watcher arrives and closes
538
+ the session after the linger when the last watcher leaves. The
539
+ subscription authorizes through `authorizeSubscription` with an
540
+ undefined authorization context.
541
+ - Value-broadcast observables set their named signals from each
542
+ envelope. Invalidation-only observables stay `undefined` by design;
543
+ `live.snapshot` re-fetches the authorized snapshot (coalesced) on
544
+ every accepted envelope, so private-value flows read from there.
545
+ - Personalized payload projections arrive as
546
+ `live.payloads.<name>` signals. A newly watched payload name re-sends
547
+ the subscription with the grown name list, and each payload keeps the
548
+ independent per-name revision fence the wire protocol gives it.
549
+ Payloads evaluate under the live session's authorization context.
550
+ - Envelopes apply only on a monotonic revision advance for the same
551
+ instance, the same fence the browser client uses.
552
+ - `snapshot` and `payloads` are reserved names on `live`; observables
553
+ with those names are shadowed.
554
+ - `signal-polyfill` is an optional peer dependency. Nothing loads it
555
+ until the `solid-objects/signals` entry is imported; `reference.live`
556
+ throws a pointer to that import otherwise.
557
+
495
558
  ## `solid-objects/web`
496
559
 
497
560
  - `createDashboard(options)` creates an immutable `SolidObjectsDashboard` with
package/docs/fit.md CHANGED
@@ -16,7 +16,9 @@ or realtime projections.
16
16
  durable coordination there.
17
17
  - A local-first application needs the same actor model in the browser:
18
18
  durable per-user state on SQLite WASM, one runtime shared across tabs, and
19
- an outbox that syncs to a server runtime when the network allows.
19
+ an outbox that syncs to a server when the network allows. The server side
20
+ can be a Node runtime or a Rails application through the Ruby gem's
21
+ transmit ingest; the wire contract is shared.
20
22
 
21
23
  ## Prefer a row transaction when
22
24
 
package/docs/parity.md CHANGED
@@ -4,7 +4,7 @@ This ledger tracks capability parity with the Ruby `solid_objects` gem.
4
4
  Parity means preserving a capability and its correctness or security boundary,
5
5
  not copying a Rails API into Node.
6
6
 
7
- Reference: Ruby `solid_objects` 0.13.3. The JavaScript package began at the
7
+ Reference: Ruby `solid_objects` 0.14.0. The JavaScript package began at the
8
8
  Ruby design's `0.12` capability generation; that version number did not imply
9
9
  earlier JavaScript releases.
10
10
 
@@ -143,12 +143,23 @@ complete:
143
143
  replay deduplication, and recovery after an offline period, on SQLite,
144
144
  PostgreSQL, and MySQL.
145
145
 
146
+ ## JavaScript-only: live signals
147
+
148
+ `reference.live` (the `solid-objects/signals` entry) adapts committed
149
+ actor state to the proposed standard JavaScript signals API, so
150
+ signal-consuming renderers track actors with no manual registration. No
151
+ Ruby row exists because the slot it fills is already native in Rails:
152
+ the gem's Turbo and Action Cable component surface re-renders partials
153
+ from the same committed observables. Each runtime renders with its
154
+ ecosystem's primitive; the guarantee — views track committed state under
155
+ revision fencing and the same privacy model — is what parity preserves.
156
+
146
157
  ## Shared capability: the transmit family
147
158
 
148
159
  The transmit family is the one part of the browser work that both runtimes
149
- share. The Ruby gem adopts it in
150
- [solid-objects-ruby#49](https://github.com/cardmagic/solid-objects-ruby/pull/49)
151
- (proposals [#47](https://github.com/cardmagic/solid-objects-ruby/issues/47)
160
+ share. The Ruby gem ships it in `0.14.0`
161
+ ([solid-objects-ruby#49](https://github.com/cardmagic/solid-objects-ruby/pull/49),
162
+ from proposals [#47](https://github.com/cardmagic/solid-objects-ruby/issues/47)
152
163
  and [#48](https://github.com/cardmagic/solid-objects-ruby/issues/48)):
153
164
  `SolidObjects::Transmission.receive` is the ingest, and `Actor#transmit`
154
165
  with `register_transmit` is the staging side. Identifiers differ by
package/docs/support.md CHANGED
@@ -18,6 +18,21 @@ The package is ESM-only. PostgreSQL, MySQL, Redis, and SQLite WASM require
18
18
  their optional peer dependency. The Node SQLite adapter has no driver
19
19
  dependency beyond Node.js.
20
20
 
21
+ The browser runtime is tested in Chromium. The APIs it needs are standard,
22
+ so other engines work where those APIs exist; verify them on the exact
23
+ engine you target:
24
+
25
+ - Persistent storage needs OPFS sync access handles in a dedicated worker.
26
+ Chromium has them; Safari added them in 16.4; Firefox added them in 111.
27
+ - The multi-tab hosts need the Web Locks API and `BroadcastChannel`, which
28
+ every current engine provides.
29
+ - An embedded WebView is not the platform browser. Cordova and other
30
+ WKWebView or Android WebView shells can lack OPFS even when the device's
31
+ browser has it. `sqliteWasm({ storage: "persistent" })` fails fast where
32
+ OPFS is missing, and temporary storage still works wherever the WASM
33
+ module loads, so probe the target WebView before you commit to durable
34
+ in-app state.
35
+
21
36
  The browser runtime needs two platform capabilities:
22
37
 
23
38
  - Persistent storage uses the OPFS SAH pool VFS, which needs a secure context
@@ -13,7 +13,7 @@ interface QuickstartCheck {
13
13
 
14
14
  const INSTALL_COMMAND = "npm install solid-objects"
15
15
  const AGENT_PROMPT = "where would the solid-objects library be best used in this app?"
16
- const DOCUMENTATION_URL = "https://solidobjects.dev/node"
16
+ const DOCUMENTATION_URL = "https://solidobjects.dev/js"
17
17
 
18
18
  export function formatQuickstartPlan(plan: {
19
19
  sameIdentityCalls: number
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-objects",
3
- "version": "0.14.0",
3
+ "version": "0.14.1",
4
4
  "description": "Race-free realtime state per application identity, backed by your SQL database",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -78,6 +78,10 @@
78
78
  "types": "./dist/browser/tab-host.d.ts",
79
79
  "import": "./dist/browser/tab-host.js"
80
80
  },
81
+ "./signals": {
82
+ "types": "./dist/signals.d.ts",
83
+ "import": "./dist/signals.js"
84
+ },
81
85
  "./transmit": {
82
86
  "types": "./dist/transmit.d.ts",
83
87
  "import": "./dist/transmit.js"
@@ -121,12 +125,14 @@
121
125
  "pg": "^8.23.0",
122
126
  "prettier": "^3.9.6",
123
127
  "redis": "^6.2.1",
128
+ "signal-polyfill": "^0.2.2",
124
129
  "typescript": "^5.9.0",
125
130
  "vitest": "^4.1.10",
126
131
  "ws": "^8.21.3"
127
132
  },
128
133
  "peerDependencies": {
129
134
  "@sqlite.org/sqlite-wasm": ">=3.50.0-build1",
135
+ "signal-polyfill": ">=0.2.2",
130
136
  "mysql2": "^3.23.3",
131
137
  "pg": "^8.23.0",
132
138
  "redis": "^6.2.1"
@@ -135,6 +141,9 @@
135
141
  "@sqlite.org/sqlite-wasm": {
136
142
  "optional": true
137
143
  },
144
+ "signal-polyfill": {
145
+ "optional": true
146
+ },
138
147
  "mysql2": {
139
148
  "optional": true
140
149
  },