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
|
#!/usr/bin/env bash
|
||||||
# Source: https://github.com/daniel3303/ClaudeCodeStatusLine
|
# 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
|
set -f # disable globbing
|
||||||
VERSION="1.4.4"
|
VERSION="1.4.5"
|
||||||
|
|
||||||
input=$(cat)
|
input=$(cat)
|
||||||
|
|
||||||
@@ -110,31 +110,26 @@ elif [ -f "$settings_path" ]; then
|
|||||||
fi
|
fi
|
||||||
[ -z "$effort_level" ] && effort_level="medium"
|
[ -z "$effort_level" ] && effort_level="medium"
|
||||||
|
|
||||||
# ===== Claude CLI version (cached, 1h TTL) =====
|
# ===== Claude CLI version =====
|
||||||
cli_version_cache="/tmp/claude/statusline-cli-version"
|
# Prefer the version Claude Code passes on stdin (always the running instance);
|
||||||
cli_version=""
|
# fall back to asking whichever `claude` is on PATH.
|
||||||
cli_version_max_age=3600
|
cli_version=$(echo "$input" | jq -r '.version // empty')
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if [ -z "$cli_version" ]; then
|
if [ -z "$cli_version" ]; then
|
||||||
cli_version=$(claude --version 2>/dev/null | awk '{print $1}')
|
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
|
fi
|
||||||
|
|
||||||
# ===== Build single-line output =====
|
# ===== Build single-line output =====
|
||||||
out=""
|
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
|
# Current working directory
|
||||||
cwd=$(echo "$input" | jq -r '.cwd // empty')
|
cwd=$(echo "$input" | jq -r '.cwd // empty')
|
||||||
@@ -152,16 +147,6 @@ fi
|
|||||||
|
|
||||||
out+=" ${dim}|${reset} "
|
out+=" ${dim}|${reset} "
|
||||||
out+="${orange}${used_tokens}/${total_tokens}${reset} ${dim}(${reset}${green}${pct_used}%${reset}${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) =====
|
# ===== Cross-platform OAuth token resolution (from statusline.sh) =====
|
||||||
# Tries credential sources in order: env var → macOS Keychain → Linux creds file → GNOME Keyring
|
# Tries credential sources in order: env var → macOS Keychain → Linux creds file → GNOME Keyring
|
||||||
|
|||||||
Reference in New Issue
Block a user