25 Commits

Author SHA1 Message Date
362eecc992 12차 C-3 기록 - 플랫폼 헤더 줄 접기 (배포함)
플랫폼 쪽 코드는 D:\Sorce\ubsrepo 에 따로 커밋했다. 여기에는 값과 판단을 남긴다.

- 재현: 헤더가 모듈 화면을 144px 아래로 밀고 있었고, 접는 길은 설정 화면 체크박스뿐,
  접으면 되살릴 띠도 단축키도 없었다
- 정한 것(사용자): 단축키 Ctrl+F11, 띠에는 화살표와 안내 글만(시계 · 이름은 빼고)
- 값: 모듈 시작 144px -> 51px (62 DIP 벌었다), 다시 켜도 접힌 채,
  F11 은 그대로 아래 탭 줄만
- 확정 못 한 것: 접은 띠를 끌면 창이 따라오는가 - 흉내 낸 마우스로는 WPF DragMove 가
  움직이지 않고 기존 헤더로 견줘 봐도 같았다(시험 도구 한계)
- 배포: 사용자 확인 뒤 빌드해서 바로 반영. 배포본은 bin-backup-c3 에 백업

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 17:04:05 +09:00
9bd27a1960 12차 F-1 - 하단 탭에 메모장
사용자가 정한 것: 메모 + 파일 열기 둘 다, 저장 단추 없이 계속 남는다,
이름은 "메모 1 · 메모 2" 번호만, 편집기는 줄 번호 · 글자 크기 · 줄바꿈 + 찾기/바꾸기.

무엇을 만들었나
- Services/Memos.cs: Memo(한 장) · MemoBook(번호 · 이름 · 넘기기 · 닫기, 계산만) ·
  MemoStore(보관, {설정 폴더}\Memo\)
- ViewModels/MemoViewModel.cs: 새 메모 · 파일 열기 · 저장 · 다른 이름으로 · 닫기 ·
  자동 보관(2초) · 켤 때 되살리기
- Views/MemoView.xaml(.cs): 동작 한 줄 · 메모 탭 줄 · 찾기/바꾸기 줄 · 줄 번호 편집기 · 상태 줄
- AppSetup: 하단 탭 맨 뒤에 넣었다 - 앞 세 탭의 차례가 바뀌면 손버릇도 바뀐다

정한 것
- 보관 자리는 {설정 폴더}\Memo\ - E-1 의 Session\ 과 따로. 저쪽은 "저장하면 사라지는 것",
  메모는 "지우기 전까지 남는 것"이라 수명이 다르다. 모양(목록 한 장 + 글마다 파일)은 같다
- 이름 없는 메모는 번호만. 첫 줄을 따오면 글을 고칠 때마다 탭 줄이 요동친다.
  번호는 비어 있는 가장 작은 수 - 메모 1 을 닫고 새로 만들면 다시 메모 1
- 파일로 연 메모와 이름 없는 메모를 한 탭 줄에 섞는다(notepad++ 와 같다)
- 탭 줄 · 저장 안 한 가운뎃점 · Ctrl+Tab · 가운데 단추 닫기는 12차 E-2 문서 탭과 같은 모양 -
  두 화면이 서로 다르게 움직이면 배우는 것이 둘이 된다
- 닫을 때 저장하지 않은 것이 있으면 세 갈래로 묻는다(사용자 결정) -
  저장하고 닫기 · 저장하지 않고 닫기 · 취소. 고친 것이 없으면 묻지 않는다.
  저장이 막히면(취소 · 쓰기 실패) 닫지 않는다
- 메모는 문서 탭과 달리 글을 스스로 들고 있다 - 메모는 원래 작은 글이고,
  이름 없는 메모에는 다시 읽어 올 파일 자체가 없다

화면을 보고 고친 세 가지(사용자 보고)
- 다른 탭에 갔다 오면 메모 글이 비어 보였다. 탭을 오가면 화면이 다시 만들어지는데
  그때 편집기가 잠깐 비어 있고, 그 틈에 글을 거두면 빈 글로 메모를 덮어썼다.
  편집기가 지금 어느 장을 싣고 있는지를 두고, 맞지 않으면 거두지 않게 했다
- 줄 번호와 글이 어긋났다. TextBlock 으로 그렸더니 줄 높이가 조금씩 달라 아래로 갈수록 벌어졌다.
  편집기와 같은 종류(TextBox)로 바꾸고 글꼴 · 크기 · 여백을 같은 값으로 두니 같은 자로 줄을 잰다
- 글이 칸 한가운데에서 시작했다. 플랫폼 입력 칸 스타일이 글 칸을 세로 가운데에 붙박아 둔다 -
  한 줄짜리 칸을 겨냥한 값이다. VerticalContentAlignment 로는 안 풀려 그 칸을 직접 늘렸다

확인
- 하네스 MemoTest 69건 새로 만듦. 전체 29벌 1,934건 · 실패 0. 빌드 경고 0 · 오류 0
- 화면 30건: 세 장 만들어 각각 쓰기 · 글 안 섞임 · 강제 종료 뒤 세 장이 차례 · 글 그대로 ·
  Ctrl+F 찾기 · 모두 바꾸기 3곳 · 닫을 때 세 갈래로 묻고 취소하면 그대로 · 빈 메모는 안 물음 ·
  40줄에서 줄 번호 40개가 글과 맞음 · 다른 탭 멀쩡
- 화면 여덟 벌(E-1 · E-2 · D-1 · 줄 번호 · 줄 밀림 · F-1) 모두 통과

시험 도구도 고쳤다: 스크립트가 변수 이름을 $keep 로 써서 라이브러리의 $Keep(되돌릴 설정 목록)을
덮어쓰는 바람에 시험이 끝나도 설정이 안 돌아왔다. 묻는 창을 찾는 도구도 단추 이름을
"저장하지 않고 계속" 로 못 박아 두어 말이 다른 창을 못 알아봤다 - 앞부분만 맞춰 보게 했다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 16:30:24 +09:00
101deb2627 12차 E-1 - 저장하지 않은 편집이 껐다 켜도 남는다 (notepad++ 식)
E-2 가 만든 보관함(탭이 사라져도 고친 글이 짝 이름으로 남는 자리)을 그대로 파일로
옮겨 적는 일이다. 새로 정할 것은 언제 쓰고 언제 되살리는가뿐이었다.

어디에 · 어떤 모양으로

  {설정 폴더}\Session\MergeHub\
      목록.txt        차례 · 짝 경로 · 캐럿 · 스크롤 · 저장 형식 · 보고 있던 탭 · 그때 파일의 자취
      01-오른쪽.txt    저장하지 않은 오른쪽 글(있을 때만)
      01-왼쪽.txt      저장하지 않은 왼쪽 글(12차 B-1, 있을 때만)

11차 F-9 백업과 다른 자리다 - 백업은 "저장하기 전 파일", 이것은 "저장하지 않은 편집" 이라
뜻도 수명도 다르다.

- JSON 을 쓰지 않는다(최근 목록과 같은 까닭). 사람이 열어 보고 고칠 수 있고, 무엇보다
  글 안에 무엇이 들었든(따옴표 · 줄바꿈 · 제어 문자) 본문을 따로 파일로 두면 탈이 없다
- 원본 글은 담지 않는다. 파일에서 다시 읽으면 되고, 담아 두면 그 사이 파일이 바뀌었을 때
  낡은 것을 보여 준다. 대신 그때 파일의 길이 · 마지막으로 쓴 때(FileStamp)만 적어 둔다
- 목록은 맨 나중에 쓴다 - 목록이 있다는 것이 곧 글 파일이 다 있다는 뜻이다
- 못 읽거나 못 써도 조용히 넘어간다. 보관 때문에 프로그램이 안 켜지면 안 된다

언제 쓰나

- 글자가 멈춘 뒤 2초에 한 번(DispatcherTimer)
- 탭을 옮길 때 · 닫을 때 · 새 짝을 열 때는 그 자리에서 바로 - 그 순간이 곧 끄기 직전일 수 있다
- 쓰는 일은 다른 실로 넘긴다(Task.Run). 화면 상태를 뜰 때 ParkCurrentTab 을 쓰지 않는다 -
  그쪽은 되돌리기 목록을 글 단위로 눌러 담는데, 2초마다 이력을 주무를 까닭이 없다.
  보관할 것은 글과 자리뿐이고 되돌리기 이력은 되살리지 않기로 정했다(사용자 결정)

언제 되살리나

켤 때 묻지 않고 그대로(사용자 결정). 다만 사용자가 지금 열라고 한 것이 먼저다 -
충돌 파일 열기 · git mergetool · 폴더 비교에서 고른 파일. 설정의 기본 저장소 · 기본 짝보다는 앞선다.
원본 글은 파일에서 다시 읽고 그 위에 편집을 얹는다(E-2 의 ResumePendingTab 그대로).
원본이 그 사이 바뀌었으면 되살리고 알린다 - "연 시점" 은 새로 읽은 글로 두어
[전체 되돌리기] 가 지금 파일로 가고, 고친 글은 편집으로 남는다.
두 파일이 다 없어진 짝은 되살릴 자리가 없으므로 버린다.

확인

하네스 SessionTest 65건 새로 만듦(글로 옮기고 되읽기 · 빈칸/한글/UNC 경로 ·
알아볼 수 없는 줄 건너뛰기 · 보관할 것 없으면 치우기 · 옛 글 파일 치우기 ·
글 파일이 없어져도 넘어가기 · FileStamp · 보관함 주고받기). 전체 28벌 1,852건 · 실패 0.

화면 24건: 두 짝을 고치고 작업 관리자로 끄듯 강제로 끝낸 뒤 다시 켜면 묻지 않고
탭 2개가 이름 · 차례 · 글 그대로 되살아나고, 한쪽을 저장하면 가운뎃점이 2->1,
둘 다 저장하면 보관본이 사라지고, 다시 켜면 되살릴 것이 없다.
원본이 그 사이 바뀌면 되살리고 "저장하면 바뀐 파일을 덮어씁니다" 를 알린다.

빠르기에 대해: 5,003줄(113KB) 짝에서 글자당 31ms 로 4줄짜리와 같았다(앱이 입력에 밀리지 않는다).
다만 "친 뒤 화면에 보이기까지" 는 값으로 확정하지 못했다 - 그것을 재려면 편집기 글을
UIA 로 읽어야 하는데 5,003줄 창에서는 그 읽기가 타이핑보다 훨씬 오래 걸려 값이 오염된다.
재는 법을 따로 마련해야 한다.

시험 도구: E-1 이 도니 지난 시험이 남긴 편집이 다음 시험에서 되살아나 화면이 달라졌다
(e3-verify 가 왼쪽 7줄 대신 14줄을 봤다). 시험마다 보관 자리를 치우고 시작해 끝에
되돌리도록 고쳤다 - 기능이 제대로 도는 증거이기도 하다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 14:53:23 +09:00
13988d1f0a 12차 - 폴더 비교 읽기 쉽게 · 양방향 머지 · 칸 요약 · 정보 창 · 문서 탭
새 플랫폼(UbisamBase.Launcher) 위로 옮기면서 12차 A~E 를 한 번에 담는다.
항목별 값과 판정은 doc/history/2026-09-23-12차.md, 요약은 doc/history/changelog.md.

A. 폴더 비교를 읽기 쉽게
- A-1 폴더 줄의 크기가 늘 0B 이던 것 - 안에 든 파일 크기 합계를 아래에서 위로 더해 적는다
  (걸러 낸 파일은 합계에서도 빠진다)
- A-2 좌우로 나눠 보이기 - 왼쪽 · 오른쪽 목록을 나란히 두고 같은 줄에 맞춘다.
  한쪽에만 있는 항목은 반대편을 비운다

B. 파일 비교 화면
- B-1 2-Way 에서 양쪽으로 머지 - 칸마다 반영 · 저장. 왼쪽 기준점을 따로 세고,
  되돌리기 · 저장 백업도 양쪽 모두
- B-2 프로그램 정보 창 - 버전 · 빌드 날짜 · 만든 사람 · 사내 문의처 · 플랫폼 버전 · 로그 폴더
- B-3 칸 아래에 무엇이 달라졌는지 - 칸마다 줄 수 · 추가 · 삭제 · 수정, 가운데에 진행

C. 플랫폼 (플랫폼 저장소에서 함께 나감)
- C-2 하단 탭 줄을 한 단계 작게 - 74 -> 61 DIP. 실측 133 -> 109px 이고
  그만큼 코드 칸이 늘어 파일 비교가 47 -> 48줄

E. 저장하지 않아도 남는 편집
- E-2 여러 짝을 동시에(문서 탭). 지금까지는 한 짝만 들어서 짝을 바꾸면
  저장하지 않은 편집을 묻고 버리면 사라졌다(재현: 16줄 -> 15줄).
  이제 떠 있던 탭이 그 글을 맡아 두므로 묻지 않는다.
  - 탭마다 HomeViewModel 을 따로 만들지 않았다 - 이 화면은 GitWorkspace 의 여러 사건과
    한 자리짜리 약속(ConfirmDiscardEdits · ConfirmLeaveCommit)에 물려 있다.
    화면은 하나로 두고 탭이 파일에 없는 것만 맡는다(고친 글 · 왼쪽 글 · 되돌리기 이력 ·
    두 기준점 · 캐럿 · 스크롤 · 저장 형식)
  - 탭 이름은 파일 이름, 다르면 왼 <-> 오. 양쪽이 같은 부분은 한 번만 적는다
    (WeldController_기준 <-> 내작업.cs, 421 -> 288px). 같은 이름이 겹치면
    갈릴 때까지 위 폴더를 한 겹씩 덧붙인다
  - 저장하지 않은 탭에 가운뎃점. 사람이 손댄 것만 센다 - 중괄호 맞춤으로만 바뀐 것은
    묻는 자리와 같은 기준으로 뺀다(안 그러면 .cs 를 여는 것만으로 늘 점이 붙는다)
  - 탭이 사라져도 고친 글은 보관함에 남아 다시 열면 되살아난다(짝 50개).
    E-1(껐다 켜도 남는 편집)은 이 보관함을 파일로 옮겨 적으면 된다
  - 이전 · 다음 파일은 지금 탭의 짝만 바꾸고, 폴더 비교에서 두 번 누르면 새 탭(사용자 결정)
  - Ctrl+Tab · Ctrl+Shift+Tab · Ctrl+W · 가운데 단추 닫기. 닫을 때도 묻지 않는다
  - Git 탭 · 병합 중 네 칸은 탭이 맡지 않는다 - 그쪽은 예전처럼 묻는다

하네스 27벌 1,787건 통과 · 실패 0(DocTabTest 106건 새로 만듦).
빌드 경고 0 · 오류 0. 화면으로 E-2 34건 · 회귀 19건 확인.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 13:21:54 +09:00
bd270f4628 11차 F-1 에 덧: 머지 주석에 출처(REMOTE/BASE)와 무시 조건 손보기
사용자 추가 설명(2026-09-18): 리모트 · 베이스 중 어디서 가져왔는지 이력 주석에도 남기고, 그에 맞춰 무시 조건을 고친다.

- 지금은 주석이 [사람] 날짜 뿐이고 출처는 화면 로그에만 남는다(앱을 끄면 사라짐)
- 방향: 주석 몸통에 출처 한 토막(REMOTE 브랜치 · MINE · BASE 해시), 쓰는 말은 로그 · 화면과 같게
- 무시 조건 고칠 곳: MergeNote(NoteBody · LooksLikeNote · TailStart) · CompareRules · FolderComparer · NoteConflict · NoteRows
- 기준: 옛 주석(출처 없음)도 그대로 무시 · 출처만 다른 주석은 같음(머지 주석만 다름) 과 자동 해결 유지 · 10차 C-1 회귀 없음
- 정할 것: 출처를 어디까지 적을지(쪽 이름만 / 브랜치 · 해시까지)

