solid_objects 0.10.1 → 0.10.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28a727648d2afc1ed0cd5be03fd624617db444bf173b289327d8c69e2a4abf80
4
- data.tar.gz: 0f3bb956b7dcda6f993c92d3ce7f24a3ecf93caf0435030fe2e44955eb581c22
3
+ metadata.gz: 1cd348d089d12af0c4ea20a5f163d58b69f4796e7741ed12038301139396baae
4
+ data.tar.gz: e31ad3836b5782ee13f3669eef3645114498e7133dd5f8c561105310f4452867
5
5
  SHA512:
6
- metadata.gz: 6d5ffbb3074eff11b32966560a2ca42dca37dc7c8c9cf1725a9965a40815752379be88f18b6b0b184592931d180f7248d6c01e5344be2b79a29cdde5377ab23f
7
- data.tar.gz: ca700bcc8d86a6939c462be3003b0e649c6a2611289b12064dda9d0f6e3f844cc332e479b355b248e0a97c9073e537b1b99a8ae0cfd7ac454b170bd03bbd9a71
6
+ metadata.gz: 470ca38a3faacd28a05a8f3cd020a353a1a20a9717aad29ec7c0f6cb9be6efbb6e44ef96abcc5a12c2b151b112cdbda47df73da361a94a26ff275bb0dd7d966b
7
+ data.tar.gz: 874fa30b34175212a24ecdc115e4fd187c40f46c0e55ff62def214f5b350a54997b738f37a86991a9c032f7e1b7ec017613aa0cebaa6378c90aa0c02d6457fb5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.2 - 2026-08-10
4
+
5
+ - Load the mailbox when the gem is required. `SolidObjects::Mailbox` was
6
+ reachable only through the caller path, which loads it as a side effect of
7
+ `SolidObjects.client`. The reminder scheduler and the effect executor enqueue
8
+ through it directly and run in `solid_objects start`, a process that never
9
+ calls the client, so both raised
10
+ `NameError: uninitialized constant SolidObjects::ReminderScheduler::Mailbox`.
11
+ Reminders never fired and effect result messages never delivered, while the
12
+ supervisor replaced the dying role over and over. Nothing caught it because
13
+ every test process has already loaded the constant through some other path.
14
+ - Add a load contract test that asks a fresh process what `require
15
+ "solid_objects"` actually defines, and fails when a file stops being loaded
16
+ unless it is listed as deliberately deferred with a reason. This is the class
17
+ of bug that only appears in the standalone worker.
18
+ - Run a due reminder through a real `solid_objects start` worker in the test
19
+ suite, rather than only in process.
20
+
3
21
  ## 0.10.1 - 2026-08-10
4
22
 
5
23
  - Support Trilogy. Adapter selection matched the client name rather than the
data/docs/roadmap.md CHANGED
@@ -18,7 +18,11 @@
18
18
  status, which works on all three adapters; a future version may add narrow
19
19
  ready/claimed membership tables for very large outboxes, as messages already
20
20
  have
21
- - One-shot and recurring reminders with `:latest` or `:all` catch-up
21
+ - One-shot and recurring reminders with `:latest` or `:all` catch-up, exercised
22
+ through a real `solid_objects start` worker as well as in process. They were
23
+ listed here while broken in that worker: the scheduler reached a constant the
24
+ caller path happened to load, so reminders never fired in production and
25
+ every in-process test still passed
22
26
  - Durable observable invalidations, scalar Turbo replacement, keyed ERB
23
27
  components, signed component locals, and authorized replace or morph refresh
24
28
  - Batched component refreshes: components sharing a signed `batch:` collapse to
@@ -1,5 +1,5 @@
1
1
  # rbs_inline: enabled
2
2
 
3
3
  module SolidObjects
4
- VERSION = "0.10.1"
4
+ VERSION = "0.10.2"
5
5
  end
data/lib/solid_objects.rb CHANGED
@@ -55,6 +55,11 @@ require "solid_objects/effect_registry"
55
55
  require "solid_objects/commit_action_registry"
56
56
  require "solid_objects/lease"
57
57
  require "solid_objects/lease_renewer"
58
+ # The reminder scheduler and the effect executor enqueue through the mailbox,
59
+ # and both run in the standalone worker where nothing else has loaded it. It
60
+ # was reachable only through the caller path, so requiring the gem was not
61
+ # enough to run a role that uses it.
62
+ require "solid_objects/mailbox"
58
63
  require "solid_objects/worker"
59
64
  require "solid_objects/effect_executor"
60
65
  require "solid_objects/reminder_scheduler"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Carlson