Skip to content

Latest commit

 

History

History
94 lines (76 loc) · 4.75 KB

source_reconstruction_2_1.md

File metadata and controls

94 lines (76 loc) · 4.75 KB

Source Reconstruction 2.1 release candidate

Source Reconstruction 2.1 is the compatible follow-up to the published 2.0 tag. It does not redefine the USA/European preservation profiles, their ROM identities, runtime modes, authoring schemas, or fixed-layout capacity rules. Those contracts remain anchored by source-reconstruction-2.0; the 2.1 manifest hashes every inherited section and rejects silent baseline drift.

Accepted delta

The accepted compatible delta adds audible and channel-selectable Sound Studio playback, more faithful native level previews, decoded procedural bonus rooms, and a consolidated semantic assembly layout. Repository preparation adds responsibility-owned Make fragments, categorized command help, a ROM-less scaffold gate, mirrored tool/test responsibility packages behind scripts/run.py, and a self-contained release manifest whose claims resolve only to project-owned evidence. A separate workstation smoke now drives Save, Build, Preview or Play, and dirty-close behavior through all four public studios for both accepted profiles.

The reader-facing documentation was reviewed as one corpus. Short routine notes are consolidated into subsystem and lifecycle guides, the index follows reader tasks, and config/reconstruction/documentation_corpus.json records every document, retained filename family, consolidation, and size exception. The sole label rename registry now lives with reconstruction configuration at config/reconstruction/label_renames.json.

The full substantive commit interval starts immediately after the annotated 2.0 tag at de0b7c764406f5ec2c6c887c0c19272d53f8cae9 and currently ends at 579cd28e04e73ca64e2bdb182f6eadfae8234631. The 30 commits in that interval cover every source, tooling, evidence, and documentation change accepted for the candidate. Later commits may change only the release manifest and this boundary document unless the terminal commit and count are advanced again.

The compatible manifest is self-describing even though its preservation facts remain inherited. It repeats the effective profile inventory, direct runtime matrix, toolchain reference, artifact identities, and licensing declarations from the immutable 2.0 manifest. Every requirement uses structured targets, files, scenarios, and artifacts evidence; the minor aggregate is satisfied by the complete compatible-minor gate.

Important authoring and evidence outputs are now atomically published through a shared same-directory temporary writer. The same policy covers runtime Lua results, and make lint prevents a new Python tool from bypassing the writer.

Public text is also checked as a repository boundary. make validate-public-text scans tracked text and candidate-reachable commit metadata, paths, and historical public-text blobs so removed drafts cannot silently leave non-English material in the release history.

Repository layout

Python tools and tests now occupy mirrored authoring, build, runtime, and validation packages. Public Make targets dispatch them through the stable scripts/run.py entry point, and make lint rejects new uncategorized Python tools. Historical 1.0 and 2.0 tagged trees remain immutable; the current project-owned manifest snapshots use neutral release-line metadata and resolve former script paths through an explicit compatibility map.

Configuration follows the same ownership model: authoring, debugger, reconstruction, and validation manifests live in named subdirectories, while shared revision, toolchain, and release contracts stay at config/ root. make lint rejects a new uncategorized JSON file. The published 2.0 tag and its recorded tagged manifest remain immutable; current validators compare its project-owned fields through the same compatibility map used for moved tools.

Gates

Use the fast contract audit while developing:

make source-2-minor-audit

The complete compatible-minor gate first executes the accepted 2.0 regression gate, including the transitive Source 1.0 checks, and only then validates the 2.1 delta. It also runs make lint as a real public command inside a disposable tracked-only clone, proving that the documented interface does not depend on untracked local files or mutate a clean checkout. Before that command smoke, the gate also exercises the editor workstation actions for USA and Europe:

make source-2-minor-check

The editor interaction check is also available directly as make editor-ui-smoke-profiles; select one revision with make editor-ui-smoke-profile PROFILE=usa|europe.

source-2-minor-pre-tag-check validates the clean tag-ready candidate; source-2-minor-tag-check is reserved for its future annotated published tag. The Japanese profile, systematic relocation, expanded ROMs, and sibling engines remain outside this compatible release.