Skip to content

Admit attached command handlers beside produces - #1075

Merged
woksin merged 3 commits into
mainfrom
screenplay-1068-attached-handlers
Oct 26, 2026
Merged

woksin merged 3 commits into
mainfrom
screenplay-1068-attached-handlers

Conversation

@woksin

@woksin woksin commented Oct 26, 2026

Copy link
Copy Markdown
Contributor

Added

  • Commands can now keep unconditional produces beside an attached handler whose body is a nonempty language-tagged code fence or a resolved file. The pair binds in executable model v23, and produces acts as the handler's fixed result contract. Bodies remain opaque: reference execution still reports body execution as unsupported, and a target must admit the language and implementation separately. (Research source-native command-handler admission without weakening PLAY0800 #1068)

Changed

  • PLAY0035 is retired and no longer reported. Attached handlers without unconditional produces, or without a resolved nonempty body or a known file language, keep reporting PLAY0800.
  • A command that declares more than one attached handler, including across composed command fragments, now reports a duplicate declaration (PLAY0168) instead of letting one body replace the other.

@woksin woksin added the minor New features, non-breaking additions label Oct 26, 2026
@woksin woksin self-assigned this Oct 26, 2026
@woksin

woksin commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Corpus impact: tracked in Cratis/AI#945 (attached handler admission, PLAY0035 retirement, PLAY0800 narrowing, duplicate attached handlers).

Reviewer notes:

  • Owner whole-change review (Claude Opus + GPT Sol) passed with zero findings on the branch merged with main (base 4e4791a).
  • The local gate at f744336 passed: Release build with 0 warnings, Debug specs (18,922; 3 Windows-only skips), Release canonical vectors (725), and JavaScript build, compile, lint and tests (10,639).
  • Windows/Linux desktop, VSIX packaging and external integration lanes are CI-only.
  • Scope is compiler admission only. Stage rendering and execution of attached bodies is tracked separately in Render body-carrying command handlers beside productions in the Cratis target Stage#817 and is not claimed here.

@woksin woksin added the ai-corpus: tracked Language change; the AI corpus update is tracked in a linked Cratis/AI issue or PR label Oct 26, 2026
@woksin
woksin merged commit 747f4ed into main Oct 26, 2026
23 of 27 checks passed
@woksin
woksin deleted the screenplay-1068-attached-handlers branch October 26, 2026 11:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-corpus: tracked Language change; the AI corpus update is tracked in a linked Cratis/AI issue or PR minor New features, non-breaking additions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant