DeepSeek: накопленная стоимость сессии по DeepSeek-ценам (V4: $0.55/$2.19, V3: $0.27/$1.10)
Anthropic/Kimi/прочие: рейт-лимиты (5h, 7d) без долларов
Все: заполнение контекста (ctx%)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- AMNEZIA_SERVER — только IP/домены серверов Amnezia (для поднятия VPN)
- KILL_SWITCH_EXCEPTIONS — дополнительные исключения (git, etc.)
- Обе переменные поддерживают IP и домены (DNS-резолвинг)
- setup.sh: раздельные промпты в меню
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ru-bypass.sh: добавлен ufw default deny outgoing (раньше нигде не выполнялся)
- ru-bypass.sh: добавлен ufw allow out on amn0 (разрешён трафик через VPN)
- ru-bypass.sh: поддержка AMNEZIA_SERVER — IP добавляется в ipset и маршруты
- ks-on.sh: default deny + allow amn0 при восстановлении kill switch
- setup.sh: меню запрашивает/сохраняет/передаёт AMNEZIA_SERVER
- test_network.sh: DEV читается из конфига вместо жёсткого wl[pi]
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Прямой curl до ipinfo.io блокируется UFW (не-.ru трафик via wlp1s0
запрещён kill switch-ем — это штатное поведение). Теперь при недоступности
прямого IP тест проверяет маршрут ya.ru: ожидает DEV_DIRECT, а не amn0.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setup.sh: если whiptail доступен — показывает интерактивное меню
со стрелками (стандартный пакет newt, обычно уже установлен).
Если whiptail не найден — прежнее plain-text меню без изменений.
case-блок единый для обоих путей.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- setup.sh: функция _log(), вызов при каждом пункте меню
- scripts/ru-bypass.sh, ks-on.sh, ks-off.sh: пишут события в лог через USER_HOME
- setup.sh item 5: показывает tail -10 лога в «Последние события»
- USER_HOME передаётся через sudo env в ks-on/ks-off/ru-bypass
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setup.sh item 2: показывает существующие профили, предлагает ввести имя.
Профиль сохраняется как network_<name>.conf (вместо фиксированного hostname).
Позволяет держать home/office конфиги на одной машине и переключаться явно.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Добавлен блок «API доступность» с curl time_connect до api.anthropic.com,
api.deepseek.com, api.openai.com, api.kimi.com, openrouter.ai.
Показывает время соединения или «недоступен» при timeout.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setup.sh: добавлен пункт 7 в меню и case-ветка:
git pull --ff-only + bash scripts/ai-setup.sh для обновления
всех лаунчеров в ~/.local/bin без ручного вмешательства.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
_handle_api_response и _handle_openai_api_response теперь имеют явный case
для 5xx: предупреждают что сервер временно недоступен и продолжают (_API_RET=0).
Раньше 5xx попадал в wildcard → _API_RET=$code (non-zero) → exit 1.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Добавлен блок «7. Geo: внешние IP» — curl через прямой интерфейс
и через дефолт (VPN). Показывает оба IP и проверяет что они разные.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- scripts/ks-on.sh: перед включением UFW проверяет глобальные IPv6 адреса,
предлагает отключить IPv6 через sysctl если они есть
- setup.sh item 5: показывает статус IPv6 (отключён / активен с предупреждением)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ru-bypass.sh теперь при первом запуске устанавливает ru-bypass.timer
(OnCalendar=daily, Persistent=true). Timer запускает ru-bypass.service
раз в сутки и обновляет ipset + маршруты без ручного вмешательства.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- setup.sh item 2: добавлен вопрос LOCAL_DNS (офисный DNS-сервер для *.loc)
сохраняется в network_<hostname>.conf, передаётся в ru-bypass.sh через env
- scripts/ru-bypass.sh: добавлена переменная LOCAL_DNS, после RFC1918 маршрутов
настраивает resolvectl dns/domain ~loc на интерфейсе DEV
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
При повторном запуске пункта 2 параметры загружаются из файла — не нужно
вводить снова. Сохраняется отдельно для каждой машины по hostname.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
При выборе пункта 2 скрипт сам парсит маршрут по умолчанию и предлагает
найденные значения — пользователь просто жмёт Enter для подтверждения.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- все скрипты перенесены в scripts/ (ai-setup.sh, ru-bypass.sh, ks-off.sh, ks-on.sh)
- setup.sh — новый мастер-скрипт с меню: шаги 1-2 отделены от опций 3-4
- пояснения к GATEWAY и DEV при выборе пункта 2
- ai-setup.sh: SCRIPT_DIR поднят на уровень выше (/../) чтобы находить home-configs/
- tests/test_fixes.sh, test_isolated.sh: пути обновлены на scripts/ai-setup.sh
- QUICK_START.md, README.md, home-configs/network/README.md: пути обновлены
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ru-bypass.sh: маршруты для 10/8, 172.16/12, 192.168/16 через локальный роутер
- ru-bypass.sh: UFW правила для тех же диапазонов (однократно, before.rules)
- ru-bypass.sh: пример IP в конце теперь резолвится из ya.ru динамически
- README.md: описание RFC1918 bypass в разделах про UFW и про шаги скрипта
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ru-bypass.sh: GATEWAY и DEV теперь переопределяются через env (${VAR:-default})
Запуск на другой машине: sudo GATEWAY=10.0.0.1 DEV=eth0 bash ru-bypass.sh
- home-configs/network/README.md: объяснение как работает ru-bypass, kill switch,
как запускать на разных машинах с разными сетевыми интерфейсами
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- путь и ветка: светло-серый (37), как хинты Claude Code
- модель: приглушённый лососевый (173), фирменный цвет Claude
- лимиты и ctx: единая функция pct_color (зелёный/жёлтый/красный)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
timeout возвращает код 124 при обрезке, что запускало fallback-цепочку.
Заменил || на ; true чтобы подавить код выхода timeout.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- зелёный <30%, жёлтый 30-50%, красный 50%+
- однократный звуковой сигнал (alarm-clock-elapsed.oga, 1s) при первом достижении 60%
- сброс флага алерта когда ctx опускается ниже 50%
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Без него [ -n "$ctx_pct" ] && ... возвращал exit 1 когда ctx пустой,
и Claude Code прятал всю строку статуса.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ctx:35% отображается серым в конце строки у всех провайдеров.
Для Kimi (нет rate limits) это единственная полезная метрика.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Вместо одного показываются оба: "4ч20м:1% 5д3ч:4%".
Для недельного добавлен формат дней: "5д3ч".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Вместо захардкоженного "5h" теперь считается оставшееся время
из resets_at timestamp: "4ч40м:25%", "58м:80%" и т.д.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ks-off.sh — временно отключить UFW kill switch перед сёрфингом без VPN
- ks-on.sh — восстановить kill switch (с проверкой что amn0 поднят)
- ru-direct.sh — роутинг всех российских IP напрямую через провайдера, минуя Amnezia
- ru-direct-undo.sh — откат ru-direct.sh, возврат к "всё через VPN"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Функция _deepseek_balance в ai-api-helpers: запрос к GET /user/balance
- Вывод баланса при проверке сохранённого и нового ключа в ai-deepseek
- Кеширование баланса в ~/.cache/ai-setup/deepseek_balance для статусной строки
- statusline-command.sh: если модель содержит deepseek — показывать вместо usage
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Шаг 6.7 - копирует statusline-command.sh и прописывает statusLine
в settings.json. Показывает user@host, путь, git-ветку, модель и usage%.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Шаг 6.7 в ai-setup.sh - регистрирует claude-plugins-official через
GitHub PAT (из env GITHUB_TOKEN или интерактивно). Идемпотентен.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Замена TCP-теста на реальный VLESS-тест (запуск xray + curl)
Теперь ✓ работает только если VLESS-туннель действительно пропускает трафик
- Добавлен spiderX в realitySettings (нужен для AmneziaVPN/tcp-vision)
- Парсер: автоопределение spiderX (пустая строка для tcp, / для xhttp)
- Убран вводящий в заблуждение TCP-check
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
При выборе Y скрипт проверяет TCP-коннект к IP:port каждого сервера
и показывает цветной статус:
- зелёный ✓ доступен
- красный ✗ недоступен
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>