Skip to content

feat(compat): continue Bedrock compatibility improvements - #13

Merged
AlexProgrammerDE merged 136 commits into
mainfrom
t3/bedrock-improvements
Oct 24, 2026
Merged

AlexProgrammerDE merged 136 commits into
mainfrom
t3/bedrock-improvements

Conversation

@AlexProgrammerDE

@AlexProgrammerDE AlexProgrammerDE commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

This PR fixes compatibility issues found during the Bedrock server survey and continues the native movement, inventory, UI, camera and rendering work.

Galaxite custom blocks exhausted Java carrier states and appeared as dirt. The carrier pool now maps the recorded 3,661 states onto 3,340 visuals, reuses compatible visuals at capacity, and resolves shared and orphaned geometry.

Changes

  • Retain completed prediction frames, historical actor geometry, velocity journals and mount ownership checks during correction replay. Suppress duplicate gameplay and audiovisual effects during replay.
  • Preserve native materials and texture alpha through Iris overrides, improve particle and attachable handling, and provide secondary fluids to world queries and vanilla/Sodium meshes.
  • Bind authored storage and cooking actions to the actual connection, menu, presentation and recipe cell. Retain native input context, gesture, cursor snapshots and terminal release ownership.
  • Preserve authored UI inheritance, stable draw order, navigation, held phases, capture and callback ordering. Share native search normalization, item names, cooking captions and collection primitives.
  • Synchronize independent inventory/workbench preferences, render the local-player portrait, and open native player inventory only after Java installs the screen. Distinct opening tokens and serialized acknowledgments protect reopenings from stale close events.
  • Share native recipe bucket ordering and grouped header expansion. Cooking uses the same flat-prefix partitioner; grouped player recipes now have a tested reusable model.

Validation

All four projects build. The final build passes 2,823 tests with 163 optional skips and no failures or errors. Checkstyle and bundled native references pass. All 1,465 core classes match their add-on and proxy copies; all 1,191 client classes match the tested add-on. The standalone packaged core repeats all 4,144 recipe comparisons with its class origin verified. The 105-patch core stack replays successfully.

The recipe model matches 4,128 original Bedrock 1.26.51.1 cases and sixteen retained-state steps. These compare ordering, visible rows, evaluator calls and expansion notifications, with explicit item/evaluator/external callback boundaries.

Earlier integrated checks include sixteen packaged inventory lifecycle regressions, four real survival/creative E-key cycles through ViaProxy/BDS, 672 player-preview reference cases, 1,940 UI input cases and 35 screen regressions. The owning patch notes retain each check's build provenance and supplied boundaries. Controlled cooking projections retain real inventory addresses but remove unfinished controls; they do not establish unchanged authored-screen parity.

Scope and continuation

The user requested merging this completed milestone and continuing in a new generic improvements PR. This merge does not complete the five-part implementation goal or establish full native parity.

The original inventory background/scale, pearl/wind-charge rollback, endless eating and missing locator reports remain unresolved. E opens Java's ordinary inventory presentation today. Full authored player recipes, tabs, search and controller/touch input remain unfinished.

Remaining implementation

Area Remaining work
Movement Finish native input phases, configured history providers, ordinary player sources, complete component admission, exact collision/pose phases and remote interpolation, native shape sources, chunk readiness and near-unloaded consumers, and complete mount lifetime and seat ownership. Verify native trajectories and extend verified standing/boat active use to remaining mounts and authority modes, then reproduce the reported public-server rollback.
Inventory actions Complete physical mode-two delivery, active-device integration, remaining carried-item branches, broader cross-input prediction and authoritative model watchers, cooking recipes/quantities, unchanged authored-screen acceptance, and client-authoritative storage acceptance.
Native screens Supported authored cooking scenes can install and route recipe, tab, filter, and direct layout pointers. Complete native query/text callbacks, help, focus, carried-item, tertiary, remaining device mappings, layout selection history, workstation screens, lifecycle verification, and the reported background/scale issue.
Camera Complete target tracking, splines, attachments, aim assistance, follow-camera execution, and runtime verification.
Rendering Complete attachable bindings and particle contexts/child effects, geometry/tessellation UV transport, emissive material integration and complete native pixel comparisons, native fluid occlusion/heights and simulation, and unresolved legacy visuals.

See player inventory evidence, cooking action evidence, the server survey, and each owning patch's .pr.md for implementation details and verification limits. Private captures, screenshots, original native images and runtime diagnostics are excluded from this PR.

Record the pinned-client dispatch, quantity, source and return constraints for the remaining authored cooking implementation. Keep controlled fixture boundaries and unfinished execution paths explicit so the backend does not inherit Java click-quantity assumptions.
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 119 files, which is 19 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 7b0d9f6 and 7fb88cb.

Files selected for processing: 119
  • docs/bedrock-development-sources.md
  • docs/lobby-survey.md
  • docs/native-cooking-actions.md
  • docs/native-player-inventory.md
  • patches/cubeconverter/series.json
  • patches/cubeconverter/upstreamable/0001-preserve-invisible-bedrock-cubes.patch
  • patches/cubeconverter/upstreamable/0001-preserve-invisible-bedrock-cubes.pr.md
  • patches/viabedrock/deferred/0001-translate-bedrock-actor-events-to-java-statuses.patch
  • patches/viabedrock/deferred/0003-translate-server-authoritative-bedrock-requests.patch
  • patches/viabedrock/deferred/0003-translate-server-authoritative-bedrock-requests.pr.md
  • patches/viabedrock/deferred/0004-expose-bedrock-recipes-and-place-ingredients.patch
  • patches/viabedrock/deferred/0004-expose-bedrock-recipes-and-place-ingredients.pr.md
  • patches/viabedrock/deferred/0008-signal-sustained-bedrock-item-use.patch
  • patches/viabedrock/deferred/0008-signal-sustained-bedrock-item-use.pr.md
  • patches/viabedrock/deferred/0012-retain-bedrock-creative-catalog-entries.patch
  • patches/viabedrock/deferred/0013-embed-completed-break-inventory-actions.patch
  • patches/viabedrock/deferred/0014-translate-bedrock-merchant-inventories-in-core.patch
  • patches/viabedrock/deferred/0015-translate-bedrock-loom-inventories-in-core.patch
  • patches/viabedrock/deferred/0016-synchronize-glide-rockets-with-auth-input.patch
  • patches/viabedrock/deferred/0016-translate-bedrock-cartography-in-core.patch
  • patches/viabedrock/deferred/0021-confirm-survival-offhand-transfers.patch
  • patches/viabedrock/deferred/0021-confirm-survival-offhand-transfers.pr.md
  • patches/viabedrock/deferred/0022-define-bedrock-request-and-recipe-codecs.patch
  • patches/viabedrock/series.json
  • patches/viabedrock/upstreamable/0002-preserve-sparse-properties-and-composed-metadata.patch
  • patches/viabedrock/upstreamable/0008-discard-stale-passenger-links.patch
  • patches/viabedrock/upstreamable/0008-discard-stale-passenger-links.pr.md
  • patches/viabedrock/upstreamable/0015-transport-native-resources-and-sound-commands.patch
  • patches/viabedrock/upstreamable/0015-transport-native-resources-and-sound-commands.pr.md
  • patches/viabedrock/upstreamable/0018-preserve-sparse-actor-spatial-updates.patch
  • patches/viabedrock/upstreamable/0018-preserve-sparse-actor-spatial-updates.pr.md
  • patches/viabedrock/upstreamable/0020-forward-predicted-boat-and-horse-movement.patch
  • patches/viabedrock/upstreamable/0024-ignore-overlapping-subchunk-responses.patch
  • patches/viabedrock/upstreamable/0030-propagate-increased-block-light-incrementally.patch
  • patches/viabedrock/upstreamable/0033-refresh-connected-door-states.patch
  • patches/viabedrock/upstreamable/0034-acknowledge-block-placement-after-server-updates.patch
  • patches/viabedrock/upstreamable/0045-translate-native-block-events-and-sounds.patch
  • patches/viabedrock/upstreamable/0046-refresh-bed-colors-on-repeated-block-updates.patch
  • patches/viabedrock/upstreamable/0054-render-native-block-state-geometry-and-materials.patch
  • patches/viabedrock/upstreamable/0054-render-native-block-state-geometry-and-materials.pr.md
  • patches/viabedrock/upstreamable/0055-use-shulker-facing-from-bedrock-data.patch
  • patches/viabedrock/upstreamable/0064-evaluate-named-actor-properties.patch
  • patches/viabedrock/upstreamable/0064-share-native-float-molang-runtime.patch
  • patches/viabedrock/upstreamable/0065-discard-replaced-dimension-work.patch
  • patches/viabedrock/upstreamable/0071-bound-repeated-block-mapping-diagnostics.patch
  • patches/viabedrock/upstreamable/0073-compose-all-native-actor-flag-words.patch
  • patches/viabedrock/upstreamable/0077-translate-bedrock-npc-conversations.patch
  • patches/viabedrock/upstreamable/0079-finish-transport-initiated-raknet-disconnects.patch
  • patches/viabedrock/upstreamable/0085-resolve-server-effects-relative-to-their-actor.patch
  • patches/viabedrock/upstreamable/0086-transport-native-actor-animation-commands.patch
  • patches/viabedrock/upstreamable/0087-inherit-client-entity-descriptions-across-layers.patch
  • patches/viabedrock/upstreamable/0089-resolve-and-transport-native-camera-instructions.patch
  • patches/viabedrock/upstreamable/0089-resolve-and-transport-native-camera-instructions.pr.md
  • patches/viabedrock/upstreamable/0092-retain-completed-client-prediction-frames.patch
  • patches/viabedrock/upstreamable/0092-retain-completed-client-prediction-frames.pr.md
  • patches/viabedrock/upstreamable/0093-complete-login-before-resource-pack-negotiation.patch
  • patches/viabedrock/upstreamable/0094-synchronize-authoritative-entity-references.patch
  • patches/viabedrock/upstreamable/0095-integrate-authored-native-ui-presentation.patch
  • patches/viabedrock/upstreamable/0095-integrate-authored-native-ui-presentation.pr.md
  • patches/viabedrock/upstreamable/0095-share-native-ui-programs-and-resources.patch
  • patches/viabedrock/upstreamable/0095-share-native-ui-programs-and-resources.pr.md
  • patches/viabedrock/upstreamable/0098-forward-native-spear-jab-transactions.patch
  • patches/viabedrock/upstreamable/0099-bridge-native-actor-picking-hitboxes.patch
  • patches/viabedrock/upstreamable/0101-normalize-native-nbt-floating-values.patch
  • patches/viabedrock/upstreamable/0101-normalize-native-nbt-floating-values.pr.md
  • patches/viabedrock/upstreamable/0101-snapshot-inventory-action-items.patch
  • patches/viabedrock/upstreamable/0101-snapshot-inventory-action-items.pr.md
  • patches/viabedrock/upstreamable/0102-match-native-language-parsing-and-formatting.patch
  • patches/viabedrock/upstreamable/0102-match-native-language-parsing-and-formatting.pr.md
  • patches/viafabricplus-bedrock/series.json
  • patches/viafabricplus-bedrock/upstreamable/0002-native-entities-and-skins.patch
  • patches/viafabricplus-bedrock/upstreamable/0002-native-entities-and-skins.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0003-classic-dressing-room.patch
  • patches/viafabricplus-bedrock/upstreamable/0006-render-character-creator-geometry-and-face-animations.patch
  • patches/viafabricplus-bedrock/upstreamable/0007-join-offline-lan-worlds.patch
  • patches/viafabricplus-bedrock/upstreamable/0008-share-native-actor-and-resource-runtime.patch
  • patches/viafabricplus-bedrock/upstreamable/0008-share-native-actor-and-resource-runtime.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0009-manage-character-creator-accounts-and-wardrobes.patch
  • patches/viafabricplus-bedrock/upstreamable/0009-manage-character-creator-accounts-and-wardrobes.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0010-show-server-creative-items-in-a-bedrock-tab.patch
  • patches/viafabricplus-bedrock/upstreamable/0013-resolve-licensed-native-vanilla-images.patch
  • patches/viafabricplus-bedrock/upstreamable/0014-evaluate-custom-actors-with-shared-animation-graphs.patch
  • patches/viafabricplus-bedrock/upstreamable/0014-evaluate-custom-actors-with-shared-animation-graphs.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0014-reproduce-the-native-bedrock-classic-lightmap.patch
  • patches/viafabricplus-bedrock/upstreamable/0016-render-server-player-costumes.patch
  • patches/viafabricplus-bedrock/upstreamable/0016-reproduce-native-classic-cloud-distance-fade.patch
  • patches/viafabricplus-bedrock/upstreamable/0017-apply-custom-block-shapes.patch
  • patches/viafabricplus-bedrock/upstreamable/0017-apply-custom-block-shapes.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0017-render-equipped-native-pack-models.patch
  • patches/viafabricplus-bedrock/upstreamable/0017-render-equipped-native-pack-models.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0018-preserve-authoritative-bedrock-cartography-results.patch
  • patches/viafabricplus-bedrock/upstreamable/0018-render-native-sidebar-title-images.patch
  • patches/viafabricplus-bedrock/upstreamable/0020-apply-server-movement-and-camera-permissions.patch
  • patches/viafabricplus-bedrock/upstreamable/0021-apply-server-element-visibility-restrictions.patch
  • patches/viafabricplus-bedrock/upstreamable/0023-render-core-resolved-camera-movement.patch
  • patches/viafabricplus-bedrock/upstreamable/0023-render-core-resolved-camera-movement.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0025-send-completed-local-physics-to-viabedrock.patch
  • patches/viafabricplus-bedrock/upstreamable/0025-send-completed-local-physics-to-viabedrock.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0026-apply-native-fence-geometry-in-bedrock-sessions.patch
  • patches/viafabricplus-bedrock/upstreamable/0027-apply-authoritative-projectile-owner-changes.patch
  • patches/viafabricplus-bedrock/upstreamable/0028-apply-native-fishing-bite-impulses.patch
  • patches/viafabricplus-bedrock/upstreamable/0029-present-authored-native-containers.patch
  • patches/viafabricplus-bedrock/upstreamable/0029-present-authored-native-containers.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0029-render-authored-forms-and-npc-dialogs.patch
  • patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.patch
  • patches/viafabricplus-bedrock/upstreamable/0029-share-native-ui-scene-rendering.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0030-use-supported-native-world-actor-definitions.patch
  • patches/viafabricplus-bedrock/upstreamable/0030-use-supported-native-world-actor-definitions.pr.md
  • patches/viafabricplus-bedrock/upstreamable/0031-edit-native-command-block-settings.patch
  • patches/viafabricplus-bedrock/upstreamable/0032-reconcile-native-block-break-audio.patch
  • patches/viafabricplus-bedrock/upstreamable/0034-animate-native-moving-piston-blocks.patch
  • patches/viafabricplus-bedrock/upstreamable/0035-forward-bedrock-fluid-pickup.patch
  • src/replay/cli.ts
  • src/replay/fabric/com/enderdash/agent/replay/fabric/ReplayClientControl.java
  • src/replay/fabric/com/enderdash/agent/replay/fabric/mixin/MixinClientShutdown.java
  • src/replay/session-cleanup.ts
  • src/replay/verification.ts
  • test/replay-rendering.test.ts
  • test/replay-session-cleanup.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Expand custom block carrier capacity while preserving vanilla selectors and continue reusing visuals after capacity is reached. Resolve geometry across model directories, retain orphan bone transforms, and load explicitly marked extended cuboid bounds in the client add-on.

