I don't think the handling of payloads without a source key has changed any in this PR. It just checks the source key (undefined, no error), then checks if there is a callback (will also be undefined), so no callback will fire.

We just need to sit down and figure out the things that we have not fully specified and/or need to change because of too much IPython or Python-specificity. Obviously, you guys should be part of that conversation.