Problem
A custom SASL authenticator that supplies an initial response and has no further challenge response can remain incomplete because the exchange does not mark that valid one-shot path done.
Prepared atomic commit d60b07dc5b8276ee0141ec0410227d05d5c284e1 completes initial-response-only exchanges while retaining multi-step and cancellation behavior. Dual-Ruby exchange models and the full suite pass; package and Rails checks pass. No repository tests were modified.
Problem
A custom SASL authenticator that supplies an initial response and has no further challenge response can remain incomplete because the exchange does not mark that valid one-shot path done.
Prepared atomic commit
d60b07dc5b8276ee0141ec0410227d05d5c284e1completes initial-response-only exchanges while retaining multi-step and cancellation behavior. Dual-Ruby exchange models and the full suite pass; package and Rails checks pass. No repository tests were modified.