smith-agents 0.6.0 → 0.6.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/smith/version.rb +1 -1
- data/lib/smith/workflow/split_step_persistence/preparation_claim.rb +8 -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: 988c5dc6e794da7b78889dc17db5801c9ad8ebf99a008a0b043bdc56e7115126
|
|
4
|
+
data.tar.gz: ad4ecd254dd213b16e2b5e27730fed50fdd6491b86d45d5d76f40ba620a0bc33
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e439e1c6cc4cae2feffdb3a258e9abe94dd6f90a7641e76e36784921f09864d53d4d96616823ef2bfb43c56aa5cc9082eb689fffd4fc1464fa51e752f724139f
|
|
7
|
+
data.tar.gz: 6d7bbf59a8b7c5297078af12b08a2b092287c5def28df0dac69cc10553e308abb238512e275166e372b08dcd155b6583e898d91b25b89ef4303ea5da09476eb4
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,15 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- Persist a composite transition's execution namespace with its prepared
|
|
12
|
+
split-step snapshot so prepared- and dispatch-state recovery reproduce the
|
|
13
|
+
exact same plan.
|
|
14
|
+
- Pin composite namespace preparation to Smith-owned implementations so
|
|
15
|
+
subclass method collisions cannot bypass durable plan identity, and release
|
|
16
|
+
the preparation claim cleanly when namespace generation fails.
|
|
17
|
+
|
|
9
18
|
## [0.6.0] - 2026-07-20
|
|
10
19
|
|
|
11
20
|
### Added
|
data/lib/smith/version.rb
CHANGED
|
@@ -33,6 +33,8 @@ module Smith
|
|
|
33
33
|
def finalize_split_step_preparation!(transition, transition_name, key, adapter, persistence_ttl)
|
|
34
34
|
transaction_identity = TransactionIdentity.capture(adapter)
|
|
35
35
|
transition_signature = TransitionContract.capture(transition)
|
|
36
|
+
namespace_preparer = PreparationClaim.instance_method(:prepare_composite_execution_namespace!)
|
|
37
|
+
namespace_preparer.bind_call(self, transition)
|
|
36
38
|
@split_step_mutex.synchronize do
|
|
37
39
|
unless active_split_step_preparation_claim?
|
|
38
40
|
raise WorkflowError, "the split-step preparation claim is no longer active"
|
|
@@ -65,6 +67,12 @@ module Smith
|
|
|
65
67
|
@split_step_preparation_thread.equal?(Thread.current)
|
|
66
68
|
end
|
|
67
69
|
|
|
70
|
+
def prepare_composite_execution_namespace!(transition)
|
|
71
|
+
return unless transition&.parallel? || transition&.fanout?
|
|
72
|
+
|
|
73
|
+
ArtifactIntegration.instance_method(:execution_namespace).bind_call(self)
|
|
74
|
+
end
|
|
75
|
+
|
|
68
76
|
def mark_split_step_prepared!(_adapter)
|
|
69
77
|
@split_step_mutex.synchronize do
|
|
70
78
|
phase = @split_step_transaction_identity ? :prepared_uncommitted : :prepared
|