Complete local voxel MVP with server, client, MCP, packages and world interchange
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
# Браузерная проверка 2026-09-14
|
||||
|
||||
Проверялся реальный Codex In-app Browser на `http://127.0.0.1:4000` через CUA. API-тесты проводились отдельными HTTP/WebSocket-процессами.
|
||||
|
||||
- Чистое открытие страницы: manifest, 8 проверенных ресурсов, вход в lobby, собственный WebGL2-рендер без ошибки инициализации.
|
||||
- Лобби видно на реальном снимке: пиксельная площадка, световые столбы, арка, вода, trampoline, небо, солнце, HUD.
|
||||
- Каталог открыл 32 367 состояний; поиск `minecraft:oak_slab` вернул 6 вариантов с точными type/waterlogged. Выбран `type=bottom,waterlogged=false`, быстрый слот сменился на него.
|
||||
- Диагностика показывала live tick/ack, ревизию, координаты, число блоков, RAM и полезный кэш отдельно. В лобби на стенде наблюдались 144 FPS, 11 920 треугольников, 0 ожидающих секций.
|
||||
- После остановки и замены серверного процесса открытая страница автоматически переподключилась. Ранее выбранный материал остался выбранным.
|
||||
- Созданные через Control API сохраняемые сущности пришли в клиент; allay виден на снимке, счётчик сущностей обновился.
|
||||
- Второй чистый браузерный клиент загрузил финальный протокол **без передачи полного registry**. Hotbar заполнился через поиск каталога; 8 ресурсов повторно прошли проверку из кэша.
|
||||
- Выбор `gallery` заменил мир. На реальном снимке видны разные кубические и неполные формы, UI не перекрывает весь мир. Диагностика: 1 614 блоков в текущем окне, 7 808 треугольников, 144 FPS, 0 ожидающих секций. Все 1 197 образцов находятся в мире, а не обязательно в одном окне просмотра.
|
||||
|
||||
FPS описывает этот браузер, оборудование, размер окна и точку наблюдения. Это не минимальное требование и не обещание производительности на другом устройстве. Движение, reach, строительство двух клиентов, Spleef, переподключение и аварийная долговечность дополнительно проверены воспроизводимым `scripts/check_server.mjs`.
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"catalog": "byte-for-byte identical after full reports + runtime extraction",
|
||||
"package_assets": "byte-for-byte identical after authoring script",
|
||||
"source_hashes": {
|
||||
"catalog.json.gz": "df889f6ce074b96130011d00b2f3b661cf910aba44064a0b5f361d7c064ce8ed",
|
||||
"report-identities.json.gz": "938232b10d17071d3eefa54ce9a1c3026e17f39b5a2c0f4d6ede2644824d9135"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"date": "2026-09-14",
|
||||
"platform": "Linux",
|
||||
"machine": "x86_64",
|
||||
"kernel": "7.0.0-31-generic",
|
||||
"cpu": "AMD Ryzen 7 1700 Eight-Core Processor",
|
||||
"rustc": "rustc 1.96.0 (ac68faa20 2026-05-25)",
|
||||
"cargo": "cargo 1.96.0 (30a34c682 2026-05-25)",
|
||||
"node": "v22.22.3",
|
||||
"python": "3.14.4"
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"success": true,
|
||||
"directory": "/home/emil/Desktop/shacraft-core/artifacts/compat-verification-2rxmacov",
|
||||
"java": [
|
||||
{
|
||||
"java26_2_verified": true,
|
||||
"chunks": 1,
|
||||
"sections": 1,
|
||||
"entities": 1,
|
||||
"nonair_blocks": 3,
|
||||
"level_name": "Shacraft template",
|
||||
"scope": "NbtIo,RegionFile,SerializableChunkData,PrimaryLevelData,WorldGenSettings codecs; no server simulation",
|
||||
"case": "exact"
|
||||
},
|
||||
{
|
||||
"java26_2_verified": true,
|
||||
"chunks": 2,
|
||||
"sections": 25,
|
||||
"entities": 1,
|
||||
"nonair_blocks": 3,
|
||||
"level_name": "Shacraft template",
|
||||
"scope": "NbtIo,RegionFile,SerializableChunkData,PrimaryLevelData,WorldGenSettings codecs; no server simulation",
|
||||
"case": "edited"
|
||||
},
|
||||
{
|
||||
"java26_2_verified": true,
|
||||
"chunks": 2,
|
||||
"sections": 48,
|
||||
"entities": 0,
|
||||
"nonair_blocks": 2,
|
||||
"level_name": "own",
|
||||
"scope": "NbtIo,RegionFile,SerializableChunkData,PrimaryLevelData,WorldGenSettings codecs; no server simulation",
|
||||
"case": "new"
|
||||
}
|
||||
],
|
||||
"nbtlib_version": "2.0.4",
|
||||
"source_jar_sha1": "823e2250d24b3ddac457a60c92a6a941943fcd6a",
|
||||
"source_jar_sha256": "cdacdfb25898de5e4b4b0e5ddcc2722f77067e46605709c2d886c000ebb63ec5",
|
||||
"nbtlib_sponge_typed_roundtrip": true,
|
||||
"exact_source_files_identical": true,
|
||||
"edited_world": {
|
||||
"schema_version": 1,
|
||||
"format": "anvil",
|
||||
"mode": "best-effort",
|
||||
"data_version": 4903,
|
||||
"worlds": {
|
||||
"main": 2
|
||||
},
|
||||
"chunks": 2,
|
||||
"sections": 25,
|
||||
"nonair_blocks": 3,
|
||||
"issues": [
|
||||
{
|
||||
"code": "source_archive",
|
||||
"severity": "info",
|
||||
"action": "preserved",
|
||||
"location": "shacraft-source-sidecar",
|
||||
"detail": "Verified original world retained for unsupported/stale data",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "dependent_records_invalidated",
|
||||
"severity": "warning",
|
||||
"action": "dropped",
|
||||
"location": "main:chunk-1,1",
|
||||
"detail": "Removed1 stale block_entities at edited coordinates; originals retained in sidecar",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "derived_fields_invalidated",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "main:chunk-1,1",
|
||||
"detail": "Removed stored light arrays and heightmaps, marked isLightOn=false for Minecraft reconstruction; unknown fields/entities/biomes preserved. No vanilla simulation guarantee.",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "derived_fields_invalidated",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "main:chunk32,-33",
|
||||
"detail": "Removed stored light arrays and heightmaps, marked isLightOn=false for Minecraft reconstruction; unknown fields/entities/biomes preserved. No vanilla simulation guarantee.",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "entity_edited",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "00000001-0000-0002-0000-000300000004",
|
||||
"detail": "Position/yaw/type and supported scalar properties applied; unknown original NBT retained; passenger/tether/AI relationships not simulated",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"issue_limit": 1000,
|
||||
"omitted_issues": 0,
|
||||
"source_files": 0,
|
||||
"source_bytes": 0,
|
||||
"native_entity_bytes": 0,
|
||||
"profile": "Java 26.2 (DataVersion 4903); blocks editable, other typed NBT preserved on disk; offline writer lock"
|
||||
},
|
||||
"native_world": {
|
||||
"schema_version": 1,
|
||||
"format": "anvil",
|
||||
"mode": "best-effort",
|
||||
"data_version": 4903,
|
||||
"worlds": {
|
||||
"own": 1
|
||||
},
|
||||
"chunks": 2,
|
||||
"sections": 48,
|
||||
"nonair_blocks": 2,
|
||||
"issues": [
|
||||
{
|
||||
"code": "new_world_profile",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "level.dat",
|
||||
"detail": "Creative Java 26.2 overworld, empty flat generator, Y[-64,319], default plains biomes. Minecraft reconstructs light/heightmaps. Native entities use the explicit property bridge.",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "derived_fields_invalidated",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "own:chunk-1,0",
|
||||
"detail": "Removed stored light arrays and heightmaps, marked isLightOn=false for Minecraft reconstruction; unknown fields/entities/biomes preserved. No vanilla simulation guarantee.",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"code": "derived_fields_invalidated",
|
||||
"severity": "warning",
|
||||
"action": "approximated",
|
||||
"location": "own:chunk0,0",
|
||||
"detail": "Removed stored light arrays and heightmaps, marked isLightOn=false for Minecraft reconstruction; unknown fields/entities/biomes preserved. No vanilla simulation guarantee.",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"issue_limit": 1000,
|
||||
"omitted_issues": 0,
|
||||
"source_files": 0,
|
||||
"source_bytes": 0,
|
||||
"native_entity_bytes": 0,
|
||||
"profile": "Java 26.2 (DataVersion 4903); blocks editable, other typed NBT preserved on disk; offline writer lock"
|
||||
},
|
||||
"limitations": "Java checks official disk/container/palette/world-metadata codecs, not running server, client renderer, light simulation or EULA acceptance."
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"passed": true,
|
||||
"server_binary": "/home/emil/Desktop/shacraft-core/target/release/shacraft-server",
|
||||
"mcp_binary": "/home/emil/Desktop/shacraft-core/target/release/shacraft-mcp",
|
||||
"sdk": true,
|
||||
"checks": [
|
||||
"SDK initialize, version negotiation, notification and ping",
|
||||
"17 discoverable tool schemas accepted by SDK",
|
||||
"4 resources read through SDK",
|
||||
"Construction prompt and arguments",
|
||||
"Durable write, read, idempotent retry, conflict content and undo",
|
||||
"Plan and atomic idempotent commit",
|
||||
"MCP PNG image content",
|
||||
"Entity spawn/update/list/delete",
|
||||
"Persisted world configuration and measured metrics",
|
||||
"World reset"
|
||||
],
|
||||
"world": "mcp_sdk_1789395818564"
|
||||
}
|
||||
@@ -0,0 +1,402 @@
|
||||
Checking shacraft-compat v0.1.0 (/home/emil/Desktop/shacraft-core/crates/shacraft-compat)
|
||||
Checking shacraft-server v0.1.0 (/home/emil/Desktop/shacraft-core/crates/shacraft-server)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.77s
|
||||
Compiling shacraft-compat v0.1.0 (/home/emil/Desktop/shacraft-core/crates/shacraft-compat)
|
||||
Compiling shacraft-server v0.1.0 (/home/emil/Desktop/shacraft-core/crates/shacraft-server)
|
||||
Finished `test` profile [unoptimized + debuginfo] target(s) in 3.09s
|
||||
Running unittests src/lib.rs (target/debug/deps/shacraft_compat-cd22d99df205fe27)
|
||||
|
||||
running 8 tests
|
||||
test anvil::tests::lz4_raw_and_compressed ... ok
|
||||
test nbt::tests::rejects_bombs ... ok
|
||||
test schem::tests::varint_validation ... ok
|
||||
test nbt::tests::all_types_roundtrip ... ok
|
||||
test anvil::tests::negative_region_zlib_and_external ... ok
|
||||
test anvil::tests::all_compression_modes_and_external_payloads ... ok
|
||||
test anvil::tests::section_palette_boundaries ... ok
|
||||
test anvil::tests::oversized_chunk_writes_external_and_validates_checksum ... ok
|
||||
|
||||
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/shacraft_compat-bd4306d00d4a6c17)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Running tests/roundtrip.rs (target/debug/deps/roundtrip-f70ba20f52297682)
|
||||
|
||||
running 9 tests
|
||||
test malformed_input_is_not_published ... ok
|
||||
test no_overwrite_and_provenance_hash_guard ... ok
|
||||
test unsupported_data_version_rejects_exact_before_publication ... ok
|
||||
test duplicate_entity_uuid_stays_outside_editable_subset ... ok
|
||||
test sponge_entity_metadata_guard_and_position_roundtrip ... ok
|
||||
test sponge_import_edits_unknown_states_and_preserves_nbt ... ok
|
||||
test native_entity_edit_move_create_remove_roundtrip ... ok
|
||||
test genuine_java_world_import_exact_roundtrip_edit_and_new_chunk ... ok
|
||||
test native_new_world_export_and_schematic ... ok
|
||||
|
||||
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
|
||||
|
||||
Running unittests src/lib.rs (target/debug/deps/shacraft_content-ee19c845f27f8fb2)
|
||||
|
||||
running 11 tests
|
||||
test shapes::tests::four_quarter_rotations_restore_box ... ok
|
||||
test shapes::tests::connected_fence_has_two_added_rails ... ok
|
||||
test shapes::tests::rail_ascent_reaches_next_block ... ok
|
||||
test packages::tests::changed_resource_rejected ... ok
|
||||
test packages::tests::bundled_packages_hashes_dependencies_and_privacy ... ok
|
||||
test packages::tests::paths_sizes_and_versions_are_validated ... ok
|
||||
test tests::key_collision_states_and_orientation ... ok
|
||||
test tests::official_entity_dimensions_and_authored_models_present ... ok
|
||||
test tests::sampler_defaults_and_palette_are_registered ... ok
|
||||
test tests::every_state_has_valid_shapes_and_explicit_coverage ... ok
|
||||
test tests::complete_against_independent_official_report_projection ... ok
|
||||
|
||||
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.31s
|
||||
|
||||
Running unittests src/lib.rs (target/debug/deps/shacraft_core-f7257583d500a490)
|
||||
|
||||
running 11 tests
|
||||
test section::tests::crc32_matches_standard_check_value ... ok
|
||||
test section::tests::direct_read_rejects_out_of_range_cell - should panic ... ok
|
||||
test section::tests::packed_indices_match_cross_byte_wire_fixture ... ok
|
||||
test section::tests::uniform_round_trip_and_little_endian_layout ... ok
|
||||
test section::tests::invalid_palettes_and_indices_are_rejected ... ok
|
||||
test section::tests::structurally_invalid_headers_are_rejected_even_with_valid_checksum ... ok
|
||||
test section::tests::dense_round_trip_and_size_crossover ... ok
|
||||
test section::tests::truncated_extra_and_corrupted_bytes_are_rejected ... ok
|
||||
test section::tests::every_storage_mode_checks_registry_bounds ... ok
|
||||
test section::tests::palette_width_changes_at_powers_of_two ... ok
|
||||
test section::tests::every_palette_width_round_trips ... ok
|
||||
|
||||
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
|
||||
|
||||
Running tests/contract.rs (target/debug/deps/contract-b050c7d50e9640d3)
|
||||
|
||||
running 8 tests
|
||||
test accepted_noop_advances_revision_and_prevents_undo_of_earlier_edit ... ok
|
||||
test operation_id_collision_rejects_changed_payload_across_restart_and_methods ... ok
|
||||
test edit_replay_precedes_revision_check_and_survives_reset_and_reopen ... ok
|
||||
test invalid_batch_never_partially_writes_or_advances_revision ... ok
|
||||
test reset_is_monotonic_idempotent_durable_and_an_undo_barrier ... ok
|
||||
test undo_restores_inherited_content_and_replays_without_mutating_newer_state ... ok
|
||||
test strict_undo_rejects_later_nonoverlapping_edits_and_aba_cycles ... ok
|
||||
test snapshots_pin_effective_source_contents_and_air_overrides ... ok
|
||||
|
||||
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
|
||||
|
||||
Running tests/section_pages.rs (target/debug/deps/section_pages-92b3be09a3e83895)
|
||||
|
||||
running 1 test
|
||||
test section_pages_are_sorted_bounded_and_include_inherited_air_overrides ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
|
||||
|
||||
Running tests/storage.rs (target/debug/deps/storage-be95f5d467d8c630)
|
||||
|
||||
running 10 tests
|
||||
test lock_is_exclusive_and_released_on_drop ... ok
|
||||
test registry_is_canonical_durable_and_rejects_malformed_identifiers ... ok
|
||||
test corrupted_blob_is_reported_instead_of_air ... ok
|
||||
test revision_overflow_rejects_mutation_but_keeps_original_replay ... ok
|
||||
test sqlite_failure_mid_edit_rolls_back_blobs_history_and_revision ... ok
|
||||
test explicit_gc_preserves_snapshots_history_and_cache_correctness ... ok
|
||||
test oversized_unreachable_blob_is_rejected_before_reinterning ... ok
|
||||
test compact_cache_evicts_distinct_blobs_and_shares_identical_sections ... ok
|
||||
test coordinate_boundaries_and_inclusive_read_limits ... ok
|
||||
test uniform_section_remains_twenty_bytes_in_resident_cache ... ok
|
||||
|
||||
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/shacraft_mcp-8af48a29a5cc1f7b)
|
||||
|
||||
running 8 tests
|
||||
test tests::build_shapes_validate_without_allowing_invented_parameters ... ok
|
||||
test tests::supported_version_is_preserved ... ok
|
||||
test tests::malformed_ids_and_requests_do_not_execute ... ok
|
||||
test tests::notifications_never_generate_responses ... ok
|
||||
test tests::invalid_tool_arguments_are_mcp_content_errors ... ok
|
||||
test tests::unavailable_token_is_a_tool_error_not_transport_error ... ok
|
||||
test tests::lifecycle_negotiates_and_rejects_before_initialization ... ok
|
||||
test tests::bounded_reader_recovers_after_oversized_line ... ok
|
||||
|
||||
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/shacraft_server-33e07bc1da9f7f4e)
|
||||
|
||||
running 18 tests
|
||||
test game::tests::legacy_world_configuration_gets_safe_spleef_defaults ... ok
|
||||
test packages::tests::changed_definition_or_module_fails_hash_verification_before_loading ... ok
|
||||
test game::tests::outbox_has_byte_and_message_limits ... ok
|
||||
test packages::tests::sandbox_executes_and_bounds_fuel_memory_and_results ... ok
|
||||
test packages::tests::verified_custom_package_registers_content_and_binds_real_wasm ... ok
|
||||
test packages::tests::duplicate_vanilla_and_invalid_geometry_definitions_are_rejected ... ok
|
||||
test game::tests::trampoline_executes_wasm_despite_small_contact_gap ... ok
|
||||
test game::tests::official_collision_shapes_drive_world_physics ... ok
|
||||
test game::tests::arena_configuration_validates_before_mutation ... ok
|
||||
test game::tests::authoritative_actions_reject_forged_targets_and_sync_real_edits ... ok
|
||||
test game::tests::material_payloads_are_bounded_and_runtime_id_lookup_works_without_registry_dump ... ok
|
||||
test game::tests::snapshots_carry_revision_and_slow_consumers_are_disconnected ... ok
|
||||
test game::tests::gallery_contains_every_default_state_over_a_bounded_floor ... ok
|
||||
test game::tests::eliminated_spleef_players_cannot_reenter_and_late_joins_spectate ... ok
|
||||
test game::tests::entities_are_durable_and_failed_commits_do_not_publish_changes ... ok
|
||||
test game::tests::restart_recovers_arena_configuration_and_cleans_interrupted_round ... ok
|
||||
test game::tests::configured_spleef_rules_control_full_round_and_survive_restart ... ok
|
||||
test game::tests::interrupted_creation_of_managed_world_can_finish_its_seed ... ok
|
||||
|
||||
test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.29s
|
||||
|
||||
Running unittests src/main.rs (target/debug/deps/shacraft_tools-1836b285f941c1f2)
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Doc-tests shacraft_compat
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Doc-tests shacraft_content
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Doc-tests shacraft_core
|
||||
|
||||
running 0 tests
|
||||
|
||||
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
|
||||
|
||||
Compiling shacraft-server v0.1.0 (/home/emil/Desktop/shacraft-core/crates/shacraft-server)
|
||||
Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.71s
|
||||
{
|
||||
"passed": true,
|
||||
"checks": [
|
||||
"bounded resident cache with verified eviction while reading 80 sections",
|
||||
"second writer rejected while owner is running",
|
||||
"80 acknowledged edits and registry survive SIGKILL without flush",
|
||||
"idempotent replay after SIGKILL precedes current revision check",
|
||||
"invalid batch leaves both blocks and revision unchanged",
|
||||
"interrupted 32768-cell transaction is atomic (recovered revision 0)",
|
||||
"uncertain interrupted request can safely be retried",
|
||||
"invalid request does not terminate the local test session",
|
||||
"4096-cell uniform section occupies 20 encoded payload bytes in resident cache"
|
||||
],
|
||||
"final_metrics": {
|
||||
"process": {
|
||||
"peak_rss_bytes": 8114176,
|
||||
"rss_bytes": 8114176,
|
||||
"source": "/proc/self/status (null when unavailable)"
|
||||
},
|
||||
"storage": {
|
||||
"cache_capacity_sections": 2,
|
||||
"cache_entries": 1,
|
||||
"cache_evictions": 0,
|
||||
"cache_hits": 0,
|
||||
"cache_misses": 1,
|
||||
"cache_payload_bytes": 20,
|
||||
"cache_representation": "encoded_uniform_palette_dense",
|
||||
"commits_this_handle": 0,
|
||||
"coordinate_limit": 30000000,
|
||||
"database_bytes": 647168,
|
||||
"history_change_count": 36944,
|
||||
"history_retention": "all_operations_until_explicit_future_retention_policy",
|
||||
"immutable_blob_count": 18,
|
||||
"last_mutation_duration_us": 0,
|
||||
"max_edit_cells": 32768,
|
||||
"max_read_volume": 262144,
|
||||
"operation_count": 82,
|
||||
"os_rss_bytes": null,
|
||||
"overlay_section_count": 97,
|
||||
"registry_count": 2,
|
||||
"registry_limit_states": 262144,
|
||||
"registry_text_bytes": 32,
|
||||
"schema_version": 1,
|
||||
"shm_bytes": 32768,
|
||||
"snapshot_count": 0,
|
||||
"sqlite_cache_budget_bytes": 4194304,
|
||||
"sqlite_journal_mode": "wal",
|
||||
"sqlite_synchronous": "FULL",
|
||||
"transient_decoded_payload_peak_estimate_bytes": 16384,
|
||||
"wal_bytes": 0,
|
||||
"world_count": 3,
|
||||
"world_limit": 10000
|
||||
}
|
||||
},
|
||||
"limits": [
|
||||
"process crash tested; power loss and faulty hardware are not simulated",
|
||||
"storage-only workload; no Paper or gameplay performance comparison"
|
||||
]
|
||||
}
|
||||
TAP version 13
|
||||
# Subtest: camera axes and world projection match the server coordinate convention
|
||||
ok 1 - camera axes and world projection match the server coordinate convention
|
||||
---
|
||||
duration_ms: 2.623771
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: DDA resolves negative world coordinates and nearest entry face
|
||||
ok 2 - DDA resolves negative world coordinates and nearest entry face
|
||||
---
|
||||
duration_ms: 4.264518
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: ray selection respects slab geometry and reach instead of selecting empty half
|
||||
ok 3 - ray selection respects slab geometry and reach instead of selecting empty half
|
||||
---
|
||||
duration_ms: 8.035945
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: axis aligned ray slabs reject parallel paths outside a box
|
||||
ok 4 - axis aligned ray slabs reject parallel paths outside a box
|
||||
---
|
||||
duration_ms: 0.271763
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: selection intersects a fence extension owned by the cell below
|
||||
ok 5 - selection intersects a fence extension owned by the cell below
|
||||
---
|
||||
duration_ms: 1.042738
|
||||
type: 'test'
|
||||
...
|
||||
# Subtest: package geometry is selectable across its documented three-block extent
|
||||
ok 6 - package geometry is selectable across its documented three-block extent
|
||||
---
|
||||
duration_ms: 1.65838
|
||||
type: 'test'
|
||||
...
|
||||
1..6
|
||||
# tests 6
|
||||
# suites 0
|
||||
# pass 6
|
||||
# fail 0
|
||||
# cancelled 0
|
||||
# skipped 0
|
||||
# todo 0
|
||||
# duration_ms 134.144281
|
||||
{
|
||||
"passed": true,
|
||||
"checks": [
|
||||
"Manifest resource SHA-256/size, admin token required, server WASM not public",
|
||||
"Incompatible manifest rejected",
|
||||
"Two clients receive shared snapshot and presence",
|
||||
"Authoritative movement and collision; client position spoof ignored",
|
||||
"Forged out-of-reach block break rejected",
|
||||
"Reachable break/place, server revision ordering and broadcast",
|
||||
"Late join receives current geometry and revision",
|
||||
"Pinned template and independent clone isolation",
|
||||
"Scoped game chat delivered to peer",
|
||||
"Persisted entity events reach both clients",
|
||||
"Reconnect restores authoritative world snapshot",
|
||||
"Full two-player Spleef countdown, elimination, winner and automatic floor reset",
|
||||
"Disconnect removes players and active worlds",
|
||||
"Real SIGKILL/restart preserves committed blocks, entity properties and arena configuration"
|
||||
],
|
||||
"metrics": {
|
||||
"active_worlds": 0,
|
||||
"catalog": {
|
||||
"collision": {
|
||||
"approximate-context": 179,
|
||||
"authored-exact": 1,
|
||||
"measured-empty-context": 32187
|
||||
},
|
||||
"collision_context": "BlockPos.ZERO, air neighbors, empty entity context; contextual classes flagged separately",
|
||||
"data_version": 4903,
|
||||
"entities": 158,
|
||||
"minecraft_blocks": 1196,
|
||||
"minecraft_states": 32366,
|
||||
"minecraft_version": "26.2",
|
||||
"palette": {
|
||||
"fence": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]",
|
||||
"glass": "minecraft:glass",
|
||||
"grass": "minecraft:grass_block[snowy=false]",
|
||||
"light": "minecraft:sea_lantern",
|
||||
"sand": "minecraft:sand",
|
||||
"slab": "minecraft:oak_slab[type=bottom,waterlogged=false]",
|
||||
"snow": "minecraft:snow_block",
|
||||
"stairs": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]",
|
||||
"stone": "minecraft:stone",
|
||||
"trampoline": "shacraft:trampoline",
|
||||
"water": "minecraft:water[level=0]",
|
||||
"wood": "minecraft:oak_planks"
|
||||
},
|
||||
"render": {
|
||||
"authored-package": 1,
|
||||
"authored-procedural": 32316,
|
||||
"intentionally-invisible": 50
|
||||
},
|
||||
"simulation": "server movement, block editing, authored modules; vanilla AI/redstone/fluid simulation are not implemented",
|
||||
"total_states": 32367
|
||||
},
|
||||
"entities": 1,
|
||||
"entity_revision": 13,
|
||||
"limits": {
|
||||
"build_plans": 16,
|
||||
"bytes_per_client": 8388608,
|
||||
"command_queue": 64,
|
||||
"messages_per_client": 16,
|
||||
"plan_cells": 32768,
|
||||
"players": 32
|
||||
},
|
||||
"max_tick_ms": 3.362786,
|
||||
"plans": 0,
|
||||
"players": 0,
|
||||
"queued_client_bytes": 0,
|
||||
"rss_bytes": 61239296,
|
||||
"slow_clients_disconnected": 1,
|
||||
"storage": {
|
||||
"cache_capacity_sections": 64,
|
||||
"cache_entries": 8,
|
||||
"cache_evictions": 0,
|
||||
"cache_hits": 9,
|
||||
"cache_misses": 8,
|
||||
"cache_payload_bytes": 4304,
|
||||
"cache_representation": "encoded_uniform_palette_dense",
|
||||
"commits_this_handle": 0,
|
||||
"coordinate_limit": 30000000,
|
||||
"database_bytes": 7372800,
|
||||
"history_change_count": 22055,
|
||||
"history_retention": "all_operations_until_explicit_future_retention_policy",
|
||||
"immutable_blob_count": 87,
|
||||
"last_mutation_duration_us": 0,
|
||||
"max_edit_cells": 32768,
|
||||
"max_read_volume": 262144,
|
||||
"operation_count": 11,
|
||||
"os_rss_bytes": null,
|
||||
"overlay_section_count": 93,
|
||||
"registry_count": 32367,
|
||||
"registry_limit_states": 262144,
|
||||
"registry_text_bytes": 2671754,
|
||||
"schema_version": 1,
|
||||
"shm_bytes": 32768,
|
||||
"snapshot_count": 2,
|
||||
"sqlite_cache_budget_bytes": 4194304,
|
||||
"sqlite_journal_mode": "wal",
|
||||
"sqlite_synchronous": "FULL",
|
||||
"transient_decoded_payload_peak_estimate_bytes": 16384,
|
||||
"wal_bytes": 1384352,
|
||||
"world_count": 9,
|
||||
"world_limit": 10000
|
||||
},
|
||||
"tick": 1,
|
||||
"tick_ms": 3.362786,
|
||||
"uptime_seconds": 0,
|
||||
"wasm": {
|
||||
"calls": 0,
|
||||
"fuel_per_call": 10000,
|
||||
"imports": 0,
|
||||
"memory_limit": 65536,
|
||||
"runtime": "wasmi",
|
||||
"traps": 0
|
||||
},
|
||||
"world_count": 9
|
||||
},
|
||||
"binary": "/home/emil/Desktop/shacraft-core/target/debug/shacraft-server",
|
||||
"report_file": "/home/emil/Desktop/shacraft-core/artifacts/server-e2e-debug.json",
|
||||
"data": "/tmp/shacraft-server-test-nBiKWZ"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,119 @@
|
||||
{
|
||||
"passed": true,
|
||||
"checks": [
|
||||
"Manifest resource SHA-256/size, admin token required, server WASM not public",
|
||||
"Incompatible manifest rejected",
|
||||
"Two clients receive shared snapshot and presence",
|
||||
"Authoritative movement and collision; client position spoof ignored",
|
||||
"Forged out-of-reach block break rejected",
|
||||
"Reachable break/place, server revision ordering and broadcast",
|
||||
"Late join receives current geometry and revision",
|
||||
"Pinned template and independent clone isolation",
|
||||
"Scoped game chat delivered to peer",
|
||||
"Persisted entity events reach both clients",
|
||||
"Reconnect restores authoritative world snapshot",
|
||||
"Full two-player Spleef countdown, elimination, winner and automatic floor reset",
|
||||
"Disconnect removes players and active worlds",
|
||||
"Real SIGKILL/restart preserves committed blocks, entity properties and arena configuration"
|
||||
],
|
||||
"metrics": {
|
||||
"active_worlds": 0,
|
||||
"catalog": {
|
||||
"collision": {
|
||||
"approximate-context": 179,
|
||||
"authored-exact": 1,
|
||||
"measured-empty-context": 32187
|
||||
},
|
||||
"collision_context": "BlockPos.ZERO, air neighbors, empty entity context; contextual classes flagged separately",
|
||||
"data_version": 4903,
|
||||
"entities": 158,
|
||||
"minecraft_blocks": 1196,
|
||||
"minecraft_states": 32366,
|
||||
"minecraft_version": "26.2",
|
||||
"palette": {
|
||||
"fence": "minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]",
|
||||
"glass": "minecraft:glass",
|
||||
"grass": "minecraft:grass_block[snowy=false]",
|
||||
"light": "minecraft:sea_lantern",
|
||||
"sand": "minecraft:sand",
|
||||
"slab": "minecraft:oak_slab[type=bottom,waterlogged=false]",
|
||||
"snow": "minecraft:snow_block",
|
||||
"stairs": "minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]",
|
||||
"stone": "minecraft:stone",
|
||||
"trampoline": "shacraft:trampoline",
|
||||
"water": "minecraft:water[level=0]",
|
||||
"wood": "minecraft:oak_planks"
|
||||
},
|
||||
"render": {
|
||||
"authored-package": 1,
|
||||
"authored-procedural": 32316,
|
||||
"intentionally-invisible": 50
|
||||
},
|
||||
"simulation": "server movement, block editing, authored modules; vanilla AI/redstone/fluid simulation are not implemented",
|
||||
"total_states": 32367
|
||||
},
|
||||
"entities": 1,
|
||||
"entity_revision": 13,
|
||||
"limits": {
|
||||
"build_plans": 16,
|
||||
"bytes_per_client": 8388608,
|
||||
"command_queue": 64,
|
||||
"messages_per_client": 16,
|
||||
"plan_cells": 32768,
|
||||
"players": 32
|
||||
},
|
||||
"max_tick_ms": 0.001784,
|
||||
"plans": 0,
|
||||
"players": 0,
|
||||
"queued_client_bytes": 0,
|
||||
"rss_bytes": 51974144,
|
||||
"slow_clients_disconnected": 0,
|
||||
"storage": {
|
||||
"cache_capacity_sections": 64,
|
||||
"cache_entries": 8,
|
||||
"cache_evictions": 0,
|
||||
"cache_hits": 1,
|
||||
"cache_misses": 8,
|
||||
"cache_payload_bytes": 4304,
|
||||
"cache_representation": "encoded_uniform_palette_dense",
|
||||
"commits_this_handle": 0,
|
||||
"coordinate_limit": 30000000,
|
||||
"database_bytes": 7372800,
|
||||
"history_change_count": 22055,
|
||||
"history_retention": "all_operations_until_explicit_future_retention_policy",
|
||||
"immutable_blob_count": 87,
|
||||
"last_mutation_duration_us": 0,
|
||||
"max_edit_cells": 32768,
|
||||
"max_read_volume": 262144,
|
||||
"operation_count": 11,
|
||||
"os_rss_bytes": null,
|
||||
"overlay_section_count": 93,
|
||||
"registry_count": 32367,
|
||||
"registry_limit_states": 262144,
|
||||
"registry_text_bytes": 2671754,
|
||||
"schema_version": 1,
|
||||
"shm_bytes": 32768,
|
||||
"snapshot_count": 2,
|
||||
"sqlite_cache_budget_bytes": 4194304,
|
||||
"sqlite_journal_mode": "wal",
|
||||
"sqlite_synchronous": "FULL",
|
||||
"transient_decoded_payload_peak_estimate_bytes": 16384,
|
||||
"wal_bytes": 1384352,
|
||||
"world_count": 9,
|
||||
"world_limit": 10000
|
||||
},
|
||||
"tick": 1,
|
||||
"tick_ms": 0.001784,
|
||||
"uptime_seconds": 0,
|
||||
"wasm": {
|
||||
"calls": 0,
|
||||
"fuel_per_call": 10000,
|
||||
"imports": 0,
|
||||
"memory_limit": 65536,
|
||||
"runtime": "wasmi",
|
||||
"traps": 0
|
||||
},
|
||||
"world_count": 9
|
||||
},
|
||||
"binary": "/home/emil/Desktop/shacraft-core/target/release/shacraft-server"
|
||||
}
|
||||
Reference in New Issue
Block a user