제품 코드 변경 없음.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 15:41:51 +09:00
df9202c6d5 11차 F-12: C# 코드 스타일 맞춤 기본값을 AURORA 로
사용자 결정(2026-09-18): 제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로.

- MergeHubSettings.CSharpBraceStyle 기본값 None → Aurora (한 줄, 까닭 주석)
- C/C++ · XAML 은 고칠 것 없음 - CSharpStyle.Applies 가 확장자 .cs 만 본다
- 하네스 StyleTest +12 (78 → 90): 기본값 · 확장자별 적용 여부. 먼저 넣어 기본값 검사만 실패하는 것을 보고 시작
- 설정 파일 없는 첫 실행: 상태바 'C# AURORA' · C# 짝 차이 없음 · C++ 짝 남은 차이 4줄 · 새로 만든 설정에 1
- 웹 문서 매뉴얼 · 설정 표 · 시연 대본의 '기본은 끔' 을 고침
- 22벌 1,159건 통과 · 빌드 경고 0 오류 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 14:02:35 +09:00
9b5fdc6343 11차 지시서에 F 절(2026-09-18 추가 요청 열한 가지)
사용자가 한꺼번에 준 요청을 코드에 비춰 보고 F-1 ~ F-11 로 적었다(코드 변경 없음).
- F-1 칸 이름 맞추고 칸마다 어느 파일인지 · F-2 메서드 단위 반영 · F-3 폴더 두 개 보내기(설치 없이 되는지 포함)
- F-4 툴박스 감추기 · F-5 글자 크기 · F-6 넓게 보기 · F-7 모니터
- F-8 저장 뒤 되돌리기 · F-9 백업본 저장 · F-10 덩어리 잇기 UI · F-11 Git 계정 · 토큰 저장 확인
- 항목마다 지금 코드 상태(파일 · 줄)와 정할 것 · 판정 기준을 적음

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 13:39:57 +09:00
d35c6b1ad0 11차 지시서 만들기 · 10차 마무리
10차 전부 끝(E-1 새로 걸린 것 없음). 기획안 v1.2 에서 일부로 남은 것과 베타 전 확인에서 나온 것을 11차로(코드 변경 없음).
- A 변경분 추출: 먼저 뽑아 보고 적기 · 무엇을 뽑았는지 남기기 · 비어 있지 않은 폴더 · ZIP
- B 배포 폴더가 09-07 것 · D 드라이브 고정 설정 위치와 첫 실행
- C-1 있는 [커밋 수정]: [마지막 메시지] 가 목록 맨 위 · 스테이징 파일이 말없이 들어감 · 작성자 · 시각이 바뀜 · 작업 중에도 켜짐 · 병합 커밋 · 올린 커밋 · 옛 해시
- C-2 마지막이 아닌 커밋 메시지 수정은 할지 정함
- D 시험 도구 · E 확인 · 문서

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 17:01:18 +09:00
fadc000081 10차 F-3: 폴더 비교 "주석만 다름" 을 "다름(코드는 같음)" 으로
주석 · 공백을 걷어내고 견주는 판정이라 BOM · 줄끝 · 인코딩 · 끝 공백 · 빈 줄 · 들여쓰기만
다른 파일도 "주석만 다름" 이었다. 사용자: "이름을 바꿔줘". 판정 · 수는 그대로.

