Skip to content

Joining a team with real history takes hours and ends unreadable: 17,300 messages, 4+ hours, empty roster, 4,100 blocked #910

Description

@fujibee

Joining a team with real history is not slow — it is unusable. Measured on agmsg 1.2.2 against a team with 17,300 messages: agmsg-cloud sync <team> ran for over four hours, and what the user got at the end was a team they could not read.

End state after 4+ hours

sync_quarantine  imported             13,200   seq 1-13,200
sync_quarantine  unsupported_cipher    4,100   seq 13,201-17,300
messages                              13,170
sync_read_members                          0   <- roster is empty

So: four hours, 4,100 messages unreadable, and no roster at all.

The cost is linear in history, and dev never sees it

Measured throughput: 5 messages/second, the same for both the apply pass and the reprocess pass. One join costs roughly history x 200ms x 2 passes.

     50 messages   ->  10 seconds     (nothing to notice while developing)
 17,300 messages   ->  4 hours        (only appears against real data)

That ratio is the reason this survived: every development-sized team is fast.

Known cost centres

Some of these are measured, some are not. Listed so the work can be split, not because all of them are established causes.

What this issue is for

The umbrella for "history-proportional join is broken", tracking the symptom end to end. Individual causes get their own numbers as they are established; this one stays open until a team of this size can be joined and read.

Related: #908 (spawn cost), #835 (exit 13 with no diagnostics), #909 (engine running under a halted team), #901 (join cannot tell a locked team from an empty one).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions