Fix playtest AI behavior and defer stabilizer regeneration - #57
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix the AI and Aender stability issues found during the 2026-08-23 short playtest:
The stabilizer handoff uses a persistent, save-compatible deferred chunk-reality state so watched terrain and player edits cannot disappear before the existing paced blank/regeneration queues own the work.
Player or developer impact
Animals no longer choose water-crossing Retold flee routes from land. Creepers and Undead hold their ground near an ignited Creeper. Iron Golems no longer start unsolicited fights with exposed Piglins or Endermen. Breaking an Aender Stabilizer removes its forcefield immediately, but watched released terrain stays intact until its last watcher leaves.
The nearby Panda jump noted during the playtest is vanilla baby-sneeze behavior and is intentionally unchanged.
RetoldBlocksregistration is unchanged because the affected behavior belongs to AI targeting/movement and Aender stability ownership.Validation
./gradlew build./gradlew runGameTestServer, when relevantPassed:
./gradlew build(JUnit, PMD, assembly)retold:land_mob_flee_paths_do_not_enter_water— 1/1retold:ignited_creeper_causes_delayed_flight_except_creepers_and_undead— 1/1retold:village_defenders_ignore_neutral_piglins_and_endermen_until_attacked— 1/1retold:aender_stabilizer_release_preserves_terrain_until_eligible— 1/1retold:aender_stability_round_trip_preserves_overlap_counts— 1/1retold:aender_reality_regenerates_only_volatile_chunks— 1/1AenderDeferredReleasePolicyTest— 4/4retold:mob_tps_cow— all five phases below 50 ms/tick, 5.806 ms/tick peakretold:mob_tps_wolf— all five phases below 50 ms/tick, 5.476 ms/tick peakNot performed: subjective client checks and real two-player Aender watch/departure/save-restart testing. The GameTest server does not load the custom Aender dimension. Natural mixed-terrain fleeing, multi-species fuse reactions, and village encounters still need developer in-game confirmation.
AI assistance
Codex traced the owning AI/stability paths, implemented the changes, added tests, updated documentation, and ran the listed validation. The developer supplied the playtest reports and explicitly confirmed the deferred stabilizer-release contract.
Documentation and release notes
CHANGELOG.mdfor player-facing or notable technical changesUpdated implementation status, AI architecture, Aender architecture, risks/issues, TPS records, and release notes.
Visual evidence
Not included. No creative assets or UI were changed, and real Aender multiplayer presentation remains a developer verification item.
Licensing
LICENSE-CODE.md.