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
This commit is contained in:
wt committed 2026-10-15 15:40:32 +07:00
1 parent 30f7f222d2
commit a02412d7c7
6 files changed
+149 -19

No files matched your search

+3 -3
View File
@@ -1,13 +1,13 @@
# Матрица задач
Generated; state revision **59**. Canonical status: state/tasks.json.
Generated; state revision **60**. Canonical status: state/tasks.json.
| ID | Этап | Оператор | Reviewer | Статус | Owner | Зависимости | Задача |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [S00-001](tasks/S00-001.md) | S00 | orchestrator | security | done | auto-orchestrator-48aab142ecde | | Утвердить Web-профиль |
| [S00-002](tasks/S00-002.md) | S00 | orchestrator | security | done | auto-orchestrator-68a05c587e33 | S00-001, S00-011, S00-012 | Выбрать framework и build runtime |
| [S00-003](tasks/S00-003.md) | S00 | protocol | qa | blocked | auto-protocol-59f4d359b339 | S00-001, S00-002, S00-017, S00-018, S00-019, S00-020 | Проверить XMPP WSS/auth библиотеку |
| [S00-004](tasks/S00-004.md) | S00 | crypto | security | blocked | auto-crypto-8bf3dcf711b9 | S00-001, S00-002, S00-021 | Проверить browser OMEMO backend |
| [S00-004](tasks/S00-004.md) | S00 | crypto | security | todo | | S00-001, S00-002, S00-021 | Проверить browser OMEMO backend |
| [S00-005](tasks/S00-005.md) | S00 | storage | qa | todo | | S00-002 | Выбрать IndexedDB wrapper и migration policy |
| [S00-006](tasks/S00-006.md) | S00 | orchestrator | security | todo | | S00-002 | Зафиксировать browser/reference matrix |
| [S00-007](tasks/S00-007.md) | S00 | security | orchestrator | todo | | S00-004, S00-005 | Утвердить password и crypto unlock модель |
@@ -23,7 +23,7 @@ Generated; state revision **59**. Canonical status: state/tasks.json.
| [S00-018](tasks/S00-018.md) | S00 | protocol | security | done | auto-protocol-89fe6563092c | S00-001, S00-002, S00-017 | Validate bounded standalone XML ingress for the XMPP candidate |
| [S00-019](tasks/S00-019.md) | S00 | crypto | security | done | auto-crypto-c68801170fa4 | S00-001, S00-002, S00-017, S00-018 | Validate browser-compatible SCRAM-SHA-512 through a public mechanism API |
| [S00-020](tasks/S00-020.md) | S00 | ci-cd | qa | in_progress | auto-ci-cd-5a18c8aa1b42 | S00-001, S00-002, S00-017, S00-018, S00-019 | Restore access to the pinned Linux XMPP experiment toolchain |
| [S00-021](tasks/S00-021.md) | S00 | crypto | security | review | auto-crypto-fcef9b6781bf | S00-001, S00-002 | Устранить прерывание: Проверить browser OMEMO backend |
| [S00-021](tasks/S00-021.md) | S00 | crypto | security | done | auto-crypto-fcef9b6781bf | S00-001, S00-002 | Устранить прерывание: Проверить browser OMEMO backend |
| [S00-010](tasks/S00-010.md) | S00 | qa | orchestrator | todo | | S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009 | Gate: Профиль и проверка стека |
| [S01-001](tasks/S01-001.md) | S01 | orchestrator | security | todo | | S00-010 | Описать identity/model contracts |
| [S01-002](tasks/S01-002.md) | S01 | orchestrator | security | todo | | S00-010, S01-001 | Описать async account context |
+2 -2
View File
@@ -9,7 +9,7 @@
- [S00-001](../tasks/S00-001.md): Утвердить Web-профиль — orchestrator; done.
- [S00-002](../tasks/S00-002.md): Выбрать framework и build runtime — orchestrator; done.
- [S00-003](../tasks/S00-003.md): Проверить XMPP WSS/auth библиотеку — protocol; blocked.
- [S00-004](../tasks/S00-004.md): Проверить browser OMEMO backend — crypto; blocked.
- [S00-004](../tasks/S00-004.md): Проверить browser OMEMO backend — crypto; todo.
- [S00-005](../tasks/S00-005.md): Выбрать IndexedDB wrapper и migration policy — storage; todo.
- [S00-006](../tasks/S00-006.md): Зафиксировать browser/reference matrix — orchestrator; todo.
- [S00-007](../tasks/S00-007.md): Утвердить password и crypto unlock модель — security; todo.
@@ -25,7 +25,7 @@
- [S00-018](../tasks/S00-018.md): Validate bounded standalone XML ingress for the XMPP candidate — protocol; done.
- [S00-019](../tasks/S00-019.md): Validate browser-compatible SCRAM-SHA-512 through a public mechanism API — crypto; done.
- [S00-020](../tasks/S00-020.md): Restore access to the pinned Linux XMPP experiment toolchain — ci-cd; in_progress.
- [S00-021](../tasks/S00-021.md): Устранить прерывание: Проверить browser OMEMO backend — crypto; review.
- [S00-021](../tasks/S00-021.md): Устранить прерывание: Проверить browser OMEMO backend — crypto; done.
- [S00-010](../tasks/S00-010.md): Gate: Профиль и проверка стека — qa; todo.
## Граница этапа
+2 -2
View File
@@ -2,7 +2,7 @@ id,stage,operator,reviewer,status,owner,depends_on,title
S00-001,S00,orchestrator,security,done,auto-orchestrator-48aab142ecde,,Утвердить Web-профиль
S00-002,S00,orchestrator,security,done,auto-orchestrator-68a05c587e33,"S00-001, S00-011, S00-012",Выбрать framework и build runtime
S00-003,S00,protocol,qa,blocked,auto-protocol-59f4d359b339,"S00-001, S00-002, S00-017, S00-018, S00-019, S00-020",Проверить XMPP WSS/auth библиотеку
S00-004,S00,crypto,security,blocked,auto-crypto-8bf3dcf711b9,"S00-001, S00-002, S00-021",Проверить browser OMEMO backend
S00-004,S00,crypto,security,todo,,"S00-001, S00-002, S00-021",Проверить browser OMEMO backend
S00-005,S00,storage,qa,todo,,S00-002,Выбрать IndexedDB wrapper и migration policy
S00-006,S00,orchestrator,security,todo,,S00-002,Зафиксировать browser/reference matrix
S00-007,S00,security,orchestrator,todo,,"S00-004, S00-005",Утвердить password и crypto unlock модель
@@ -18,7 +18,7 @@ S00-017,S00,protocol,security,done,auto-protocol-599343cd9e3f,"S00-001, S00-002"
S00-018,S00,protocol,security,done,auto-protocol-89fe6563092c,"S00-001, S00-002, S00-017",Validate bounded standalone XML ingress for the XMPP candidate
S00-019,S00,crypto,security,done,auto-crypto-c68801170fa4,"S00-001, S00-002, S00-017, S00-018",Validate browser-compatible SCRAM-SHA-512 through a public mechanism API
S00-020,S00,ci-cd,qa,in_progress,auto-ci-cd-5a18c8aa1b42,"S00-001, S00-002, S00-017, S00-018, S00-019",Restore access to the pinned Linux XMPP experiment toolchain
S00-021,S00,crypto,security,review,auto-crypto-fcef9b6781bf,"S00-001, S00-002",Устранить прерывание: Проверить browser OMEMO backend
S00-021,S00,crypto,security,done,auto-crypto-fcef9b6781bf,"S00-001, S00-002",Устранить прерывание: Проверить browser OMEMO backend
S00-010,S00,qa,orchestrator,todo,,"S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009",Gate: Профиль и проверка стека
S01-001,S01,orchestrator,security,todo,,S00-010,Описать identity/model contracts
S01-002,S01,orchestrator,security,todo,,"S00-010, S01-001",Описать async account context
1 id stage operator reviewer status owner depends_on title
2 S00-001 S00 orchestrator security done auto-orchestrator-48aab142ecde Утвердить Web-профиль
3 S00-002 S00 orchestrator security done auto-orchestrator-68a05c587e33 S00-001, S00-011, S00-012 Выбрать framework и build runtime
4 S00-003 S00 protocol qa blocked auto-protocol-59f4d359b339 S00-001, S00-002, S00-017, S00-018, S00-019, S00-020 Проверить XMPP WSS/auth библиотеку
5 S00-004 S00 crypto security blocked todo auto-crypto-8bf3dcf711b9 S00-001, S00-002, S00-021 Проверить browser OMEMO backend
6 S00-005 S00 storage qa todo S00-002 Выбрать IndexedDB wrapper и migration policy
7 S00-006 S00 orchestrator security todo S00-002 Зафиксировать browser/reference matrix
8 S00-007 S00 security orchestrator todo S00-004, S00-005 Утвердить password и crypto unlock модель
18 S00-018 S00 protocol security done auto-protocol-89fe6563092c S00-001, S00-002, S00-017 Validate bounded standalone XML ingress for the XMPP candidate
19 S00-019 S00 crypto security done auto-crypto-c68801170fa4 S00-001, S00-002, S00-017, S00-018 Validate browser-compatible SCRAM-SHA-512 through a public mechanism API
20 S00-020 S00 ci-cd qa in_progress auto-ci-cd-5a18c8aa1b42 S00-001, S00-002, S00-017, S00-018, S00-019 Restore access to the pinned Linux XMPP experiment toolchain
21 S00-021 S00 crypto security review done auto-crypto-fcef9b6781bf S00-001, S00-002 Устранить прерывание: Проверить browser OMEMO backend
22 S00-010 S00 qa orchestrator todo S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009 Gate: Профиль и проверка стека
23 S01-001 S01 orchestrator security todo S00-010 Описать identity/model contracts
24 S01-002 S01 orchestrator security todo S00-010, S01-001 Описать async account context