solid-objects 0.12.1 → 0.13.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.
Files changed (115) hide show
  1. package/CHANGELOG.md +57 -1
  2. package/README.md +284 -950
  3. package/dist/actor.d.ts +12 -0
  4. package/dist/actor.d.ts.map +1 -1
  5. package/dist/actor.js +25 -2
  6. package/dist/actor.js.map +1 -1
  7. package/dist/broadcast-worker.d.ts +2 -0
  8. package/dist/broadcast-worker.d.ts.map +1 -1
  9. package/dist/broadcast-worker.js +25 -5
  10. package/dist/broadcast-worker.js.map +1 -1
  11. package/dist/browser/components.d.ts.map +1 -1
  12. package/dist/browser/components.js +4 -1
  13. package/dist/browser/components.js.map +1 -1
  14. package/dist/browser/index.d.ts +1 -0
  15. package/dist/browser/index.d.ts.map +1 -1
  16. package/dist/browser/index.js +8 -0
  17. package/dist/browser/index.js.map +1 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js +13 -1
  20. package/dist/cli.js.map +1 -1
  21. package/dist/configuration.d.ts +3 -0
  22. package/dist/configuration.d.ts.map +1 -1
  23. package/dist/configuration.js +3 -0
  24. package/dist/configuration.js.map +1 -1
  25. package/dist/doctor.d.ts.map +1 -1
  26. package/dist/doctor.js +12 -3
  27. package/dist/doctor.js.map +1 -1
  28. package/dist/effect-worker.d.ts +2 -0
  29. package/dist/effect-worker.d.ts.map +1 -1
  30. package/dist/effect-worker.js +25 -5
  31. package/dist/effect-worker.js.map +1 -1
  32. package/dist/examples/sqlite-quickstart.js +83 -0
  33. package/dist/examples/sqlite-quickstart.js.map +1 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/polling-backoff.d.ts +23 -0
  39. package/dist/polling-backoff.d.ts.map +1 -0
  40. package/dist/polling-backoff.js +33 -0
  41. package/dist/polling-backoff.js.map +1 -0
  42. package/dist/records.d.ts +1 -0
  43. package/dist/records.d.ts.map +1 -1
  44. package/dist/reminder-scheduler.d.ts +2 -0
  45. package/dist/reminder-scheduler.d.ts.map +1 -1
  46. package/dist/reminder-scheduler.js +25 -5
  47. package/dist/reminder-scheduler.js.map +1 -1
  48. package/dist/repository.d.ts +5 -1
  49. package/dist/repository.d.ts.map +1 -1
  50. package/dist/repository.js +15 -4
  51. package/dist/repository.js.map +1 -1
  52. package/dist/runtime.d.ts +4 -0
  53. package/dist/runtime.d.ts.map +1 -1
  54. package/dist/runtime.js +71 -6
  55. package/dist/runtime.js.map +1 -1
  56. package/dist/schema.d.ts.map +1 -1
  57. package/dist/schema.js +15 -4
  58. package/dist/schema.js.map +1 -1
  59. package/dist/version.d.ts +1 -1
  60. package/dist/version.js +1 -1
  61. package/dist/wake-up/postgresql.d.ts.map +1 -1
  62. package/dist/wake-up/postgresql.js +12 -11
  63. package/dist/wake-up/postgresql.js.map +1 -1
  64. package/dist/wake-up.d.ts +1 -1
  65. package/dist/wake-up.d.ts.map +1 -1
  66. package/dist/wake-up.js +11 -10
  67. package/dist/wake-up.js.map +1 -1
  68. package/dist/web/assets.d.ts +4 -0
  69. package/dist/web/assets.d.ts.map +1 -0
  70. package/dist/web/assets.js +11 -0
  71. package/dist/web/assets.js.map +1 -0
  72. package/dist/web/index.d.ts +28 -0
  73. package/dist/web/index.d.ts.map +1 -0
  74. package/dist/web/index.js +642 -0
  75. package/dist/web/index.js.map +1 -0
  76. package/dist/web/node.d.ts +3 -0
  77. package/dist/web/node.d.ts.map +1 -0
  78. package/dist/web/node.js +109 -0
  79. package/dist/web/node.js.map +1 -0
  80. package/dist/web/render.d.ts +64 -0
  81. package/dist/web/render.d.ts.map +1 -0
  82. package/dist/web/render.js +331 -0
  83. package/dist/web/render.js.map +1 -0
  84. package/dist/web/store.d.ts +65 -0
  85. package/dist/web/store.d.ts.map +1 -0
  86. package/dist/web/store.js +303 -0
  87. package/dist/web/store.js.map +1 -0
  88. package/dist/web/types.d.ts +82 -0
  89. package/dist/web/types.d.ts.map +1 -0
  90. package/dist/web/types.js +2 -0
  91. package/dist/web/types.js.map +1 -0
  92. package/dist/worker.d.ts +2 -0
  93. package/dist/worker.d.ts.map +1 -1
  94. package/dist/worker.js +25 -5
  95. package/dist/worker.js.map +1 -1
  96. package/docs/api.md +70 -4
  97. package/docs/architecture.md +20 -11
  98. package/docs/authorization.md +12 -3
  99. package/docs/benchmarks.md +163 -0
  100. package/docs/browser-protocol.md +15 -8
  101. package/docs/comparisons.md +36 -0
  102. package/docs/configuration.md +14 -3
  103. package/docs/correctness.md +23 -0
  104. package/docs/dashboard.md +196 -0
  105. package/docs/fit.md +58 -0
  106. package/docs/operations.md +25 -7
  107. package/docs/parity.md +37 -34
  108. package/docs/releasing.md +6 -4
  109. package/docs/state-and-lifecycle.md +10 -0
  110. package/docs/support.md +39 -0
  111. package/examples/failure-recovery/actor.ts +51 -0
  112. package/examples/failure-recovery/demo.ts +233 -0
  113. package/examples/failure-recovery/worker.ts +46 -0
  114. package/examples/sqlite-quickstart.ts +109 -0
  115. package/package.json +26 -4
package/CHANGELOG.md CHANGED
@@ -1,6 +1,62 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.13.1 - 2026-08-16
4
+
5
+ - Back idle actor, effect, reminder, and broadcast polling off exponentially
6
+ from the configured fast interval to a new one-second idle ceiling. Any
7
+ processed work or wake-up resets the role immediately, and actor polling
8
+ remains capped by the lease-renewal interval.
9
+ - Expose each role's current polling interval and emit
10
+ `solid_objects.polling.interval_changed` instrumentation for every idle,
11
+ work, and wake-up transition.
12
+ - Warn once when live processes share the database without a configured
13
+ cross-process wake-up adapter.
14
+ - Preserve older custom wake-up adapters that return `void`; return `true` for
15
+ notifications and `false` for timeouts from the built-in PostgreSQL, Redis,
16
+ and in-process adapters so adaptive polling can distinguish them.
17
+ - Add a reproducible four-role SQLite idle benchmark.
18
+ - **Behavior change:** `pollingIntervalMilliseconds` is now the fast interval
19
+ after activity, not a constant idle cadence. Existing explicit values back
20
+ off to `idlePollingIntervalMilliseconds`, which defaults to `1_000`. Set
21
+ both options to the same value to preserve a fixed cadence.
22
+
23
+ ## 0.13.0 - 2026-08-16
24
+
25
+ - Replace the exhaustive README with an outcome-first introduction, explicit
26
+ fit and correctness boundaries, sourced comparisons, and factual design
27
+ provenance.
28
+ - Add a packaged SQLite quickstart, a clean-install tarball smoke test, and a
29
+ deterministic multi-process crash and fencing demonstration.
30
+ - Add a reproducible benchmark harness, record locally observed SQLite,
31
+ PostgreSQL 18, and MySQL 8.4 measurements, and label other configurations as
32
+ unmeasured.
33
+ - Add support, contribution, and security policies plus stronger local
34
+ Markdown link validation.
35
+ - **Breaking:** make unwrapped observables invalidation-only by default. They
36
+ continue to detect changes and refresh dependent components without storing
37
+ or sending their values. Wrap a projection in `broadcastValue()` to share
38
+ its scalar value with every authorized actor subscriber.
39
+
40
+ - Add `broadcastInvalidation()` so actors can drive granular component refresh
41
+ without persisting or sending the observable value.
42
+ - Add `broadcastValue()` for the explicit value-bearing observable contract.
43
+ - Extend durable and browser invalidation envelopes with invalidation-only
44
+ observable names.
45
+ - Add the framework-neutral `solid-objects/web` operator dashboard with Fetch
46
+ and Node/Connect mounting, runtime statistics, instance and mailbox detail,
47
+ reminder/effect/broadcast/dead-letter/process views, filtering, paging,
48
+ instance pause/resume, and idempotent dead-letter retry.
49
+ - Deny dashboard data by default through route-specific administration policy,
50
+ require session-backed masked CSRF tokens for actions, escape stored values,
51
+ and serve a strict content security policy.
52
+ - Add immutable dashboard extension routes, tabs, renderer overrides, and
53
+ middleware, plus configurable Chart.js dashboards and live statistics.
54
+ - Preserve downstream request bodies when the Node/Connect dashboard adapter
55
+ cascades a request outside its mount path.
56
+ - Add authorized and public read-only dashboard access modes that omit mutation
57
+ controls, reject POST actions, and require no CSRF session for public demos.
58
+ - Refocus the README and package metadata on native Node.js concurrency,
59
+ realtime state synchronization, and database-backed infrastructure.
4
60
 
5
61
  ## 0.12.1 - 2026-08-13
6
62