ksj09406 b95a07d028 12차 G-1 - undo 가 계속 이어지던 것 (사용자 보고)
짝을 바꾼 뒤 Ctrl+Z 를 누르면 앞 파일 글(234자)과 지금 파일 글(228자)을
끝없이 오갔다. 40번을 눌러도 안 끝났고, 글자를 하나도 안 쳐도 났다.

Ctrl+Z 는 우리 목록(_undo · _textUndo)이 비면 일부러 키를 먹지 않는다
(RunShortcut - 그래야 편집기의 글자 되돌리기가 살아 있다는 뜻이었다).
그러면 그 키가 TextBox 자체 되돌리기로 넘어가는데, WPF 의 그것은 한도가
없고 프로그램이 코드로 넣은 글까지 기록한다. 그래서 짝을 바꿔 새 파일을
실으면 그 글도 기록에 쌓이고, Ctrl+Z 가 앞 파일 글을 편집기에 되살렸다.

거기서 끝이 아니었다. 되살아난 앞 파일 글을 Reflow 가 "사용자가 친 것"
으로 보고 모델을 그쪽으로 되돌리며 되돌리기에 다시 쌓고 다시하기를 지운다.
다음 Ctrl+Z 는 우리 목록으로 되돌리고, 그러면 또 TextBox 것이 되살린다.

기록을 심어 고리를 떴다:
  Sync 끝났다   편집기=228
  편집알림     편집기=234  모델=216
  Reflow      모델=216 편집기=221 같나=False
  StepText    목표=216 … 편집기=234
221 = 234 - 13(줄 13개의 CRLF/LF 차이)이라 편집기가 쥔 것이 앞 파일임을
값으로 확인했다.

고침은 한 줄이다 - LocalEditor 에 IsUndoEnabled="False". 되돌리기는 우리
목록만 쓴다(줄 단위 _undo, 글 단위 _textUndo).

확인
- g1-verify 14건 실패 0. 30번을 눌러도 길이 자취가 228 하나뿐
- 앞 파일(234자)은 자취에 한 번도 안 나온다
- 되돌리기 자체는 살아 있다 - 친 글은 Ctrl+Z 로 되돌아간다
- 회귀 e1 · e2 · e2-reg · e3 · e4 전부 실패 0
- 빌드 경고 0 · 오류 0

헛짚은 것 둘도 기록에 남겼다. "문서가 바뀔 때 TextBox 기록을 비우면 된다"
(EditorUndoGate 를 만들어 하네스 16건까지 붙였다)와 "재정렬 타이머가 되돌린
뒤 뒤늦게 터진다" 는 둘 다 증상이 안 없어져 되돌렸다. 검증 안 된 동작
변경은 남기지 않는다.

남은 것: 글자 한 자 단위 되돌리기는 없어졌다. 이제 한 걸음은 "타이핑이
멈춘 자리" 다. 쓰다가 너무 굵으면 _textUndo 를 더 잘게 쌓는 것으로 따로 잡는다.

Agent: main (claude-opus-5)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-30 12:45:19 +09:00
..