`flox develop` on prerelease mangles the history


I am using version: 0.1.0-r331-0.0.9-r169 (but this seems to be a problem also with 0.0.9-r144) and when I open a shell with flox develop then call history I am getting some mangled results

499  : 1675171170:0;echo "ho"
500  : 1675171172:0;flox develop

In this case echo "ho" was done just before starting the develop shell.
This is problematic in particular when using a tool like fzf which is going to select the command with this weird prefix.


This known to zsh as EXTENDED_HISTORY (reference).

I presume you are using oh-my-zsh? It has this option on by default. What must be happening is that you enter a bash development shell without changing which history file is used; you must still be reading from your zsh history. Most of the tie this is handled by your existing default init scripts. I’ve seen this before, but the exact combination of rc-scripts that cause this eludes me at the moment.

It is possible that while in the development shell, the extended_history option is turned off, and thus fzf does not turn on it’s logic for handling it ([zsh] Replace perl with awk by jirutka · Pull Request #2777 · junegunn/fzf · GitHub) and therefore displays the extra data.

1 Like

Thanks for the tip about fzf. I just did an install from unstable to get a more recent version and this fixed the issue.

So the previous perl invocation failed silently in fzf, but the newer fzf using awk works? If so, that is good news, I just want to confirm that a fzf upgrade past 2022 Jul 19 works as expected.

Actually I don’t know how I managed to convince myself but it indeed doesn’t work even with fzf-0.37.0. It is not a huge problem for me since my next steps are now to unset $FLOX_ACTIVE_ENVIRONMENTS and activate my project. Then fzf works fine again.