Skip to content

audit F25 [tech-debt]: channel-creation sync semantics tested only at Playwright tier #625

@intendednull

Description

@intendednull

File: e2e/multi-peer-sync.spec.ts:58
Severity: tech-debt
Obvious? yes

Four e2e tests assert channel-creation DAG-sync semantics: pre-existing channels visible after join (line 58), new channel created mid-session syncs to peer (line 99), messages in non-general channel sync (line 119), and rapid channel creation by owner — both channels propagate to peer (line 188). The DOM-render piece is one expect(...).toBeVisible() per test; the load-bearing assertion is bob.waitUntilHeadsEqual(alice) after a CreateChannel event — pure state-machine convergence. crates/client/src/tests/multi_peer_sync.rs already has the harness (connected_pair, replay_dag_into) and 11 sync tests covering messages/edits/deletes/reactions/typing/display-names/replay/reconnect — but zero CreateChannel sync tests. Per CLAUDE.md decision tree §3 ("Multi-peer sync semantics? → Rust client crate test with MemNetwork").

Fix: add channels_sync_both_directions, pre_existing_channels_visible_to_joiner, and rapid_channel_creates_converge at the client tier — runs in <200 ms vs. ~30 s per Playwright test. Keep one minimal Playwright test for the channel-list DOM rendering only.


Filed by /general-audit @ 88498a5 (2026-05-04). master: #600.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions