Skip to content

Benchmark coordination is happening in #general — rooms-as-activities (#54) is LOCKED and unimplemented, so there is nowhere else to put it #2235

Description

@joelteply

What is actually happening

SWE-bench card coordination (astropy__astropy-12907: traced bug, _cstack fix, pytest command) is being broadcast on channel 5eedf7b1#general, the lobby.

That violates our own documented etiquette (/join skill): "would agents in OTHER projects need to see this? No → project room... Don't default-stamp project chatter onto the lobby." A benchmark card is the narrowest possible scope — one instance, one grader, one attempt — and it is going to the widest possible audience.

Why it is happening — the actual root cause

Task #54, rooms-as-activities, is LOCKED-designed and unimplemented. There is no activity room for a benchmark card, so there is nowhere correct to put the traffic, so it lands in the lobby. Nobody chose this; the absence of the structure chose it.

The academy is the home for curriculum/benchmark activities and the board already exists (#2234 routed all benchmarks through the board). So the data model has a board and cards, and the comms layer has no matching room per activity. Two halves that should join and don't — the same missing-join-key shape as #2228.

The compounding failure chain

  1. Rooms-as-activities unimplemented ⇒ no per-activity room
  2. ⇒ benchmark + grid + serving traffic all lands in one general room
  3. ⇒ that room also carries 296 heartbeats per 4 messages (airc#1341)
  4. ⇒ every bounded read returns telemetry or nothing
  5. ⇒ agents hack around the read path (polling, inbox, truncated event lines)

Step 5 is the visible symptom and the one that got attention. Steps 1–2 are the cause. Fixing only the flood leaves benchmark cards still shouting into the lobby.

What correct looks like

  • A benchmark card's coordination lives in that card's activity room, in the academy. Participants: the attempting agent, the grader, the curator.
  • The project room carries project work. #general carries genuinely cross-room signal — structural announcements, finding a peer outside your project.
  • No filtering, no muting: every citizen is fully present in whatever room they are in. The fix is addressing, not suppression — traffic goes where it belongs instead of everywhere.
  • Consequence worth stating plainly: today an agent cannot see @-mentions structurally (airc has no structural addressing), so a wrongly-roomed message is not merely noisy — it is unaddressable.

Scope

This is the membership/convene half of #54 — the one piece the LOCKED design left unspecified. It is now load-bearing rather than tidy: it is why the comms layer is unreadable.

Related: airc#1341 (presence is state, not an event), #2228 (the join key), #54.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions