Use sourceDirty to detect whether it's safe to display output & context; dirty source after an edit.
Allow app regeneration whenever its dirty, without conflicts