The recorded Galaxite palette now maps all 3,661 states. Validate vanilla selectors against Java assets, run the full build, and record a fresh playable Galaxite join. Keep larger palette limits and the remaining surveyed rendering defects open.
Carry ordinary native actors' 0.5 alpha reference through compiled GPU
pipeline overrides and scope it to each bind. Iris shares shader programs
with Java draws, so restore their original references rather than mutate
the shared material or ShaderKey. Apply the same behavior to generated
fallback shaders and retain scope restoration when a bind fails.

Fold the change into the owning actor patch and replay the add-on stack.
Builds pass 2352 tests with 152 optional skips. Actual GL readbacks verify
native 0.5 and Java 0.1 in shared extended and fallback shader programs.
Full shader-pack alpha parity and Galaxite's font particle path remain open.
The captured Galaxite gem-bag effect references font/glyph_E1, which is
already present in the shared native resource archive. Accept validated
pack-relative paths in the particle parser and fold the earlier resource
lookup generalization into its owning runtime patch.

The target native field reader retains the declared string without a
folder prefix. Tests carry generated atlases through archive delivery,
decoding and emitter output. Complete plain and Iris Galaxite replays
extract the gem-bag quads with no particle-load errors. Marker geometry,
camera item textures and full native rendering parity remain unresolved.
Use the native 64x64 texture defaults and retain empty geometry when bones
are absent. Recognize legacy declarations by their geometry keys so optional
dimensions do not filter them out. Preserve authored fields and source JSON.

Fold the change into the owning CubeConverter patch. All four builds pass
2358 tests with 152 optional skips. Five captured declarations now export
with finite values, and a complete Galaxite replay has no marker geometry
errors. Camera texture fallback and full native rendering parity remain open.
Preserve secondary water and lava when Java carrier blocks cannot express their fluid layer. Version the native block dictionary, forward liquid state properties, and publish replacement sections for worker queries. Keep vanilla behavior for ordinary Java worlds and unknown native data.

Fold the changes into the existing core transport and shared client runtime patches and replay their consumers. Native selector probes pass 180 cases. All four builds pass 2,360 tests; plain and Iris/Sodium replays match 1,280 sampled fluid queries. Fluid meshing, native occlusion and complete fluid simulation remain open.
Keep liquids over native air as real Java fluid blocks so section empty
checks retain them. Feed vanilla and Sodium mesh builders and neighbor
samples from the native layers while preserving primary block geometry.
Rebuild their affected sections when fluid changes even if the Java
carrier stays identical, including Sodium's wider exposure sampling area.

Fold the work into the existing transport and shared runtime patches,
replay both stacks, and keep the test dependency at its first consumer.
Project validation totals 2,364 passing tests with 152 optional skips.
Both Galaxite replay controls retain the Java bedrock state while native
fluid queries transition wet/dry/wet and issue two attributed rebuilds.
Both renderers also generate fluid vertices for native-air primary cells.

The broader rendering audit still fails on existing camera texture and
actor mappings. Native face occlusion, vertex-height parity and complete
fluid simulation remain unverified.
Send normal inventory transactions for authored count-one chest controls on client-authoritative servers. Share native item registration, stack limits, destination planning and action scope with the server-authoritative adapter, and retain pending offhand and cursor ownership guards.

Fold shared code into the UI patch and adapt the deferred inventory implementation instead of adding a repair patch. Full builds pass 2,371 tests with 152 optional skips. A live Galaxite run verifies form navigation but opens no container, so live chest acceptance and complete native parity remain unverified.
Add an independent patch that captures before and after items when an
inventory action is built, so later item mutations cannot rewrite its
planned transaction. Record the pinned native constructor evidence and
retain a regression that fails against reference-only ownership.

Update the owning offhand patch tests to compare preserved item contents
instead of shared references, then replay all 103 core patches. The full
core build passes 1,442 tests with 95 optional skips, all Checkstyle tasks
and Maven POM generation. Live native wire parity remains unverified.
Use the verified native network-item comparator for count-one actions in
both inventory authority modes. Share the existing cooking comparator
from the first UI consumer, preserve destination-sided query semantics,
and remove the obsolete cooking-specific class and API.

Normalize binary-NBT float NaNs and non-finite doubles at the codec
boundary, matching native userdata reads and scalar writer behavior.
Keep generic little-endian IO unchanged and preserve source tag trees.

Fold adapter changes into their owning patches and export a separate
upstream-sized codec patch. Replay all 104 core patches. The complete
four-project build passes 2,342 tests with 212 optional skips and no
failures; offline validation and targeted native fixtures also pass.
Full native controller and live authored-chest acceptance remain open.
Extend client-authoritative authored actions to hopper, dispenser and
dropper layouts using balanced normal inventory transactions. Share exact
provider, size and family checks with server-authoritative planning.
Accept actor-resolved hopper providers that retain the generic CONTAINER
wire type instead of rejecting their valid five-slot layout.

Move ordinary storage classes and their opening/presentation foundation
to the first UI consumer. Keep modern request-slot bindings in their
inventory owner and replay the dependent patches. Require the negotiated
family channel and its codec for the new presentation families.

All 104 core patches replay. The four-project build passes 2,345 tests,
with 212 optional skips and no failures or errors. Targeted action,
activation and negotiation cases and offline validation also pass.
Live native acceptance and graphical parity remain unverified.
Use constructed stacking properties for authored count-one transfers in
both negotiated inventory modes. Ordinary items can merge across auxiliary
values when subtype stacking is disabled; damaged destinations can reject
merges despite spare capacity. Preserve typed userdata, restrictions and
blocking state, and keep full recipe output identity checks separate.

Fold the matcher and comparison tests into the owning UI patch, adapt the
deferred authoritative backend, and share the userdata comparator with
recipe output queries. Record the new canonical block-data prerequisite.

The old raw planner fails the native destination-selection regression.
Fresh complete native predicates agree across 756 cases. With those and
existing native recipe output controls enabled, the full core build passes
1,485 tests with 90 optional skips, all Checkstyle tasks and POM generation.
All 104 exported patches replay to the exact tested source tree. Complete
native controller, wire and live server acceptance remain unverified.

Preserve the concurrent binary-NBT normalization and redstone storage
adapters. Keep the general stack-query API for recipe admission, with one
shared userdata comparator and separate occupied-slot merge eligibility.
Record the complete physical-slot snapshot producer before wiring recipe
selection actions. Separate verified traversal, append behavior, vector
growth and item ownership from provider registration and the full history
lifecycle, which still require evidence.

Scope zero-count copy controls to ordinary non-block Items rather than
inferring rules for populated userdata or associated-block wildcards.
The private native probe passes 36 producer cases and two copy controls.
Offline tooling, regression and patch-metadata validation also pass.
Extend snapshot evidence to long collection keys, complete hotbar and
inventory captures, and aligned vector growth. All 45 producer cases and
two ordinary zero-count copy controls pass with checked ownership cleanup.

Preserve the concurrent native occupied-slot merge fix and validate its
four-project integration with all four relevant private fixture suites.
The build passes 2,350 tests with 212 optional skips and no failures.
Offline validation passes. Cooking input, return/history lifecycle and
live native parity remain separate implementation work.
Ignore unknown link roles before changing pending relationships, and skip
repeated mounting for passengers already listed on the vehicle. This keeps
an invalid role from creating a passenger and prevents a duplicate rider
link from changing seat ownership.

Fold the predicates into the passenger-link patch and replay all 104 core
patches. Pinned native instruction comparisons cover 160 consumer cases and
288 has_rider query contexts; 40 resolved membership cases match core.
Three regression checks fail before the fix and pass afterward. The full
core build passes 1,488 tests with 90 optional skips and no failures.

Native queue timing, unresolved relationship lifetimes, initial seat
ordering and mounted-camera locator binding remain separate goal work.
Record the original provider registration and model-import path before implementing recipe actions. The resulting snapshot traverses inventory before hotbar, includes the combined view, and excludes recipe providers through their native callbacks.

Document repeated-return controls that execute native history replacement with owned item caches. Keep supplied transfer effects and unverified controller, input, wire, and visual behavior explicit.
Both accepted Bedrock link roles enter the same native mounting path.
Choose the first seat from actor kind instead of the wire role, so a new
player precedes a resolved non-player while an existing first player or
unresolved first passenger keeps its place. Reject self-mount links before
they can become pending relationships.

Fold the behavior into the owning passenger-link patch and remove the
unused role argument from resolved insertion. Native Actor/Mob routines
match 224 component-mutation cases and four self-mount rejection controls.
Core matches both roles across 448 insertion comparisons. Four targeted
checks fail against the previous role-based implementation.

The full core build passes 1,491 tests with 90 optional skips and no
failures. All 104 patches replay to the identical tested source tree;
Checkstyle, Maven POM generation and patch metadata checks pass.

A fresh mounted-scene capture remains unverified because the recorder's
private-copy disk reserve check fails. Queue timing, relationship removal
lifetimes, full cycle handling and mounted-camera providers remain open.
Return mismatched cooking input with the shared occupied-slot predicate. Permit compatible auxiliary variants of non-subtype items and reject damaged destinations that native stacking disallows.

Fold the correction into the owning recipe patch. Regressions cover atomic refusal, request identities, destination metadata, and recovery of the original variants after server rejection.
A negotiated native inventory channel does not guarantee that Java loaded
the converted pack. Keep the ordinary menu until resource loading succeeds,
without consuming a presentation sequence. Report missing or corrupt pack
images through the existing client presentation failure handler instead of
silently drawing inventory items without their panel.

Preserve asynchronous URL loading and recover cached image failures when
a resource reload supplies a new source. Both regressions fail before the
changes and pass afterward. The core passes 1,494 tests and the add-on passes
843, with 212 optional skips and no failures. All 104 core and 38 add-on
patches replay to the identical tested source trees.

The latest-release screenshots also report pearl/wind-charge rollback,
repeated eating and a missing locator bar. Those symptoms and the exact
screenshot cause remain unverified. Live capture could not launch because
the private-profile copy requires more disk space than is available.
Record fresh native checks that connect constructed backing policies to owned slot mutation and Place request assembly. Distinguish ordinary source locks from cooking admission and preserve the remaining cooking, input, wire, and gameplay verification boundaries.
Record fresh return runs for all three ingredient descriptors with original backing policies, provider cache reset, generic placement, and request assembly. Keep unresolved world targets and the missing selection/input pipeline explicit so these checks cannot be mistaken for complete authored cooking support.
Wait for the recorded game JVM to exit before terminating its private
Prism launcher and remaining owned descendants. Concurrent launcher
teardown left the NetherNet capture client unresponsive and prevented
its copied dependencies from being released.

Recognize Minecraft's connection error before spawn so failed joins
leave the startup wait promptly, including transfer-enabled runs.
Preserve process birth checks and retain dependencies on shutdown failure.
Native dispatch distinguishes initial selection and selected-state release through a numeric event phase. Keep that phase alongside the command and snapshot identity in version 4 action and result envelopes, and reject older phase-free actions instead of assigning a default.

This adds the transport prerequisite for authored controls; input delivery and the complete cooking action backend remain unfinished.
Reject correction tick zero before changing player state, as the pinned
native receiver does, and retain all unsigned tick bits in the negotiated
correction payload. Deliver authoritative vehicle velocity separately from
Java's position-only vehicle update, including zero resets.

Fold these changes into the existing movement patch. Native instruction
controls cover 864 correction admissions and 48 command applications.
Packet regressions fail before the fixes and pass afterward. Complete
historical admission, input resimulation and vehicle ground/angular state
remain open; the live boat probe still receives repeated corrections.
Document the original input startup and recipe callbacks verified by
1,008 controls on the pinned Bedrock executable. Preserve the raw phase
ordering, typed collection-index rules, retained fields, and result bits
for the unfinished authored cooking backend.

Keep physical input mapping, provider index validity, selection effects,
and live transaction acceptance explicit as unverified boundaries.
Match each authored recipe control to the exact sorted and filtered
collection entry before granting action authority. Reject missing or
non-integer indices and IDs that belong to a different visible cell.

Record native source resolution, selection/release, and controlled first
placement evidence with explicit fixture and wire-serialization limits.
The full build passes 2,368 tests with 212 optional skips. Offline stack
validation, Checkstyle, and embedded core class comparison pass.
Record fresh native quantity and repeated-selection controls through the
original input graph, cooking manager, transfer executor, and request
action assembly. The results distinguish native primary selection from
Java recipe-book increments and verify capacity, item conservation, and
player-provider aliases.

Keep the shared open-request boundary explicit. Complete serialization,
frame/request ownership, full controller construction, and server
acceptance remain unverified.
Configure emitted-input retention from the server history size and match
native capacity, continuity and unsigned oldest-tick admission. Missing
prediction payloads retain their clocks and evict expired frame bindings.
Reject expired player and vehicle corrections before they change live state.

Fold the change into movement owner 0092 and replay the complete stack.
Record 512 joined native queue/replay controls, 12 capacity controls and
1,500 production admission comparisons against 300 native history cases.
Sixteen additional controls cover current-tick command transfer.
The integrated build passes 2,382 tests with 212 optional skips. Historical
component restoration and real physics replay remain unfinished. A fresh
live recording still receives repeated corrections and fails normal JVM
teardown; retain that evidence without claiming native movement parity.
Resolve the compound constructor through its 38 native enum names instead
of inheriting Salt from the Java carrier. Preserve byte wrapping, absent
and unknown descriptors, lazy source access, and registry replacement.
Fold the provider into the authored UI owner and replay its consumers.

Verify actual initialized native receiver keys and cleanup, packaged item
conversion, mutation controls, existing name providers, and all four builds.
Keep native descriptor/session ownership, query transport, visible screens,
and the reported E-driven inventory failure explicitly open.
Record the packaged default-scene rejection and original native dispatch,
toggle phase and checked-state behavior needed to admit those controls.
Preserve the distinction between a verified private model and production
input delivery, which still requires native focus and hover producers.

Document supplied interfaces and negative controls so later integration
does not replace focused input with pointer hit testing or activate touch
controls on the wrong phase.
Record original focus ownership, float default ranking and bounded directional navigation alongside hover-produced focused dispatch. Preserve the verified construction and allocation boundaries so controller integration does not substitute Java focus for native event delivery.
Read native component flags as booleans or signed/unsigned 64-bit integers, preserving defaults for real values and other JSON types. Share the reader between scene admission and runtime queries, and default keyboard traversal focus to disabled as the native factory does.

Fold the change into the existing shared UI patch. Original factory and ScreenView execution now cover construction, implicit hover, selected button delivery and history cleanup. Keep full native navigation, device translation and unchanged authored screen acceptance as explicit remaining work.
Java rectangle traversal cannot reach clipped controls or preserve authored
focus-container routes. Use native edge scoring, scroll viewport searches,
container policies and remembered focus while retaining widget identities
across scene refreshes. Synchronize revealed edit fields during layout so
they accept input before the next render pass.

