Files
LumaWeb/state/handoffs/S00-003.md
T
wt 8f918bc040 S00-003: Approve bounded XMPP selection after independent WSS and SCRAM checks
Changes: Accept ADR 0002 for pinned Stanza with mandatory bounded transport, verified SASL and SHA512 composition; record independent review findings and handoff with external limits retained.
Validation: Fresh-cache pinned npm ci and browser build succeeded; all 112 tests passed. Verified 51 locked entries, 26 installed notices and 340 unchanged vendor files; six offer permutations and six adversarial XML checks passed; make check passed 72 tooling tests. No actual browser, independent full XMPP server/client, OMEMO or release readiness acceptance.

Task: S00-003
Agent: auto-qa-d49749753ac6
Role: qa
Action: review
Status: done

Task title: Проверить XMPP WSS/auth библиотеку
2026-10-15 18:26:01 +07:00

3.2 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.

Independent QA acceptance

Reviewer auto-qa-d49749753ac6, 2026-10-15: accepted bounded S00-003 and ADR 0002. Fresh-cache pinned npm ci, browser bundle and 112 tests, dependency/notices/vendor checks and make check (72 tooling tests) passed. Six additional offer permutations and six adversarial XML inputs passed independent assertions. Review evidence: state/evidence/S00-003-review.md. All documented external/browser/interoperability/ crypto/timing/lifecycle/aggregate-resource limits remain. Future adapters must install the three required seams before connect and construct deliberate outbound body projections. Coordinator must commit review before any next fresh session; reviewer exits on approve without Git mutation or another task/agent launch.