Skip to content

Structure Editor v1.4.5

Choose a tag to compare

@FinnSetchell FinnSetchell released this 10 Sep 09:54
· 11 commits to main since this release

Diagnostic build for the cold-chunk entity save bug. v1.4.4 on fresh-from-restart chunks reported chunks_ticking_ready: 1 but isLoaded never went true in 8 s and the save captured zero — where v1.4.3 had captured the mob on that same first-save case. A boolean can't say why, and the server log can, so this build adds instruments rather than a fourth theory.

Reading the vanilla PersistentEntitySectionManager source (mojmap, identical 1.21.10 code): load goes FRESH → requestChunkLoad sets PENDING and reads the entity file async → processPendingLoads on the next tick sets LOADED. Unload refuses while PENDING. So a stuck isLoaded means either the chunk is parked in PENDING (read never landed; vanilla logs Failed to read chunk) or it never left FRESH (the visibility callback never fired).

New

  • read_server_log({lines?, grep?}) MCP tool and GET /log/tail — last N lines of logs/latest.log, optional case-insensitive substring filter applied before the cap.
  • save_structures response now includes chunk_states per structure block: for every ticketed chunk, entity_load (FRESH/PENDING/LOADED), entity_visibility (HIDDEN/TRACKED/TICKING/ABSENT), block_ticking. The poll-timeout warning in the log carries the same per stuck chunk.

Fixed

  • FORCED is the persisted /forceload ticket type. Anything that threw before removeTicket leaked a chunk that stayed force-loaded across restarts. Ticket release is now unconditional (finally in the save phase; partial release if enumeration throws mid-way).