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

31 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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の待ち費用を含む保存は、原子的に拒否されます。