fix(shell): fix incorrect timing of child shells (#1510)

When a child shell session is started from another shell session
(parent session), the environment variable ATUIN_HISTORY_ID set by the
parent session causes Atuin's precmd hook of the child session to be
unexpectedly performed before the first call of Atuin's preexec hook.

In this patch, we clear ATUIN_HISTORY_ID (possibly set by the parent
session) on the startup of the session.
This commit is contained in:
Koichi Murase 2024-01-09 05:22:42 +09:00 committed by GitHub
parent 7e48768ddf
commit cc5efd2971
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 4 additions and 0 deletions

View File

@ -1,6 +1,7 @@
ATUIN_SESSION=$(atuin uuid)
ATUIN_STTY=$(stty -g)
export ATUIN_SESSION
ATUIN_HISTORY_ID=""
__atuin_preexec() {
if [[ ! ${BLE_ATTACHED-} ]]; then

View File

@ -1,4 +1,5 @@
set -gx ATUIN_SESSION (atuin uuid)
set --erase ATUIN_HISTORY_ID
function _atuin_preexec --on-event fish_preexec
if not test -n "$fish_private_mode"

View File

@ -1,5 +1,6 @@
# Source this in your ~/.config/nushell/config.nu
$env.ATUIN_SESSION = (atuin uuid)
hide-env -i ATUIN_HISTORY_ID
# Magic token to make sure we don't record commands run by keybindings
let ATUIN_KEYBINDING_TOKEN = $"# (random uuid)"

View File

@ -25,6 +25,7 @@ else
fi
export ATUIN_SESSION=$(atuin uuid)
ATUIN_HISTORY_ID=""
_atuin_preexec() {
local id