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>
This commit is contained in:
Takeshi
2026-10-20 16:51:41 +09:00
co-authored by Claude Opus 5.5
parent 62d1dcecad
commit a8edd3c3a1
15 changed files with 562 additions and 113 deletions
@@ -8258,7 +8258,7 @@
},
"legacy_state": "planned",
"state_scope": "package-level; completed means whole package accepted; partial implementation is not completion",
"current_summary": "採用済み1299参照は初回独立レビューと同一。初回に確認した失敗時保存保護、正常順序・型・所有権・保存復元・経路、1200Kernel ticksの全状態・イベント一致、同版172回帰14636checks/0を維持する。追加証拠で20,000セル・200客・50職員・150施設、既存施設要求200・物流要求200・イベント50の同一Operations OFF状態を採用前後で復元し、snapshot/manual/autosaveを各5試行、各64checks/0として確認。平均snapshotは75.985→74.624ms、manualは425.955→445.803ms、autosaveは280.757→297.499ms。手動保存平均19.848ms、自動保存平均16.741msの実測増加を保持し、ゼロ回帰とは扱わない。採用後保存最大515.903msは既存5秒予算内。P14-01の性能回帰測定不足B01を解消し、この成果単位のみ正式完了可と判定する。5試行の保存・snapshot測定に限定し、simulation、Operations ON、描画、全P28・全P14・全原子・完成素材・全体完成へ拡張しない。Windowsは適用ありの未検証を保持し、通常OS全受入も未完のままとする。 P14-02/03・全P14・Windows全体受入は未完。",
"current_summary": "採用済み1299参照は初回独立レビューと同一。初回に確認した失敗時保存保護、正常順序・型・所有権・保存復元・経路、1200Kernel ticksの全状態・イベント一致、同版172回帰14636checks/0を維持する。追加証拠で20,000セル・200客・50職員・150施設、既存施設要求200・物流要求200・イベント50の同一Operations OFF状態を採用前後で復元し、snapshot/manual/autosaveを各5試行、各64checks/0として確認。平均snapshotは75.985→74.624ms、manualは425.955→445.803ms、autosaveは280.757→297.499ms。手動保存平均19.848ms、自動保存平均16.741msの実測増加を保持し、ゼロ回帰とは扱わない。採用後保存最大515.903msは既存5秒予算内。P14-01の性能回帰測定不足B01を解消し、この成果単位のみ正式完了可と判定する。5試行の保存・snapshot測定に限定し、simulation、Operations ON、描画、全P28・全P14・全原子・完成素材・全体完成へ拡張しない。Windowsは適用ありの未検証を保持し、通常OS全受入も未完のままとする。 P14-02は2026-10-20に正式完了(8917c19、A07/A08)。P14-03は実装中、全P14・Windows全体受入は未完。",
"remaining_deliverables": [
{
"id": "P14-01",
@@ -8337,13 +8337,8 @@
],
"progress_summary": "A07表層マナワープ(客用)とA08裏層業務用ワープ(従業員用)を通常建設・経路・課金・停止・保存へ接続。建設済み同種ワープを全組接続し1歩移動、出発確定時に1人3マナを一回課金。残量不足・停電・到着封鎖で経路除外し費用・移動なし。別PID再開で費用・移動の二重反映なし。独立レビューr1/r2 PASS(8917c19)。Windows・完成素材・描画目視は対象外。",
"remaining_gaps": [
"通常建設できる2x2 FRONTのワープ施設と原本/承認値の費用・工期等の定義",
"通常経路選択から対象と出口の所有/予約/実位置へ接続する処理",
"承認済み費用確定規約と二重計上拒否",
"マナ不足/機能停止/到着不能の原状保持",
"途中保存・別PID再開で費用と移動が二重反映されない証拠",
"通常UI、影響回帰、性能、完成素材の適用範囲と独立レビュー",
"適用する同一配布版のWindows実機条件"
"完成素材と描画の目視確認(非主張)",
"同一配布版のWindows実機条件(非主張)"
],
"updated_at_jst": "2026-10-20T00:00:00+09:00",
"completion_acceptance": {
@@ -8351,15 +8346,24 @@
"sha256": "ac7bfd6fb88cb8ac8c195c8051ebe22ba95a6a6393342de089aae88fdcc73307",
"candidate": "8917c19",
"owner_approval": "delegated_by_user 2026-10-20「承認するかどうかの判断はそちらでやって」"
}
},
"remaining_gaps_at_completion": "2026-10-20に解消済み(execution/p14-02-warp/ACCEPTANCE.json)。完成素材・描画目視・Windows実機は非主張として残す。"
},
{
"id": "P14-03",
"title": "混雑と経路選択",
"work": "客用・業務用EV、階段、ワープの待ち時間をA*費用へ反映する。",
"acceptance": "ラッシュ、相乗り、50%減速、救護同伴、経路喪失を実位置と人数で検証する。",
"state": "planned",
"evidence": []
"state": "in_progress",
"evidence": [],
"progress_summary": "実装0754f41(shaft全体の待ちをA*費用へ)+保存契約v2(旧v1は待ちを導出して移行、v2改ざんは全0含め原子拒否)+乗車中の客が籠内で退館しない修正。test_route_wait_choiceで実客・実歩行によるラッシュ迂回、相乗り定員内と全員の到着位置、経路喪失、業務EV・階段・ワープ出口の混雑、旧版保存移行、別PID再開を確認中。正式全回帰・性能・独立レビュー前。",
"remaining_gaps": [
"正確候補での正式全回帰(tools/run_all_tests.py)",
"代表負荷の性能回帰計測",
"独立Opusレビュー",
"Windows実機(適用あり未検証として残す)"
],
"updated_at_jst": "2026-10-20T00:00:00+09:00"
}
],
"estimate_person_days_historical_2026_09_29": [