PrepareFreshAE = taskkill AfterFX/aerender/AfterFXLib/dynamiclinkmanager/QT32
+ 2s settle + clear crash markers, then launch. A hung/zombie AE from a prior
job would otherwise block or corrupt the new run. RunScan now calls it.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SCRPriorState.json alone didn't suppress it — AE's per-session GUID under
HKCU\Software\Adobe\After Effects\AppStates persists after a kill/crash and
trips Safe Mode. ClearAECrashState now reg-deletes AppStates too (reg.exe, no dep).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- AepImportService: the global Scene HasQueryFilter(DeletedAt==null) was hiding
soft-deleted rows, so the revive never matched and the importer re-inserted →
scenes_project_id_key violation. Add .IgnoreQueryFilters() to the load. (apply
now revives + returns 200, verified.)
- node-agent: ClearAECrashState() deletes AE's SCRPriorState.json before each
launch so the 'Crash Repair Options' dialog can't hang a headless scan/render.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>