Commit Graph

328 Commits

Author SHA1 Message Date
samosvalishe 7fc7fe2e79 fix(vkauth): сбрасывать реквизиты при неподтверждённом deallocate 2026-08-25 15:44:15 +03:00
samosvalishe c2a9f0f1d7 fix(logs): убрать пострим-шум из лога без debug
TURN urls, персона, попытки кредов и DTLS connect/close - на debug: на 8 стримах это десятки строк на старте.
2026-08-25 15:44:15 +03:00
samokrutka aed2839c7d chore(master): release 3.1.1 2026-08-19 20:04:08 +03:00
samosvalishe 9d454dbd41 fix(captcha): адаптация 2026-08-19 20:02:00 +03:00
samokrutka ec1b1fce77 chore(master): release 3.1.0 2026-08-18 17:21:50 +03:00
samosvalishe c3fc9396d4 fix: ci 2026-08-18 15:59:07 +03:00
samosvalishe 022692ea18 fix: ci 2026-08-18 15:51:43 +03:00
samosvalishe c6703783c4 feat(server): адрес клиента в логах сессии и handshake 2026-08-18 15:29:32 +03:00
samosvalishe 60e3a69a7d fix(vkauth): отмена капчи не сжигает персону
свои же рестарты стоили поколения персоны и лока на минуту.
2026-08-18 15:29:32 +03:00
samosvalishe 9c2cc93a1c fix(session): рецикл после пробуждения только при тишине в канале
гэп-детектор сносил живые аллокации: сон сам по себе их не убивает, а
keepalive туннеля идёт через тот же relay. пинок теперь проверяет rx в окне
и схлопывает пачку сигналов в один рецикл.
2026-08-18 15:29:32 +03:00
samosvalishe fd9c6abf1e fix(udprelay): рецикл turn-аллокации пересоздаёт dtls-сессию
смерть аллокации теперь роняет и dtls: у новой аллокации другой relayed-адрес,
а миграция по dtls connection id под obf-профилем на сервере не работает.
логи turn-клиента уведены в logx - коды отказа vk не было видно нигде.
2026-08-18 15:29:32 +03:00
samokrutka bc0673c19e Merge pull request #60 from samosvalishe/release-please--branches--master
chore(master): release 3.0.0
2026-08-18 00:24:39 +03:00
samokrutka d3271ab4ab chore(master): release 3.0.0 2026-08-18 00:22:06 +03:00
samosvalishe 49eecb3478 fix: устранение предупреждений линтера 2026-08-18 00:21:35 +03:00
samosvalishe 65bc8a8993 fix: устранение предупреждений линтера 2026-08-18 00:15:52 +03:00
samosvalishe 53b8345aa0 fix: возврат фонового детектора сна для рецикла аллокаций 2026-08-18 00:07:34 +03:00
samosvalishe 0bef2e8ab5 fix: soft reconnect on network handover without tunnel drop 2026-08-17 23:29:19 +03:00
samosvalishe 5fdd8c3112 fix(vkauth): ловим 486 как auth-error для рецикла аллокации 2026-08-17 18:45:31 +03:00
samosvalishe d208a0d3df fix: readme 2026-08-17 17:33:43 +03:00
samosvalishe 6bc4faf942 fix: убрал лишний артефакт 2026-08-17 17:16:12 +03:00
samosvalishe 3cf78316df perf: меньше фоновых таймеров при поднятом туннеле и опрос метрик только при видимом окне 2026-08-17 17:14:10 +03:00
samosvalishe a033cfb9a2 fix(udprelay): рецикл аллокации на простое туннеля 2026-08-17 17:13:44 +03:00
samosvalishe 5b5c93fae1 fix(captcha): устранение регрессий 2026-08-17 15:45:21 +03:00
samosvalishe 74241de764 break!: выпил tcp-режим туннеля
убраны флаги -mode и -bond: остался только udp-релей для wireguard.
удалены tcpfwd, tcpfwdserver, bondclient, bondserver, bondframe, kcptun,
wire/relay; proxy/common переехал в udprelay/dial.

BREAKING CHANGE: флаги -mode и -bond удалены; конфиги и ссылки freeturn://
с tcp-режимом больше не принимаются.
2026-08-17 00:27:23 +03:00
samosvalishe 648c55415b feat: comment cleanup 2026-08-16 23:13:01 +03:00
samosvalishe 6b14a95434 fix(captcha): персонная модель PoW и кэш TURN-кредов 2026-08-16 21:19:15 +03:00
samosvalishe 681dde8a6d feat(mobile): переживание сна и рестарта на Android 2026-08-16 21:19:14 +03:00
samokrutka 0a6b0e0e85 Merge pull request #58 from samosvalishe/release-please--branches--master
chore(master): release 2.1.2
v2.1.2
2026-08-14 14:00:54 +03:00
samokrutka 25451e8e25 chore(master): release 2.1.2 2026-08-14 13:57:05 +03:00
samosvalishe 5bc164f78d fix(deps): обновить Go 1.26.5 -> 1.26.6 2026-08-14 13:56:43 +03:00
samosvalishe 95803f481a fix(captcha): fmt 2026-08-14 13:48:05 +03:00
samosvalishe 235ab1a646 fix(captcha): выровнять авторешение по живому браузеру 2026-08-14 13:46:39 +03:00
samokrutka 1dcaa46659 Merge pull request #56 from samosvalishe/release-please--branches--master
chore(master): release 2.1.1
v2.1.1
2026-08-04 12:17:47 +03:00
samokrutka 7dc23ce3f0 chore(master): release 2.1.1 2026-08-04 12:11:53 +03:00
samosvalishe 1ca3451b76 refactor(captcha): убрать трассировку запросов
Разовая диагностика под сверку с виджетом; расхождения, которые она нашла,
закрыты коммитом выше.
2026-08-04 12:05:54 +03:00
samosvalishe 59a8c84157 fix(captcha): линтер в трассировке запросов 2026-08-04 12:01:46 +03:00
samosvalishe 4174f29c63 fix(captcha): блокировать рекламные хосты в ручном режиме
Внешние трекеры резались allowlist-ом и раньше, но ads.vk.com и ads.vk.ru
проходили по суффиксу домена. Captcha без них решается: adFp остаётся пустым,
ровно как у браузера с блокировщиком.
2026-08-04 11:56:03 +03:00
samosvalishe 4fa7810afa fix(captcha): привести запросы к поведению живого виджета 1.1.1388
Сверка протокола с бандлом вскрыла три расхождения.

