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
|
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
|
exit 2
|
||||||
|
|||||||
Reference in New Issue
Block a user