title: Update chattolib for Chatto v0.1.0-beta.3
status: completed
type: task
priority: high
created_at: 2026-06-12T14:08:43Z
updated_at: 2026-06-12T14:18:28Z
Update the library to match the new schema introspected from chat.chatto.run for v0.1.0-beta.3. Key deltas: MessageUpdatedEvent→MessageEditedEvent, MessageDeletedEvent→MessageRetractedEvent, VideoProcessingCompletedEvent→AssetProcessing*Events, plus room groups, room bans, settings/notification preferences, RBAC. See subtask checklist.
Schema deltas observed
Event renames (myEvents subscription)
MessageUpdatedEvent → MessageEditedEvent (now has body, attachments, linkPreview, updatedAt)
client.py: new parsers for the new types; thread_events traverses MessagePostedEvent.threadReplies; followed_threads & notifications now return connection-shaped pages; create_room takes a required group_id; update_profile takes a required user_id; new methods: server_profile, room_groups, server_members, link_preview, active_call_room_ids, delete_attachment, delete_link_preview, update_room, unarchive_room, join_group, ban/unban_roommember, mark*_as_read with up_to_event_id, delete_avatar, update_settings, request_account_deletion, delete_myaccount, set(server|room)_notification_level, subscribe_to_push, unsubscribe_from_push, create/update/delete/reorder room groups, move_room_to_group, upload/delete server logo+banner, update_server_config. update_presence rejects OFFLINE (PresenceStatusInput has no OFFLINE).
init.py: exports the new types.
tests/test_client.py: updated mock payloads to match the new schema; added followed_threads, notifications, archive, room group, ban, and presence-rejection tests.
pyproject.toml: bumped 0.0.174a1 → 0.1.0b3.
CLAUDE.md: refreshed the API domains table and naming conventions to reflect renames, room groups, and PresenceStatusInput.