Hi Chris, thanks for pointing out those issues. I've changed the -O option to -p to make it easier to distinguish. The -o argument does indeed specify the output filename. It defaults to the workspace filename, removing the .qlab4 and adding .html. To just export an HTML file with default settings you need use no arguments at all - the frontmost workspace is selected automatically. The -O (now -p) argument is boolean, and tells the script to automatically open the exported HTML file in your default browser.
The third issue you noticed is more complex, and I'm not sure why it's occurring. I've determined that it starts failing at messages around 121KB (500-800 cues, depending on cue number, type, and name length.) The error message indicates that it's happening in the OSC library I'm using,
OSC.js, and says "Maximum call stack size exceeded", which usually indicates unintentional infinite recursion. This doesn't make sense though, as the library shouldn't be doing any parsing of the OSC message arguments, just separating them and passing them along, and this message only has one argument (a big JSON string). I will investigate this further, and probably file a bug report with OSC.js.
Thank you for your bug-hunting, and I'm glad you like qlab-html!
-Jesse