Телеметрия: указатель виджет пишет только через externalCoords, а их заполняет
хост-страница iframe или нативный бридж мобильного SDK. Мы ходим на captcha
прямой навигацией, где живой браузер оставляет cursor и taps пустыми, - вместе с
ними ушла синтетическая траектория руки, недостижимая для этого режима. A/B на
живой captcha: 10/10 сессий против 9/10 со старым поведением.

Заголовки: навигация документа не несла Upgrade-Insecure-Requests и
Sec-Fetch-User, приоритет всем запросам ставился как у fetch, Origin уходил на
GET-ы, где Chrome его не шлёт, Referer навигации указывал на саму цель вместо
страницы-источника, а бандл тянулся профилем fetch вместо тега script. Cookie
отсутствовал в списке порядка и уезжал последним заголовком.

Куки: tls-client отбрасывает удалённые куки только по Max-Age - проверка Expires
в его jar закомментирована. Погашенная сервером remixir=DELETED из-за этого
уходила в каждом запросе. Обёртка в personanet транслирует протухший Expires в
Max-Age, который фильтр библиотеки понимает.

Трассировка запросов под FREETURN_CAPTCHA_TRACE - ей расхождения и найдены.
2026-08-04 11:56:03 +03:00
samosvalishe 8eb3873d27 fix(captcha): разносить попытки слайдера по дорожке
Соседние кандидаты отличаются одним свапом и получают почти равный скор,
поэтому топ-2 ранжирования - всегда пара соседей, и вторая попытка
промахивается вместе с первой. Вторая берётся не ближе трёх позиций от первой,
с откатом на соседей, если дальних кандидатов не хватило.
2026-08-04 10:37:08 +03:00
samosvalishe ee1356308b fix(captcha): не жечь персону на эскалации checkbox -> slider
Эскалация происходит в каждой сессии - слайдер в той же сессии проходит с тем
же browser_fp и device, значит отпечаток VK не отвергал. Сжигание на ней меняло
VisitorID каждый визит, хотя персона выводится из seed именно ради стабильности
между визитами. Сжигание по факту отказа в token_call.go сохранено.
2026-08-04 10:34:16 +03:00
samosvalishe d9a0554489 fix(captcha): убрать reverse-скор из ранжирования slider-кандидатов
Консенсус складывал ранги четырёх метрик с равным весом, но reverse-скор с
остальными не коррелирует: на корпусе из 8 пазлов luma/rgb/text сходились на
одном кандидате 8/8, reverse - 1/8. Кандидат, первый по всем трём рабочим
метрикам, уезжал в десятый ранг консенсуса и не попадал в две доступные
попытки. Побочно перестал считаться второй seam-скор на каждого кандидата.
2026-08-04 10:24:39 +03:00
samosvalishe ea477a3bc2 fix(captcha): обновить пин debug_info под виджет 1.1.1388 2026-08-04 10:24:39 +03:00
samokrutka 7c0112d494 Merge pull request #55 from samosvalishe/release-please--branches--master
chore(master): release 2.1.0
v2.1.0
2026-08-01 15:32:03 +03:00
samokrutka 2a9cf9a0c8 chore(master): release 2.1.0 2026-08-01 15:25:56 +03:00
samosvalishe cdc7ee8d3d fix(routes): linter 2026-08-01 15:25:22 +03:00
samosvalishe 8524284eb8 chore(ci): фикс тг анонса 2026-08-01 15:13:48 +03:00
samosvalishe a7798cd851 feat(proxy): встроенное управление маршрутами к TURN-серверам
- Добавлен пакет `internal/routemgr` для автоматического создания
  host-маршрутов (/32) через шлюз ОС (Windows, Linux, macOS).
- В `config.Client` и CLI добавлен флаг `-routes` (по умолчанию отключен).
- Интегрирован callback `OnTURNServer` в `udprelay` и `tcpfwd`
  для динамического добавления маршрутов при старте стримов.
- Для Android (и переименованных JNI-бинарей Linux) добавлено
  graceful-отключение менеджера маршрутов.
- Обновлена документация (`quickstart.md`): добавлены примеры с
  использованием `-routes` и `-client-id`.
2026-08-01 15:07:37 +03:00
samosvalishe 1f86fda104 refactor: перенос логики сессии в internal/session и обновление mobile-фасада 2026-08-01 03:05:14 +03:00
samokrutka 68485cbee7 chore: update README.md 2026-07-31 00:37:20 +03:00
Anton c5bb9c4d9d Merge pull request #53 from samosvalishe/release-please--branches--master
chore(master): release 2.0.2
2026-07-30 23:08:20 +03:00