mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-11-06 08:15:35 +00:00
#827 stopped a declined prompt from being asked again, but left the prompts themselves with no notion of whether anyone was still waiting on them. A routed auth prompt sat in the mailbox, in the parked queue behind the sheet on screen, or on screen itself, until somebody answered it — even after the connection attempt that raised it had timed out and moved on. Answering it sent the secret into a dropped channel. That is the report's sequence. A link drops while nobody is at the keyboard; each reconnect attempt raises a password prompt and times out unanswered, and before #827 the supervisor dialled again and again, so one dead prompt per attempt piled up behind the first sheet. The user comes back, types the password into a sheet nobody is listening to, the next one comes up, one of them happens to be the live attempt and connects — and the dead ones keep coming up however they are closed. #827 ends the attempt loop on a timed-out password, but a key passphrase declined by timeout still falls through to other methods and a transient failure, and a single stale sheet is still left on screen either way. A PendingAuth now carries a weak handle whose only strong count lives in the responder for as long as it waits, so it can say when it has been abandoned. The pump drops abandoned prompts instead of raising or parking them, and takes down an on-screen routed sheet whose asker has gone, moving on to whatever else is asking. The GUI also waits no longer than the daemon's handshake does (the broker's 120s rather than 180s), so the sheet comes down when the attempt behind it actually fails, not a minute later.