Установка на телефон
Откройте HTTPS-адрес узла Tailscale в Safari, нажмите Поделиться, затем На экран «Домой». Установленное приложение открывается в отдельном окне, его оболочка остаётся доступной офлайн, а запросы к API идут только по сети и никогда не отдаются из кэша.
Слова, отправленные без связи
Слово, отправленное, когда сервер недоступен, остаётся в локальной очереди FIFO
и повторяется при следующем открытии приложения или по событию браузера
online.
Каждая отправка несёт UUID, который сохраняется вместе с элементом очереди. Если сервер принял POST, но ответ потерялся, повтор с тем же UUID вернёт исходную запись, а не повторит работу LLM и синтеза речи. Эта карта квитанций, как и история, живёт в памяти: она хранит не более 4096 принятых идентификаторов в течение семи дней и сбрасывается при перезапуске бэкенда. Повтор за пределами этого окна — уже новый запрос, и, поскольку проверки дублей нет, он создаст вторую заметку: её убирает «Отменить последнее» или браузер карточек Anki.
Команда в меню «Поделиться»
Команда iOS позволяет отправить слово, выражение или целый отрывок прямо из любого приложения, умеющего делиться текстом.
- Создайте команду, которая принимает текст из меню «Поделиться».
- Соберите словарь:
word— вход команды,lang— код настроенного языка, напримерen, аlookup_only— false. - Через Get Contents of URL отправьте этот словарь как JSON методом POST на
https://<node>.<tailnet>.ts.net/api/words. - Добавьте команду в меню «Поделиться».
Tailscale должен быть подключён. Что именно пришло, решает бэкенд: слово или выражение разбирается целиком и попадает в карточку, а текст возвращается с переводом, разбором трудных мест и списком того, что стоит разобрать отдельно, — и всё это не открывая сервис наружу.