Skip to content

[PREP] Add pure auto-reconnect state machine - #18

Draft
Hylfrd wants to merge 1 commit into
masterfrom
codex/prep/prep-auto-reconnect
Draft

Hylfrd wants to merge 1 commit into
masterfrom
codex/prep/prep-auto-reconnect

Conversation

@Hylfrd

@Hylfrd Hylfrd commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a Minecraft-free AutoReconnect controller over Connection, Screen, and GameState snapshots
  • preserve the pinned CONNECTING/LOBBY/GARDEN routing and exact 5s, 7.5s, and 60s upstream delays
  • add bounded deadlines, fresh-generation fencing, conservative unknown/transition handling, retryable port rejection, and terminal adapter-failure handling
  • expose semantic connection, travel, and screen ports plus idempotent screen-independent stop

Verification

  • focused: .\gradlew.bat test --tests 'dev.hylfrd.farmhelper.feature.reconnect.AutoReconnectControllerTest' --no-daemon --console=plain (14 tests)
  • full test: .\gradlew.bat test --no-daemon --console=plain (699 tests, 0 failures/errors)
  • full build: .\gradlew.bat build --no-daemon --console=plain (includes dependency provenance; access widener is NO-SOURCE)
  • all commands used worktree-local GRADLE_USER_HOME=build\gradle-user-home with no copied lock or daemon state

Upstream anchors

  • fixed upstream: eacb323fbde3eff94d4f2ee7baacb059d84b8e3a
  • source: src/main/java/com/jelly/farmhelperv2/feature/impl/AutoReconnect.java, lines 43-237
  • target 26.1.2 client jar confirms net/minecraft/client/gui/screens/DisconnectedScreen.class

Composition hold

  • PRODUCT_PREP only; D003_MERGE_HOLD
  • no Feature Lifecycle, client runtime, config, failsafe, scheduler, macro, or mouse integration is included
  • post-D003 composition must provide a different Builder and Reviewer
  • composition must establish the single reconnect owner, bind server-target/command/screen adapters, select the local timeout policy, and coordinate macro/failsafe/scheduler/mouse restoration

Status: PREPARED provisional; do not merge as a standalone feature.

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