Internal ripgrep process runner rewritten for streaming output and clearer failure types
The internal component that runs ripgrep (used to power search/grep) was rewritten. Output from the search process is now collected with a streaming buffer instead of simple string concatenation, there is a new error path for when writing to the process's input fails, and failures are now reported with distinct error types depending on the cause: file-not-found, an internal range error, or a generic spawn failure.
This is mostly an internal reliability change. It should make search and grep failures more consistent and better labeled, though it is largely invisible to end users beyond clearer error messages when something goes wrong.