hard cap at 50k records with a friendly error
if even the 2-year time cutoff leaves more than 50k records, bail
before embedding rather than OOMing the 4GB fly machine. the error
message is user-facing and tells them to DM @zzstoatzz.io.
also: runJob now preserves a pre-set error_msg instead of blindly
overwriting it with the error code, so custom messages from
openAndWalkRepo actually reach the UI.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>