diff --git a/neode-ui/src/services/contextBroker.ts b/neode-ui/src/services/contextBroker.ts index 1735963f..90b727eb 100644 --- a/neode-ui/src/services/contextBroker.ts +++ b/neode-ui/src/services/contextBroker.ts @@ -105,8 +105,12 @@ export class ContextBroker { /** How long the one-shot aiui:tool-confirm-response listener stays armed * before being cleaned up — slightly beyond the node's own CONFIRM_TIMEOUT - * (120s), after which the node has already declined the action itself. */ - private static readonly CONFIRM_LISTENER_TTL_MS = 130_000 + * (300s since 13-08's UAT bump; was 120s), after which the node has + * already declined the action itself. Must stay ABOVE the node timeout: + * a TTL below it disarms the listener while the dialog is still + * legitimately open, and an approve clicked in that window goes nowhere + * until the next poll re-announces. */ + private static readonly CONFIRM_LISTENER_TTL_MS = 310_000 private confirmPollTimer: ReturnType | null = null /** Chat turns currently in flight — polling runs while > 0. */