@cratis/pi 7.70.1 → 7.71.0

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.
@@ -98,6 +98,23 @@ Execution orders authorization → property rules → required reads → derive/
98
98
  message `<ReadModel> '<key>' does not exist.` before evaluating requirements or
99
99
  mappings. Property-rule rejection therefore wins over absence.
100
100
 
101
+ A read key the event store refuses is the same outcome as missing state. Refused
102
+ shapes: empty, whitespace-only, exactly `*`, containing `#` anywhere, or with
103
+ leading or trailing whitespace. A composite key is refused when any part is. The
104
+ check runs before the world is consulted, so such a key rejects with
105
+ `<ReadModel> '<key>' does not exist.` even when an instance is stored at that key.
106
+ Only protected reads change: a command identifier or any other use of the same
107
+ value keeps its meaning. Model read keys as concepts with rules, or as generated
108
+ identifiers, so refused shapes cannot reach a protected read; a specification that
109
+ uses such a key expects the missing-state rejection.
110
+
111
+ Requires Screenplay 4.209.0 (`screenplay --version`) for this outcome in
112
+ `screenplay test`; older compilers answer missing state or, when an instance is
113
+ stored at the key, accept the read. A rendered Arc application or Stage host that
114
+ does not map the store's refusal answers an error response for such a key (a
115
+ server error, or a dependency failure for an empty key) instead of the rejection,
116
+ which is one more reason to keep refused shapes out of read keys.
117
+
101
118
  Decide records the unfiltered fact-log boundary, read key and handled event types.
102
119
  A matching fact after that boundary makes commit return Conflict /
103
120
  DecisionStateChanged with no command facts, including publications. Irrelevant
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratis/pi",
3
- "version": "7.70.1",
3
+ "version": "7.71.0",
4
4
  "description": "Configuration-aware Cratis AI integration for Pi",
5
5
  "type": "module",
6
6
  "files": [