0bc83f04ff
- Replacement hunks now drop duplicated closing delimiters restated in the payload but surviving just outside the range. - Ranges that swallow a structural closer the payload omits now spare that closer instead of deleting it. - Each repair surfaces a `delimiter-balance` warning through `ApplyResult.warnings`. - Brackets inside strings, template literals, and comments are skipped to avoid false positives.