- 목록 · 범례(설명 붙임) · 요약 "다름 N(코드는 같음 M)" · 비교 결과 보고서
- 웹 문서의 이름도 바꿈(지난 기록은 그대로, 발행은 E-2)
- 하네스 FolderTest +1 (78건), 22벌 1,147건 통과, 빌드 경고 0 오류 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 16:05:13 +09:00
ccc657803b 10차 F-1 · F-2: 폴더 비교 "같은 것만" 에 다른 것처럼 보이던 줄
사용자가 시험 묶음 측정 화면에서 "같은 것만" 에 내용이 다른 파일이 보인다고 알림.
비교 판정은 설계대로(코드 값이 다르면 어느 설정에서도 다름)였고, 화면에서
- F-1: 같은 파일을 품은 폴더 줄이 폴더 자신의 상태 "다름"(주황)으로 보였다
- F-2: 설정(C# 스타일 맞춤 · 머지 주석 무시)으로 같음이 된 파일이 크기가 달라도 그냥 "같음"

- FolderComparer: SameReason 을 남기고 FolderStatusText 로 글자를 정함
- FolderViewModel: 같은 것만 · 왼쪽에만 · 오른쪽에만이면 폴더 줄을 "같음 122개" 처럼 걸린 수와 그 갈래 색으로
- FolderView: 줄 색이 DisplayStatus, 상태 칸 90 → 200
- 사용자 결정: 같음으로 두고 "같음(스타일만 다름)" · "같음(머지 주석만 다름)" 으로 표시
- 하네스 FolderTest +15 (77건), 22벌 1,146건 통과, 빌드 경고 0 오류 0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 16:00:56 +09:00
724248e954 10차 지시서 만들기 · 9차 마무리
9차 전부 끝. D-1 에서 새로 걸린 N1 과 9차에서 적어 둔 셋을 10차로 넘긴다(코드 변경 없음).
- A-1 네 칸에서 고르기 한 번이 남지 않아 "남은 충돌 1개" 로 멈춤 (원인부터: 자동 조작인지 제품인지)
- B-1 Git 탭에서 고른 커밋을 파일 비교 탭이 새로고침 전까지 안 따라옴 (먼저 정함)
- C-1 머지 주석 무시를 끈 채 다시 정렬하면 반영 색이 옆 줄로
- D-1 그날 첫 큰 폴더 비교 9.2초 (재고 정함)
- E-1 다섯 길 + pull 다시 끝까지 · E-2 웹 문서

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 13:30:34 +09:00
871d7d87df 9차 지시서 만들기 · 8차 마무리
8차 전부 끝. E-1 에서 새로 걸린 N1 과 전에 남긴 작은 것을 9차로 넘긴다(코드 변경 없음).
- A-1 cherry-pick 마지막 저장 뒤 "내 쪽 대비" 인데 기준은 이력에서 고른 커밋 (먼저 정함)
- A-2 한 번은 다른 브랜치 커밋이 기준 - 새로고침 뒤 선택 복원 (원인부터)
- B-1 MERGED 주석 줄 "무시" 색 (먼저 정함) · B-2 폴더 트리 1초 (재고 정함)
- C-1 웹 문서 8차 끝 · F-1 · D-1 cherry-pick · revert 를 마지막 파일까지 네 칸으로

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 10:39:14 +09:00
d25f374a0e 8차 F-1: 병합 커밋 본문에 충돌 해결 내역을 자동으로 적기
충돌 탭 파일 단위 Accept 는 소스에 주석이 안 남고, 병합 커밋 본문은 비어 있었고,
Git 탭 로그는 끄면 사라져 누가 어느 파일을 어떻게 풀었는지 남는 곳이 없었다(사용자 요청).

- MergeResolutionLog: 기록 파일(첫 줄 MERGE_HEAD) 읽기 · 쓰기, 본문 만들기, 메시지에 붙이기
- GitService: 병합 중일 때만 .git/MERGEHUB_RESOLUTIONS 에 적고, CommitMerge 가 본문을 붙인다.
  병합 커밋 · 작업 취소 · 새로고침 때 쓸모없는 기록을 치운다
- 충돌 탭 Accept Mine/Theirs/Both · [Save] · Save & Commit · 파일 남기기/지우기 · 머지 주석 자동이 적는다
- Git 탭 메시지 칸에 본문을 미리 채우고, 풀 때마다 새로 채운다(사람이 고치면 두고 커밋 때 붙임)
- 하네스 MergeSaveTest 183건(21건 추가), 22벌 1,094건 통과

확인: 병합 "충돌 해결 26개 · 김승준"(줄 단위 7 · Theirs 15 · 남기기 1 · 지우기 1 · 주석 자동 2),
pull 26개, Accept Mine 기록 뒤 [작업 취소] 로 기록 파일 없음. 줄끝 · BOM 0/33, 회귀 없음.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 09:33:32 +09:00
3dd7da5dc2 8차 지시서 만들기 · 7차 마무리
7차 전부 끝. D-1 에서 새로 걸린 넷과 7차에서 남긴 것을 8차로 넘긴다(코드 변경 없음).
- A-1 고른 충돌 파일 대신 다른 파일이 보이고 저장하면 고른 파일에 써짐 (가장 먼저)
- B-1 rebase · cherry-pick 마지막 저장 뒤 "남은 차이" · B-2 빈 cherry-pick [커밋] · B-3 MERGED 번호(먼저 정함)
- C-1 revert 끝까지 · C-2 원래 작성자 · C-3 창 크기 조절에서 안 본 것
- D-1 웹 문서 갱신 · E-1 다섯 길을 파일 비교 탭을 미리 열지 않고 다시

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 18:08:49 +09:00
f256f0f038 7차 E-4 기록: 창 크기를 마음대로 조절할 수 있게(플랫폼 셸)
셸 창이 최대화 전용이었다. 끌어 크기 조절(최소 1280x720) · 두 번 누르기 최대화/복원 · 화면 이동이 크기를 지킴 ·
크기와 모니터 기억. 최대화는 작업 표시줄까지 덮고(사용자 결정), 크기를 바꿀 때 깜빡이지 않게(검은 칠 99.7% -> 3%).
확인 받고 D:\UbisamPlatform\bin 배포, MergeHub 다시 빌드. MergeHub 네 탭은 최소 크기에서 잘리지 않음. MergeHub 코드 변경 없음.
7차 지시서 E-4 판정 기준을 사용자 결정대로 고침.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 17:01:54 +09:00
165b5ea295 7차 지시서에 E-4 추가: 창 크기를 마음대로 조절할 수 있게
사용자 요청. 지금 셸은 최대화 전용(WindowStyle=None · ResizeMode=NoResize · 끌면 다시 최대화).
걸리는 곳(크기 조절 테두리 · 배율 다른 모니터 · 크기 기억 · MergeHub 고정 폭과 네 칸 정렬 · 모든 소비 프로그램)과
판정 기준(최소 1280x720 · 최대화 복원 · 화면 이동 10번 왕복 · 세 크기에서 잘림 없음)을 적었다. 코드 변경 없음.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:02:15 +09:00
26d9d042bf 7차 지시서 · E-1: 병합 중 [해결로 저장] 단추를 [Save] 로
LOCAL 칸을 이 파일에만 쓰고 스테이징하는 단추라 Save & Commit 과 짝이 되게 이름만 바꿈.
알림 · 막힘 안내 · 웹 문서도 Save. 하는 일은 그대로(충돌 24 → 23, 커밋 없음 확인).
7차 지시서: 6차 D-1 에서 걸린 세 가지(마지막 저장 뒤 남은 차이 · 로그 3-Way 안 씀 · 기록 파일 남음)와
pull · rebase · cherry-pick 충돌.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 16:35:41 +09:00
99a5d10775 지시서 6차 B-5: 머지 주석은 넣고 병합 뒤에는 무시한다
사용자가 정했다. 누가 언제 반영했는지는 소스에 남아야 하므로 머지
주석은 지금처럼 넣는다. 대신 비교하고 병합할 때는 그 줄을 무시한다.

git 은 이 규칙을 모른다. 병합은 주석 줄도 글자로 보고 충돌을 낸다.
그래서 무시는 MergeHub 가 한다.
- 2-Way, 3-Way, 폴더 비교에서 머지 주석을 차이로 세지 않는다
- 줄 끝에 붙은 주석은 조각만 떼고 견준다
- git 이 낸 충돌이 주석 차이뿐이면 묻지 않고 풀고, 두 주석을 다 남긴다
- 무시는 보는 방식일 뿐 파일에서 지우지 않는다. 설정에서 끌 수 있다

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 09:38:29 +09:00
ca634a9730 지시서 6차: 병합을 끝까지 믿고 쓸 수 있게
5차 C-1 에서 만든 저장소로 병합을 커밋까지 해 보고 걸린 23가지를
지시서로 묶었다.

A 파일이나 이력을 망가뜨리는 것 (C-1 에서 심각으로 적은 다섯)
  A-1 3분할 저장이 CRLF 를 LF 로 바꾼다
  A-2 Save & Commit 이 실패라는데 이미 써지고 스테이징됐다
  A-3 충돌 파일에 상대 칸이 안 나온다
  A-4 상대가 지운 파일을 3분할이 다룰 줄 모른다
  A-5 양쪽 새 파일에 Accept Both 가 빌드를 깬다
B 헷갈리거나 막히는 것 8 · C 사소한 것 1
D 고친 뒤 같은 저장소로 병합을 처음부터 다시 해 본다

확인은 C-1 과 같은 생성기로 한다. 고치기 전에 문제가 다시 나는
것부터 보인다. B-5(병합에 머지 주석을 넣을지)는 사용자가 정한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 09:34:43 +09:00
9c0106be57 지시서 5차: 실제 소스를 더 읽지 않는다
여기는 머지툴을 만드는 자리다. 남의 저장소를 읽을 까닭이 더 남아
있지 않고, 읽는 동안 사고가 날 여지만 있다. 이미 받아 둔 숫자
(XAML 400개, CP949 67개, 4,503개에 12.2초)는 그대로 쓴다.

B-2 와 C-1 을 그에 맞게 다시 썼다. 둘 다 큰 재료가 필요한데,
이제 우리가 만들어 쓴다. 만든 묶음은 몇 번을 돌려도 같은 값이
나와서 재기에는 오히려 낫다. C-1 에는 그 한계도 같이 적었다 -
만든 소스에는 진짜 코드의 지저분함이 없다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 16:06:07 +09:00
dafb606f8f 작업지시-5차: 실제 소스에 맞추기 다섯 항목
지금까지 시험용 파일로만 확인했다. 실제 저장소를 재 보고 나온 것들로 채웠다.
CP949 67개 · XAML 400개 · 폴더 비교 12초 · 실전 병합.
대용량 성능은 답이 나와 미룬 것에서 뺐다 - 가장 큰 파일이 7479줄이고 다 빠르다.
2026-09-10 22:52:44 +09:00
2ac4a5a987 4차 B-2 같은 줄 접기 - 취소
접기가 풀려는 문제를 차이 이동·미니맵·다음 파일이 이미 대부분 풀고 있다.
반면 목록을 둘로 나누는 일은 122군데를 건드리고 틀리면 저장이 깨진다.
WinMerge 확인 결과와 다시 꺼낼 조건을 지시서에 적었다.
2026-09-10 21:10:20 +09:00
278b471480 4차 B-4 외부 편집기로 열기 - 취소
사용자 판단으로 뺀다. 채워 넣을 설정 값이 둘인데 얻는 것보다 수고가 크다.
번호는 3차 D-4 와 같이 그대로 둔다.
2026-09-10 21:02:28 +09:00
0994d514fb 4차 D-2: 앞으로의 기록 규칙을 공통 규칙에 못박음
항목을 끝내면 상세는 history 날짜 파일, 진행상황은 상태만, changelog 는 한 줄.
진행 순서를 D → A → B → C 로 고쳤다. D 를 먼저 하라는 말이 D 묶음 안에만 있었다.
플랫폼 changelog 경로를 풀어 적었다. 같은 이름 파일이 둘이 되어 헷갈린다.
2026-09-10 20:17:17 +09:00
b82e40a17c 4차 D-1: 변경 이력을 doc/history/ 로 나눔
721줄짜리 진행상황.md 를 날짜별 파일과 changelog 로 나누고 73줄로 줄였다.
지시서 네 개는 git mv 로 doc/작업지시/ 에 모았다. 링크 15개 전부 살아 있다.
옮기기만 하고 내용은 고치지 않았다.
2026-09-10 20:15:57 +09:00