Skip to content

fix(core): share Bedrock admission coordinator across injectors - #151

Merged
minekube-ai-engineer[bot] merged 1 commit into
mainfrom
fix/split-bedrock-admission-coordinator
Aug 22, 2026
Merged

fix(core): share Bedrock admission coordinator across injectors#151
minekube-ai-engineer[bot] merged 1 commit into
mainfrom
fix/split-bedrock-admission-coordinator

Conversation

@minekube-ai-engineer

Copy link
Copy Markdown

Source: Discord ask-support thread — the exact thread the report came from.

Fixes #144

Root cause

BedrockAdmissionCoordinator was only a just-in-time @Singleton binding. In Velocity's real injector chain (platform → config-loaded child → post-initialize child), Guice created separate JIT singleton instances for the platform, WatchClient, and WatcherRegister. WatchClient therefore minted an admission token on one coordinator and LocalSession staged it on another, rejecting every fresh proposal as expired or superseded.

Fix

  • Bind BedrockAdmissionCoordinator explicitly in CommonModule, guaranteeing all platform/config/post-init children inherit the same parent-scoped instance.
  • Add a regression test reproducing the exact Velocity injector chain and asserting platform, mint, and stage consumers all share one coordinator.

TDD evidence

  • RED on unfixed 0.15.7/current main: platform, mint, and stage resolved as three distinct coordinator objects; direct mint-vs-stage assertSame failed.
  • GREEN after the explicit parent binding.

Verification

  • Focused regression: :velocity:test --tests com.minekube.connect.VelocityBedrockAdmissionCoordinatorScopeTest — passed.
  • Full gate: ./gradlew check on JDK 21 — passed (64 actionable tasks; core, API, Bungee, Spigot, Velocity, event-order, and runtime-isolation checks).
  • Independent pre-commit review: approved with zero blocking or security findings.

@minekube-ai-engineer
minekube-ai-engineer Bot merged commit 9cccb94 into main Aug 22, 2026
2 checks passed
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.

Velocity: session proposals rejected with IllegalStateException ("server channel initializer is unavailable") against a SNAPSHOT Velocity build

0 participants