I was editing a cell in a notebook without executing it. Then I queried the IPython.notebook.dirty flag in JS, and it was set to false. Only after I executed the cell did the flag switch to true.
This was with 0.13.1.
@minrk and I talked about this issue last night and concluded that we are going to make dirty an event that is emitted (among other times) whenever a CodeMirror gets a keyboard event. There will be false positives, but that is OK.
closed by #3371