9 Commits
Author SHA1 Message Date
mayatnikov d0a7fab09c Новый чат v1.1.2: разделить личные чаты и комнаты 2026-08-24 16:48:39 +03:00
mayatnikov 1a56d2f8a1 Чат v1.1.1: упростить ввод и стороны по устройству 2026-08-24 12:17:13 +03:00
mayatnikovandClaude Opus 5 547637067d Слить main: стороны сообщений поверх строки ввода iOS
Обе ветки правили строку ввода чата ради одной и той же полосы
помощника форм над клавиатурой iOS. ADR-064 из main считал триггером
элемент form и вынес поле наружу; на устройстве не помогло — полоса
бывает у input и textarea всегда. ADR-069 отсюда заменяет поле
редактируемым блоком, это и есть «следующий шаг» из следствий ADR-064.

Что взято:
- строка ввода — редактируемый блок (ADR-069/071), контейнер div
  с role="form" и кнопка type="button" (ADR-064);
- лента — поток со сторонами, feed-list (ADR-065), не сетка;
- brief.md: safe-area из ADR-075 и стороны из ADR-065 вместе;
- app.css: правило 44 px для блока ввода; .author:empty из медиазапроса
  убран — main вынес его на верхний уровень, сетки больше нет.

Убран слушатель submit: контейнер стал div, событие не случается.
ADR-064 и ADR-069 связаны ссылками в обе стороны.

sw.js VERSION → v6: клиент отличается от обеих версий, где стоял v5.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QR8uS3zGkybzWRW4GEY1oz
2026-08-24 11:26:09 +03:00
mayatnikovandClaude Opus 5 7bb0418a68 ADR-066: серверного «перца» для ключевого блоба нет
Решение перенесено из закрытого PR #1 (ветка отведена до мержа v1,
номера ADR там разошлись с main). Ссылки выправлены на актуальные
ADR-003/006/013 и на формулировку threat-model «Слабый пароль».

Заодно из open-questions.md убран пункт про сторону сообщений:
его закрыл ADR-065, но вычеркнуть забыли.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QR8uS3zGkybzWRW4GEY1oz
2026-08-24 11:13:56 +03:00
Claude 334ce95935 ADR-064: строка ввода чата — div вместо form
Убирает системную панель навигации по полям над клавиатурой на iOS
(Safari и Chrome): она держится на элементе <form>, а не на textarea
как таковом. Дешёвый вариант вместо contenteditable — сначала пробуем
его, дороже (переписывать paste/placeholder/лимит руками) не потребовалось.

Отправка теперь идёт по click на кнопке и по keydown Enter вместо
события submit — форму убрали, role="form" держит ту же семантику
для скринридера.
2026-08-24 06:10:18 +00:00
Claude c826d581ea Открытые вопросы: панель над клавиатурой в поле ввода, сторона сообщений в ленте
По итогам теста с реальными пользователями. Решений пока нет — оба пункта
меняют текущее поведение (композер) и принятый макет ленты (ADR-024),
нужно решение перед ADR и кодом.
2026-08-24 05:32:10 +00:00
mayatnikovandClaude Fable 5 ae55c846aa ADR-015…024 и спецификации v1: криптография, протокол, хранение, UI, деплой, план
Закрыты все открытые вопросы проектирования. Пароль не покидает клиент
(два ключа из мастера), TOFU для публичных ключей, устройства и конверт,
атомарный rekey комнат, регистрация и контакты, схема SQLite и драйвер
без cgo, сессии и CSRF, деплой через nginx+systemd, правила пушей,
айдентика «Скобы» на системном mono. Иконки PWA в web/icons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015DbCjVfTFq4ZFG8juD45YJ
2026-08-22 10:53:24 +03:00
ClaudeandClaude Fable 5 b9bf4ea04e Парольная политика (ADR-013) и привязка экспорта к аккаунту (ADR-014)
ADR-013: PBKDF2-HMAC-SHA256 ≥600k итераций (цель 1M), параметры KDF
версионируются рядом с блобом; пароль от 12 символов, длина важнее
состава. ADR-014: парольная фраза экспорта отменена, ключ экспорта —
HKDF от 32-байтового секрета аккаунта из ключевого блоба; архив .bare
криптографически бесполезен вне аккаунта-владельца. Перекрёстно
обновлены ADR-006, ADR-010, architecture, threat-model; в открытые
вопросы добавлен серверный «перец» для блоба.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SW4ZXtKn5NjX8NH3Lhm2ND
2026-08-20 09:41:33 +00:00
ClaudeandClaude Fable 5 3d814112a9 Заложить репозиторий: философия, архитектура, модель угроз, ADR
Документы фиксируют принятые проектные решения Bare:
клиент без фреймворков и сборки, Go-сервер одним бинарём,
E2EE на WebCrypto, сервер-реле без истории, локальная история
с экспортом/импортом, Web Push + VAPID. Кода нет — сначала документы.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SW4ZXtKn5NjX8NH3Lhm2ND
2026-08-20 09:17:37 +00:00