wt a02412d7c7 S00-021: Approve S00-021: independently verified browser OMEMO blocker
Changes:
- Wrote state/evidence/S00-021-review.md recording independent re-checks of the
  executor's remediation for S00-004's interruption ("Agent timed out before
  escalation").
- Reproduced both committed probes unchanged: smoke.mjs exit 0 (SMOKE_PASS,
  631-byte session record byte-for-byte reload) and wasm-unsupported.mjs exit 2
  (wasmFiles 0, native-only prebuilds), matching executor evidence exactly.
- Independently re-queried npm registry: @signalapp/libsignal (browser WASM) E404;
  @signalapp/libsignal-client 0.105.0 (native, AGPL-3.0) exists; confirms the
  browser/worker/WASM + OMEMO2 wire-layer blocker is genuine.
- Audited scope via git: commit 30f7f22 touches only the in-scope ADR
  docs/decisions/0003-crypto-library.md plus workflow metadata; experiments/**
  unchanged; working tree clean. No requirement bypass: S00-004 remains blocked,
  ADR 0003 records the honest blocker and forbids done on persistence+Ratchet alone.

Validation:
- make check: 72 tooling tests OK.
- Both probes reproduced, exit codes and output match evidence.
- Acceptance met: interruption repro row exists for next executor; original not
  declared done via bypass.

Task: S00-021
Reviewer agent: auto-security-5d2ae592b569
Role: security
Action: approve

Task: S00-021
Agent: auto-security-5d2ae592b569
Role: security
Action: review
Status: done

Task title: Устранить прерывание: Проверить browser OMEMO backend
2026-10-15 15:40:32 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 18:06:35 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 18:06:35 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 18:06:35 +07:00
2026-10-14 17:47:38 +07:00
2026-10-14 18:06:35 +07:00

Luma Web — основа агентной разработки

Переносимый каталог планирования и workflow для создания Web-клиента Luma. Готового мессенджера здесь пока нет. Будущие задачи отмечены todo, исходные clear-спецификации сохранены без изменения байтов. Framework и XMPP/OMEMO библиотеки выбираются через начальные ADR и проверку совместимости.

Быстрый старт

Для инструмента нужен Python 3.10+; сторонние Python-пакеты не нужны.

python3 scripts/tasks.py validate
python3 -m unittest discover -s tests/tooling -v
python3 scripts/tasks.py status
python3 scripts/tasks.py next --role orchestrator

Передать агенту master_prompt.md; role/id можно добавить в пользовательское поручение. После blocker прежний agent id не используется: следующий процесс назначает runner.

python3 scripts/tasks.py claim S00-001 --agent local-architect-1 --role orchestrator
python3 scripts/tasks.py packet S00-001 --agent local-architect-1 --output state/context-S00-001.md

Оператор выбирается из 12 файлов ролей; маленькой модели не нужно читать весь tasks.json. Ограниченный context packet содержит максимум 48 000 символов.

Один рабочий цикл — одна задача, её focused checks, evidence, handoff и независимое review. Все команды запускаются из корня этой основы; script сам разрешает пути относительно своего расположения.

Навигация

  • master_prompt.md, AGENTS.md — старт/продолжение работы.
  • specs/tz_clear.md, specs/uikit_clear.md — оригиналы целевых требований.
  • planning/ROADMAP.md — этапы и gates.
  • planning/TASK_MATRIX.md, planning/task_matrix.csv — задачи, операторы, зависимости, статусы.
  • planning/TRACEABILITY.md — применимость требований Web и связь с задачами.
  • planning/tasks/<ID>.md — подробная атомарная карточка.
  • roles/ — полномочия и инструкции операторов.
  • docs/ — architecture/profile/contracts/workflow/testing/security и BOOTSTRAP_PROMPTS.md с готовыми поручениями.
  • state/ — статусы, evidence, handoffs; не secrets.
  • scripts/tasks.py — dependency-free task CLI.
  • tests/tooling/ — тесты инструмента и целостности.
  • src/, services/, infra/ — будущая реализация; пояснения внутри директорий.

Перенос

Можно скопировать весь каталог в отдельный репозиторий, включая .github, .gitignore, .editorconfig и текущий state. Git metadata родительского репозитория не требуется. Внутри исходного Apple-репозитория корневая .github этой основы не запускается автоматически; workflow начнёт работать после переноса .github в корень отдельного Web-репозитория.

make check проверяет только подготовленную основу. App build/test pipeline будет подключён после принятия стека. Нельзя считать готовые документацию/матрицу выполненными продуктовыми задачами.

Автоматический режим

Один раз заполнить runner.local.json по runner.example.json командой своего tool-capable agent CLI, затем:

python3 scripts/runner.py --dry-run
python3 scripts/runner.py --config runner.local.json

Каждый запуск модели получает ровно одну задачу и fresh session. При blocker инструмент создаёт remediation и блокирует original; reporter заканчивает работу. Новый агент исправляет причину, другой проверяет, новый продолжает original. При необходимости внешнего input runner останавливается с конкретным запросом. Подробности — docs/AUTOMATION.md.

После каждого завершённого запуска runner делает осмысленный commit с task ID, описанием actual changes и проверок: реализация → отдельный review → следующая задача. Blocker сохраняется как незавершённый checkpoint. Агент заранее пишет сообщение, Git выполняет coordinator. Перед первым запуском нужен первоначальный commit основы и чистый Git checkout; подробности — docs/GIT_WORKFLOW.md. Ошибка commit останавливает очередь и сохраняет изменения.

S
Description
No description provided
Readme AGPL-3.0
2.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 53.5%
JavaScript 45.5%
Shell 0.5%
TypeScript 0.2%
Makefile 0.2%
Other 0.1%