Complete Milestone 7 acceptance and binder diagnostics (#84)
Build / build (push) Canceled after 0s

This commit is contained in:
dnorberg committed 2026-10-22 22:32:12 -04:00
1 parent e7e2cf7e5a
commit 98595c83ea
19 files changed
+290 -31

No files matched your search

+72
View File
@@ -0,0 +1,72 @@
# Milestone 7 acceptance — 1.0.0.2
Milestone 7 is complete for the supported NeoForge 1.21.1 feature set. This is
not a claim of total Mystcraft Legacy parity or exhaustive optional-mod
certification. The [current implementation](CURRENT_IMPLEMENTATION.md) is the
up-to-date behavior summary; the [regression matrix](MILESTONE_7_REGRESSION.md)
separates automated evidence from manual scenarios.
## Scope and issue gate
The Gitea audit for issue #84 found no other open issues. Required existing
#14 (cave terrain), #43 (glyph numbers), #44 (sky), and #60 (old-save policy)
were closed. M7 implementation and review issues #75–#83, #85–#90, and
later additions #91–#94 were closed before this acceptance. No required
issue was silently deferred.
| Legacy concept | Rivencraft implementation or deliberate difference |
| --- | --- |
| Cave terrain and writing | Cave terrain uses its cave/Nether biome set and a modern Y=64-start spawn search. Existing non-cave terrain still supports caves as features. See [Age profiles](AGE_PROFILES.md) and [grammar](WRITING_GRAMMAR.md). |
| Libraries | The recognizable Legacy small-library layout and sparse candidate spacing are ported as a structure template with a chest and up to five page-bearing Book Stands. It generates only in Ages and only on suitable surfaces; player-selectable Legacy or Age-only loot is supported. See [Legacy M7 audit](LEGACY_M7_AUDIT.md). |
| Crystal portal and Receptacle | Connected Crystal Blocks support vertical and horizontal portals. The held book stays in the Receptacle; removing it removes the surface. Rivencraft validates loaded bounds and block protection, saves owner pointers, and uses book-travel rules. Optional Immersive Portals supplies a live destination view, with an animated fallback while unavailable. |
| Handheld Linking/Descriptive Books | The used book remains behind as a rendered book entity at the origin. The exact Legacy entity pickup rule is not copied: modern contact pickup is used. Return Links default to disabled but remain configurable. |
| Recipes and discovery | JSON crafting recipes and recipe-book unlocks cover the supported writing/crystal progression. Optional JEI covers the Binder, Writing Desk, and Ink Mixer; a Lectern conversion has no JEI guide. Blank Pages are not craftable. Optional Create/Ponder teaches portal construction. See [JEI review](MILESTONE_7_JEI_REVIEW.md). |
| Models, sounds, and advancements | Legacy-sourced assets are credited in [asset provenance](ASSET_PROVENANCE.md); 1.21.1-compatible models and renderer adaptations are documented in the [visual audit](MILESTONE_7_VISUAL_AUDIT.md). Server-owned advancements cover book, writing, Age, and portal progress; the unimplemented Quinn equivalent is explicitly omitted in [advancement notes](MILESTONE_7_ADVANCEMENTS.md). |
| Numbers, sky, and extra items | Base-25 number glyphs, celestial modifiers and eclipses, Symbol Portfolios, the OP-only Link Modifier, and optional Ruins pages were follow-up additions. Legacy page semantics are adapted to the modern authoring plan rather than a binary copy of 1.12.2 worldgen. |
## Compatibility and migration
NeoForge **21.1.264** is the minimum 21.1 build. A player passed the
singleplayer client with the optional stack, then a local dedicated server
including Immersive Portals, before the minimum was raised. See the
[compatibility decision](MILESTONE_7_COMPATIBILITY_REVIEW.md). JEI
19.69.0.457 and Serene Seasons 10.1.0.9 received their own player checks;
Create/Ponder, Immersive Portals, TerraBlender/biome add-ons, Serene Seasons,
JEI, and Ruins remain optional. Ecliptic Seasons is deliberately not
integrated: its 1.21.1 public API does not support the required live Age
registration and per-Age calendar control. Missing optional mods must not
prevent the core mod from loading.
Known older writing/book, Age-plan, and workstation formats have explicit
migration or stable-default handling. An Age registry and its dimension
folders must be backed up together. Removed mods, missing custom registry
objects, and arbitrary prerelease saves are **not** guaranteed to load.
Retiring an Age through the creative Link Modifier archives its data and
invalidates its UUID; that intentional destructive operation is not a
migration. See the [old-save boundary](MILESTONE_7_REGRESSION.md#old-save-boundary-60).
## Release validation and limits
The 0.6.11.0 regression candidate passed `./gradlew --offline build` and
fresh-world GameTest runs: core **91/91**, generation **129/129**, and
environment **103/103**. The player reported an in-game pass for that
candidate. The 1.0.0.1 release candidate additionally allows Number Pages to
set Celestial Size. The 1.0.0.2 release makes Binder status diagnostics an
OP-only, default-off world setting. Its offline build and core GameTests
passed (93/93), and the player reported an in-game pass. The
preceding 1.0.0.0 candidate passed core and generation GameTests. Its
environment archive stalled in the first 50-test batch, repeatedly printing
its field without completing; it was stopped and is **not** counted as a
1.0.0.0–1.0.0.2 pass. The previous 0.6.11.0 run of that same suite passed 103/103.
The focused sky, season, and number-page in-game checks in the regression
matrix remain useful regression checks, not claimed full-matrix passes. The
Gitea release changelog records the tested JAR and verified SHA-256.
These results do not prove every two-player race, full restart, migration
from every development world, or optional-mod combination. The specific
manual matrix remains in [M7 regression](MILESTONE_7_REGRESSION.md); those
broader combinations are known validation limits, not claimed passes. Modern
chunk and tick budgets, safer portal validation, 1.21.1 world-height and
biome APIs, and the dynamic-dimension backend are deliberate deviations from
Legacy. A complete Legacy worldgen or link-property port is outside this
milestone.