replace N..M:, insert before N:, insert after N:, insert head:, insert tail:이고, 본문 없는 delete N..M이 삭제를 처리합니다. >A..B 반복 행과 이전의 prepend: / append: 가상 삽입 헤더를 제거했으며, - 행은 계속 거부되고 교육용 오류로 처리됩니다.edit 범위 hunk의 자동 복구를 복원했습니다. 이전에는 중복된 닫는 줄(범위 바로 아래에 에코된 </> / ); / })을 남기거나 하나를 삭제했을 때(범위가 });를 포함했지만 payload가 재진술되지 않음), 후속 편집까지 파일이 구문상으로 깨져 있었습니다. hashline applier는 이제 각 replacement를 정규화하여 payload가 삭제된 영역의 구분자 균형을 유지하도록 하고, 중복된 경계 closer를 삭제하거나 삭제된 closer를 보존하며, 도구 결과에 경고를 표시합니다. 항상 활성화되고 균형이 검증됨(edit.hashlineAutoDropPureInsertDuplicates 설정 없음); @oh-my-pi/hashline의 계약을 참조하세요.replace N..M:, insert before N:, insert after N:, insert head:, insert tail:이고, 본문 없는 delete N..M이 삭제를 처리합니다. >A..B 반복 행과 이전의 prepend: / append: 가상 삽입 헤더를 제거했으며, - 행은 계속 거부되고 교육용 오류로 처리됩니다.InMemorySnapshotStore에 maxPaths 및 maxVersionsPerPath 옵션을 추가하여 추적된 경로와 경로당 스냅샷 히스토리를 제한할 수 있습니다.applyEdits에서 균형이 검증된 경계 수복을 다시 도입했습니다. replacement hunk(replace N..M: + body)는 payload가 삭제된 영역의 구분자 균형을 유지하도록 정규화됩니다: body가 범위 바로 외부에 남아 있는 closing 구분자를 재진술할 때(중복된 } / ); / ]) 에코가 삭제되고, 범위가 구조적 closer를 삭제했을 때 body가 재진술하지 않는 경우(missing closer) closer는 삭제되지 않고 보존됩니다. 수복은 한 경계 연산이 채널당 () / [] / {}의 불균형을 정확히 0으로 만들고 주변 텍스트를 바이트 동일하게 두는 경우에만 발생합니다(단일행 연산은 순수 구조적-closer 행으로 제한됨). 균형을 보존하는 편집과 의도된 균형 잡힌 중복은 절대 변경되지 않습니다. 괄호 계산은 문자열, 템플릿 리터럴, 주석을 건너뜁니다. 각 수복은 ApplyResult.warnings를 통해 delimiter-balance 경고를 표시합니다.record(path, fullText) 스냅샷을 선호하여 SnapshotStore.recordContiguous 및 SnapshotStore.recordSparse를 제거했습니다.Full Changelog: v15.5.12...v15.5.13