Контакты по точному нику через запрос/принятие; ключ закрепляется на устройстве (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 упоминает перерегистрацию под тем же ником — без удаления она невозможна.
## Что решено
| 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
Закрываю без мержа: ветка отведена от 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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что решено
deviceIdв IndexedDB; серверный fan-out по очередям всех устройств участников; устройство без связи 30 дней удаляетсяIntl.PluralRules/Intl.DateTimeFormatdocs/identity/brief.mdОбновлены
architecture.md,threat-model.md,README.md, ссылки в ADR-005 и ADR-008.Осталось открытым
.woff2в репо или системный моно-стек.🤖 Generated with Claude Code
https://claude.ai/code/session_01R2pCJkWyG2aYu48u1Vp1A1
Закрываю без мержа: ветка отведена от
b9bf4ea, до мержа #2 (Bare v1). За это время те же вопросы были переписаны заново и уже лежат в main под номерами ADR-015…024 — местами с противоположным решением:BARE_INVITE_CODE(ADR-019)IntlDELETE /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