feat(matrix): auto-create a hive chat room as a child of the hive Space
The hive Space was created empty — joining it surfaced no rooms because Matrix doesn't auto-join a Space's children. Provision a default "hive-chat" room on the matrix sweep, wire it bidirectionally to the Space (m.space.child on the Space, m.space.parent on the room), and invite @hive + every agent. The room uses a restricted join rule allowing any Space member to join, so the operator (a Space member) can join it from the Space hierarchy without an explicit invite. Idempotent, mirroring ensure_hive_space: persisted chat-room-id wins, else rediscover a non-space room named hive-chat, else createRoom. The space-child link is re-applied each sweep (idempotent PUT) so a recovered room reconverges its hierarchy link. Room id persisted to matrix/chat-room-id (0600, survives destroy --purge).
This commit is contained in:
parent
6e39515669
commit
fe17b5f8a7
2 changed files with 271 additions and 0 deletions
|
|
@ -81,6 +81,13 @@ pub fn matrix_space_room_id() -> PathBuf {
|
|||
matrix_dir().join("space-room-id")
|
||||
}
|
||||
|
||||
/// `matrix/chat-room-id` — persisted default "hive chat" room id (the
|
||||
/// `m.space.child` of the hive Space every agent + the operator can join).
|
||||
#[must_use]
|
||||
pub fn matrix_chat_room_id() -> PathBuf {
|
||||
matrix_dir().join("chat-room-id")
|
||||
}
|
||||
|
||||
/// `matrix/creds/` — per-agent throwaway matrix passwords (survive
|
||||
/// `destroy --purge`; agents auth by token, this is recovery only).
|
||||
#[must_use]
|
||||
|
|
|
|||
Loading…
Reference in a new issue