# Features & roadmap

* Matrix → KakaoTalk
  * [ ] Message content
    * [x] Text
    * [ ] Media
      * [x] Stickers
      * [x] Files
      * [x] Voice messages
      * [x] Videos
      * [x] Images
      * [ ] Locations
    * [x] Replies<sup>[1]</sup>
    * [x] Mentions<sup>[1]</sup>
    * [ ] Polls
  * [ ] Pinned messages
  * [x] Message redactions<sup>[2]</sup>
  * [ ] Message reactions
  * [x] Read receipts
  * [x] Power level<sup>[1]</sup>
  * [ ] Membership actions
    * [ ] Invite
    * [ ] Join
    * [x] Leave<sup>[3]</sup>
    * [ ] Ban<sup>[4]</sup>
    * [ ] Unban<sup>[4]</sup>
  * [ ] Room metadata changes
    * [x] Name<sup>[1]</sup>
    * [x] Topic<sup>[1]</sup>
    * [x] Avatar<sup>[1]</sup>
    * [ ] Per-room user nick
* KakaoTalk → Matrix
  * [ ] Message content
    * [x] Text
    * [ ] Media
      * [ ] Stickers
      * [x] Files
      * [x] Voice messages
      * [x] Videos
      * [x] Images
      * [ ] Locations
      * [ ] Links
    * [x] Replies
    * [x] Mentions
    * [ ] Polls
  * [ ] Posts
  * [x] Message deletion/hiding
  * [ ] Message reactions
  * [x] Message history
  * [x] Read receipts
  * [x] Admin status
  * [ ] Membership actions
    * [ ] Invite
    * [x] Join
    * [x] Leave
    * [ ] Self leave
      * [ ] On backfill
      * [x] On live event
    * [x] Kick<sup>[4]</sup>
    * [x] Unkick<sup>[4]</sup>
  * [x] Channel metadata
    * [x] Name
    * [x] Description
    * [x] Cover photo<sup>[5]</sup>
  * [ ] User metadata
    * [x] Name
    * [x] Avatar
    * [ ] Per-channel Open Profile
* Misc
  * [x] Multi-user support
  * [x] Shared group chat portals
  * [x] Automatic portal creation
    * [x] At startup
    * [x] When added to chat
    * [x] When receiving message
  * [x] Direct chat creation by inviting Matrix puppet of KakaoTalk user to new room
  * [x] Option to use own Matrix account for messages sent from other KakaoTalk clients
  * [ ] KakaoTalk friends list management
    * [x] List friends
    * [ ] Add friend
      * [x] By KakaoTalk ID
      * [x] By Matrix puppet of KakaoTalk user
      * [ ] By phone number
    * [x] Remove friend
    * [ ] Manage favourite friends
    * [ ] Manage hidden friends
  * [x] KakaoTalk ID management
    * [x] Set/Change ID
    * [x] Make ID searchable/hidden

<sup>[1]</sup> Sometimes fails with "Invalid body" error
<sup>[2]</sup> Only recently-sent KakaoTalk messages can be deleted
<sup>[3]</sup> To make your KakaoTalk account leave a channel, send the `leave` command in a Matrix portal room. Simply leaving a Matrix portal room will keep your KakaoTalk account in the channel.
<sup>[4]</sup> Kicks in KakaoTalk are equivalent to bans in Matrix
<sup>[5]</sup> Might not get synced on backfill or initial portal creation. Might get synced on live update to channel name/description