P04-01: 同時発生の更新規約
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
S1コード準備完了・未実測・原P04 whole未達。D05 pending、A未検証。
|
||||
engine起動・全回帰・コミットはworkerでは実施しない。
|
||||
assertは各caseの停止中の課金行0、予約の孤立0、到着1回だけ。
|
||||
予約snapshotのstateは文字列名として検査し、未知の名前は孤立checkを失敗にする。
|
||||
ACTIVEのstaff_task予約とtask.reservation_idsを双方向照合する。非ACTIVEの履歴もrawには保持する。
|
||||
費用帰属、金額、EV停止規則を決めない。remaining_minutes保持は生観測として保存する。
|
||||
|
||||
## Rootが実行するコマンド
|
||||
@@ -13,8 +15,8 @@ Rootは先に空き容量・他のengine・終了済cacheへのアクセスを
|
||||
|
||||
```sh
|
||||
export PYTHONPYCACHEPREFIX='/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/s1-python-cache'
|
||||
python3 '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-implement/docs/plans/original-completion-2026-10-02/execution/p04-01/s1/run_s1_native.py' --check-only --plan '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-root-plan-r01.json' --output '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r01'
|
||||
python3 '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-implement/docs/plans/original-completion-2026-10-02/execution/p04-01/s1/run_s1_native.py' --plan '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-root-plan-r01.json' --output '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r01'
|
||||
python3 '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-implement/docs/plans/original-completion-2026-10-02/execution/p04-01/s1/run_s1_native.py' --check-only --plan '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-root-plan-r02.json' --output '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r02'
|
||||
python3 '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/P04-01-implement/docs/plans/original-completion-2026-10-02/execution/p04-01/s1/run_s1_native.py' --plan '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-root-plan-r02.json' --output '/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r02'
|
||||
```
|
||||
|
||||
既定の製品sourceは
|
||||
@@ -48,7 +50,7 @@ strict phase失敗またはguard失敗は1、native開始前の入力・資源
|
||||
## 出力とraw一覧
|
||||
|
||||
出力root:
|
||||
`/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r01/`
|
||||
`/Users/korizatou114/Projects/TheTree-managed-worktrees/p04-01/.runtime/P04-01/build/p04-s1-native-r02/`
|
||||
|
||||
- source_before.json、source_after.json、selected-source-map.json、runner-input.json
|
||||
- runner-started.json、runner-ended.json、execution.json、PID-set.json、outer-owned-finally.json、raw-inventory.json
|
||||
|
||||
+7
-2
@@ -141,13 +141,18 @@ func safety(row: Dictionary) -> void:
|
||||
var charge_rows: int = row[&"held_after"][&"ledger"].size() - row[&"reserve_exhausted_before_tick"][&"ledger"].size()
|
||||
outcome(charge_rows == 0, "停止中の課金行0")
|
||||
var orphans := 0
|
||||
var states_known := true
|
||||
# Check each observed boundary, both directions, using actual task ownership.
|
||||
for point_name: StringName in [&"boarded", &"stopped", &"held_after", &"final"]:
|
||||
var point: Dictionary = row[point_name]
|
||||
var tasks: Array = point[&"snapshot"][&"systems"][&"runtime"][&"staff"][&"tasks"]
|
||||
var active: Dictionary = {}
|
||||
for reservation: Dictionary in point[&"reservations"]:
|
||||
if int(reservation[&"state"]) != InventoryReservation.State.ACTIVE: continue
|
||||
var state_name := String(reservation[&"state"])
|
||||
if InventoryReservation.State.keys().find(state_name) < 0:
|
||||
states_known = false
|
||||
continue
|
||||
if state_name != InventoryReservation.State.keys()[InventoryReservation.State.ACTIVE]: continue
|
||||
if String(reservation[&"purpose"]) != "staff_task": continue
|
||||
active[String(reservation[&"reservation_id"])] = reservation
|
||||
var linked := false
|
||||
@@ -157,7 +162,7 @@ func safety(row: Dictionary) -> void:
|
||||
for task: Dictionary in tasks:
|
||||
for id: Variant in task[&"reservation_ids"]:
|
||||
if not active.has(String(id)): orphans += 1
|
||||
outcome(orphans == 0, "予約の孤立0")
|
||||
outcome(orphans == 0 and states_known, "予約の孤立0" if states_known else "予約の不明状態")
|
||||
var counts := {&"staff:medic": 0, &"staff:patient": 0}
|
||||
var stops: Array = row[&"boarded"][&"elevator_report"][&"shafts"][0][&"stops"]
|
||||
var requests: Dictionary = {}
|
||||
|
||||
Reference in New Issue
Block a user