Skip to content

Guard unsupported reaction slice admission - #183

Draft
woksin wants to merge 2 commits into
mainfrom
work/e2e-screenplay-automation-semantics
Draft

Guard unsupported reaction slice admission#183
woksin wants to merge 2 commits into
mainfrom
work/e2e-screenplay-automation-semantics

Conversation

@woksin

@woksin woksin commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Added

Extends SemanticSliceKind enum to support Automation and Translation
slice types that Stage #79 needs to render reactor-based slices.

Changes:
- SemanticModel.cs: Added Automation (2) and Translation (3) enum values
- SemanticModelBinder.cs: Added switch cases to map SliceType.Automation
  and SliceType.Translate to the new semantic kinds

This is the Screenplay side of a cross-repository change. Stage will
implement the rendering side using the existing ReactionSliceRenderer.

Verified: 2,302 specs pass, clean Debug build
@woksin woksin self-assigned this Sep 6, 2026
@woksin
woksin marked this pull request as draft September 6, 2026 23:07
@woksin

woksin commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Parent source review found an incomplete contract change. This PR is now draft, not merge-ready.

SemanticModelBinder.BindSlice admits Automation/Translate after this change, but SemanticModelCanonicalJson.SliceKind and SemanticModelRead.ParseSliceKind still support only StateChange/StateView. Adding enum values does not preserve occurrence/effect semantics or implement reactions, and the existing syntax renderer is not a safe substitute for a semantic renderer.

Regression specs are being run against the newly admitted bare slice kinds before correcting the admission boundary. The earlier passing existing suite had no coverage of this new behavior. No dependency or release action is being taken. Independent Sol review attempts exhausted provider quota without a verdict; these are parent source findings, not a completed independent approval.

The enum-only addition admitted slice kinds the canonical semantic serializer cannot represent. Preserve the existing unsupported-syntax diagnostic until portable occurrence and effect semantics exist, rather than failing later as invalid binding.

Retain eight regression facts for bare Automation and Translate inputs. Strict Debug/Release rebuilds, 2,288 language specs and 22 canonical checks pass on net10.0. This corrects the earlier branch commit without rewriting history.
@woksin woksin changed the title feat: add Automation and Translation semantic slice kinds Guard unsupported reaction slice admission Sep 6, 2026
@woksin

woksin commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Corrective commit b850bbe is pushed, preserving the original commit in branch history. The net diff against current main is now only two regression-spec files (eight facts), not new semantic slice kinds.

Red/green evidence:

  • Before correction: 8 executed, 6 passed, 2 failed on the required unsupported-syntax diagnostic. Binding caught the serializer contract error; no uncaught exception or successful compilation was observed.
  • After correction: 2,288/2,288 language specs and 22/22 canonical checks passed on net10.0, including all eight new facts.
  • Strict Debug and Release Rebuilds passed with warnings treated as errors.
  • All four corrective candidate hashes were unchanged during verification. Both production files now exactly match upstream main.

The PR remains draft because independent review has not returned a verdict. This does not implement Automation/Translation semantics or resolve Stage #79. Future work needs actual portable occurrence/effect contracts and a semantic renderer; simply routing to the legacy syntax renderer is not sufficient.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant