fix: in TM, `window` is a wrapper (try `unsafeWindow` first)
`process.commit`: force full processing cycle