This and all other uses of msgNode.dataset.id need to explain that we're reflecting the value into the DOM and why we're grabbing it out of the DOM, plus maybe why we don't always do that.  Terse is okay, or perhaps a block comment up before the class.

The story, as I understand it, is that we do this so the id will persist when cached by the HTML and so that we have the id available to us even before the back-end has started up.  This lets us start to load and even display the message reader card before the back-end has fully started up, although the message reader does not look so great before it has its data.  You explicitly make it impossible to get into edit mode before the back-end has started, which is why that code hasn't changed.