You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scenarios are tagged with an explicit list of every spec version they apply to:
specVersions=['2025-06-18','2025-11-25']
Two failure modes:
Every release touches every scenario. When 2026-XX-XX ships, every carried-forward scenario needs its specVersions array extended. Easy to miss one; the spec-version test only catches scenarios with no versions, not scenarios missing the latest version.
No way to express removal/tightening.feat: support "draft" as a first-class spec version target #255 makes --spec-version draft select latest ∪ draft-tagged, but there's no subtraction arm. A SEP that narrows an existing requirement (SEP-986 tightened tool-name format) can't mark the old scenario as "no longer valid in draft" — you'd have to delete it and lose coverage for the dated releases where it still applies.
matchesSpecVersion(scenario, target) becomes introducedIn <= target && (removedIn === undefined || target < removedIn). 'draft' sorts after all dated versions. The seam is already in place from #255.
Separately, pull 'extension' out of SpecVersion — it's a scenario category, not a point on the timeline (see TODO in specVersionToProtocolVersion). Probably becomes an orthogonal extension?: string field.
Scope
Mechanical migration across ~40 scenario declarations + matchesSpecVersion logic + the spec-version tests. No CLI surface change (--spec-version still takes the same values).
One scenario I'm thinking of in this category is the 2025-03 auth backcompat scenarios
Problem
Scenarios are tagged with an explicit list of every spec version they apply to:
Two failure modes:
2026-XX-XXships, every carried-forward scenario needs itsspecVersionsarray extended. Easy to miss one; the spec-version test only catches scenarios with no versions, not scenarios missing the latest version.--spec-version draftselectlatest ∪ draft-tagged, but there's no subtraction arm. A SEP that narrows an existing requirement (SEP-986 tightened tool-name format) can't mark the old scenario as "no longer valid in draft" — you'd have to delete it and lose coverage for the dated releases where it still applies.Proposal
Replace
specVersions: SpecVersion[]with a range:matchesSpecVersion(scenario, target)becomesintroducedIn <= target && (removedIn === undefined || target < removedIn).'draft'sorts after all dated versions. The seam is already in place from #255.Separately, pull
'extension'out ofSpecVersion— it's a scenario category, not a point on the timeline (see TODO inspecVersionToProtocolVersion). Probably becomes an orthogonalextension?: stringfield.Scope
Mechanical migration across ~40 scenario declarations +
matchesSpecVersionlogic + the spec-version tests. No CLI surface change (--spec-versionstill takes the same values).One scenario I'm thinking of in this category is the 2025-03 auth backcompat scenarios