diff --git a/docs/fish-config.md b/docs/fish-config.md index 1c19733..c739c25 100644 --- a/docs/fish-config.md +++ b/docs/fish-config.md @@ -855,7 +855,8 @@ Add -i (interactive confirmation) to destructive commands: direnv, paru/yay Integrations wakatime, tailscale Recommended eza, lsd, bat, btop, dust, duf, prettyping, ov, - ripgrep, lazygit, lazydocker, trash, kitty, wezterm + ripgrep, lazygit, lazydocker, trash, kitty, wezterm, + python3 fish-deps fish-deps install @@ -1380,6 +1381,11 @@ fish-deps manages these tools. Run `fish-deps` to check status, or trash Safe delete (trash-cli) kitty GPU-accelerated terminal (primary) wezterm GPU-accelerated terminal (alternative) + python3 Standalone interpreter — used by the AI session helpers + (save_claude_session / save_antigravity_session) and the + paru/yay log cleaner. Note: uv does not provide python3 on + PATH, and Arch's base does not include it, so it is listed + separately. All consumers degrade gracefully without it. ## Install Methods diff --git a/functions/_fish_deps_catalog.fish b/functions/_fish_deps_catalog.fish index 65f69f7..17c2946 100644 --- a/functions/_fish_deps_catalog.fish +++ b/functions/_fish_deps_catalog.fish @@ -16,27 +16,27 @@ function _fish_deps_catalog set -g _fdc_bins \ uv cargo fish fisher starship fzf zoxide direnv paru yay \ wakatime tailscale \ - eza lsd bat btop dust duf prettyping ov rg lazygit lazydocker trash kitty wezterm + eza lsd bat btop dust duf prettyping ov rg lazygit lazydocker trash kitty wezterm python3 set -g _fdc_tiers \ req req req req req req req req rec rec \ int int \ - rec rec rec rec rec rec rec rec rec rec rec rec rec rec + rec rec rec rec rec rec rec rec rec rec rec rec rec rec rec set -g _fdc_cargo \ "" "" "" "" starship "" zoxide "" "" "" \ "" "" \ - eza lsd bat "" du-dust "" "" ov ripgrep "" "" trashy "" "" + eza lsd bat "" du-dust "" "" ov ripgrep "" "" trashy "" "" "" set -g _fdc_pm \ uv cargo fish "" starship fzf zoxide direnv "" yay \ wakatime tailscale \ - eza lsd bat btop dust duf prettyping ov ripgrep lazygit lazydocker trash kitty wezterm + eza lsd bat btop dust duf prettyping ov ripgrep lazygit lazydocker trash kitty wezterm python set -g _fdc_special \ curl-uv rustup-installer git-cargo-fish fisher-bootstrap curl-installer fzf-update "" "" paru-build yay-build \ wakatime-binary "" \ - "" "" "" "" "" "" "" "" "" "" curl-lazydocker "" "" "" + "" "" "" "" "" "" "" "" "" "" curl-lazydocker "" "" "" "" end # SYNOPSIS diff --git a/functions/save_antigravity_session.fish b/functions/save_antigravity_session.fish index 6344fa6..f3e91bb 100755 --- a/functions/save_antigravity_session.fish +++ b/functions/save_antigravity_session.fish @@ -7,6 +7,12 @@ set -l input (cat) # 2. Extract session_id using Python +# If python3 is unavailable, emit valid empty JSON and skip session +# tracking rather than erroring (see AGENTS.md Convention §6). +if not type -q python3 + echo '{}' + exit 0 +end set -l sid (echo $input | python3 -c "import sys,json; print(json.load(sys.stdin).get('session_id', ''))") set -l session_file ".antigravity_session" diff --git a/functions/save_claude_session.fish b/functions/save_claude_session.fish index eef53ed..bdbb520 100755 --- a/functions/save_claude_session.fish +++ b/functions/save_claude_session.fish @@ -4,7 +4,14 @@ # SPDX-License-Identifier: AGPL-3.0-or-later # 1. Read input and extract session ID +# python3 parses the session_id out of the hook's JSON payload. If it is +# unavailable we emit valid empty JSON and skip session tracking rather +# than erroring (see AGENTS.md Convention §6). set -l input (cat) +if not type -q python3 + echo '{}' + exit 0 +end set -l sid (echo $input | python3 -c "import sys,json; print(json.load(sys.stdin).get('session_id', ''))") set -l session_file ".claude_session"