home-manager/gui: Update Claude status line to v1.4.5
Upstream v1.4.5 moves the effort level into parentheses after the model name. Also read the CLI version from the `version` field Claude Code passes on stdin instead of caching `claude --version` for an hour, which kept showing the old version after an upgrade. `claude --version` remains as an uncached fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# Source: https://github.com/daniel3303/ClaudeCodeStatusLine
|
||||
# Single line: Model | tokens | %used | %remain | think | 5h bar @reset | 7d bar @reset | extra
|
||||
# Single line: Model (effort) | dir@branch | tokens (%used) | 5h @reset | 7d @reset | extra | CLI version
|
||||
|
||||
set -f # disable globbing
|
||||
VERSION="1.4.4"
|
||||
VERSION="1.4.5"
|
||||
|
||||
input=$(cat)
|
||||
|
||||
@@ -110,31 +110,26 @@ elif [ -f "$settings_path" ]; then
|
||||
fi
|
||||
[ -z "$effort_level" ] && effort_level="medium"
|
||||
|
||||
# ===== Claude CLI version (cached, 1h TTL) =====
|
||||
cli_version_cache="/tmp/claude/statusline-cli-version"
|
||||
cli_version=""
|
||||
cli_version_max_age=3600
|
||||
|
||||
if [ -f "$cli_version_cache" ]; then
|
||||
cv_mtime=$(stat -c %Y "$cli_version_cache" 2>/dev/null || stat -f %m "$cli_version_cache" 2>/dev/null)
|
||||
cv_now=$(date +%s)
|
||||
cv_age=$(( cv_now - cv_mtime ))
|
||||
if [ "$cv_age" -lt "$cli_version_max_age" ]; then
|
||||
cli_version=$(cat "$cli_version_cache" 2>/dev/null)
|
||||
fi
|
||||
fi
|
||||
|
||||
# ===== Claude CLI version =====
|
||||
# Prefer the version Claude Code passes on stdin (always the running instance);
|
||||
# fall back to asking whichever `claude` is on PATH.
|
||||
cli_version=$(echo "$input" | jq -r '.version // empty')
|
||||
if [ -z "$cli_version" ]; then
|
||||
cli_version=$(claude --version 2>/dev/null | awk '{print $1}')
|
||||
if [ -n "$cli_version" ]; then
|
||||
mkdir -p /tmp/claude 2>/dev/null
|
||||
echo "$cli_version" > "$cli_version_cache"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ===== Build single-line output =====
|
||||
out=""
|
||||
out+="${blue}${model_name}${reset}"
|
||||
out+="${blue}${model_name}${reset} ${dim}(${reset}"
|
||||
case "$effort_level" in
|
||||
low) out+="${dim}${effort_level}${reset}" ;;
|
||||
medium) out+="${orange}med${reset}" ;;
|
||||
high) out+="${green}${effort_level}${reset}" ;;
|
||||
xhigh) out+="${purple}${effort_level}${reset}" ;;
|
||||
max) out+="${red}${effort_level}${reset}" ;;
|
||||
*) out+="${green}${effort_level}${reset}" ;;
|
||||
esac
|
||||
out+="${dim})${reset}"
|
||||
|
||||
# Current working directory
|
||||
cwd=$(echo "$input" | jq -r '.cwd // empty')
|
||||
@@ -152,16 +147,6 @@ fi
|
||||
|
||||
out+=" ${dim}|${reset} "
|
||||
out+="${orange}${used_tokens}/${total_tokens}${reset} ${dim}(${reset}${green}${pct_used}%${reset}${dim})${reset}"
|
||||
out+=" ${dim}|${reset} "
|
||||
out+="effort: "
|
||||
case "$effort_level" in
|
||||
low) out+="${dim}${effort_level}${reset}" ;;
|
||||
medium) out+="${orange}med${reset}" ;;
|
||||
high) out+="${green}${effort_level}${reset}" ;;
|
||||
xhigh) out+="${purple}${effort_level}${reset}" ;;
|
||||
max) out+="${red}${effort_level}${reset}" ;;
|
||||
*) out+="${green}${effort_level}${reset}" ;;
|
||||
esac
|
||||
|
||||
# ===== Cross-platform OAuth token resolution (from statusline.sh) =====
|
||||
# Tries credential sources in order: env var → macOS Keychain → Linux creds file → GNOME Keyring
|
||||
|
||||
Reference in New Issue
Block a user