v1.0.0 — two-endpoint stack + Zion build learnings
The 1.0 milestone. The plugin learns the two-endpoint stack — the world server plus
the new client inspection endpoint for eye-level verification — and folds the Zion
showcase build's hard-won lessons (sourced rail boosters, same-generator canyon
ends, adversarial inspection, the force-load and full-footprint-clear rules) into
the builder skills and the local toolkit.
Added
- Client inspection endpoint support (
minecraft-java-client). The mod now ships a second
MCP server — its client entrypoint — that runs inside a real, rendered Minecraft client and
serves read-only inspection tools (view_capturefor the player's actual first-person frame,
plussense_crosshair/sense_raycast/sense_entities/sense_screen/client_status).
The plugin learns to set it up and use it:setup-connectdocuments the world+inspection two-server model and the three patterns
(server-only, client-only, server+client combo), withclaude mcp addfor
minecraft-java-clientand aview_captureverification step.setup-servernotes the separateclient.json/ port 8766 /MCP_CLIENT_*config and the
eleventhclientcategory.exec-inspectuses the real-client frame for eye-level / in-game-rendering verification when
mcp__minecraft-java-client__*is connected (aim the player from the world server, then
view_capture), records the framesourceinrider_pov, and falls back to the synthetic
block_render_region+ a user screenshot when the endpoint is absent..mcp.json.example, the architecture diagram, the tool-surface conventions inCLAUDE.md,
andreference/execution/engine-limits.mdall reflect the second endpoint.
- Rail / wire continuity verifier (
tools/voxel/continuity.py).block_fill_batch
can silently drop a few entries from a large batch — invisible on wide terrain, fatal
on a 1-wide rail (the cart stalls dead at each gap).find_gapsdiffs the intended
cell list against a live layer scan;verify_and_patchre-places the missing cells
withblock_set_state(reliable per block).system-transitandexec-inspectcall
it after any 1-wide placement. - Canyon/valley end-closer (
tools/terrain/close.py,close_belt_end). Closes one
end of abelt_from_pathcanyon by reusing the SAME machinery as its walls — the
belt's own cross-section (corridor pinching shut), the sameadd_fbmat global grid
coordinates (so the noise phase aligns at the seam), and the same thermal/hydraulic
erosion via a callerregencallback, merged withnp.maximum. Generalises the
per-build endcap scripts that kept reading as pasted-in headwalls. - Harness force-load re-assert for self-running mechanisms. A plan may declare a
top-levelprotectblock ({corner_a, corner_b}chunk rectangles);builder.harness
re-asserts those bands withforceload addas the last op of every force-toggling
phase (run / build / freshness), so a later phase'sforceload removenever unloads a
permanently force-loaded rail loop or farm (entities freeze, redstone reverts).
Changed
- Folded the Zion showcase build learnings into the builder skills.
system-transit
gains the sourced-booster rule, square single-block-corner U-turns, the sloped-back
wall-bench profile, an auto-board station template, and ride-test hygiene;
exec-inspectdocuments zone fan-out plus an adversarial synthesis pass that
re-verifies "criticals", and eye-level / thin-slab cross-section judging;
terrain-shape,build-natural-world,design-monument/terrain-landmark,
coherence,workflow-spine, andengine-limitspick up same-generator
end-closing, low-frequency variation on gentle slopes, distinct hero-mass placement,
the force-load and full-prior-footprint-clear rules, the offline-preview sign-off
gate, and a consolidated engine-caps table.
Fixed
- Powered-rail booster guidance reversed (corrects the 0.8.0 note below). A
redstone_blockdirectly under a powered rail IS a real source: the rail recomputes
topowered=trueon every block-update re-eval, so it is player-proof and
reload-proof. A source-lesspowered=trueset viablock_set_stateholds only at 0
players and reverts the instant a player is online (player-driven chunk/light/neighbour
updates re-evaluate the rail;update_flags=2does not save it). The earlier "set
powered=trueexplicitly; aredstone_blockunderneath doesn't hold" guidance was
true only for a never-visited headless test. Corrected insystem-redstone
(setblock-redstone-limits.md,verification.md),system-transit, and
build-systems. entity_query/@eonly enumerates loaded chunks. Documented inengine-limits:
asummonreportingsuccessCount: 1followed by an empty query usually means the
chunk is unloaded (checkforceload query), not that the entity despawned — minecarts
and items in unloaded chunks are frozen, not removed.