Закрыть открытые вопросы: ADR-015…022, бриф айдентики #1

Closed
halofourteen wants to merge 1 commits from docs/open-questions-v1 into main
halofourteen commented 2026-08-20 22:42:24 +03:00 (Migrated from github.com)

Что решено

ADR Решение
015 Регистрация открытая, инвайтов нет
016 Контакты по точному нику через запрос/принятие; ключ закрепляется на устройстве (TOFU + предупреждение при смене); в комнату — только своих контактов без отдельного согласия; блокировка ника
017 Лимиты: 4 096 символов, 32 КиБ на запрос, token bucket в памяти (60 сообщений/мин, 20 запросов контакта/сутки, 5 регистраций/час с IP, 10 попыток входа/15 мин), очередь ≤ 10 000, контактов ≤ 500, участников ≤ 100, устройств ≤ 10. Константы в одном файле
018 Устройство — случайный 128-битный deviceId в IndexedDB; серверный fan-out по очередям всех устройств участников; устройство без связи 30 дней удаляется
019 Серверного перца нет: ломает «бэкап — один файл» (ADR-003), потеря ключа = катастрофа без восстановления
020 Смена пароля — не в v1
021 Интерфейс ru/en: два словаря в одном ES-модуле, Intl.PluralRules / Intl.DateTimeFormat
022 Айдентика — turn 2 канваса: «Скобы», моно, без баблов; бриф в docs/identity/brief.md

Обновлены architecture.md, threat-model.md, README.md, ссылки в ADR-005 и ADR-008.

Осталось открытым

  • Моногарнитура для кириллицы. Fragment Mono из мока не содержит базовой кириллицы (U+0400–045F) — проверено по unicode-range в Google Fonts. Варианты: JetBrains Mono / IBM Plex Mono одним .woff2 в репо или системный моно-стек.
  • Удаление аккаунта. ADR-014 упоминает перерегистрацию под тем же ником — без удаления она невозможна.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R2pCJkWyG2aYu48u1Vp1A1

## Что решено | ADR | Решение | |---|---| | 015 | Регистрация открытая, инвайтов нет | | 016 | Контакты по точному нику через запрос/принятие; ключ закрепляется на устройстве (TOFU + предупреждение при смене); в комнату — только своих контактов без отдельного согласия; блокировка ника | | 017 | Лимиты: 4 096 символов, 32 КиБ на запрос, token bucket в памяти (60 сообщений/мин, 20 запросов контакта/сутки, 5 регистраций/час с IP, 10 попыток входа/15 мин), очередь ≤ 10 000, контактов ≤ 500, участников ≤ 100, устройств ≤ 10. Константы в одном файле | | 018 | Устройство — случайный 128-битный `deviceId` в IndexedDB; серверный fan-out по очередям всех устройств участников; устройство без связи 30 дней удаляется | | 019 | Серверного перца нет: ломает «бэкап — один файл» (ADR-003), потеря ключа = катастрофа без восстановления | | 020 | Смена пароля — не в v1 | | 021 | Интерфейс ru/en: два словаря в одном ES-модуле, `Intl.PluralRules` / `Intl.DateTimeFormat` | | 022 | Айдентика — turn 2 канваса: «Скобы», моно, без баблов; бриф в `docs/identity/brief.md` | Обновлены `architecture.md`, `threat-model.md`, `README.md`, ссылки в ADR-005 и ADR-008. ## Осталось открытым - **Моногарнитура для кириллицы.** Fragment Mono из мока не содержит базовой кириллицы (U+0400–045F) — проверено по unicode-range в Google Fonts. Варианты: JetBrains Mono / IBM Plex Mono одним `.woff2` в репо или системный моно-стек. - **Удаление аккаунта.** ADR-014 упоминает перерегистрацию под тем же ником — без удаления она невозможна. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01R2pCJkWyG2aYu48u1Vp1A1
halofourteen commented 2026-08-24 11:13:03 +03:00 (Migrated from github.com)

Закрываю без мержа: ветка отведена от b9bf4ea, до мержа #2 (Bare v1). За это время те же вопросы были переписаны заново и уже лежат в main под номерами ADR-015…024 — местами с противоположным решением:

Тема этот PR main (что реально работает в v1)
Регистрация открытая, инвайтов нет открытая + общий BARE_INVITE_CODE (ADR-019)
Контакты только взаимные, через запрос/принятие согласия не требуется, как e-mail (ADR-019)
Язык ru/en, два словаря, Intl только русский, i18n не закладывается (ADR-024)
Шрифт открытый вопрос про кириллицу решено: системный моно-стек (ADR-024)
Удаление аккаунта открытый вопрос решено: DELETE /api/me (ADR-019)

Плюс номера 015–022 в main заняты другими решениями — мерж добавил бы вторые файлы 015-*022-* рядом с существующими и откатил README.md, architecture.md, threat-model.md, identity/brief.md к состоянию до v1.

Единственное решение отсюда, которого в main нет, — «серверного перца нет». Переношу его отдельным ADR-066.

Закрываю без мержа: ветка отведена от `b9bf4ea`, до мержа #2 (`Bare v1`). За это время те же вопросы были переписаны заново и уже лежат в main под номерами ADR-015…024 — местами с противоположным решением: | Тема | этот PR | main (что реально работает в v1) | |---|---|---| | Регистрация | открытая, инвайтов нет | открытая + общий `BARE_INVITE_CODE` (ADR-019) | | Контакты | только взаимные, через запрос/принятие | согласия не требуется, как e-mail (ADR-019) | | Язык | ru/en, два словаря, `Intl` | только русский, i18n не закладывается (ADR-024) | | Шрифт | открытый вопрос про кириллицу | решено: системный моно-стек (ADR-024) | | Удаление аккаунта | открытый вопрос | решено: `DELETE /api/me` (ADR-019) | Плюс номера 015–022 в main заняты другими решениями — мерж добавил бы вторые файлы `015-*`…`022-*` рядом с существующими и откатил `README.md`, `architecture.md`, `threat-model.md`, `identity/brief.md` к состоянию до v1. Единственное решение отсюда, которого в main нет, — «серверного перца нет». Переношу его отдельным ADR-066.

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.