세션 — 견적 페이즈B 테스트 검증 + 후속 5건 진단·지시문 (2026-06-10)
페이즈 A·B 테스트 배포 검증 → 페페 수동 UI 확인에서 5건 결함 → 진단 → 코디 후속 지시문 작성.
1. 페이즈 A·B 테스트 검증 (통과)
- master/origin/테스트서버 HEAD 모두
123aba1(페이즈B). Actions A27220897590·B27226522273둘 다 success. uWSGI active. - 서버 배포 파일 grep: typeOrder 14·_marginMode 9·DAO
_rename_field_types/_reorder_field_types각 3. 5번 컬럼폭 버그는offsetWidth_save=0(버그 제거) +widthByKey=3(수정 존재). - 테스트 RDS
field_type: 2175행·display_order 1607행·MAX(type_no)=3376 → 페이즈 A 시드 생존. - 10건 항목별 서버 grep 매칭 전부 확인(7번은 코드 아닌 DB작업이라 묶음 외).
2. 페페 수동 UI 확인 결과 (5건 결함)
-
1 타입 이름 편집 안 됨
-
3 마진 수동값 우선 로드 안 됨·수동변경 기록 없음
-
4 자동 마진 행이 "수동" 으로 표기
-
9 복사 미리보기에 대상 위치 기존 항목/행 미표시(개수만)
-
10 복사 출처가 "이 견적" 수준 → 상위 계층 경로 + 하단 별도 미리보기 요청
- (정상: #2 순서드래그·#5 컬럼폭·#6 행드래그·#7 마감재숨김·#8 소스목록표시)
3. 진단 (실측 근거)
- #1: 페이즈B에서 타입탭 버튼 전체에
draggable="true"(순서드래그) 부여 → 자식.typetab-name더블클릭이 브라우저 드래그/텍스트선택에 가로채여dblclick미발화. rename 핸들러 코드는 정상, 트리거만 막힘(자기충돌). - #3·#4:
estimate_detail.margin_div는 자동/수동 플래그가 아님 — common_code 실측10=%·20=금액(마진 계산방식). 분포 div10=327·div20=8991. 행별margin_percent는 DB 저장 정상(견적707 master15.5인데 행 5·15.5·30·80 혼재). 자동/수동(_marginMode)을 영속할 컬럼이 없음 → 현재 loadEstimate가 row vs master 추측비교로 복원 → 공통값과 같은 수동행 강등(#3)·경계 오분류(#4). - #9:
renderCopyPreview가 소스(원본)목록(buildSourceListHtml)만 그림. 대상 K/F 그룹 기존 행은 개수 텍스트만. - #10: 소스 제목 "복사 대상 N개"뿐. 출처 계층 경로 없음.
4. 처방 (코디 지시문 = C:\dev\pfs\CODI_estimate_phaseB_fix.md)
- A(#1):
renderTypeTabs이름 span 에draggable="false"+bindEvents에 이름 mousedown 시 부모 draggable 일시 해제(mouseup/leave 복구). 순서 드래그는 유지. - B(#3·#4): DB 변경 회피 — NULL 명시 구분.
stripDetail에서 자동행은margin_percent=null저장(amount류는 유지),loadEstimate는 추측비교 폐기→hasPct ? manual : auto. 하위호환 약점: 기존 견적은 1회 재저장해야 자동행 NULL 정리(마이그레이션은 위험작업이라 미실시). - C(#9·#10):
buildTargetListHtml신규(대상 그룹 기존 행 품명 목록) +$p.append(tgtHtml)4곳.buildSourceListHtml제목에 출처 경로(타입▸K/F▸항목). CopyModal에 출처필드 없으면 진입부 최소 세팅. - D:
.cp-tgt*CSS 신규. - 대상 =
estimate_regist_v2.js+.css2파일, 백엔드·DB 무변경, 테스트까지만.
5. 다음
- 코디에
CODI_estimate_phaseB_fix.md전달·실행 → 테스트 배포 → 채티 서버 grep 6종 재검증 → 페페 화면 확인. - 미결(페이즈B 본체): #7 마감재 D(테스트DB)·E(운영DB finish 숨김)는 별도 DB작업. 페이즈A·B 운영배포는 별도 승인 위험작업.