diff --git a/DECISIONS.md b/DECISIONS.md index 53d9f62..41ae502 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -1692,3 +1692,14 @@ Implementation decisions not spelled out in `memory-bank/implementation-plan.md` - **Switching to Manual is immediate in the save**, and that already means "when the current trip ends": an Independent pilot only decides while idle, so a trip in progress finishes either way. - **Orders are kept even in Manual**, so switching back to Independent restores them. - **Local checks**: `pnpm -s typecheck` printed nothing while the web package had type errors (the exit code was 2). Types are now checked with `pnpm typecheck` and an "error TS" search. + +## Step 20.4 + +- **Decision points are stored, not derived**: each pilot keeps `nextDecisionAt`. A landing sets it to a turnaround after the arrival, or after the rest it triggers; setting a pilot Independent sets it to a turnaround from then. Rest, the shop and the first-look window each push it later; a wait sets it to the next board period's first-look end. Shop endings and rest endings need no events of their own: the decision point checks them. +- **Board periods matter only to waiting pilots**, so they appear as those pilots' next decision points rather than as separate events. +- **Arrivals resolve at their arrival time** (`resolvedAt` = arrival), not when the app notices them. Without this, splitting time would change Auto top-up credits and every later decision. +- **Ids made during catch-up are `ind--