Eliminates the socat bridge dependency by using OpenSSH's built-in
Unix socket forwarding (-L port:socket_path). The dagger user already
owns /run/dagger/engine.sock so no intermediate TCP listener is needed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When the user typed a query, onChanged already fired _runSearch and
results settled. Pressing Enter then triggered onSubmitted → a second
IMAP search whose response could arrive in a different order, silently
reordering the visible list so the tile at position 0 no longer
corresponded to the email the user was about to tap.
Fix: onSubmitted now skips _runSearch when results are already present
(_searchResults != null) or a search is in flight (_searchLoading).
Adds a regression test that verifies the list order is unchanged after
pressing Enter on an already-settled search.
Closes#473
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>