{"action":"created","issue":{"url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/289","repository_url":"https://api.github.com/repos/ircv3/ircv3-specifications","labels_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/289/labels{/name}","comments_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/289/comments","events_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/289/events","html_url":"https://github.com/ircv3/ircv3-specifications/pull/289","id":196766244,"number":289,"title":"Reaction client tag","user":{"login":"jwheare","id":49224,"avatar_url":"https://avatars.githubusercontent.com/u/49224?v=3","gravatar_id":"","url":"https://api.github.com/users/jwheare","html_url":"https://github.com/jwheare","followers_url":"https://api.github.com/users/jwheare/followers","following_url":"https://api.github.com/users/jwheare/following{/other_user}","gists_url":"https://api.github.com/users/jwheare/gists{/gist_id}","starred_url":"https://api.github.com/users/jwheare/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwheare/subscriptions","organizations_url":"https://api.github.com/users/jwheare/orgs","repos_url":"https://api.github.com/users/jwheare/repos","events_url":"https://api.github.com/users/jwheare/events{/privacy}","received_events_url":"https://api.github.com/users/jwheare/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-12-20T19:59:04Z","updated_at":"2016-12-21T06:58:47Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ircv3/ircv3-specifications/pulls/289","html_url":"https://github.com/ircv3/ircv3-specifications/pull/289","diff_url":"https://github.com/ircv3/ircv3-specifications/pull/289.diff","patch_url":"https://github.com/ircv3/ircv3-specifications/pull/289.patch"},"body":"`+draft/react=👍`\r\n\r\nDepends on #288\r\n\r\nSource of inspiration:\r\nhttps://slackhq.com/722-ways-to-say-i-got-your-message-e69a4d7da8e4#.fmzgegc5z\r\n\r\nMy UI implementation in IRCCloud:\r\n\r\n![Image](https://usercontent.irccloud-cdn.com/file/jv0ItcOM)"},"comment":{"url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/comments/268451268","html_url":"https://github.com/ircv3/ircv3-specifications/pull/289#issuecomment-268451268","issue_url":"https://api.github.com/repos/ircv3/ircv3-specifications/issues/289","id":268451268,"user":{"login":"MuffinMedic","id":17263317,"avatar_url":"https://avatars.githubusercontent.com/u/17263317?v=3","gravatar_id":"","url":"https://api.github.com/users/MuffinMedic","html_url":"https://github.com/MuffinMedic","followers_url":"https://api.github.com/users/MuffinMedic/followers","following_url":"https://api.github.com/users/MuffinMedic/following{/other_user}","gists_url":"https://api.github.com/users/MuffinMedic/gists{/gist_id}","starred_url":"https://api.github.com/users/MuffinMedic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MuffinMedic/subscriptions","organizations_url":"https://api.github.com/users/MuffinMedic/orgs","repos_url":"https://api.github.com/users/MuffinMedic/repos","events_url":"https://api.github.com/users/MuffinMedic/events{/privacy}","received_events_url":"https://api.github.com/users/MuffinMedic/received_events","type":"User","site_admin":false},"created_at":"2016-12-21T06:58:47Z","updated_at":"2016-12-21T06:58:47Z","body":"How are reaction \"counts\" handled to ensure that all users / clients display the same & correct reaction numbers?\r\n\r\nThe simplest solution would be that this is done client side - the client receives a `draft/react=<reaction>` for a specific `draft/msgid` and tracks/displays how many of each reaction count has been received for that message ID. This introduces inconsistencies in counts though across users - users who join midway through the chat either (1) start their counts from that point forward and they are no longer the same across users or (2) they ignore the emojis for messages they didn't receive. The first presents upfront issues, while the second option can become problematic when `chanhistory` or buffer playbacks are added in.\r\n\r\nThe alternative is to have the reaction counts tracked server side by the IRCD and sent to the client on connect, and then either send an updated count when a new reaction occurs or have the client increment this itself client side. Both of these could, in theory work, but should not be the responsibility of the server - the client-tag should be 100% client side.\r\n\r\nEither way, it seems that ensuring that if a certain message receives, for example, 15 \"likes\" and 22 \"thumbs up\" that every user / client has these correct numbers."}}
{"actor":{"display_login":"MuffinMedic"}}