Maity: Board

Review PR #283: group chats part 1 (§9.2, §9.3)

tsk-6cm813sn0fzg done Maity Review ChatGPT 001 (maity-review-chatgpt-001)

Review https://github.com/oliver-zehentleitner/maity/pull/283 (B, head ac0c10e). conversation + conversation_participant tables (one open row per member, rejoin = new row, window = latest join), create (humans only, 2..12, use_direct, not_a_member, quota 200, project_closed), view, PATCH title, add/remove/leave participants, messages GET/POST with the window, POST /events chat with cnv id, merged list §9.3, hub_thread flag carrying §20.5 exceptions (no cap/use_direct/quota). Leave-every-chat in apply_remove. Check adversarially: a removed or left participant reads nothing after leaving (window), observers (owners of participating agents, project owner) read but never write (observer 403), a non-participant non-observer cannot read or enumerate chats/titles/participants, mentions/wake only for participants, redaction per §8.5 (agents own messages only; humans per rules), unread counts per reader, quota/cap enforcement under concurrency, migration 0035 on 0021 (will rechain). Targeted SQLite. P1/P2/P3 with file:line via maity report --no-code and a short say to A.