initial commit
Foundation checks / foundation (push) Successful in 1m12s

This commit is contained in:
wt committed 2026-10-14 17:47:38 +07:00
commit 54bfc0f34f
357 files changed
+41075

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
# Web-профиль
Применяются неизменённые clear specifications из `specs/`. Они охватывают Web/Desktop/Android, но данная основа реализует только Web. Матрица applicability в `planning/requirements.json` перечисляет каждый ID и причину исключения native-only требований; они не исчезают из оригиналов.
## Решения основы
- Один active account, несколько сохранённых configurations.
- Защищённый XMPP WebSocket WSS; native TCP/SRV options не изображаются рабочими browser controls.
- OMEMO на клиенте; backend не расшифровывает сообщения/файлы.
- Password только в памяти с повторным вводом по необходимости; persistent unlock crypto state — отдельный ADR и задача, не plaintext localStorage.
- Browser storage и quota отображаются честно; нет обещания hardware-backed vault.
- Browser notifications/push требуют permission/provider/gateway. Закрытая вкладка не является живым socket/media process.
- Нет автоматически работающего APNs/Android/tray/Watch пути.
- Framework, runtime versions, browser matrix и providers пока не приняты. Первые ADR выбирают их с первичными sources и runnable spikes.
- TypeScript — предпочтительный кандидат для типизированных contracts; окончательный язык/стек фиксирует S00-002. До этого scaffold не добавляет непроверенные dependency versions.
- Минимальный первый демонстрационный вертикальный срез не равен полной готовности. Release gate требует полного Web scope, encrypted send и interoperability evidence.
## Обязательные ограничения
Нельзя обходить отсутствующую crypto library через самодельный Double Ratchet, mock-success или server plaintext. Если кандидаты несовместимы, фиксируется blocker и реальный plan change. Документационный scope задачи не делает криптографическую проблему простой: small LLM должна выполнить bounded spike/test либо передать конкретный blocker специалисту.
Публичные URL/providers записываются в runtime config. Credentials/VAPID private key/TURN secrets хранятся отдельно и не попадают в committed evidence.