DEFAULT_PHASE_TIMEOUTS: Record<TransactionState, number | null> covering all 12 states (arch §8) with per-state rationale.
getPhaseTimeoutMs(state) honours per-state env overrides PHASE_TIMEOUT_<STATE>=<ms>; 0 disables the watchdog; invalid values fall through to the default.
CLOSED is the only state with null (no timeout).
9 unit tests.
Wiring the map into the scheduler / exception manager is out of scope here — this PR lands the policy + env contract only; the watchdog consumer will follow once PR M / PR N land (they touch the same transition path).
Closes gap-analysis v2 §7.6 + §10.7.
- `DEFAULT_PHASE_TIMEOUTS: Record<TransactionState, number | null>` covering all 12 states (arch §8) with per-state rationale.
- `getPhaseTimeoutMs(state)` honours per-state env overrides `PHASE_TIMEOUT_<STATE>=<ms>`; `0` disables the watchdog; invalid values fall through to the default.
- `CLOSED` is the only state with `null` (no timeout).
- 9 unit tests.
Wiring the map into the scheduler / exception manager is out of scope here — this PR lands the policy + env contract only; the watchdog consumer will follow once PR M / PR N land (they touch the same transition path).
Closes gap-analysis v2 §7.6 / §10.7.
- Adds DEFAULT_PHASE_TIMEOUTS: Record<TransactionState, number | null>
to orchestrator/src/types/transactionState.ts, covering all 12 states
of the §8 state machine with rationale-per-state comments.
- getPhaseTimeoutMs(state) honours per-state env overrides
(PHASE_TIMEOUT_<STATE>=<ms>; '0' disables; invalid → default).
- CLOSED is the only state with a null (no-timeout) value.
- 9 unit tests; full suite passes.
This pull request is broken due to missing fork information.
This pull request can be merged automatically.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes gap-analysis v2 §7.6 + §10.7.
DEFAULT_PHASE_TIMEOUTS: Record<TransactionState, number | null>covering all 12 states (arch §8) with per-state rationale.getPhaseTimeoutMs(state)honours per-state env overridesPHASE_TIMEOUT_<STATE>=<ms>;0disables the watchdog; invalid values fall through to the default.CLOSEDis the only state withnull(no timeout).Wiring the map into the scheduler / exception manager is out of scope here — this PR lands the policy + env contract only; the watchdog consumer will follow once PR M / PR N land (they touch the same transition path).
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.