fix: убрать все хаки обновления статусной строки
Claude Code не предоставляет API для обновления статусной строки в idle. SIGWINCH, TIOCSWINSZ, запись в TTY, write в stdin - ничего не работает. Статусная строка обновится при следующем LLM запросе автоматически. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,23 +40,5 @@ echo "$next" > "$CURRENT_FILE"
|
||||
|
||||
echo "Аккаунт: ${current:-?} -> ${next} (всего: ${#accounts[@]})" >&2
|
||||
|
||||
# Обновляем статусную строку: перерисовываем последнюю строку напрямую в TTY
|
||||
sh_pid=$PPID
|
||||
claude_pid=$(awk '/PPid/{print $2}' /proc/$sh_pid/status 2>/dev/null)
|
||||
if [ -n "$claude_pid" ]; then
|
||||
tty_dev=$(ps -o tty= -p "$claude_pid" 2>/dev/null | tr -d ' ')
|
||||
if [ -n "$tty_dev" ] && [ "$tty_dev" != "?" ]; then
|
||||
# Запускаем statusline-command.sh с кешированными данными и перерисовываем последнюю строку
|
||||
cache_file=$(ls "$HOME/.cache/ai-setup/rate_limits_"*.cache 2>/dev/null | head -1)
|
||||
model_id=$(basename "${cache_file}" .cache | sed 's/rate_limits_//')
|
||||
( sleep 0.2
|
||||
# Собираем данные из кеша для statusline
|
||||
mock_json="{\"cwd\":\"$(echo "$input" | jq -r '.cwd // empty')\",\"model\":{\"display_name\":\"\",\"id\":\"$model_id\"},\"rate_limits\":{},\"context_window\":{}}"
|
||||
new_line=$(echo "$mock_json" | bash "$HOME/.claude/statusline-command.sh" 2>/dev/null)
|
||||
# Перерисовываем последнюю строку через escape-коды
|
||||
printf '\0337\033[999B\033[2K%s\0338' "$new_line" > "/dev/$tty_dev"
|
||||
) &
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 2
|
||||
|
||||
Reference in New Issue
Block a user