Why
Some work has no input for minutes (a payment awaited on a terminal, an upload, a background job the page is watching) and must never be interrupted by an idle timeout.
Proposal
const release = keeper.hold('checkout') // counted, labelled
release()
- An open hold counts as activity for the planner: the session is refreshed with no input at all.
- Expose
holds (count + labels) in state for debugging.
- React:
useSessionHold(active: boolean, label?: string) acquires while active is true and releases on change/unmount.
Why
Some work has no input for minutes (a payment awaited on a terminal, an upload, a background job the page is watching) and must never be interrupted by an idle timeout.
Proposal
holds(count + labels) in state for debugging.useSessionHold(active: boolean, label?: string)acquires whileactiveis true and releases on change/unmount.