675967ce42
A frame hook ends an active film or export when the world is gone. The game stops ticking at the title screen but keeps rendering, so an export used to keep recording the title with its playback clock frozen (a sec=10 request produced 3898 frames) and went on after re-entering the world. Session cleanup runs once with WorldChange and cancels the capture. Real short exports on a scratch home and world (pin 57f8b2853, API 29, Metal): h264+AAC both 2.07 s with non-silent audio, reported frames equal ffprobe nb_frames; cancel, SDK refusal, encoder failure and restart all leave no capture running; 1920x1080 works. The engine still leaves *.audio.raw and *.ffmpeg.log behind on an encoder error (game/film.rs). Co-Authored-By: Kimi Code <noreply@moonshot.ai>