actually insert websocket deltas into the app-state
set :key on thread-components, just in case
changed expanded-children to use ids, because immutability