post-TUI lag: autosuggestion culprit confirmed; add self-heal hook

A/B in a live lagging shell: disabling fish_autosuggestion_enabled cures
the lag instantly, and re-enabling does NOT bring it back — the toggle
resets the wedged reader state. __autosuggestion_unwedge (fish_postexec)
now applies that reset after every command, at the moment TUIs exit.
Builtins only, invisible, respects a deliberate manual disable. Flight
recorder stays armed until the hook is proven in real use.

Also from this investigation: wedged-thread evidence (sampler attach
cures), lag-sample tool, flight recorder in the zellij fish wrapper.
This commit is contained in:
Noah Masur
2026-09-07 11:17:44 -04:00
parent db49e746b8
commit d4e56dd190
5 changed files with 124 additions and 1 deletions
@@ -32,6 +32,15 @@ in
description = "Reset terminal state left behind by a TUI";
body = builtins.readFile ./unlag.fish;
};
lag-sample = {
description = "Stack-sample fish and zellij while typing lag is happening";
body = builtins.readFile ./lag-sample.fish;
};
__autosuggestion_unwedge = {
description = "Reset autosuggestion state after each command to prevent post-TUI typing lag";
onEvent = "fish_postexec";
body = builtins.readFile ./autosuggestion-unwedge.fish;
};
};
};