Files
LumaWeb/state/handoffs/S00-004.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

2.7 KiB

Handoff S00-004 - Browser OMEMO backend spike

Agent: auto-crypto-fe1c81c17ded Role: crypto Status on handoff: escalated (blocker)

Result this run

Re-ran both committed probes unchanged from the S00-021 remediation and confirmed the reproduced state. A verified audited session/ratchet engine and session-record persistence are established (@signalapp/libsignal-client@0.105.0, known-answer sealed-sender roundtrip, 631-byte session record reloaded byte-for-byte). The browser/worker/WASM deployment and the legacy/OMEMO2 wire layer remain not available from any maintained package on the reachable registry.

Per focused-check rule ("unsupported format recorded blocker, not success") and the mandatory escalate protocol, S00-004 is escalated as blocked rather than claimed done: the acceptance (legacy/OMEMO2 AND worker/wasm AND persistence) still lacks a verified browser/WASM-capable OMEMO2 backend.

Reproduction this run (all from project root)

  1. node experiments/0003-crypto-library/session-probe/smoke.mjs -> exit 0, SMOKE_PASS, KAS_OK bob stored session bytes: 631.
  2. node experiments/0003-crypto-library/session-probe/wasm-unsupported.mjs -> exit 2, UNSUPPORTED_BLOCKER, pkgPresent: true, wasmFiles: 0, prebuilds native *.node only.
  3. Live public registry (npm view <pkg> version):
    • @signalapp/libsignal-client = 0.105.0 (Node native addon, AGPL-3.0-only).
    • @signalapp/libsignal, @converse/omemo, @xmpp/omemo, omemo2, omemo-js, omemo-client, omemo-top, omemo-wasm -> all E404.

Outputs produced (all inside accepted scope)

  • state/issues/S00-004-auto-crypto-fe1c81c17ded.json (one atomac remediation).
  • state/evidence/S00-004-auto-crypto-fe1c81c17ded.md (this run's evidence).
  • No source changes elsewhere; docs/decisions/0003-crypto-library.md and experiments/0003-crypto-library/** unchanged (edits outside this escalation are prohibited for this run).

Next input for the remediation

  1. Confirm node experiments/0003-crypto-library/session-probe/smoke.mjs (0) and .../wasm-unsupported.mjs (2) from project root.
  2. Source or confirm a maintained browser/worker/WASM-capable OMEMO2 backend (real web/WASM build + OMEMO2/S ce-format mapping from traceable primary sources, license/support/browser constraints checked), or record the specific external product/administrative decision (library/provider/license) needed to bring such a backend in. Requires user/external input.
  3. Run a focused known-answer OMEMO2 roundtrip in the web target and record actual results; unsupported format remains a blocker, not success.
  4. Only then may acceptance-1 (legacy/OMEMO2 AND worker/wasm AND persistence) be re-evaluated; do not declare S00-004 done on the persistence+Ratchet part alone.