Files
LumaWeb/planning/ROADMAP.md
T
wt 55d9c69a21 S00-004: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-004. This checkpoint does not mark implementation accepted.
Validation: Session ended with status blocked.
Blocker: S00-004 acceptance requires establishing legacy/OMEMO2 AND worker/wasm AND persistence without a homegrown ratchet. Reproduced (this run) probes and live public-registry queries confirm only the audited session/ratchet engine + persistence are verified (@signalapp/libsignal-client@0.105.0, Node native addon, zero .wasm). The browser/worker/WASM deployment and the OMEMO/OMEMO2 wire layer are not available from any maintained package on the reachable registry (@signalapp/libsignal, @converse/omemo, @xmpp/omemo, omemo2, omemo-js, omemo-client, omemo-top, omemo-wasm all E404). ENC-009 forbids a homegrown algorithm/ratchet and ENC-011 forbids substituting media AES-GCM for the OMEMO2 wire format, so the spike cannot synthesize a browser backend inside S00-004 scope.

Task: S00-004
Agent: auto-crypto-fe1c81c17ded
Role: crypto
Action: claim
Status: blocked

Task title: Проверить browser OMEMO backend
2026-10-15 15:42:43 +07:00

136 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Этапы разработки
Последовательность gates предохраняет небольшого агента от догадок о ещё не принятых interfaces. Внутри этапа независимые атомарные задачи доступны параллельно при разных scopes/owners.
## [S00: Профиль и проверка стека](stages/S00.md)
Зафиксировать Web scope, browser targets и проверенные кандидаты, не устанавливая непроверенный framework по догадке.
Задач: 22; entry: нет; exit: S00-010.
## [S01: Предметные контракты](stages/S01.md)
Утвердить небольшие interfaces и fixtures, которые последующие операторы реализуют независимо.
Задач: 9; entry: S00-010; exit: S01-009.
## [S02: Workspace и инженерный каркас](stages/S02.md)
Создать runnable пустое приложение, тестовые runners и CI без выдачи scaffolding за готовую функцию.
Задач: 12; entry: S01-009; exit: S02-012.
## [S03: Токены и базовые компоненты](stages/S03.md)
Создать каталог переиспользуемых primitives и состояния accessibility до feature views.
Задач: 15; entry: S02-012; exit: S03-015.
## [S04: Локальное хранилище](stages/S04.md)
Реализовать account-isolated durable data и безопасные миграции, без секретов в public preferences.
Задач: 11; entry: S03-015; exit: S04-011.
## [S05: WSS и аутентификация](stages/S05.md)
Подключить реальный browser XMPP adapter с bounded auth/reconnect и provenance.
Задач: 11; entry: S04-011; exit: S05-011.
## [S06: Аккаунты и lifecycle](stages/S06.md)
Обеспечить login/switch/logout с изолированными async operations и browser-safe credentials.
Задач: 11; entry: S05-011; exit: S06-011.
## [S07: Навигация, контакты и списки](stages/S07.md)
Собрать адаптивный shell и реальные roster/presence/avatars.
Задач: 13; entry: S06-011; exit: S07-013.
## [S08: Сообщения и read state](stages/S08.md)
Реализовать domain reducers и отправку через crypto port; default encryption remains fail-closed until crypto stage.
Задач: 11; entry: S07-013; exit: S08-011.
## [S09: Лента и composer](stages/S09.md)
Соединить UI с message use cases без обхода crypto readiness.
Задач: 12; entry: S08-011; exit: S09-012.
## [S10: Действия над сообщениями](stages/S10.md)
Реализовать небольшие command/reducer/UI сценарии replies, edit, retract, local delete и reactions.
Задач: 15; entry: S09-012; exit: S10-015.
## [S11: Архив и восстановление](stages/S11.md)
Обеспечить page/cursor/source safety и durable commit; не replay всю историю на старте.
Задач: 13; entry: S10-015; exit: S11-013.
## [S12: OMEMO и доверие](stages/S12.md)
Интегрировать проверенный browser crypto backend по малым adapters/fixtures; неподдержанный формат остаётся blocker.
Задач: 22; entry: S11-013; exit: S12-022.
## [S13: MUC](stages/S13.md)
Добавить группы и полный encrypted recipient set без ослабления прав/анонимности.
Задач: 13; entry: S12-022; exit: S13-013.
## [S14: Файлы и upload](stages/S14.md)
Реализовать безопасную загрузку и durable drafts по одному небольшому IO/use-case шагу.
Задач: 13; entry: S13-013; exit: S14-013.
## [S15: Просмотр медиа](stages/S15.md)
Реализовать preview/cache/player/viewer/export и accessibility.
Задач: 11; entry: S14-013; exit: S15-011.
## [S16: Recording и геопозиция](stages/S16.md)
Реализовать явные permission/capture flows и ручной выбор точки.
Задач: 11; entry: S15-011; exit: S16-011.
## [S17: Личные звонки](stages/S17.md)
Реализовать signaling/ICE/media/call history по малым состояниям с отдельными проверками.
Задач: 14; entry: S16-011; exit: S17-014.
## [S18: Web Push и gateway](stages/S18.md)
Реализовать bounded minimal backend и browser service worker с честными closed-tab ограничениями.
Задач: 15; entry: S17-014; exit: S18-015.
## [S19: Lock и security hardening](stages/S19.md)
Зафиксировать реальные границы local protection и проверить недоверенные входы/секреты.
Задач: 11; entry: S18-015; exit: S19-011.
## [S20: Настройки и диагностика](stages/S20.md)
Завершить пользовательские preferences, capabilities и справку без ложных гарантий.
Задач: 9; entry: S19-011; exit: S20-009.
## [S21: Полная Web-приёмка и поставка](stages/S21.md)
Проверить реальные требования по тематическим suites, hosting и release guide. Ни scaffold, ни mock не дают product done.
Задач: 13; entry: S20-009; exit: S21-013.