Skip to content

feat(navigation): prepare bounded fly stopping predictor - #17

Draft
Hylfrd wants to merge 1 commit into
masterfrom
codex/prep/prep-fly-stopping
Draft

Hylfrd wants to merge 1 commit into
masterfrom
codex/prep/prep-fly-stopping

Conversation

@Hylfrd

@Hylfrd Hylfrd commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Status

PRODUCT_PREP only. This is a PREPARED provisional candidate under D003_MERGE_HOLD; do not merge. It does not claim final behavioral fidelity.

Change

  • Adds a pure, bounded 30-tick zero-input fly-stopping predictor.
  • Preserves fixed-upstream clamp, float-widened friction, flying vertical decay, Y-X-Z collision clipping, step-up selection, sneak-edge reduction, no-clip behavior, and fall/collision state.
  • Returns typed UNKNOWN for missing, stale, unloaded, incomplete, or invalid evidence/state without exposing partial predictions.
  • Adds no client adapter and changes only the nine authorized simulation/test paths.

Verification

All commands used Gradle 9.5.1 with --no-daemon, normal non-PTY execution, and worktree-local GRADLE_USER_HOME=.gradle/prep-fly-stopping-home. No lock or daemon state was copied.

  • Focused: test --tests dev.hylfrd.farmhelper.navigation.simulation.FlyStoppingSimulatorTest - PASS, 21 tests.
  • Full: test build --rerun-tasks - PASS, 77 suites / 707 tests, 0 failures/errors/skips.
  • validateAccessWidener - NO-SOURCE.
  • verifyDependencyProvenance - PASS (3 runtime dependencies, 1 platform dependency, Loom 1.17.17).

Anchors

  • Fixed upstream eacb323fbde3eff94d4f2ee7baacb059d84b8e3a: PlayerSimulation.java lines 115-177 and 228-371; FlyPathFinderExecutor.java lines 550-561.
  • Base bc069ea1a159bc439440dee78ec45530cf9b5713, tree 2b6e9b8564ec99bddefe1f0a5784e7851013497b.
  • Preserved 95cacda68af33ac602414fbb13d93e3a70f67321 was evidence only; every resulting scoped blob has a distinct object ID.

Composition Risks

  • A later adapter must supply body, ground/no-clip/sneak/step/fall/collision state and raw slipperiness; current PlayerSnapshot/BlockStateSnapshot do not carry the full contract.
  • The adapter must distinguish stale epoch, unloaded chunk, missing data, and complete known-empty collision results before APIs collapse evidence to generic unknown.
  • The predictor intentionally follows the fixed legacy algorithm, not current Minecraft 26.1.2 physics.
  • After D-003 closure, composition requires a different Builder and a different Reviewer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant