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 +4 -4
- data/CHANGELOG.md +18 -0
- data/docs/roadmap.md +5 -1
- data/lib/solid_objects/version.rb +1 -1
- data/lib/solid_objects.rb +5 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1cd348d089d12af0c4ea20a5f163d58b69f4796e7741ed12038301139396baae
|
|
4
|
+
data.tar.gz: e31ad3836b5782ee13f3669eef3645114498e7133dd5f8c561105310f4452867
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
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"
|