Skip to content

e2e live-window: test_41 canvas_modify_sync fails without pull-assist — rapid double-write never delivers the second write #944

Description

@Rasbandit

Found by Task A1 of the testing-confidence wave (branch test/confidence-wave; local stack 0.5.639, plugin main 77f0338, E2E_WORKERS=1 --reruns 0, reproduces solo).

Symptom

test_41_canvas_sync.py::test_canvas_modify_sync writes a base canvas on A, waits for B to receive it live (passes), then immediately overwrites with a modified version (~2ms after the base push per A's logs) and waits for B to see the new content (wait_for_content, 30s, pure disk poll, no pull). B materializes the base write ([client:pull] Created: ... len=430) but never the modified 582-byte version.

Hypothesis

The two rapid back-to-back upserts get coalesced somewhere in the broadcast/hash-dedup path so B only ever sees the first. Candidate suspects: the deliberate hash-equal broadcast-skip (notes.ex upsert path) interacting with in-flight state, or client-side echo/dedup on the receiving plugin.

Repro

Convert-first live assert per the live-window discipline (test file on test/confidence-wave), run test_41 solo against a version-matched stack per local-crdt-e2e-repro.md.

The test is deliberately left red on the branch (no pull-masking re-added). Full diagnostics: workspace .superpowers/sdd/task-A1-report.md, Finding 2.

Refs Engram#942 (attachment live delivery — separate finding from the same wave).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions