c0b0c88626
Strategy 9 (context_aware, the last-resort fuzzy strategy used by patch_replace, V4A UPDATE hunks, and skill_manage) had two serious flaws, both reproduced live against current main: 1. CORRECTNESS: it accepted a block when >=50% of its lines were >=0.80 similar. A 2-line pattern with one real line and one garbage line matched, silently deleting the non-matching line and persisting a wrong edit as success. Now requires the first AND last lines to anchor-match and EVERY non-blank pattern line to be >=0.80 similar — one garbage line disqualifies the block. 2. PERFORMANCE: it scored every content window with per-line SequenceMatcher, so every failed match paid O(file_lines x pattern_lines) — measured ~5.5s for a single 40-line no-match on a 10k-line file, per hunk. The first/last line anchor pre-filter skips non-candidate windows: same case now ~160ms (34x faster). Also gate replace_all: a similarity-based strategy (block_anchor, context_aware) with multiple matches under replace_all would overwrite every approximate block, not just exact ones. Now refused with a clear error directing the caller to precise text. All verified with sabotage-checked regression tests (fail against the old 50% logic). 158 file/patch/fuzzy tests pass; legit fuzzy edits (indent drift, unique near-match) unaffected.