Files
TakeshiandClaude Opus 5.5 a8edd3c3a1 P14-03: Versioned shaft-wait saves, keep riders aboard, real-actor proof
- ElevatorService snapshot v2 carries the shaft-wide wait; v1 saves (written
  with every elevator dynamic_cost 0) migrate by deriving it on load, and any
  v2 mismatch, including all zeros, is rejected atomically. A genuine save
  from 50ceca0 is kept as tests/fixtures/p14-03/legacy_rush_v1.
- A guest aboard a cabin no longer decides, leaves or despawns until the
  elevator sets it down at a real landing; previously a rider told to leave
  vanished from a moving cabin.
- test_route_wait_choice now proves the rush detour and route loss with a
  worker who actually walks, every shared rider's arrival cell, service
  elevator and stair congestion, legacy migration and a new-PID restart.
- Register completion markers for the seven suites added this session and
  bring the P14 ledger in line with P14-02's completion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:51:41 +09:00

1.6 KiB
Raw Permalink Blame History

P14-03 旧形式セーブの fixture

legacy_rush_v1/ は、P14-03 より前の本物のセーブパッケージです。待ち時間を shaft 全体で数えるようにする前の版で書き出しています(ElevatorService snapshot v1、Runtime schema 14)。

  • 籠Aの1階で12人の客が3階行きを待っています。
  • 昇降機の接続はすべて dynamic_cost が0です。

生成方法(2026-10-20)

  1. 作業ツリーの次の2ファイルを、一時的に 50ceca0 時点の版へ差し替えました。
    • scripts/transport/elevator_service.gd
    • scripts/world/path_service.gd
  2. legacy_rush_writer.gd.txt を LEGACY_OUT=user://tests/p14_03_legacy_rush として実行しました(headless)。出力は次のとおりです。
    • LEGACY dynamic costs [0, 0, 0, 0, 0, 0, 0]
    • SAVE true
  3. 2ファイルを元に戻しました。git の blob が HEAD と一致することを確認済みです。
    • elevator: 574ba4f3…
    • path: 5cc9516f…

SHA256

978fd98f250ae5a9d3249f22adc3dcf032007dde92ddd10d556e050dd87616d8  journal.log
80c251341bd3f2a6c4a659f30e477dd856c9fec7961d5b2dfd98d7e9eb5006ab  manifest.json
0ef55674eca98b6748ae5ccca85a14b042c1545a143810c9c47b487119895c32  thumbnail.png
26171ed8994982ed13fe038d225522044f1049070be53d76a4ed5572a227257d  world.bin

tests/transport/test_route_wait_choice.gd が確認する内容は次のとおりです。

  • この保存は読み込みに成功し、待ち時間が再計算されて v2 として保存されます。
  • v1 には現れ得ない非0の待ち費用を含む保存は、原子的に拒否されます。