Skip to content

feat(telegram): визуальная транслитерация вместо фонетической - #27

Merged
Flexlug merged 2 commits into
mainfrom
feat/visual-transliterate
Jun 28, 2026
Merged

feat(telegram): визуальная транслитерация вместо фонетической#27
Flexlug merged 2 commits into
mainfrom
feat/visual-transliterate

Conversation

@Flexlug

@Flexlug Flexlug commented Jun 28, 2026

Copy link
Copy Markdown
Owner

Что

transliterate() (команда set_transliter, путь Telegram→LoRa) теперь подбирает ближайший по начертанию ASCII-аналог, а не по звучанию. Цель — ужать payload в эфире LoRa (кириллица 2 байта → ASCII 1 байт) и оставить текст узнаваемым «по виду».

Прежняя фонетическая таблица увеличивала payload на многобуквенных заменах (щ→sch = 4 байта против 2).

Правила (см. spec)

Тот же регистр · без цифр · только уверенные визуальные совпадения. Буквы без хорошего одно-регистрового аналога остаются кириллицей.

  • Строчные: а→a г→r е→e ё→e и→u к→k м→m о→o п→n р→p с→c у→y х→x ш→w ь→b
  • Заглавные: А→A В→B Е→E Ё→E Н→H К→K М→M О→O Р→P С→C Т→T У→Y Х→X Ш→W
  • Следствие — регистровая асимметрия (В/Н/Т→B/H/T, но в/н/т остаются; п→n, но П остаётся). Принято осознанно, закреплено тестом.
привет → npuвeт   ·   ПРИВЕТ → ПPИBET   ·   Вася → Bacя

Спек: docs/superpowers/specs/2026-06-28-visual-transliterate-design.md

Проверки

  • Реализовано через TDD (тесты red→green)
  • 341 passed, ruff ✓, mypy lora_bridge

🤖 Generated with Claude Code

Flexlug and others added 2 commits June 28, 2026 18:07
Смена принципа transliterate с фонетического на визуальный: ближайший по виду
ASCII-аналог, тот же регистр, без цифр, только уверенные совпадения; payload —
жёсткое ограничение (комбо не используются). Утверждённая таблица + примеры.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
transliterate() теперь подбирает ближайший по НАЧЕРТАНИЮ ASCII-аналог (тот же
регистр, без цифр, только уверенные совпадения), а не по звучанию. Цель —
ужать payload в эфире LoRa и оставить текст узнаваемым по виду. Многобуквенные
фонетические замены (щ→sch=4 байта) убраны — они увеличивали payload.

Буквы без хорошего одно-регистрового аналога остаются кириллицей (отсюда
асимметрия В/Н/Т→B/H/T при сохранении в/н/т). Спек:
docs/superpowers/specs/2026-06-28-visual-transliterate-design.md

Тесты переписаны под новый вывод + закреплён инвариант регистровой асимметрии.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Flexlug
Flexlug merged commit 95a82f3 into main Jun 28, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant