Models sometimes paste old_string (and new_string) straight from
read_file/search_files output, which prefixes every line with the
'N|' gutter. The file has no such prefixes, so all 9 fuzzy strategies
fail and the model burns turns re-reading and re-patching.
When every non-empty line of old_string carries a uniform,
mostly-consecutive 'digits|' prefix — the same verbatim-paste signature
write_file already rejects via _looks_like_read_file_line_numbered_content
— strip the gutter from both strings and retry the strategy chain once.
Mixed prefixes, non-consecutive numbers, or a single numbered line are
treated as genuine content and left alone. An exact literal match always
wins first, so files that really contain gutter-shaped text are unaffected.
Strategy name is reported as '<strategy>+gutter_stripped' for telemetry.
Sabotage-verified: recovery tests fail without the fix.