Skip to content

Fish autocomplete sometimes forgets history and goes back in time #10300

Description

@jacobsa

I'm using fish 3.6.4 with this configuration. Typically I run fish within tmux, with a few different tmux windows open at a time.

I find that a few times per day, fish seems to forget history for commands I run all of the time. For example, I run a command of this form many times per day:

foo; and bar; and baz

Normally when I typ fo, fish will automatically complete the rest of it and I can press right, then enter, to run it. But a few times per day one instance of fish will totally forget it, and auto-complete a broken typo version I ran months ago:

foo; and basdfg; and baz

If I switch to other instances of fish running in other tmux windows, they don't have this problem: they still autocomplete correctly. If I close the tmux window and open a new one, the new instance of fish is fine. Even if I run fish to get a new sub-shell within the broken instance, it also uses the correct history. It's only the one busted instance of fish.

To be clear, it's not just one command. This issue happens with several different commands that I run frequently, and it seems like when fish gets into this state it's all recent history that is lost, not just one command.

It's almost as if there is some in-memory circular buffer of history, and it eventually overflows when I run enough commands, and then fish is confused and thinks old history is current.

How can I debug this issue? Is there anything I can collect to help you understand it better?


> fish --version
fish, version 3.6.4

> uname -a
Linux <redacted>.com 6.5.13-1rodete2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.13-1rodete2 (2024-01-11) x86_64 GNU/Linux

> echo $TERM
screen-256color

> tmux -V
tmux 3.3a

Metadata

Metadata

Labels

bugSomething that's not working as intended

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions