chore: remove AI session save/resume helpers #56

Merged
rootiest merged 1 commits from chore/remove-ai-session-save into main 2026-06-17 20:31:29 +00:00
7 changed files with 4 additions and 245 deletions
-3
View File
@@ -133,14 +133,11 @@ logging=## 5.11 Pager and Logging
logs=### logs logs=### logs
smart-exit=### smart_exit smart-exit=### smart_exit
ai=## 5.12 AI and Developer Tools ai=## 5.12 AI and Developer Tools
antigravity=### antigravity-resume
antigravity-ide=### antigravity-ide antigravity-ide=### antigravity-ide
agy=### agy agy=### agy
claude-cli=### claude claude-cli=### claude
claude=### claude-resume
claude-docs=### claude-docs claude-docs=### claude-docs
claude-pr=### claude-pr claude-pr=### claude-pr
code-resume=### code-resume
superpowers=### superpowers superpowers=### superpowers
media=## 5.13 Media and Utilities media=## 5.13 Media and Utilities
dng2avif=### dng2avif dng2avif=### dng2avif
+4 -24
View File
@@ -1124,13 +1124,6 @@ Add -i (interactive confirmation) to destructive commands:
Synopsis: antigravity-ide [args...] Synopsis: antigravity-ide [args...]
Runs the antigravity-ide editor with warnings filtered. Runs the antigravity-ide editor with warnings filtered.
### antigravity-resume
Synopsis: antigravity-resume
Resumes the most recent Antigravity session from the .antigravity_session
file in the current directory, or opens an interactive fzf picker if no
session file is found.
### agents-init ### agents-init
Synopsis: agents-init [--agents | --plugins] Synopsis: agents-init [--agents | --plugins]
@@ -1163,12 +1156,6 @@ Add -i (interactive confirmation) to destructive commands:
claude claude
claude --resume claude --resume
### claude-resume
Synopsis: claude-resume
Resumes the most recent Claude Code session from the .claude_session
file in the current directory, or opens an interactive fzf picker.
### claude-docs ### claude-docs
Synopsis: claude-docs Synopsis: claude-docs
@@ -1182,12 +1169,6 @@ Add -i (interactive confirmation) to destructive commands:
conventional commit, verification, push, and open a PR with a manual conventional commit, verification, push, and open a PR with a manual
verification checklist. verification checklist.
### code-resume
Synopsis: code-resume
Resumes the most recent AI session (Claude or Antigravity), preferring
the newest session file found in the current directory.
### superpowers ### superpowers
Synopsis: superpowers [on|off] [-g] Synopsis: superpowers [on|off] [-g]
@@ -1471,11 +1452,10 @@ fish-deps manages these tools. Run `fish-deps` to check status, or
trash Safe delete (trash-cli) trash Safe delete (trash-cli)
kitty GPU-accelerated terminal (primary) kitty GPU-accelerated terminal (primary)
wezterm GPU-accelerated terminal (alternative) wezterm GPU-accelerated terminal (alternative)
python3 Standalone interpreter — used by the AI session helpers python3 Standalone interpreter — used by the paru/yay log cleaner.
(save_claude_session / save_antigravity_session) and the Note: uv does not provide python3 on PATH, and Arch's base
paru/yay log cleaner. Note: uv does not provide python3 on does not include it, so it is listed separately. All
PATH, and Arch's base does not include it, so it is listed consumers degrade gracefully without it.
separately. All consumers degrade gracefully without it.
## Install Methods ## Install Methods
-36
View File
@@ -1,36 +0,0 @@
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# antigravity-resume
#
# DESCRIPTION
# Resumes an Antigravity (agy) AI session using the session ID saved in
# .antigravity_session in the current directory. Falls back to the interactive
# session browser if no local session file exists.
#
# RETURNS
# 0 Session resumed or interactive picker opened
# 1 Required binaries (agy or save_antigravity_session) are not found
#
# EXAMPLE
# antigravity-resume
function antigravity-resume --description 'Execute antigravity-resume'
if not type -q agy
echo "Error: The 'agy' command is not installed or not in PATH." >&2
return 1
end
if not type -q save_antigravity_session
echo "Error: The companion function 'save_antigravity_session' is missing." >&2
return 1
end
if test -f .antigravity_session
set -l sid (cat .antigravity_session)
# Use --resume (or -r) to jump back in
agy --resume $sid
else
# Fallback to the interactive session browser
agy --resume
end
end
-35
View File
@@ -1,35 +0,0 @@
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# claude-resume
#
# DESCRIPTION
# Resumes a Claude Code session using the ID saved in .claude_session in the
# current directory. Falls back to the interactive session picker if no file
# exists.
#
# RETURNS
# 0 Session resumed or interactive picker opened
# 1 Required binaries (claude or save_claude_session) are not found
#
# EXAMPLE
# claude-resume
function claude-resume --description 'Execute claude-resume'
if not type -q claude
echo "Error: The 'claude' command is not installed or not in PATH." >&2
return 1
end
if not type -q save_claude_session
echo "Error: The companion function 'save_claude_session' is missing." >&2
return 1
end
if test -f .claude_session
set -l sid (cat .claude_session)
claude --resume $sid
else
echo "No saved session found in this directory."
claude --resume # Fallback to the interactive picker
end
end
-27
View File
@@ -1,27 +0,0 @@
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# code-resume
#
# DESCRIPTION
# Resumes the most recent AI coding session in the current directory. Prefers
# Claude Code (.claude_session), then Antigravity (.antigravity_session),
# falling back to the Claude interactive session picker.
#
# EXAMPLE
# code-resume
function code-resume --description 'Execute code-resume'
if test -f .claude_session
set -l sid (cat .claude_session)
echo "Resuming Claude session: $sid"
claude --resume $sid
else if test -f .antigravity_session
set -l sid (cat .antigravity_session)
echo "Resuming antigravity-cli session: $sid"
agy --resume $sid
else
echo "No local AI session found. Opening picker..."
claude --resume # Default to Claude picker
end
end
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env fish
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# Invoked as an Antigravity session hook; reads JSON from stdin.
#
# DESCRIPTION
# Hook script called by the Antigravity CLI (agy) on session start.
# Reads a JSON payload from stdin, extracts the session_id field, and
# writes it to .antigravity_session in the current directory. Ensures
# that file is excluded via .gitignore. Sets the universal variable
# LAST_ANTIGRAVITY_SESSION for cross-terminal access. Falls back to a
# no-op (emitting "{}") when python3 is unavailable (Convention §6).
#
# ARGUMENTS
# stdin JSON payload from the Antigravity CLI containing a "session_id" key
#
# RETURNS
# 0 Always; emits "{}" to stdout as required by the hook contract
#
# EXAMPLE
# echo '{"session_id":"abc123"}' | fish save_antigravity_session.fish
# cat .antigravity_session # → abc123
# echo $LAST_ANTIGRAVITY_SESSION # → abc123
# 1. Read the JSON from stdin
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"
if test -n "$sid"
# 3. Save the session ID locally
echo "$sid" >$session_file
# 4. Smart .gitignore check
# We only attempt this if we are inside a Git repository
if git rev-parse --is-inside-work-tree >/dev/null 2>&1
# If 'git check-ignore' fails, it means the file is NOT currently ignored
if not git check-ignore -q $session_file
# Append a labeled entry to .gitignore
echo -e "\n# AI Session IDs\n$session_file" >>.gitignore
end
end
# 5. Update universal variable for cross-terminal access
set -U LAST_ANTIGRAVITY_SESSION "$sid"
end
# MANDATORY: Every hook must output valid JSON or an empty object
echo '{}'
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env fish
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# Invoked as a Claude Code session hook; reads JSON from stdin.
#
# DESCRIPTION
# Hook script called by Claude Code on session start. Reads a JSON payload
# from stdin, extracts the session_id field, and writes it to .claude_session
# in the current directory. Ensures that file is excluded via .gitignore.
# Sets the universal variable LAST_CLAUDE_SESSION for cross-terminal access.
# Falls back to a no-op (emitting "{}") when python3 is unavailable
# (Convention §6).
#
# ARGUMENTS
# stdin JSON payload from Claude Code containing a "session_id" key
#
# RETURNS
# 0 Always; emits "{}" to stdout as required by the hook contract
#
# EXAMPLE
# echo '{"session_id":"abc123"}' | fish save_claude_session.fish
# cat .claude_session # → abc123
# echo $LAST_CLAUDE_SESSION # → abc123
# 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"
if test -n "$sid"
# 2. Save the session ID locally
echo "$sid" >$session_file
# 3. Smart .gitignore check
# We check if git even knows about this file.
# If 'git check-ignore' returns 1, it means the file is NOT ignored.
if git rev-parse --is-inside-work-tree >/dev/null 2>&1
if not git check-ignore -q $session_file
# Append the filename to .gitignore
echo -e "\n# AI Session IDs\n$session_file" >>.gitignore
echo "Added $session_file to .gitignore"
end
end
# 4. Update universal variable
set -U LAST_CLAUDE_SESSION "$sid"
end
# MANDATORY: Every hook must output valid JSON
echo '{}'