Repository navigation
Release 11.0.0: production fixes, API cleanup, simplification - #1
Merged
Merged
Conversation
Production fixes: - Searches read unloaded chunks as solid instead of throwing; a search walled in by unloaded terrain reports the new PathStop.TERRAIN_UNLOADED rather than claiming the target unreachable. - Block-change notifications are filtered by instance and applied on the controller's own tick, so edits in other instances or threads no longer replan unrelated routes or fire events off the ticking thread. - close() keeps a finished navigation's outcome instead of re-reporting it as cancelled. API (breaking): - Controllers are created only through NavigationSystem.controller(Entity) or the new controllerBuilder(Entity); the public constructors and builtin() factories, which bypassed admission control, are removed. - Removed DiscreteGroundPathfinder and GroundSearchLimits; search with EntityPathfinder and a NavigationRequest. - Removed notifyBlockChanged(Point), TerrainType.defaultMalus(), the compatibility constructors on PathNode, NavigationPlan, EntityTraversalState and AsyncEntityPathfindingService. - TerrainClassifier is a static utility. - EntityTargets moves to the root package; spliceCounts() returns the exported metrics.SpliceCounts. The main compile fails on any exported signature that names a non-exported type. Cleanup: - Shared helpers replace duplicated collision, footprint, route-length, search-latency, rail, validation and budget code. - Imports normalised across the tree; tests share TestWorlds and GroundSearches fixtures; builder chains no longer restate defaults. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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
PathStop.TERRAIN_UNLOADED); block-change notifications are per-instance and applied on the controller's tick thread;close()keeps a finished outcome.NavigationSystem.controller(...)/controllerBuilder(...);DiscreteGroundPathfinder,GroundSearchLimitsand compatibility overloads removed;EntityTargetsandSpliceCountsare exported;-Xlint:exports -Werrorguards the module boundary.Version bumped to 11.0.0 (major, because public API was removed). Merging publishes it via the Release workflow.
Test plan
./gradlew buildlocally: 605 tests pass, javadoc, examples, published-Minestom compile checkWorldBoundaryE2ETest, close/builder tests🤖 Generated with Claude Code