From 654af1e775f788535bbbb5c67431c1fe2a65d737 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Tue, 27 Jan 2026 13:47:35 -0800 Subject: fix: do not set ATUIN_SESSION if it is already set (#3107) ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing --- crates/atuin/src/shell/atuin.bash | 6 ++++-- crates/atuin/src/shell/atuin.fish | 4 +++- crates/atuin/src/shell/atuin.nu | 4 +++- crates/atuin/src/shell/atuin.ps1 | 4 +++- crates/atuin/src/shell/atuin.xsh | 3 ++- crates/atuin/src/shell/atuin.zsh | 4 +++- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/crates/atuin/src/shell/atuin.bash b/crates/atuin/src/shell/atuin.bash index 88b6af3a..18c943e2 100644 --- a/crates/atuin/src/shell/atuin.bash +++ b/crates/atuin/src/shell/atuin.bash @@ -12,9 +12,11 @@ else # (include guard) beginning of main content #------------------------------------------------------------------------------ __atuin_initialized=true -ATUIN_SESSION=$(atuin uuid) +if [[ -z "${ATUIN_SESSION:-}" ]]; then + ATUIN_SESSION=$(atuin uuid) + export ATUIN_SESSION +fi ATUIN_STTY=$(stty -g) -export ATUIN_SESSION ATUIN_HISTORY_ID="" export ATUIN_PREEXEC_BACKEND=$SHLVL:none diff --git a/crates/atuin/src/shell/atuin.fish b/crates/atuin/src/shell/atuin.fish index e333f981..0288e13b 100644 --- a/crates/atuin/src/shell/atuin.fish +++ b/crates/atuin/src/shell/atuin.fish @@ -1,4 +1,6 @@ -set -gx ATUIN_SESSION (atuin uuid) +if not set -q ATUIN_SESSION + set -gx ATUIN_SESSION (atuin uuid) +end set --erase ATUIN_HISTORY_ID function _atuin_preexec --on-event fish_preexec diff --git a/crates/atuin/src/shell/atuin.nu b/crates/atuin/src/shell/atuin.nu index 190f3117..150309cb 100644 --- a/crates/atuin/src/shell/atuin.nu +++ b/crates/atuin/src/shell/atuin.nu @@ -8,7 +8,9 @@ use (if not ( (version).minor >= 103 ) { "compat" }) * -$env.ATUIN_SESSION = (random uuid -v 7 | str replace -a "-" "") +if 'ATUIN_SESSION' not-in $env { + $env.ATUIN_SESSION = (random uuid -v 7 | str replace -a "-" "") +} hide-env -i ATUIN_HISTORY_ID # Magic token to make sure we don't record commands run by keybindings diff --git a/crates/atuin/src/shell/atuin.ps1 b/crates/atuin/src/shell/atuin.ps1 index 37753f8a..9215ad34 100644 --- a/crates/atuin/src/shell/atuin.ps1 +++ b/crates/atuin/src/shell/atuin.ps1 @@ -30,7 +30,9 @@ if (!(Get-Module PSReadLine -ErrorAction Ignore)) { } New-Module -Name Atuin -ScriptBlock { - $env:ATUIN_SESSION = atuin uuid + if (-not $env:ATUIN_SESSION) { + $env:ATUIN_SESSION = atuin uuid + } $script:atuinHistoryId = $null $script:previousPSConsoleHostReadLine = $Function:PSConsoleHostReadLine diff --git a/crates/atuin/src/shell/atuin.xsh b/crates/atuin/src/shell/atuin.xsh index 7c1b1f5d..0ea9514e 100644 --- a/crates/atuin/src/shell/atuin.xsh +++ b/crates/atuin/src/shell/atuin.xsh @@ -5,7 +5,8 @@ from prompt_toolkit.filters import Condition from prompt_toolkit.keys import Keys -$ATUIN_SESSION=$(atuin uuid).rstrip('\n') +if "ATUIN_SESSION" not in ${...}: + $ATUIN_SESSION=$(atuin uuid).rstrip('\n') @events.on_precommand def _atuin_precommand(cmd: str): diff --git a/crates/atuin/src/shell/atuin.zsh b/crates/atuin/src/shell/atuin.zsh index 0e7d79e9..562148d9 100644 --- a/crates/atuin/src/shell/atuin.zsh +++ b/crates/atuin/src/shell/atuin.zsh @@ -25,7 +25,9 @@ else ZSH_AUTOSUGGEST_STRATEGY=("atuin") fi -export ATUIN_SESSION=$(atuin uuid) +if [[ -z "${ATUIN_SESSION:-}" ]]; then + export ATUIN_SESSION=$(atuin uuid) +fi ATUIN_HISTORY_ID="" _atuin_preexec() { -- cgit v1.3.1