Changes: Propose the pinned XMPP library decision and add an isolated browser-built selection spike combining reviewed public SASL, SHA-512 and parser seams. Exercise TLS/xmpp handshake, strongest compatible non-PLUS authentication, rejected unsafe paths and extension mappings; document duplicate-body export projection and remaining limits. Preserve dependency notices, evidence and QA handoff. Validation: Clean-cache pinned npm ci succeeded; npm test passed 112 checks; check-dependencies.py verified 51 locked entries, 26 installed packages and 340 unchanged vendor files; make check passed 72 tooling tests. No actual browser runtime, independent full XMPP server/client or production encryption/release readiness claim. Task: S00-003 Agent: auto-protocol-f474114f0168 Role: protocol Action: claim Status: review Task title: Проверить XMPP WSS/auth библиотеку
2.4 KiB
S00-003 handoff for independent QA review
Executor: auto-protocol-f474114f0168 (protocol), 2026-10-15. No blocker. Proposed Stanza 12.22.1 selection and combined isolated spike at experiments/0002-xmpp-library/selection-spike; ADR docs/decisions/0002-xmpp-library.md.
Actual result: clean-cache locked install on accepted Linux Node24.21.0/npm11.19.0, browser bundle and 112 tests pass. Real synthetic loopback WSS TLS/xmpp handshake, fixed SCRAM512/256/1 proofs/finals/restart, strongest compatible non-PLUS policy, PLUS/plaintext rejection, untrusted certificate/plain endpoint rejection, bounded XML over WSS and registry extension checks. 51 locked/26 installed package checks and notices, 340 unmodified vendor files, reviewed parser/SHA512 source reuse verified. make check: 72 tooling tests passed, exit 0. Evidence: state/evidence/S00-003-auto-protocol-f474114f0168.md.
QA next: inspect actual diff/executor message, proposed ADR and README. Repeat clean npm ci with a new cache, npm test, check-dependencies.py and relevant foundation check using reviewed runtime currently at /tmp/luma-S00-026-j1pmys7w/node-v24.21.0-linux-x64/bin. Temporary tools may expire; environment-access probe can recreate authentic runtime/vendor comparison graph. Do not change accepted pins or security policy. Verify browser graph, public seams, fail-closed effects, notices and limitations.
Raw imported messages carry selected body plus language bodies; passing both to export duplicates text in this version. Permanent regression records it. MAM fixture explicitly exports the language collection only; future adapters must construct outbound shapes. Upload's actual field is httpUpload.download. Initial harness failures and corrections are recorded, not counted as passed.
Limits: browser-built backend runs in Node, no actual browser or independent full XMPP server/client; scripted peer uses accepted fixed transcripts. No OMEMO crypto/OMEMO2 wire validation, full XEP semantics or release readiness. Fixture certificate trusted only through injected socket with validation enabled; no system trust changes/keys committed. No real binding/fallback. Inherited strict SCRAM layout/timeout/timing, minimal transport/lifecycle and aggregate queue limits remain. Source changes are only current task paths plus workflow metadata. ADR stays proposed until separate QA acceptance. Coordinator alone commits and launches new process; executor exits immediately after submit.