We currently, when flushing stdout, are printing somewhere automatically newlines, even if the original data didn't have a trailing newline. This is a small annoyance in some cases, but can be a bigger problem in others: things like numpy.test() that print thousands of dots then become absurdly long and pretty much freeze the browser with a gigantic page.
This needs to be thought about a little carefully. We don't 'insert newlines', rather each published message (caused by stream.flush) gets its own div. In order to match the single-line flush behavior, we would need to append to an existing div. That's not hard to do, but it's slightly ambiguous what should be done, given that there can be stdout, stderr, and display data all produce messages.
Neither should be difficult, we just have to pick (and there might even be further choices).
@yarikoptic, @minrk and I just chatted and he already knows how to implement approach #1 above, which should pretty much take care of this problem. Thanks for the report!
fixed by PR #830