@cratis/pi 7.38.0 → 7.38.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.
- package/package/corpus/skills/cratis-screenplay-model-authoring/references/screen-authoring-workflow.md +3 -1
- package/package/corpus/skills/cratis-screenplay-ui-composition/SKILL.md +1 -1
- package/package/corpus/skills/cratis-screenplay-ui-composition/references/screen-composition-contract.md +4 -0
- package/package/corpus/skills/cratis-stage-rendering-and-sandbox/references/admission.md +1 -1
- package/package.json +1 -1
|
@@ -182,7 +182,9 @@ materializes the published `Cratis.Screenplay.CanonicalCorpus` folder source (so
|
|
|
182
182
|
is never copied), replays the MCP transcript with the revision-checked column edit, renders the edited folder and
|
|
183
183
|
requires the column in the generated `scene.json`. The pins live in `screens-smoke.json` and follow the verified
|
|
184
184
|
vector above; the corpus package is the one that records that vector. The corpus verification job runs it on every
|
|
185
|
-
change.
|
|
185
|
+
change. With `SCREENS_SMOKE_BROWSER=1` (the CI job sets it) it also runs the edited folder with `cratis run`
|
|
186
|
+
and checks the edited column and a created row in Chromium with the pinned Playwright, so the browser step below runs in
|
|
187
|
+
corpus CI too; locally it needs Docker.
|
|
186
188
|
|
|
187
189
|
## Edit, render, run and see it in the browser
|
|
188
190
|
|
|
@@ -228,7 +228,7 @@ same typed navigate binding a screen action uses.
|
|
|
228
228
|
(`contributions.md`). An explicit override for when nearest-enclosing is not the point you mean is
|
|
229
229
|
not in the language. The screens-release vector
|
|
230
230
|
(canonical `ScreenComposition` corpus v1) adds typed screen composition; public
|
|
231
|
-
CLI 3.
|
|
231
|
+
CLI 3.53.1 renders it and passes the browser run. Report a refused form as a
|
|
232
232
|
capability gap, never a flat-list fallback; Studio production proof is separate.
|
|
233
233
|
|
|
234
234
|
## Interactions — what a click does
|
|
@@ -63,6 +63,10 @@ profile and recovering a rendered application shipped in Cratis/cli#301. (Histor
|
|
|
63
63
|
cratis 3.28.x renderers authored screens were reported as omitted/default composition; Stage 4.73.1
|
|
64
64
|
(CLI 3.53.1) renders navigation contributions and toolbars, and `CLI-RENDER-015`, which refused them, is retired.)
|
|
65
65
|
|
|
66
|
+
On CLI 3.53.1 (`cratis/stage:4.73.1`, corpus 4.137.0+) the browser run also passes a module-level navigation contribution, an unlisted
|
|
67
|
+
screen reached through the hierarchy, and a toolbar item that opens a dialog with its `presentation` (icon-only, hint)
|
|
68
|
+
honoured (Cratis/Screenplay#665, Cratis/Stage#336 and #337).
|
|
69
|
+
|
|
66
70
|
## Data context and component bindings
|
|
67
71
|
|
|
68
72
|
A component instance is a presentation of a typed Screenplay data context. The
|
|
@@ -70,7 +70,7 @@ model owner's decision.
|
|
|
70
70
|
| `STAGE-ESM-005` | Code validation or rule predicate bodies; or a command beyond the first capability (optional event property, event revision other than the first, validation or requirement that cannot be rendered, no `produces`) | Use declarative validation; non-initial event generations are not rendered |
|
|
71
71
|
| `STAGE-ESM-006` | `produces` that cannot render without changing its destination or mappings (`produces when`, literal or computed mappings, `for` not a command identifier, mappings not one-to-one with event properties, duplicate tags) | Map properties one to one; conditional outcomes (`produces when`) are a different behavior, so gap-fill unless the owner accepts splitting them into commands |
|
|
72
72
|
| `STAGE-ESM-007`, `-008`, `-009` | Projection count per read model (exactly one projection or reducer each); unresolvable properties or no single read-model transition (**flat** projections only); affected instance not one, not keyed by an event property, or not the event-source identity (flat projections only) | One projection per read model; see "Projections" below |
|
|
73
|
-
| `STAGE-ESM-010` | A query is neither an optional snapshot lookup by the read-model identifier nor an observable collection query (a snapshot list
|
|
73
|
+
| `STAGE-ESM-010` | A query is neither an optional snapshot lookup by the read-model identifier nor an observable collection query (for example a snapshot list); each query is checked on its own. Observable list queries (keyed or unkeyed) render since Stage 4.49.0. Through Stage 4.79.0 (so in cratis CLI 3.53.1, which bundles 4.73.1) an optional snapshot lookup whose key concept has validation rules is refused; Stage 4.79.1 renders a scalar validated key, in keyed lookups and filtered observable collections, as its primitive and converts it inside the query, so an out-of-rule key finds no instance instead of failing validation, and still refuses a validated concept inside a composite or collection argument (Stage `v4.79.1` `Source/Rendering.Cratis/Semantics/SemanticCratisAdmission.StateView.cs:117-141`) | Keyed `XById => X optional` queries or `observable` lists; a snapshot list is gap-fill. `filter`, `scoped to`, `performer` queries do not bind (`PLAY0268`) |
|
|
74
74
|
| `STAGE-ESM-011` | A specification cannot render (see the rules below) | Reshape it only if the assertion keeps its meaning; otherwise keep the specification, record the gap, and gap-fill with the specification as the oracle. Never weaken or delete it to get a render |
|
|
75
75
|
| `STAGE-ESM-012` | Generated C# names collide (properties, types, namespaces, constraints) | Rename |
|
|
76
76
|
| `STAGE-ESM-013` | An event-context value other than `$context.occurred` mapped in `produces` | Map a command property when that preserves the meaning; otherwise gap-fill |
|