Repository navigation
Release v4.153.0
Summary
Screenplay now records which event revisions a release shipped, and every change through the MCP tools respects it: events that were never released can be edited in place, and released ones can only change through a new generation.
Added
screenplay baseline admit <root> --release <label>records every current and historical event revision with its resolved stored shape in.screenplay/release-baseline.json, a committed sidecar with a published JSON schema.--from-esm <file>admits from the canonical model a release shipped. Admission only ever adds entries, refuses a changed revision, and never runs implicitly. (#686)screenplay baseline check <root>exits 1 when a baselined revision changed or is missing and 2 when the baseline is unreadable, so CI can gate edits made outside the MCP tools. (#686)- MCP:
screenplay_list_release_baselinepages the admitted revisions with their current status,read-proposal view=release-baselineshows a proposal's effect on them, andopen-workspaceandworkspace-statereport the baseline's status, revision and violations. (#686)
Changed
screenplay_propose_propertyandscreenplay_propose_renamereport each event revision'smutability. Without a baseline nothing changes. Revisions outside the baseline are edited in place without choosingnewGenerationoreventNeverPersisted, and their renames add no pin. Baselined revisions refuse in-place edits andeventNeverPersistedwithBaselinedRevisionImmutableand accept onlynewGeneration. (#686)- Every proposal and every apply checks the candidate against the baseline: a change to a baselined revision's stored shape, including through a concept, composite type or enum it uses, refuses with
BaselinedRevisionChanged, a removed one withBaselinedRevisionMissing, and a baseline that changed since the proposal withStaleReleaseBaseline. An unreadable baseline blocks only proposals that change event contracts. (#686)