{ "title": "Record an approved browser OMEMO backend sourcing strategy", "reason": "Pinned libomemo.js@3.0.0 supplies real embedded WASM but is a different unaudited ratchet and excludes consumer SCE; no approved decision reconciles it with S00-022 retained audited engine/persistence requirement.", "reproduction": "npm view libomemo.js@3.0.0 succeeds; pinned tarball README and bundle inspection establish candidate scope, embedded WASM and unaudited/SCE boundaries. Existing wasm-unsupported probe exits 2. See state/evidence/S00-022-auto-crypto-bcd7f2a71667.md.", "role": "orchestrator", "reviewer_role": "security", "scope": [ "docs/decisions/0003-browser-backend-decision.md" ], "outcome": "One explicit architecture/security/product-owner sourcing decision naming the retained engine browser port or authorizing bounded evaluation of an alternative, with license/support/security-assessment and persistence compatibility requirements, without waiving ENC-003/009/011.", "steps": [ "Obtain explicit owner input naming a backend strategy; do not infer approval from candidate availability.", "Record traceable primary sources, exact target, license/support constraints and required independent security assessment and SCE path.", "If alternative engine is selected, require separate reviewed plan change for preservation wording before S00-022 resumes implementation.", "Submit only the bounded decision for independent security review; do not implement crypto." ], "acceptance": [ "Explicit owner decision is recorded; the candidate is not declared audited or interoperable without evidence.", "Decision preserves ENC-003/009/011 and identifies remaining browser/SCE/vector/persistence checks.", "Any engine replacement is contingent on reviewed plan change; no silent replacement or implementation occurs." ], "checks": [ "Verify owner input and primary-source traceability for named target/license/support/security and SCE boundaries.", "Independent security review confirms decision addresses engine/persistence preservation and contains no requirement bypass." ], "depends_on": [], "requires_user_input": true }