Fold the change into the shared scene patch. Original native comparisons
cover geometry, container routing, viewport selection and history fallback.
Complete native screen construction and physical controller input remain
separate requirements.
Retain mapping phases, release captures, checked state and directional focus
across container binding refreshes. Apply emitted toggle changes before
scoped button events and compose non-consuming preference updates so tab
and filter choices cannot overwrite each other. Keep collection selection
separate from keyboard focus, and clip pointer input to scroll viewports.

Fold the shared runtime and container consumer into their existing owning
patches. Unsupported screen-owned routing and focused slot actions retain
ordinary controls. Default search/slider handlers, complete controller and
device delivery, native lifecycle and original screenshot reports remain open.

Validation: 54 targeted tests; full build with 2,738 passing tests and 163
optional skips. Actual packaged input/container classes match 384 original
native steps and parse all 15 unchanged default toggle definitions. The
standalone container PR check still requires its declared shared UI patch.
Route implicit recipe-cell hover through the cooking controller and consume both entry and exit phases. Clear a selection only while its collection and cell index still match, so an older exit cannot erase a newer selection across binding refreshes.

Verify native integer extraction and conditional clearing against original callback execution, add real screen and interleaved selection regressions, and retain explicit limits for complete default controllers.
Connect authored tab buttons and navigation input panels to the native category transition model and existing preference transport. Retain activation phases, layout rules, carried items and authoritative acknowledgment checks, and clear cell selection when the native tab callback refreshes.

Require preference transport for zero-size global panels and preserve explicit limits for held-item commands, screen-host mappings and mixed inventory dispatch. Validate original callback execution and packaged transitions alongside real pointer and keyboard screen regressions.
Resolve the real authored screen graph so cooking input mappings, policies, overlays and inheritance survive program transport. Retain host-owned navigation phases across model updates and keep slot, recipe and title authority separate from presentation.

Reject the unimplemented player-hurt policy before input. Add real host interaction coverage, verify exported desktop hosts and final packaged classes, and record the native pocket self-reference as unresolved without changing recursion semantics.
Resolve self-referencing pocket declarations through the owning shared UI
patch. Finalize ancestors in declaration order, preserve local nulls, reuse
completed parents, and stop at missing or visited declarations. Keep
recursive control expansion bounded and preserve export order so client
programs retain the same inheritance behavior.

Original native registry execution supplies 751 lookup results across
three-node graphs and the pocket declaration. Direct and exported Java
programs match all 1,502 comparisons. All six desktop/pocket cooking hosts
resolve and round-trip; physical input and native pixels remain unproven.
Route arrows through retained native input phases instead of moving focus
on every Java key callback. Match initial focus precedence and float
ranking, then reveal the selected control before pointer and nested hover
delivery. Keep controller events behind the VIEW queue.

Fold the changes into the scene and container patches. Native comparisons
and packaged screen regressions cover the supported routes; full screen
construction, pointer controllers, focus-tab groups, GLOBAL reinjection,
physical devices and pixels remain open.
Reinject GLOBAL targets with the previous raw phase before delivering the
original controller event. Keep phase two distinct from press and release,
retain completed double-press state, and apply the current View mode while
preserving physical coordinates for raw input clipping.

Keep unsupported cooking inventory, recipe and close aliases on the
ordinary screen until their native event receivers preserve action
ownership. Fold the input and consumer changes into their owning patches.
Original native comparisons cover raw phases, GLOBAL recursion, capture,
hover and preference effects; packaged regressions verify the consumers.
Select visible and enabled navigation tabs by authored index, keeping
native tree-order ownership for checked and duplicate indices. Deliver the
group change before old/new tab hover events without moving View pointers.
Keep this route distinct from Furnace category callbacks and admit
keyboard input according to its VIEW receiver.

Fold the consumer and screen regressions into the owning container patch.
Original native comparisons cover selection, group state, phases, hover
and controller effects. Focus-enabled tab lifecycle, full screen updates,
controller pointer handling, devices and pixels remain incomplete.
Transfer focus and reveal focused VIEW tabs before delivering their hover
queue and group change. Keep both View pointer positions, and retain the
separate change-first route for tabs without focus.

Do not derive the native selection latch from FocusManager ownership.
Native overlapping controls assign hover and focus independently; the
extra flag activated a second mapping and changed preferences twice.

Fold the changes into the owning container patch. Original native
comparisons and real screen regressions cover the bounded active-manager
path. Complete manager activation, Button latch lifetime, pointer
receivers, screen lifecycle, devices and pixels remain open.
Distinguish edit-box selection from the separate Button appearance
component. Record the original factories, input composition and property
producers together with the confirmed gaps in the published client.

Keep the prior focus correction and runtime source unchanged. The native
captures establish the next consumer work, not full screen parity.
Supported cooking controls consumed input even when the native Button
component declined it, and draw collection never selected a pressed
branch. Retain the press byte separately from applied visibility and
apply native named setters before layout and hit geometry refresh.

Preserve suppressed transitions, phase two, scene replacements and the
different own/ancestor property lifetimes. Run raw component effects
before later controls read their context, and keep implicit hover buttons
on the controller route without another sibling press callback.

Fold the runtime and consumer into their owning patches. Original native
comparisons and packaged regressions cover the declared component and
active input routes; full screen construction, property timing, pointer
receivers, audio, physical devices and pixels remain open.
Invalidate native Input mappings when visibility callbacks or input-order
removal require it, while preserving double-press history. Keep captured
controls addressable after they leave normal input order so hidden GLOBAL
releases retain their native phase and component delivery.

Fold the changes into the shared UI and container owners. Compare the
complete original pending-update path, initial hidden registration and
direct visibility callbacks against the final packaged consumer. Record
external notification scheduling and the remaining screen/device limits.
Create and index input components before resolving Button state names so
nested and aliased setters notify their owners in native component order.
Commit sender phases after reentrant callbacks, and dispatch wildcard
callbacks before subsequent mappings sample their state.

Keep registration and inherited visibility on the later View update.
Restore cached appearance on matching scene copies without replaying
property events that would reset held child input.

Fold the implementation and regressions into their owning patches. Record
216 new original native cases with real notification queues and balanced
cleanup, while retaining the full construction and physical-device limits.
The bare-context mode probe omitted the root component notification and
its queued registration update. Record the complete producer's callback,
phase invalidation and retained capture behavior before integrating mode
delivery into supported screens.

Keep native reference coverage separate from the published production
parity claims, and retain the screen-install and device admission limits.
Prepare supported cooking mappings once before the first controller input.
The original View queues initial mode invalidation before activation, so
new mappings start at phase two. Keep held phases across scene refreshes
and resize preparation instead of replaying that initial notification.

Fold the implementation and screen regression into the container patch.
Record the complete native wrapper reference and its supplied boundaries;
physical mode notifications and full screen parity remain unfinished.
Java resynchronizes the pointer after screen initialization without a
movement event, then forces the first frame before setScreenAndShow
returns. Deliver initial hover at that resynchronization boundary so a
stationary pointer selects the authored recipe immediately.

Convert Java HUD coordinates through the native viewport and reject a
callback for a screen that is no longer installed. Extend the screen
regression across unequal scales, model refreshes and stale ownership.
Replay later mixin descriptor contexts around the new admission hook.

Record the complete original installer and client mode callback evidence,
plus isolated-client verification of the transformed Gui hook ordering.
Physical mode admission and full native screen parity remain unfinished.
Preserve native tabs, filtering and independent inventory/workbench layouts while projecting their active context into Java’s shared crafting book. Keep all four recipe-book settings in one connection-local storage without a compatibility shim.

Fold the transport and menu lifecycle changes into the owning recipe patch and replay its downstream contexts. Verify packaged options, native UI references and live BDS crafting and furnace workflows before the patch release.
Establish the separate local-player renderer before extending the authored inventory path. Original execution distinguishes actor rotation from body and head yaw history, pose-specific framing, cursor admission and mounted actor restoration.

Record 672 original draw calls with real sparse component access and normal return, while keeping supplied renderer boundaries and missing Java/GPU integration explicit. The runtime remains at the verified 0.3.53 source.
Give player inventory its separate local-actor renderer, with independent actor, body and head rotations and pose-specific native framing. Apply its model correction after Java PIP translation while retaining scoped GUI playback and world rotation state.

Fold shared rendering and adapter admission into their owning patches. Verify the full stack, the original 672-case camera reference, packaged negative controls and actual Java submission at two viewport/GUI scale pairs. Full authored inventory, native pixels and successful native renderer effects remain unfinished.
Open the Bedrock inventory after Java installs the actual screen, using
one negotiated route for direct translation and ViaProxy. Constructors
can create unused screens, and Java reuses menu zero across openings.

Retain retired native opens until acknowledgment, serialize close/reopen
races, and correlate server closes to the owning client opening. Preserve
global inventory actions, support the creative picker, and keep tokens
monotonic when reconfiguration replaces the play listener. Recovery must
not duplicate an outstanding native open.

Fold the implementation into the existing inventory, offhand, and native
container patches. All four builds pass 2,817 tests with 163 optional
skips. Sixteen packaged regressions and four real E-key cycles cover
lifecycle behavior. Full authored player UI and native parity remain open.
Execute the target constructor slice, layout and tab getters, collection-name initializer, and creative-mode predicate to establish the player controller state contract before implementing its authored screen.

Distinguish the effective creative predicate from controller input mode and the independently produced constructor flag. Record supplied boundaries and keep complete recipe grouping, production presentation, physical input, and visible parity explicitly unfinished.
@AlexProgrammerDE
AlexProgrammerDE marked this pull request as ready for review October 24, 2026 08:57
Use the same native bucket partitioner for cooking and grouped recipe collections. Retain catalog identity and icon/count-based expansion history across refreshes. Fold the implementation into the shared UI patch.

The full build passes 2,823 tests with 163 optional skips. The packaged core matches 4,128 original native cases and sixteen retained-state steps. Full catalog acquisition, player controller integration and the original bug reports remain open.
@AlexProgrammerDE
AlexProgrammerDE merged commit dd3ba34 into main Oct 24, 2026
7 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.

1 participant