Skip to content

Commit 9372c45

Browse files
committed
fix(tui): remove same-id operator gate drop so duplicate asks never strand a resolver
The gate-wire same-id guard ran before timeout, abort, or teardown registration, so a distinct event arriving with an already-live id had its resolve never called on accept, timeout, or dispose. Dedup belongs to the input-required reducer per the plan; gate-wire restores HEAD queue behavior where every event queues and resolves.
1 parent 797ae9c commit 9372c45

1 file changed

Lines changed: 0 additions & 7 deletions

File tree

‎src/tui/gate-wire.ts‎

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -291,10 +291,6 @@ export function wireGates(
291291
// gate into dispose's teardown sweep after it has already resolved
292292
// (harmless, since `settled` guards the double-resolve, but wasted work).
293293
const operatorTeardowns = new Set<() => void>();
294-
// A live ask_operator gate can be re-emitted while its original event is
295-
// still awaiting an answer. Its id owns the single overlay and resolver
296-
// until that gate settles.
297-
const liveOperatorGateIds = new Set<string>();
298294
// Bumped every time any gate (permission or operator) opens on the shared
299295
// host. A settle path that only knows "my overlay was opened" cannot tell
300296
// whether the host has since moved on to a newer one — the shell closes an
@@ -522,8 +518,6 @@ export function wireGates(
522518
resolve(operatorCancelResult());
523519
return;
524520
}
525-
if (liveOperatorGateIds.has(ev.id)) return;
526-
liveOperatorGateIds.add(ev.id);
527521
hooks.onGateOpened();
528522
const resolve = onceClosed(hooks.onGateClosed, ev.resolve);
529523
const primaryOperator = isPrimaryAskOperatorEvent(ev);
@@ -597,7 +591,6 @@ export function wireGates(
597591
settled = true;
598592
clearTimers();
599593
operatorTeardowns.delete(teardown);
600-
liveOperatorGateIds.delete(ev.id);
601594
if (primaryOperator) hooks.onPrimaryOperatorSettled?.(ev);
602595
if (openedGeneration === undefined) {
603596
unqueue(open);

0 commit comments

Comments
 (0)