You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(concord): v1 accepted writes into a dissolved community
CORD-02 §9 seals a dissolved community: no peer accepts another event, ever.
v2 enforces that in `chat_send_context`, which every v2 send routes through.
v1 has no shared send gate, so message, file, typing and hide each let a write
through — it would sit pending forever with no reason given.
Guarded on the write paths, deliberately NOT on `resolve_channel`: reads share
it and a sealed community must stay browsable. The file check moves ahead of
the encrypt + upload, matching that path's existing rule of never spending an
upload on an unroutable send.
`dissolved` is also surfaced now — in the core listing, as `Community::
is_dissolved()`, and in the agent tool description. Without it a bot cannot
tell a sealed room from a live one and retries into a tombstone forever.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: crates/vector-agent/src/tools.rs
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -452,7 +452,7 @@ impl VectorAgent {
452
452
453
453
// === Communities ===
454
454
455
-
#[tool(description = "List all Vector Communities held locally (owned or joined), each with its channels and channel ids. Use a channel id as the chat_id for get_messages.")]
455
+
#[tool(description = "List all Vector Communities held locally (owned or joined), each with its channels and channel ids. Use a channel id as the chat_id for get_messages. `dissolved: true` means the community is permanently sealed — its history still reads, but no message or change will EVER be accepted again, so do not try to post there.")]
0 commit comments