Skip to content

fix: match vanilla mining and placement behavior - #10

Draft
milutinke wants to merge 296 commits into
masterfrom
codex/vanilla-block-interactions
Draft

milutinke wants to merge 296 commits into
masterfrom
codex/vanilla-block-interactions

Conversation

@milutinke

@milutinke milutinke commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Make mining and block placement follow vanilla targeting, permissions, geometry, interaction results and swing order across protocols 47–777. Reuse the existing session owners and keep unavailable context explicit. This PR remains incomplete and draft.

The component checkpoint (b03301b, documentation 2c19272) preserves held mining when a new inventory packet carries an equivalent enchantment map on protocols 766–777. Meaningful key, final-level, explicit-zero or applicable tooltip changes still reset mining. It also connects measured can_break and can_place_on codecs and permissions through protocols 771–773 (1.21.6–1.21.10), preserving activation precedence, post-USE PASS decisions and unknown context. Protocol 774 onward retains its distinct unbound predicate wire form. Versions, dependencies, DI lifetimes and existing public action signatures stay unchanged.

The latest checkpoint (f2b2d70, documentation 72873c0) adds native final-map validation for both enchantment component forms on protocols 766–777. It rejects final levels outside 0–255 after all entries and the legacy tooltip, while allowing valid same-key overwrites and preserving accepted raw bytes. The 344 new bound-codec cases first reproduce 192 causal failures/152 controls, then all pass after the codec-only fix; all 1,324 retained checks and the complete 6,959-case Protocol suite pass with zero skips. Normal two-file formatting changes nothing. The expected seventeen-suite total is now 50,462, not a claimed fresh seventeen-suite run.

Seven-job CI for published 72873c0 is in progress in run 41354137087. The successful 2c19272 results below remain the preceding checkpoint. New producer-matched consumers/AOT/package runtime and native/live acceptance remain separate.

Check Result and limits
Component checkpoint local runtime Full Client 36,131, Protocol 6,615 and Conformance 892 pass with zero skips. All 1,324 focused/regression cases pass. Source/PDB hashes match the committed eleven-file implementation; private libraries retain D5 compiler metadata. The Protocol wrapper's one shape-derived display mismatch is accepted by an exact source-bound offline audit; the successful suite is retained and the original wrapper remains failed.
Native comparisons 33 original Adventure codec/hash cases and 190 original enchantment identity/admission/definition checks pass. These execute controlled original methods, separate from native client input, world ticks or live-server acceptance.
Generated reference checks Three expected identity-pin failures and 98 controls precede documented generation. Only protocol 771/772/773 identity files change: 33 lines/36 nested digest tokens, with all 404 other fixtures unchanged. Strict focused302/full892 pass with update switches absent.
Component checkpoint local format/counts Normal formatting of the eleven reviewed files passes with zero changes, both analyzer phases on all four affected owners and no workspace warnings/errors. Deliberate additions are Client +190 and Protocol +19; 50,118 is the expected seventeen-suite total, not a fresh local seventeen-suite result.
Previous-head CI (2c19272) All seven jobs pass for published 2c19272 in run 41350348597. All three OSes report seventeen-suite totals 50,118, with unchanged normal skips 23/25/25. Full formatting loads 47 projects, analyzes all 44 authored owners and changes zero of 2,484 files without workspace warnings. CI AOT is 24,787,528 < 25,165,824 bytes, exactly one passing smoke and the XML guard. Packages 14+13 and isolated consumer restore/build pass; package-consumer runtime remains open.
Earlier consumer/AOT checkpoint On the earlier D5/1c31d97 tuple: DMCBK 1,999 and MCC 918 pass, all 33 endpoint DLL comparisons and 26 test-runtime hashes match, and local AOT is 24,775,104 < 25,165,824 bytes with exactly one executed passing smoke and the CI XML guard. These results do not identify the new component candidate; fresh local producer-matched consumers/AOT remain required.

The earlier published 1c31d97/run41331365182 passes all seven CI jobs: seventeen-suite totals 49,909 per OS, normal opt-in skips 23/25/25, full healthy formatting of 47 projects, strict AOT/exactly one smoke, packages and isolated consumer restore/build. Package-consumer runtime remains open. Historical local memory, formatter-selection, consumer cleanup-snapshot and native-wrapper schema failures remain recorded under their original checkpoints.

Retained live evidence includes the older-producer 1.21.5 six-scene placement result and the D5 1.11 eleven-scene Wolf placement/replay result. The latter proves exclusion of the distant Wolf by its known envelope, not its exact body/motion, Horse participation or original graphical-client input parity. Required new-producer native/live acceptance remains separate.

Remaining behavior includes the later Adventure wire form and richer predicates, specialized placement/fluid/tool interactions, contextual targeting, participating entity/rider/authority cases and the 50-protocol/75-release pack. Final local aggregate/package-runtime, fresh producer-matched consumer/AOT and native/live checks remain required. Protocol 47 keeps its 1.8.9 client profile. Merging and package/release publication are outside this task.

DMCBK #7 contains the committed consumer command changes as a draft. Its stock CI is blocked because pinned UMPK 0.9.0-beta.7 lacks five APIs supplied by this upstream work; unit tests did not run there. The dependency version, sibling source/Git state and uncommitted tooling files are unchanged.

Verification index · Component checkpoint evidence · Enchantment admission evidence · Completion ledger

codex added 26 commits October 17, 2026 09:29
Load geometry separately so entity spawning can trim the block-interaction tables. Keep the placement adapter compatible.

Data tests: 1,799 to 1,808, adding nine accessor and schema cases.
Match native villager age callbacks and ignore item drops during placement. Verify the rules against 12 native box transitions and all 3,084 original client classes.

Tests: client 7,208 to 7,228; Java data 1,808 to 1,810. Add three Python extraction checks.
Load measured villager bounds and item obstruction rules for protocols 316 through 404. Verify both protocol-316 aliases and retain each release's artifact receipts.

Tests: Client 7,228 to 7,444; Java data 1,810 to 1,824. Add five Python checks.
Use measured villager bounds and nonblocking item rules for protocols 107 through 110. Verify the 1.9.3/1.9.4 and 1.10 aliases independently.

Tests: Client 7,444 to 7,560; Java data 1,824 to 1,832. Add one Python check.
Load measured age and pose bounds and item obstruction rules for protocols 477 through 490. Preserve the original enum names and building-flag boundary.

Tests: Client 7,560 to 9,948; Java data 1,832 to 1,840. Add three Python checks.
Load native age and pose bounds for protocols 477 through 490, including golems without an age metadata field.

Tests: 2,940 native transition replays and 32 placement cases, plus reader and generator rejection checks.
Load measured horse age and pose bounds for protocols 477 through 490. This stops distant horses from suppressing placement swings.

Tests: 2,352 native phase replays and 24 placement cases.
Record the passing four-version matrix, exact consumer binaries and the failed captures that led to the entity geometry fixes.
Map the official 26.1.1 and 26.1.2 releases to existing protocol 775. Keep packet timelines and conformance pins unchanged.

Tests: Java data 1,843 to 1,845.
Load source-checked geometry for 32 mapped protocols. Replay 139,905 original transitions across 44 releases and retain each alias artifact hash.

Tests: Client 15,296 to 15,384. Add five Python checks.
Use the public name lookup and run the decoded-suggestion consumer check for both 26.1 patch aliases.

Tests: Client 15,384 to 15,386.
Load measured age and pose bounds for protocols 498 through 777. Distant horses and cows can then allow placement swings, while nearby entities use their actual dimensions.

Verified 223,848 new native phase replays across 44 releases, plus the existing placement and extraction regressions.
Use the shared virtual clock for eager and on-demand search comparisons. Preserve node budgets and path assertions, and check that neither search times out.

Validation: all 11 view-comparison and injected-clock timeout cases pass.
Record eight vanilla placement legs, native phase replays and exact consumer binaries. Include both full-suite failures and the remaining geometry work.
Apply tick-rate, freeze and step packets to the level lifetime. Use the native timer accumulator for held mining and player ticks, and advance borders and pistons only on eligible world ticks.

Verify native packet, manager and timer measurements across 21 releases, with captured-frame round trips and lifecycle regressions.
Record the 5 TPS baseline, four live MCC passes, native measurements and repository checks, including the existing citation-count failure.
Read the signed age byte and defer size changes to eligible living ticks on protocol 47. Preserve cached dimensions through metadata and position updates, then apply the native bounds refresh.

Verify all ten 1.8 releases with 2,560 native predicates, 750 size transitions and loaded-area controls. Keep the other 370 shared tables unchanged.
Use audited nonblocking rules for dropped items across all ten 1.8 releases. Preserve legacy registry names and reject incomplete alias evidence.

Verify both native constructors and all 60 building-flag writes. Add near and far item placement regressions; leave other entity rules unknown.
Record the exact producer, native measurements, missing-swing baseline and fourteen passing live scenarios. Include consumer hashes, AOT results and the existing full-suite citation failure.
@milutinke milutinke changed the title fix: match vanilla block interaction behavior fix: match vanilla mining and placement behavior Oct 17, 2026
codex added 2 commits October 17, 2026 17:53
Use native age and size phases for cows, pigs, sheep and chickens on protocol 47. Verify all ten 1.8 aliases and preserve the existing villager rule.

Keep the other 370 shared tables unchanged. Add connected native replays and registry, hierarchy and helper checks.
Record the native farm bounds, missing-swing baseline and twenty-two passing live scenarios. Include entity-lifecycle checks, consumer hashes, AOT results and the existing citation failure.
codex added 19 commits October 29, 2026 21:47
The cooldown readiness fixture previously reused the old player inventory after respawn. Assert that the new inventory is empty, then restore its diamond hoe through the bound inventory packet before the original cooldown and readiness assertions.

All seven affected protocol cases pass on the matched producer, with identical test identities and unchanged counts. Full solution formatting of the changed file passes without byte changes; the full Client/AOT continuation is still running.
Cancel the captured session and close its captured connection before terminal publication, including when cancellation callbacks fail. Preserve the original disconnect fault and cached state.

Validation: one genuine peer-EOF failure plus two controls become three passes; all 353 adjacent lifecycle cases pass, with no formatting changes. New-producer aggregate and live checks remain separate.
Record the 35,709-case Client and strict AOT proof, all seven published CI jobs, and the separately validated connection-close correction. Keep current-producer live, consumer and final aggregate acceptance explicit.
Share the selected-slot cache between explicit selection and the session tick. Preserve vanilla controller lifetime across respawn, reset it on join, and stop held input after a failed synchronization write.

Validation: ten genuine failures become passes after connecting the caller; all 21 new cases and three retained connection tests pass. Both staged source/PDB/reference closures and owned cleanup are verified; formatting changes no bytes. Full new-producer Client/AOT and live acceptance remain separate.
codex added 10 commits November 1, 2026 17:07
Honor measured Adventure predicates through 1.21.10 and native enchantment-map identity during mining. Preserve unknown context and the later predicate wire boundary.

Validate 36,131 Client, 6,615 Protocol and 892 Conformance cases, plus the native witnesses. Regenerate only three source-backed identity pins.
Record the native, runtime, full Client/Protocol and conformance checks for b03301b. Keep fresh consumer, AOT and live acceptance explicitly pending.
Validate the final last-wins enchantment map after decoding all entries and the legacy tooltip. Preserve accepted duplicate entries and byte-identical round trips.

Add 344 native-backed cases, retain 1,324 caller regressions, and pass the complete 6,959-case Protocol suite.
Record native-backed red/green, full Protocol and zero-change format results for f2b2d70. Keep current-producer consumer, AOT and live acceptance separate.

This branch has not been deployed

No deployments
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.

2 participants