You would need to make a plugin to listen for a socket event, and in the widget js send the needed data to verify the request server-side. After adjusting the reputation and sending the new rep back, you probably want to make a db key to record the last action taken, such as how core uses pid:x:upvote
It seems on this board the status within chat-headings doesn't work pretty well. I can't reproduce, neither on master nor on v0.5.x branch so it would be great to have an update.
It often shows a state the user doesn't have, sometimes I've also seen 'null' as state.
Second issue, reproduced on master: If I set my status to invisible and change the page to a topic it shows me within 'browsing' (DéjàVu )