Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 30 additions & 12 deletions design/30-slices.md
Original file line number Diff line number Diff line change
Expand Up @@ -4467,7 +4467,7 @@ operations, fixture ownership, package visibility, and the proof that replaces t
Presentation's scene layer, republishing external packages, moving fixture content back
from Content, or adopting a companion's design-state corpus wholesale.

### [ ] W104 — Release 0.11 Compatibility Sweep {#w104}
### [x] W104 — Release 0.11 Compatibility Sweep {#w104}

**Delivers:** Existing campaign, save, replay, host, and package consumers can move from 0.10 to
the additive candidate without silently changing behaviour.
Expand All @@ -4479,27 +4479,45 @@ the additive candidate without silently changing behaviour.
runner, host/service adapters, package archive assertions, and consumer smoke projects.
- **Depends on:** [W93](#w93)–[W103](#w103) complete. This is the first unit allowed to call
their combined result a release candidate baseline.
- **Status:** Not started.
- **Status:** Landed — all seven criteria confirmed met; closed by issue #392.
- **Done when:**
- W104.1 A committed manifest names every 0.10 built-in campaign/version, representative
- [x] W104.1 A committed manifest names every 0.10 built-in campaign/version, representative
active and ended save for each kind, every replay fixture, both hosts, and the packed
public consumer surface; the sweep fails if an entry disappears without an explicit
replacement/evidence note.
- W104.2 Every 0.10 campaign source builds with all 0.11 additive fields omitted and produces
replacement/evidence note. Closed by PR #448: `scripts/w104-manifest.test.ts` names every
0.10 built-in campaign/version and the save/compat-baseline fixture sets, on top of the
hosts/packed-consumer-surface entries PR #447 added to `regressionManifest.test.ts`.
- [x] W104.2 Every 0.10 campaign source builds with all 0.11 additive fields omitted and produces
the same canonical runtime content, initial projection, available actions, and Tier-1/2
findings as its recorded 0.10 baseline unless a separately approved correction is named.
- W104.3 Every 0.10 save loads or migrates according to its recorded version boundary, with
Closed by PR #448: `fixtures/compat/v0.10.0/*.json` freezes the canonical initial `Scene`
and Tier-1/2 findings per built-in campaign, captured at the `v0.10.0` tag; a HEAD rerun
is byte-identical across all five entries.
- [x] W104.3 Every 0.10 save loads or migrates according to its recorded version boundary, with
unchanged projection/outcome for defaulted additions and no partial write on failure.
- W104.4 Every pre-existing replay receives the same verdict and byte-identical outcome; any
Closed by PR #448: `fixtures/saves/*.json` (one active/ended pair per kind) load through
a real `SessionStore.loadGame` and match an independent re-run; a tampered-checksum case
proves no partial write.
- [x] W104.4 Every pre-existing replay receives the same verdict and byte-identical outcome; any
intentionally migrated fixture is separately identified and proves
`replayCompatible: false` rather than silently replacing its golden file.
- W104.5 The text client, MCP server, static host and Adventures/service-contract integration
`replayCompatible: false` rather than silently replacing its golden file. Closed by
PR #447: 29 fixtures replayed against `v0.10.0`'s own committed corpus, byte-identical.
- [x] W104.5 The text client, MCP server, static host and Adventures/service-contract integration
pass against the same engine archive and use only the declared SessionStore surface.
- W104.6 A clean pack contains the asserted files and no private source/plans, installs into
Closed by PR #452, after PR #449 covered the in-repository text client and MCP server via
the client-boundary ESLint rule and their own API-coverage suites: the engine packed at
`e52e7a1` was re-vendored into `SubZeroDev.Platform`, `SubZeroDev.Adventures`, and
`SubZeroDev.ServiceContract`, each passing its full suite with no reach past
`SessionStore`/`Portable*`/`fromPortable`. Recorded as a point-in-time proof, not a
standing cross-repo CI gate, since none of the three repos live inside this one.
- [x] W104.6 A clean pack contains the asserted files and no private source/plans, installs into
the lockfile-backed consumer smoke, and compiles/runs all public and `/authoring`
examples without workspace resolution.
- W104.7 The compatibility sweep runs from one documented command/CI job and exits non-zero
examples without workspace resolution. Closed by PR #447: clean tarball, no workspace
resolution, `/authoring` exports exercised in the consumer smoke.
- [x] W104.7 The compatibility sweep runs from one documented command/CI job and exits non-zero
with the exact artifact that drifted; its green result and baseline commit are recorded.
Closed by PR #447: `build/Test-CompatibilitySweep.ps1` composes typecheck/lint/test, the
replay oracle, and the packed-tarball consumer smoke into one documented command.
- **Out of scope:** preserving undocumented implementation details, treating an approved bug
fix as a compatibility failure without its evidence, publishing a package, or accepting
new feature work after the baseline is cut.
Expand Down
2 changes: 1 addition & 1 deletion design/TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@

### [x] W103 — Companion Contracts and Ownership Reconciliation {#w103}

### [ ] W104 — Release 0.11 Compatibility Sweep {#w104}
### [x] W104 — Release 0.11 Compatibility Sweep {#w104}

### [ ] W105 — Documentation and Landing Publication Review {#w105}

Expand Down
1 change: 0 additions & 1 deletion design/state-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ rendered here.
| milestone/6 | #292 | Content packs compose at campaign granularity, but dynamic content injection needs node granularity | — | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/6 | #293 | A session belongs to exactly one campaign, and nothing decides what happens if content spans two | — | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/1 | #300 | Campaign sources here are fixtures now, but nothing in the tree says so | — | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/6 | #392 | W104 — Release 0.11 Compatibility Sweep | W104.1, W104.2, W104.3, W104.4, W104.5, W104.6, W104.7 | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/6 | #393 | W105 — Documentation and Landing Publication Review | W105.1, W105.2, W105.3, W105.4, W105.5, W105.6, W105.7 | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/6 | #394 | W106 — Tracker Evidence Closure | W106.1, W106.2, W106.3, W106.4, W106.5, W106.6, W106.7 | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
| milestone/6 | #395 | W107 — 0.11 Release Candidate Verification | W107.1, W107.2, W107.3, W107.4, W107.5, W107.6, W107.7 | `f0735fc59fcfd879911771fefdeb1f41cc90f252` |
Expand Down
4 changes: 2 additions & 2 deletions design/state/work/392.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# work/392
Issue: 392
Title: W104 — Release 0.11 Compatibility Sweep
State: OPEN
State: CLOSED
Rank: milestone/6
MirroredAt: f0735fc59fcfd879911771fefdeb1f41cc90f252
MirroredAt: e52e7a104311c3afa431d412f3ef8f778d402ba1
Criteria: W104.1, W104.2, W104.3, W104.4, W104.5, W104.6, W104.7
42 changes: 30 additions & 12 deletions docs/docs/engine/TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -4462,7 +4462,7 @@ operations, fixture ownership, package visibility, and the proof that replaces t
Presentation's scene layer, republishing external packages, moving fixture content back
from Content, or adopting a companion's design-state corpus wholesale.

### [ ] W104 — Release 0.11 Compatibility Sweep {#w104}
### [x] W104 — Release 0.11 Compatibility Sweep {#w104}

**Delivers:** Existing campaign, save, replay, host, and package consumers can move from 0.10 to
the additive candidate without silently changing behaviour.
Expand All @@ -4474,27 +4474,45 @@ the additive candidate without silently changing behaviour.
runner, host/service adapters, package archive assertions, and consumer smoke projects.
- **Depends on:** [W93](#w93)–[W103](#w103) complete. This is the first unit allowed to call
their combined result a release candidate baseline.
- **Status:** Not started.
- **Status:** Landed — all seven criteria confirmed met; closed by issue #392.
- **Done when:**
- W104.1 A committed manifest names every 0.10 built-in campaign/version, representative
- [x] W104.1 A committed manifest names every 0.10 built-in campaign/version, representative
active and ended save for each kind, every replay fixture, both hosts, and the packed
public consumer surface; the sweep fails if an entry disappears without an explicit
replacement/evidence note.
- W104.2 Every 0.10 campaign source builds with all 0.11 additive fields omitted and produces
replacement/evidence note. Closed by PR #448: `scripts/w104-manifest.test.ts` names every
0.10 built-in campaign/version and the save/compat-baseline fixture sets, on top of the
hosts/packed-consumer-surface entries PR #447 added to `regressionManifest.test.ts`.
- [x] W104.2 Every 0.10 campaign source builds with all 0.11 additive fields omitted and produces
the same canonical runtime content, initial projection, available actions, and Tier-1/2
findings as its recorded 0.10 baseline unless a separately approved correction is named.
- W104.3 Every 0.10 save loads or migrates according to its recorded version boundary, with
Closed by PR #448: `fixtures/compat/v0.10.0/*.json` freezes the canonical initial `Scene`
and Tier-1/2 findings per built-in campaign, captured at the `v0.10.0` tag; a HEAD rerun
is byte-identical across all five entries.
- [x] W104.3 Every 0.10 save loads or migrates according to its recorded version boundary, with
unchanged projection/outcome for defaulted additions and no partial write on failure.
- W104.4 Every pre-existing replay receives the same verdict and byte-identical outcome; any
Closed by PR #448: `fixtures/saves/*.json` (one active/ended pair per kind) load through
a real `SessionStore.loadGame` and match an independent re-run; a tampered-checksum case
proves no partial write.
- [x] W104.4 Every pre-existing replay receives the same verdict and byte-identical outcome; any
intentionally migrated fixture is separately identified and proves
`replayCompatible: false` rather than silently replacing its golden file.
- W104.5 The text client, MCP server, static host and Adventures/service-contract integration
`replayCompatible: false` rather than silently replacing its golden file. Closed by
PR #447: 29 fixtures replayed against `v0.10.0`'s own committed corpus, byte-identical.
- [x] W104.5 The text client, MCP server, static host and Adventures/service-contract integration
pass against the same engine archive and use only the declared SessionStore surface.
- W104.6 A clean pack contains the asserted files and no private source/plans, installs into
Closed by PR #452, after PR #449 covered the in-repository text client and MCP server via
the client-boundary ESLint rule and their own API-coverage suites: the engine packed at
`e52e7a1` was re-vendored into `SubZeroDev.Platform`, `SubZeroDev.Adventures`, and
`SubZeroDev.ServiceContract`, each passing its full suite with no reach past
`SessionStore`/`Portable*`/`fromPortable`. Recorded as a point-in-time proof, not a
standing cross-repo CI gate, since none of the three repos live inside this one.
- [x] W104.6 A clean pack contains the asserted files and no private source/plans, installs into
the lockfile-backed consumer smoke, and compiles/runs all public and `/authoring`
examples without workspace resolution.
- W104.7 The compatibility sweep runs from one documented command/CI job and exits non-zero
examples without workspace resolution. Closed by PR #447: clean tarball, no workspace
resolution, `/authoring` exports exercised in the consumer smoke.
- [x] W104.7 The compatibility sweep runs from one documented command/CI job and exits non-zero
with the exact artifact that drifted; its green result and baseline commit are recorded.
Closed by PR #447: `build/Test-CompatibilitySweep.ps1` composes typecheck/lint/test, the
replay oracle, and the packed-tarball consumer smoke into one documented command.
- **Out of scope:** preserving undocumented implementation details, treating an approved bug
fix as a compatibility failure without its evidence, publishing a package, or accepting
new feature work after the baseline is cut.
Expand Down
Loading