A 2026.9.5 to 9.7 candidate Doctor died after about five minutes in "Checking data migrations" with a native stack through node::sqlite::DatabaseSync::Exec, and the recorded failure kept only an adjacent plugin warning (#163531). The memory schema storage migration called its UDF in bulk and retained every row embedding JSON in the JavaScript heap until the native call returned, which exhausts the heap on large legacy embedding caches; it now validates and converts one memory vector at a time inside the same transaction, preserving row identities, 64-bit rowids and stored text. Candidate validation now records a signal termination with its phase, fatal header and a bounded stderr tail in the update-run record and report instead of letting an unrelated warning take precedence. Thanks @fenglanhua for the stack.
Refs #163531