Files
Takeshi b84bade045 Save The Tree implementation and acceptance work in progress
Preserve production code, regression fixtures, audio assets and provenance, test infrastructure, and the original-completion plan and progress ledger. Final game and Windows acceptance remain pending; excluded local artifacts and native experiments are not part of this snapshot.
2026-10-11 15:58:00 +09:00

195 lines
11 KiB
JSON

{
"schema_version": 1,
"scope": "P28-01 read-only current Runtime mixed-load fixture audit and unexecuted driver proposal",
"observed_at_jst": "2026-10-02T01:25:59.616501+09:00",
"production_root": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部",
"source_pins": {
"autoload/simulation_runtime.gd": "d3ad4aab6ded19eb137c5494481cc7333e846746a25b18dbad3c8b663e9f6b72",
"autoload/game_clock.gd": "39400634a57ccbf8c584b54a15a259048a95da90b1528330151e45667d65f7f7",
"scripts/operations/operations_coordinator.gd": "1c0408d12a659d7f11676765e64ec8850454609290519471f5e8d30da28d540e",
"scripts/progression/progression_service.gd": "4f4e00fbeab4a4cec49b7912d8e75381b8354791e0a9efdb8414d984e88ca46f",
"scripts/core/performance_budget.gd": "79d18e8f0dcc3932801cd02ea8a8ba037af02ef57665387cba8dbe3b3e9af917",
"scripts/core/save_service.gd": "7c107a509b3afccb478ba89d051fbaa9a8c93165326fac8e4cef2249c05879d0",
"tests/performance/perf_mvp_001_harness.gd": "63519cf3723d084fa9c30425e49eb210a54a23fd1987df910621f8d12df9e413",
"tests/performance/profile_production_scene.gd": "83f288a10963f0331db3d2c71e9f8387a8940c03a1f710276217490f88b8adf5",
"tests/s3/test_runtime_actor_cycle.gd": "cbad1505c735f3dab4596f7ad823d6501faf0cea4b9b91cc2b6ff0422296a2de",
"tests/s6/test_save_preflight.gd": "49e24247649839b6f50d19b2284368efb7f8f8b189c5010491ad428e97c1c8b9",
"scripts/ui/pixel_tower_demo.gd": "d66a245818d77d879b3046a4daea372d8b36d33c7fcce8c7ad3c170206e847ae",
"docs/plans/original-completion-2026-10-02/execution/IMPLEMENTATION_PLAN.initial.md": "f9cb3f61e4cb020e37f792c615dfbd4794763884a8ec528de14c3469cf4e5248"
},
"source_mutated_by_this_audit": false,
"performance_driver_executed": false,
"full_runtime_mixed_load_accepted": false,
"windows_rendering_accepted": false,
"requested_target": {
"open_cells": 20000,
"guests": 200,
"staff": 50,
"facilities": 150,
"queues": "present and counted",
"logistics": "present and counted",
"events": "present and counted",
"origin": "IMPLEMENTATION_PLAN.initial.md:395,450"
},
"existing_fixtures": [
{
"path": "tests/performance/perf_mvp_001_harness.gd",
"kind": "standalone real-service model composition",
"full_target": {
"open_cells": 20000,
"guests": 200,
"staff": 50,
"facilities": 150,
"queued_requests": 500,
"unfinished_logistics": 200,
"event_candidates": 50,
"simulation_minutes": 1440,
"speed": 3
},
"anchors": {
"target": 22,
"independent_services": 179,
"world_population": 203,
"manual_tick": 511,
"individual_service_roundtrips": 827
},
"limitations": [
"Does not instantiate SimulationRuntime or GameClock.",
"Coordinates services in its own minute loop, not the registered Runtime kernel.",
"Service roundtrips are not Runtime SaveService package acceptance.",
"Its 200x50x2 map does not fit the canonical Rank 7 bounds.",
"No main scene subscribers, frame drawing, GPU or Windows measurement."
],
"reuse": "service seeding ideas, explicit target counts and invariant assertions only"
},
{
"path": "tests/performance/profile_production_scene.gd",
"kind": "actual Runtime small main-scene diagnostic",
"anchors": {
"runtime_entry": 27,
"ui_entry": 34,
"clock_measurement": 43,
"snapshot_measurement": 66,
"limitations": 129
},
"limitations": [
"PixelTowerDemo supplies seven service facilities and four staff, not full target.",
"Autosave disabled; synchronous UI refresh is included but rendered frames/GPU are excluded.",
"No full Runtime package save/load timing, and no native Windows evidence."
],
"reuse": "phase signals, x1/x3 sampling, deferred dashboard flush and component breakdown"
},
{
"path": "tests/s3/test_runtime_actor_cycle.gd",
"kind": "actual Runtime command-driven actors, service/task Tick and snapshot replay",
"anchors": {
"initialize": 37,
"build": 57,
"staff": 79,
"spawn": 163,
"snapshot": 196,
"replay": 210,
"day_replay": 220
},
"limitations": [
"One cafeteria, two staff and one guest; correctness proof does not establish 200-guest scale."
],
"reuse": "normal public commands, actor linkage, synchronized GameClock and digest replay"
},
{
"path": "tests/s6/test_save_preflight.gd",
"kind": "standalone large world save-size fixture",
"anchors": {
"fixture_sizes": 137
},
"limitations": [
"Explicit full_runtime_20000_cell_acceptance=false; cannot certify mixed Runtime load."
]
}
],
"production_operations_capacity": {
"population_cap": 100,
"default_anchor": "scripts/operations/operations_coordinator.gd:83",
"normal_enable_anchor": "autoload/simulation_runtime.gd:1446",
"spawn_guard_anchor": "autoload/simulation_runtime.gd:5892",
"restore_wrapper_anchor": "autoload/simulation_runtime.gd:3160",
"restore_canonical_anchor": "autoload/simulation_runtime.gd:3828",
"config_locked_after_commit_anchor": "scripts/operations/operations_coordinator.gd:183",
"normal_runtime_enable_accepts_cap_override": false,
"canonical_restore_accepts_raw_cap_200": false,
"conclusion": "200 guests cannot be accepted as current production Operations-enabled normal mixed load by editing the cap.",
"resolution_required": "Scope/normal production capacity must be resolved separately; no cap or save baseline changes adopted."
},
"operations_disabled_200_guest_feasibility": {
"assessment": "statically plausible public Runtime diagnostic; unexecuted and unaccepted",
"public_spawn_guest_guard_applies_only_when_operations_enabled": true,
"disabled_save_wrapper_has_population_cap": false,
"public_tick": "GameClock.advance_one_minute / advance_minutes run registered Runtime phases",
"public_package_save": "SimulationRuntime.save_to_path (3991)",
"public_package_load": "SimulationRuntime.load_from_path (4019)",
"guest_actor_and_wallet_callbacks": "public spawn_guest creates GuestRuntime, path actor, wallet and progression lifetime state",
"evidence_limit": "The existing actor-cycle proves small Runtime snapshot replay, not 200-guest package save/load.",
"admission_statement": "production Operations enabled mixed load未受入"
},
"world_constraints": {
"canonical_rank7_bounds": {
"min_x": -60,
"max_x": 60,
"min_y": -40,
"max_y": 56
},
"canonical_rank7_max_coordinate_slots_two_layers": 23474,
"rank6_max_coordinate_slots_two_layers": 13774,
"restore_requires_world_bounds_match_progression_and_game_state": "autoload/simulation_runtime.gd:924-954",
"rank_promotion_entry": "set_world_tree_rank public command; executes synchronized live metrics and request_rank_up (7636)",
"rank7_fixture_currently_confirmed": false,
"avoid": [
"Do not copy the model 200x50 bounds into Runtime.",
"Do not set GameState Rank alone or fabricate a promotion snapshot.",
"Do not bypass SpatialSubslot/RouteAdapter/InfrastructureProjector crosslinks."
]
},
"minimal_driver_proposal": {
"status": "proposal only; no GDScript added or run during root full regression",
"driver_location_if_approved": "tests/performance/profile_runtime_mixed_load.gd in an isolated accepted-source stage",
"runtime_path": "real GameClock/GameState/SimulationRuntime; keep Operations disabled for 200-guest diagnostic",
"fixture_source": "a legal command-built or already accepted rank-7 Runtime save; existence not yet confirmed",
"steps": [
"Pin the root adopted source map, Godot binary, machine, seed, driver hash and separate temporary save directory.",
"Initialize actual Runtime with clock paused and a fixed seed; disable background autosave only for explicitly labelled Tick measurements.",
"Prepare canonical rank-7 state through progression commands and recorded legitimate prerequisites, or load a reviewed compatible save.",
"Populate exactly 20000 nonempty/open world cells inside canonical bounds through public world/route APIs; synchronize route projection and reject any failed invariant.",
"Build 150 facilities with public build commands and real completion; register 50 staff via public commands, use real shifts, assignments and dispatchable tasks.",
"Spawn 200 stable perf-guest IDs via public spawn_guest with real wallets/current cells and exit horizon; verify exact counts and crosslinks.",
"Stock real inventories; create real logistics requests, service queues and event candidates with public commands; record actual active and unfinished counts at measurement start/end.",
"Create a checkpoint and first require Runtime save_to_path plus fresh Runtime load_from_path digest equality; any failure stops timing and records unsupported fixture.",
"Restore identical checkpoint for x1 and x3; measure whole clock.advance_minutes(speed), per-phase cost, path queries, snapshot/digest, synchronous UI refresh and maximum stall.",
"Measure explicit Runtime package save/load separately with disk I/O and validation; preserve immutable measurement logs and save hashes.",
"Repeat from identical initial digest without concurrent regression work; report average, P95, maximum, sample count and load attrition rather than silently reducing targets.",
"Run a separate <=100 guest Operations-enabled canonical diagnostic; report it separately and leave the 200-guest enabled target unaccepted.",
"Perform rendered/native Windows measurement only on the same accepted EXE/PCK/ZIP, with CPU/GPU/RAM/resolution/scaling and target FPS recorded after D10 is fixed."
],
"bootstrap_blockers": [
"No currently verified canonical rank-7 mixed Runtime save fixture.",
"Normal Operations cap 100 conflicts with requested 200 guest mixed target.",
"Pending per-facility required staffing, capacities, prices and other production values remain separate from diagnostic fixture values.",
"Full simultaneous queues/logistics/events sustained-load topology has not been validated.",
"Windows rendered frame target and native device evidence remain unverified."
],
"acceptance_exclusions": [
"Operations-disabled diagnostic cannot certify production arrivals/daily closing/wages/debt/pauses.",
"Headless Tick speed cannot certify rendered frames or native Windows FPS.",
"Artificial stock/resource setup must be labelled diagnostic and never presented as normal-play evidence."
]
},
"budgets_current_code_us": {
"simulation_x1_average": 4000,
"simulation_x3_p95": 12000,
"path_query_p95": 2000,
"main_thread_stall_maximum": 50000,
"save_maximum": 5000000,
"load_maximum": 8000000
},
"measurement_gate": "Root full regression session 43345 currently owns CPU; no extra Godot profile execution in this audit."
}