458.5 KB · 수정 2026-08-23 15:30
목차

pfs 아카이브 — OMC · 패치 누적

완료·운영배포 끝난 작업 상세(OMC·패치). 견적 기능 완료 이력은 archive-estimate.md, 견적 스키마는 schema-estimate.md. 요약은 sessions.md.

2026-08-10 완료 (루트 HANDOFF NOW 에서 이관 — 같은 날 경고선 30,000자 초과분 정리)

2026-08-06~07 완료 (루트 HANDOFF NOW 에서 이관 — 2026-08-10)

카톡관리 「변동 반영 이력」 소프트딜리트 (2026-08-05 완료 · 2026-08-06 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 카톡관리 소프트딜리트 [코디] 26.8.5 ✅운영배포 완료 — 「변동 반영 이력」 행의 ✖ 가 실제삭제→숨김 이력(deploy-live 0a75e3a ← master c0129d2 3파일 선별 포워드). 안내문 문제가 아니라 구멍이었다 — 이력 행은 로그라 ✔완료·⊘취소를 뺐는데(26.7.28) 그래서 ✖ 말고 내릴 방법이 없는데 그게 실제 삭제였다. 이력 행만 hide/status=삭제로 보내 ↩복원 가능, 다른 행 ✖ 는 그대로(지시 밖). 🔑두 리포가 짝 = PFS VALID_STATUS ↔ 사무실PC 데몬 board_rows.STATUSES, PFS만 늘리면 데몬 ValueError→화면엔 「반영 실패」뿐 → 데몬 먼저+재시작(완료·상승권한 불요) 후 배포. 검증 = 신설 _kakao_board_softdelete_check.py 테스트 28 + 운영 24 ALL PASS(테스트만 --api 실왕복→ack 정리, 운영은 저장 안 누름 — 누르면 고객 단톡방이 실제로 바뀐다). 사이트맵 3→2(/field/worklog 걷힘). ⏳페페 = 운영 육안.

pfs 사이트맵 (2026-08-04 완료 · 2026-08-05 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 사이트맵 [코디] 26.8.4 ✅신규 — 테스트/운영 화면 테크트리(devplan/pfs-sitemap.html, 기획서 pfs.html 양방향 링크). 🆕2차(같은 날) = 가로형 관계도로 교체(master ad705e3) — PFS 루트에서 오른쪽으로 뻗는 다이어그램, 노드엔 큰 제목만, 상세는 팝업(페이지 클릭=상세 / 그룹 클릭=접기 / ⓘ=요약 / 루트=서버메타). 커넥터는 순수 CSS(li flex+center → top:50%가 노드 중심, JS 좌표계산 0), 기본 = 전부 접힘(펼치면 뿌리가 화면 밖으로 나가 목록이 된다). 공용API·화면밖 미반영도 같은 뿌리에 매달아 한 장. 사이드 메뉴로 두 맵 전환·펼침접기·미반영만·검색. 원천 전부 실측(수기 0) = 두 RDS menu_catalog SSM 덤프 + 두 브랜치 라우트 파싱 → 그룹 8·페이지 49·API 893. 🔑미반영 = 커밋 아닌 화면 뒷단 파일 해시(playbook §2) → 주황 AL발주서·AL설정 관리 2건. 트리 밖 미반영 파일은 별도 절(안 적으면 리포 전체로 오독). 검증 = selftest + full E2E + theme/font FAIL 0 + 실브라우저. 서버 코드 무변경(master 5c2aef2). ⏳페페 = 육안. 함정 4·갱신법 → projects/pfs/session-2026-08-04-sitemap.md

pfs 메모알림 (2026-08-04 완료 · 2026-08-05 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 메모알림 [코디] 26.8.4 ✅운영배포 완료 — 생산현황 메모가 바뀔 때마다 텔레그램 즉시 발신(deploy-live 44ece4b, master cf6d117+4904f30 선별 포워드 4파일·AL 무유입 확인). 신호는 저장 경로가 모이는 field_memo_service 한 곳에만. 🔑경로 = EC2→api.telegram.org 직결(코디 PC broker는 EC2에서 못 닿는다) · 키는 env/pfs-{live,test}.env 주입(.env.production 심볼릭이 읽음, 백업 .bak-memo-notify) · 끄는 법 = TOKEN 줄 삭제 후 재시작(코드 수정 불요). ⚠알림이 업무를 막지 않는다 — 별도 스레드+예외 삼킴(자체검사가 전송을 강제로 터뜨려 저장 성공 확인). 본문에 [운영]/[테스트] 라벨 필수. 검증 = 자체검사 21항목 + 테스트 실서버 E2E 10항목(비로그인 401 회귀 포함·원복 확인) + 두 서버 send ok: True 실왕복 + 운영 HEAD/uwsgi/401. ⚠운영은 저장 E2E 미실시(실데이터 previous 밀림) → 최종 확인 = 페페가 메모 한 번 고쳐보기. 🆕신규 기본규칙 = pfs 고치면 사이트맵 재빌드까지가 한 작업(CLAUDE.md §4 + pfs rules.md, 이번에 첫 적용 — /field/list 주황 걷힘 확인). → projects/pfs/session-2026-08-04-memo-notify.md

AL발주서 QA 8건 (2026-07-29 테스트 배포 완료 · ⏳운영 미배포)

2026-07-31 HANDOFF NOW에서 원문 cut 이관(운영배포 지시는 여전히 페페 몫 — NOW에 1줄 유지).

master b69d325f6bcfb26f9732c. ①인쇄가 「AL업체 제목 아래 프레임 선만」 찍히던 것 = @media print visibility 토글이 모달 transform·max-height·overflow에 잘린 것 → 인쇄 전용 iframe 문서로 분리(+양식 헤더 colspan n-3n-4로 우측 빈 컬럼 제거). ②업체 다중등록(그릴링 1문항 → 페페 선택: 헤더 여러 줄 + 그리드 컬럼 선택) — 빈칸=첫 업체로 일괄, 미리보기·엑셀은 업체마다 발주서 1장(블록 통째 배정), 저장=vendors JSON + item al_vendor/glass_vendor(patch44, DAO 멱등 ALTER), 첫 업체는 기존 단일컬럼 유지로 목록·검색·구버전 무손상. ③계산식 색 #333(블랙 80%) + 「폰트 블랙 70%+」를 pfs 기본 지침으로 projects/pfs/rules.md 신설(페페 지시). ④계산셀 굵기 제거. ⑤엑셀 빈블록을 인쇄영역 밖이 아니라 행 삭제(AL 180→20행), 부수로 입고처가 첫 블록에만 채워지던 버그 수정. ⑥datalist → 자체 인라인 드롭리스트(부분일치+Enter 확정). ⑦업체행 CSS grid 정렬 + 담당자·전화·팩스 폭 오토. ⑧그리드 width:max-content(지정폭=하한)로 잘리던 컬럼 확장. 검증=엑셀 자체검사 + 테스트 E2E 18 + UI Playwright 27(콘솔0). ⏳페페 몫 = 운영배포 지시(지시문에 문구 없어 안 함) + 실제 인쇄·엑셀 육안. → projects/pfs/session-2026-07-29-al-orderpaper-qa8.md

OMC 협력 페이지 (2026-05-23~06-08 완료·운영배포·검증)

견적 v2 패치 누적 내역 (~2026-05-23, 운영 반영)

견적 구조 복사 (타입/K/F/항목/sub) — 테스트 배포 완료 (2026-06-09 c2b5db2→Actions 27213107339)

견적 v2 타입SSOT 페이즈A·B + 후속결함 5건 + 펜아이콘 — 운영 배포 완료 (2026-06-10 a523d39→Actions 27246653521 ✓)

handoff 2026-06-10 이관 원문(진행중·미결 절). - master 미반영 4커밋(페이즈B 123aba1·후속fix d200229+51da6cd·펜아이콘 28c7f3f)을 deploy-live에 머지(페이즈A 03b9583은 이미 운영 반영됨). 운영 서버 grep 검증(SSM, /home/ubuntu/pfs): HEAD=a523d39·펜🖊 2·prompt 1·dblclick 0·DAO company_margin_rate 1·buildTargetListHtml 2 전부 통과. - 타입 이름 수정(#1) 최종형: 더블클릭(draggable 충돌로 폐기)→펜(🖊) 아이콘 클릭→window.prompt로 새 이름 입력(인라인 input replaceWith 폐기 — 기존 탭이 input으로 바뀌던 혼란 해소). 탭 UI 전환 없이 이름만 변경·저장은 사용자 몫(markDirty). 미사용 .typetab-rename-input CSS 정리. - 전체마진 자동/수동(#2): 이미 정상 동작 확인(추가작업 없음) — pickSite가 현장 업체 company_margin_rate(estimate_dao.py:716 조인·company.margin_rate 컬럼)를 읽어 applyGlobalMargin(rate, true) 자동 적용. 사용자 수정→수동 배지+NULL규약 재로드 유지. - 후속결함 #3·#4·#9·#10: 코드 운영 반영됨. #3·#4 하위호환 약점 유지: NULL규약 이전 기존 견적은 자동행에도 margin_percent 값이 남아 1회 재저장해야 자동행 NULL 정리·정상화(DB 마이그레이션 없음). - (미결 2 이관) 1번(타입 순서 + SSOT 통합 + 1:1) — 페이즈 A 완료(2026-06-10 03b9583 테스트 배포·채티 재검증 통과): 다음 = 페페 화면 수동 확인 → 이상 없으면 운영(deploy-live + 운영 DB 동일 A 시드) 별도 승인 후 진행(당시 운영 미반영 → 이후 a523d39 머지로 코드 운영 반영). 지시문 C:\dev\pfs\CODI_estimate_type_order_phaseA_integrated.md(실행 완료). 구 지시문 ..._fieldtype_seed.md는 "폐기·실행금지". - (미결 2 이관) 페이즈 B 10건 — 테스트 배포·검증·수동확인 완료 → 후속 결함 5건: 본체(123aba1) 코드 9건 테스트 반영. 페페 화면 확인 결과 정상=#2·5·6·7·8, 결함=#1(이름편집 발화안됨)·#3·#4(자동/수동 마진 오복원)·#9(복사 대상위치 기존행 미표시)·#10(복사 출처 계층경로 미표시). 진단=session-2026-06-10-phaseB-verify-followup.md. 후속 지시문 = C:\dev\pfs\CODI_estimate_phaseB_fix.md(A=#1 draggable이 dblclick 가로챔→이름span draggable=false+mousedown 해제 / B=#3#4 margin_div는 계산방식이라 자동수동 컬럼 없음→자동행 margin_percent=NULL 저장규약·loadEstimate 추측비교 폐기 / C=#9#10 buildTargetListHtml+출처경로 제목 / D=cp-tgt CSS). JS+CSS 2파일·백엔드/DB 무변경. 실행·테스트 검증 후 a523d39로 운영 배포 완료. 본체 재진단 상세 = session-2026-06-10-phaseB-rediagnosis.md, 본체 지시문 = CODI_estimate_phaseB_bundle.md(실행 완료). - (미결 2.5 이관) (참고) 페이즈 A 운영 배포 — 미반영 확정(2026-06-10 실측·이후 a523d39로 코드 반영 해소): deploy-live에 03b9583 없음·운영 field-types 404였음. 잔여 운영 DB 작업(A시드·finish 숨김 E)은 handoff 미결 2 유지.

견적 v2 임시 계산기 행 + 합계 천원올림 보정 — 운영 배포 완료 (2026-06-10 deploy-live 3bb8457→운영 Actions 27253586285 ✓)

handoff 2026-06-10 이관 원문(미결 2.6 상세). - 운영 반영 3커밋: 1차 e26983c=#calcFrame 프레임+계산기 모듈(비저장 임시 계산 행). 2차 dcd060d(테스트 배포 ✓)=컬럼동일화(calcVisibleCols/calcCellForColvisibleCols() 기반 동적생성, 하드코딩 12컬럼 폐기, 항목 행과 순서·폭·라벨 일치) + 마감재 멤브레인('13') 고정·컬럼 숨김 + SUB colspan 동적화. 3차 256ed17=calcItemTotal 천원올림 부동소수 보정 — Math.ceil(withMargin/1000)*1000Math.ceil(Math.round(withMargin)/1000)*1000(estimate_regist_v2.js:167-174 1곳만). 400000×1.1=440000.00000000006 찌꺼기가 천원올림을 한 칸 더 올려 1,000원 과다(441,000) 청구되던 결함 정정. - 백엔드에 천원올림 없음 확인(합계는 프론트 단독 계산·서버는 저장만 → JS 이 한 줄이 단일 지점). - 검증: node 문법 PASS / 수식 단위검증 4종 — 단가10만×2·마진10 → old 441,000→new 440,000 ✅, 정상 올림 회귀 100,001·마진10→111,000 불변 ✅, SUB 포함 400,000+55,000·마진10→501,000 불변 ✅ / 테스트 Actions 27253348027 성공 / 운영 Actions 27253586285 성공 / 테스트·운영 양 서버 배포 JS에 Math.round 보정 반영 직접 확인. 화면 E2E(저장 라운드트립)는 로그인벽으로 코디 미확인. - 지시문: 2차 = 코디 직접, 3차 = C:\dev\pfs\CODI_estimate_total_rounding_fix.md(실행 완료). 보정 후 기존 견적 재저장 시 합계 1,000원 감소 케이스 가능 — 영향 건수 조회·일괄 정정은 handoff 미결 2.6 잔여로 유지.

견적 마진율 자동/수동 모드 완전 영속 (2026-06-10 운영배포 — handoff 이관 원문)

handoff 2026-06-10 이관. 구현·운영배포 git 관찰: b6314b6 master → 37d997d deploy-live(타 세션 실행). - 경위: 페이즈B후속 4dcfec2가 JS만 고쳐 미해결 → 재진단. - 근본 원인 = estimate_service.py _normalize_detail/_normalize_masterif v is None: continue가 프런트의 margin_percent: null을 default 0으로 강제 → NULL 규약 무력화(자동행이 수동 0%로 재로드, 구형 휴리스틱 재발동). 추가 2건: ②마스터 전체마진 모드 미영속(저장 시 항상 값 → 재로드 항상 "수동") ③select_estimatec.margin_rate 미포함(자동 복원 소스 부재). - DB 실측(SSM): estimate/estimate_detail margin_percent 둘 다 NULL 허용, CONVERT_EMPTY_STRING_TO_NULL(0)=0(UPDATE 경로 무해) → 스키마 변경 불필요. - 처방 = 마스터에도 NULL 규약(NULL=자동·업체 margin_rate 추종, 값=수동) + normalize None 통과(_NULLABLE_KEYS) + GET에 company_margin_rate 동봉 + 라벨 클릭 수동→자동 복귀 토글. 지시문 = C:\dev\pfs\CODI_estimate_margin_mode_persist.md(3파일: service·dao·v2 JS).

완료 이력 — 2026-06-18 이관분 (handoff 진행중에서 cut, 원문 보존)

06-19~07-07 완료 이관 (2026-07-07 handoff 정리 시 편입)

자재관리 탭 성능 시리즈(07-07 6건)·재번호·자재관리 초기 구축·업체관리·입고일정·견적 등. handoff NOW에서 완료 처리해 이관. 07-07 자재관리 구조개선 최종본은 handoff NOW 유지(육안 대기).

완료(2026-07-07) — 자재관리 탭 편집 클릭 버벅임 해결: table-layout:fixed (master 1d79b92→deploy-live 93dc5f5, 테스트+운영 사용자크롬+운영배포, 승인 DEPLOY-20260707-HKVV)

완료(2026-07-07) — 자재관리 탭 느려짐 근본해결: 폼요소 지연 렌더링 ★진짜 원인★ (master 0407f73→deploy-live 7819c63, 테스트+운영 사용자크롬 Playwright+운영배포, 승인 DEPLOY-20260707-36RQ)

완료(2026-07-07) — 자재관리 탭 행삭제 메모리 300MB 스파이크 근본수정 (master 2c18ef2→deploy-live b0bc891, 테스트 Playwright+운영배포, 승인 DEPLOY-20260707-ZN7E)

완료(2026-07-07) — 자재관리 탭 연속 삭제 최적화 (master 8e08404→deploy-live 94c6fb4, 테스트 Playwright+운영배포, 승인 DEPLOY-20260707-E8G8)

완료(2026-07-07) — 자재관리 탭 행삭제 버퍼링 제거(낙관적 UI) (master 988b07c→deploy-live c3e8a37, 테스트 Playwright+운영배포, 승인 DEPLOY-20260707-7FND)

완료(2026-07-07) — 자재관리 탭 발주량 가운데정렬·폭 auto, 품명/규격 폭 auto (master 87edf34→deploy-live a5ce41d, 운영배포, 승인 DEPLOY-20260707-R94Y)

완료(2026-07-07) — orderpaper_no 재번호(1..1500) + 동기화 번호튐 근본수정 (master 4748172, 운영 재번호+백업, 페페 승인 DEPLOY-20260707-RM6T)

완료(2026-07-06) — 자재관리 탭 행삭제(숨김)·품명/규격/단위 편집·발주량 단위분리·15TT→15T·히스토리 아이콘 (master 091da3c→deploy-live 75b8ff0, 테스트 Playwright E2E+운영배포, 승인 DEPLOY-20260706-2ZPM)

완료(2026-07-06) — 자재관리 탭만 숨김 현장·현장 미지정 항목 표시 (master 60e7ef1→deploy-live fc89a66, 테스트 Playwright+운영배포)

완료(2026-07-06) — 자재관리 탭 기본 검색기간 1개월→3개월 (master 4988fa2→deploy-live f14897b, 테스트+운영 Playwright+운영배포)

완료(2026-07-06) — 발주서 동기화 버그(피앤알 TLG0129MU 미노출) 근본수정 + 재동기화 + 삭제항목 복원 (master 9a8ef49, 테스트→운영 재동기화+운영 데이터정정)

완료(2026-07-06) — 견적목록 v2 견적구분 estimate_div 전환 + 입금여부 토글버튼 (master 552d936→deploy-live eceedec, 테스트 Playwright+운영배포)

완료(2026-07-06) — 707 견적서 추가건 등록 + 견적등록 스킬 마진율 auto화

완료(2026-07-03) — 자재관리(mm) 탭 사용량/누적사용량 컬럼 + 사용 이력(patch38) (master 0209fe6·0c53cd0→deploy-live 5de8f7d, 테스트 E2E PASS+운영배포)

완료(2026-07-03) — 현장별자재 신규현장 검색에 field 테이블 현장 병합(구조개선) (master 101a369→deploy-live 8eceecd, 테스트+운영 Playwright PASS+운영배포)

완료(2026-07-03) — orderpaper 현장별자재 신규 현장 모달 인라인 검색 재작성 + 드롭다운 모달 밖 표시 (master a10e889·bbdf705→deploy-live 567c41d·5492117, 테스트 Playwright 검증+운영배포)

완료(2026-07-02) — 현장등록 담당자 3종 검색 모달→인라인 (master 960e9ea→deploy-live 0fc8a1a, 테스트 실브라우저 검증+운영배포)

완료(2026-06-26) — 업체 휴가일정 사이드메뉴+신규 페이지 (master 5f12f82/e309117/3eb2c60→deploy-live 8bb1f56, 테스트+운영 E2E PASS)

완료(2026-06-26) — 견적 현장검색 모달 컬럼 헤더 다중정렬 완성(직전 미완 WIP 마무리) (master 92b8730→deploy-live 3c40489, 테스트 Playwright+운영 배포·검증 PASS)

완료(2026-06-26) — 견적 별도항목 업체별 소계 토글(화면 표시 전용) (master 6719a49→deploy-live d4e8688, 테스트 Playwright+운영 배포·검증 PASS)

완료(2026-06-26) — field/modify 상차일 달력 월 표시 숫자(N월)화 (master a6208e7→deploy-live 82117a1, 운영+테스트 검증 PASS)

완료(2026-06-26) — 현장별자재(material-spec) 대우 용인(field 2109) 운영 등록 (spec_no=2, 읽기검증 PASS·멱등)

완료(2026-06-25) — pfs 검증 5건 운영 배포 (master 0290966→deploy-live 68816cc, 테스트+운영 배포·검증 PASS)

완료(2026-06-25) — field/worklog 전체 펼침/접기 토글 + 기본 2개월 기간제한 + 전체 검색 (master f5c9aa2→deploy-live 1c11aaf, 테스트+운영 배포·API E2E PASS)

완료(2026-06-25) — 견적 엑셀 부분출력 현장블록(A6~F11) 빈칸 수정 + 결재칸 이미지 L39~O41 정렬 (master 9150576→deploy-live 25457db, 테스트+운영 배포·검증 PASS)

완료(2026-06-25) — 견적서 출력 페이지 선택 모달 재설계: 체크박스 폐지·카드 색상 단일 소스 + 그룹/전체 일괄 (master 18ee277→deploy-live e2dc45b, 테스트 Playwright + 운영 검증 PASS)

완료(2026-06-25) — 견적서 출력(print-v2) "페이지 선택→엑셀 반영" 운영 미반영 = 캐시버스터 누락 수정 (master e53a916→deploy-live b6d1ee8, 운영 검증 PASS)

완료(2026-06-25) — 견적 v2 타입 항목 수량 항상 편집 가능 + 단가×수량 합계 미반영 버그 루트픽스 (master bbe3cbb→deploy-live b6d1ee8, 테스트+운영 배포 완료)

완료(2026-06-25) — AS GS오산 도어발주서 추가건5 견적 운영 등록 (페이지 20, 추가건 견적 정리 스킬)

완료(2026-06-24) — 현장유형(field_div) 셀렉트 하드코딩 제거 → common_code(FIELD_DIV) 매핑 (master 039c9ee→deploy-live 3ced907, 테스트·운영 검증 PASS)

완료(2026-06-24) — orderpaper 자재관리 정렬규칙 교체 + 사용자지정 다중정렬 컨트롤러(엑셀 정렬식) + 고정값 영속 (운영배포 deploy-live 739fc86, 테스트·운영 Playwright PASS)

완료(2026-06-24) — orderpaper 재고관리 엑셀 → 운영 재고량 시드 + 동기화 신규항목 발주량 복사

완료(2026-06-24) — orderpaper 동기화(발주서 정리) 복구 (PC 이전 후 사이드카 SSM 단절 근본수정)

완료(2026-06-24) — orderpaper 자재관리탭 마감 3건 + 운영배포 완료 (master 0842082→deploy-live f8c1905, 운영 Playwright 검증 PASS)

완료(2026-06-24) — orderpaper '📦 자재관리' 첫 탭 신설 + 재고량 RDS 영속 (테스트 배포·실작동 검증 PASS, 운영배포 완료↑)

완료(2026-06-22) — worklog 2차: 맥락파악 매핑 + 진행중/대기중(active) 현장 우선 (master c8a8fca→deploy-live 31781ae)

완료(2026-06-22) — 견적 추가건 '출력 포함' 토글 DB 영속 (엑셀/PDF 출력 반영 버그·적대검토) (master 9e6bf67→deploy-live 7a28611)

완료(2026-06-22) — worklog 미연결 묶음 추정현장 자동연결 기능 신설 + 운영 적용 (master 12dfe79→deploy-live c054dd3)

완료(2026-06-22) — AS GS오산 도어발주서 추가건3·4 견적 운영 등록 (추가건 견적 정리 스킬)

완료(2026-06-22) — 견적 v2 현장검색 키워드 엔터 즉시검색 운영배포 (master 10bd2cc→deploy-live 1858742)

완료(2026-06-22) — 입고일정 탭 포커스모드에서 상단 탭바 유지(다른 탭과 동일 내비) 운영배포 (master 21acb70→deploy-live 4bcc11e, ?v=20260622h)

완료(2026-06-22) — 도면 PDF 자동작성 파서 실가동 + 자동 스케줄(사이드카) 가동

완료(2026-06-22) — 현장별 자재 모달 버튼 전면 복구 + 신규현장 드롭다운/가구업체 자동 + 적대검토 후속 2건 — 운영 배포 완료 (master ec178a9bef032a → deploy-live 26271f2, ?v=20260622c)

최근(2026-06-21) — orderpaper 신규 3번째 탭 '🪵 현장별 자재'(material-spec 이식) 테스트 배포·검증 PASS (master 9421d1ccf026b3, ?v=20260621b, 운영 미배포)

최근(2026-06-20) — 업체 관리 자재 하위 분류(PRODUCT_CAT) + 마스터 목록 영구편집 + 하드웨어→자재 운영배포 완료 (master 8841d9b(+fix 8828d25)→deploy-live a156d5b(+fix cherry-pick a9c6df8), ?v=20260620d, test+prod 완료)

최근(2026-06-20) — 업체 관리 3b(2탭·칩·자사핀·목록모달) 테스트 배포 — ※위 자재분류 항목으로 대체·운영배포 완료 (master a0c1213)

최근(2026-06-20) — 업체 관리 권한 매트릭스 그룹화 + 그룹/전체 일괄변경 테스트 배포 (master a9bdb52, ?v=20260620a, 운영 미배포)

완료(2026-06-20) — 업체 관리(company-permission) 업체분류·자재 토글 + 리스트관리 모달 목업(3번 채택) → 구현·운영배포 완료(상세=최상단 자재분류 항목). 아래는 목업·DB조사 참고이력.

최근(2026-06-20) — 자재관리 기본 탭 사용자별 저장·복원 운영배포 완료 (master 562cbae→deploy-live 193e8c0, ?v=20260620j)

최근(2026-06-20) — 입고일정 검색 비영속 + QA Helper 전역 관리자(is_super_admin) 전용 운영배포 완료 (master 338a01b→deploy-live bc61e71, ?v=20260620i)

최근(2026-06-20) — 입고일정 검색=현장 드롭다운 + 기본뷰 타임라인 운영배포 완료 (master 1b71ff5→deploy-live 75dcb8f, ?v=20260620h)

최근(2026-06-20) — 입고일정 B 포커스모드 채택 + 날짜 연도제거 + 현장목록버튼 삭제 운영배포 완료 (master 75330e9→deploy-live 5d923c9, ?v=20260620e)

(이전) 입고일정 '와이드 재설계' 목업 6안+조합 — 제시·선택 (위 B안 채택으로 완료)

최근(2026-06-20) — 입고일정 QA 리포트 2건 운영배포 완료 (deploy-live 11bdccdc899762f3c3a5a, master da468de936e7099c7ae9f, ?v=20260620d)

최근(2026-06-20) — QA Helper 운영 노출 + 토글 위치 조정 운영배포 완료 (6bb1044)

orderpaper 동기화 신규항목 강조 + 후속 4건 + 노트삭제 — 운영배포 완료(a9fe1b5, 2026-06-20)

(이전) orderpaper 동기화 후 신규항목 강조 — 테스트 배포·백엔드 검증 (16534fc) — 위 항목으로 운영배포 통합됨

최근(2026-06-19 밤) — 입고일정 6건 재작업 운영배포 완료 (ef674d8, ?v=20260619j)

⚠️ 최근(2026-06-19 저녁) — 입고일정/발주서정리 3개 batch 복원(되돌림) — 페페 "마지막 작업들이 잘못됐다, 재작업 예정"

최근(2026-06-19) — 입고일정/발주서정리 완료업체 그룹화·타임라인 중복제거 3건 운영배포 완료 (af8c91a, ?v=20260619h)

최근(2026-06-19) — 입고일정/발주서정리 개선 7건 운영배포 완료 (2699e72, ?v=20260619f)

최근(2026-06-19) — 발주서 정리 발주량(qty) 인라인 편집 운영배포 완료 (19e8aa7)

최근(2026-06-19) — orderpaper 입고일정 탭 + 전역 레이아웃 개편 + 비고 기능 운영배포 완료 (bf8cfea)

최근(2026-06-19) — 견적서 엑셀 결재칸 + 페이지선택 보완 (운영배포 완료)

최근(2026-06-18 세션) — 전부 운영배포 완료

최근(2026-06-19 추가) — orderpaper '현장별 입고일정' 실제 탭 (테스트 배포 완료)

최근(2026-06-19 후속 3건 — 테스트 배포 완료, af3f1bd/2ab9c93)

  1. 타임라인 현장컬럼 가로스크롤 항상 고정: 원인=간트 .grow(flex 행)가 .gantt 뷰포트폭으로 제약돼 sticky .glab 컨테이닝블록이 일찍 끝나 ~790px 지나면 풀림. 수정=#opSchedWrap .grow{ width:max-content }(행이 콘텐츠 전체폭) + glab z-index:4(바·마커 위)·우측 그림자. Playwright 실측 scrollLeft 0~2400 offset 1 고정. (orderpaper_schedule.css, ?v=20260619d)
  2. 상단바 제거·사이드 통합(전역, base.html + 신규 css/pfs_layout.css): topbar 제거 → 로고·폴딩토글(sidebartoggler 클래스 유지로 mini 토글 동작)·사용자정보(신동승 차장+비번변경·로그아웃)를 좌측 사이드 상단으로. topbar 70px 오프셋 회수(page-wrapper/left-sidebar padding-top:0). pfs_layout.css는 base.html {% block css %} 밖 head에 링크(자식 템플릿이 못 덮음, ?v=20260619a). mini-sidebar 접힘 시 텍스트 숨김. field/orderpaper·field/list 양쪽 검증.
  3. 사이드 메뉴 간격 절약: (1차) .sidebar-nav a 패딩 축소 → 2차 되돌림: 항목 padding은 테마 기본 복귀, nav-small-cap 그룹 상단여백만 30→12px 축소(목록 압축·하부 공간 확보). (pfs_layout.css §5)

최근(2026-06-19 사이드/레이아웃 4건 2차 — 테스트 배포 bfefa97)

최근(2026-06-19 추가 2건 — 테스트→2026-06-19 운영배포 완료 bf8cfea)


(2026-07-20 이관) 완료·배포 완료 이력 — NOW→archive 정리

아래는 handoff NOW에서 이관한 완료·운영배포 완료 항목(원문 보존). 원 순서 유지.

(신규) 다음 세션 인계 (2026-07-14 갱신)

(이전) 다음 세션 인계 (2026-07-13 갱신)

완료(2026-07-07) — QA 발주처/현장명 오분해 근본수정: 파일명 선행 '추가' 마커 (파서 master d95e4b8, 운영 데이터 17건 정정, 승인 DEPLOY-20260707-4ZU8)

완료(2026-07-07) — 자재관리 탭 구조개선: 50행 페이지네이션 + 검색 디바운스 + 전행 hover 제거 (master cca4132→deploy-live c27b971, 테스트+운영 E2E, 승인 DEPLOY-20260707-GSDP)

2026-07-24 이관 — 루트 HANDOFF NOW 완료건 (원문 그대로)

루트 HANDOFF NOW 이관 (2026-07-27, 캡 20,000자 시행)

루트 HANDOFF.md NOW가 39,399자로 비대해져 매 세션 시드복원 비용이 커짐(적대검증 4자 합의 1순위) → build_brief.pyCHAR_CAP 게이트를 루트 HANDOFF에도 적용하고 NOW 항목 원문을 여기로 그대로 cut 이관했다(삭제 0). NOW에는 1~2줄 요약 + 이 문서 포인터만 남는다.

루트 handoff 완료이력 이관 (2026-07-27, 페페 지시)

projects/pfs/handoff.md가 25,190자로 비대해져 BRIEF 클립(앞 6,000자) 창을 완료건이 차지하고 있었다 → ✅완료 항목 원문 그대로 cut 이관(삭제 0). handoff에는 NOW·확정사실·미결만 남긴다. 07-20 이관분(06-19~07-06)에 이어지는 2차 정리. 06-19자 "운영 미반영 잔여 없음" 항목은 2026-07-27 patch-id 실측(미반영 20건)으로 무효가 되어 함께 이관했다. - ✅완료·운영 배포 — OMC 보드 품목 편집 모달에 비고 입력칸 (2026-07-24, 코디, 페페 "운영배포"=승인). /omc/board 사이드 품목 ✎ 편집 모달(modalItem)에서 재고 수량 조정 시 비고를 바로 기입. ①web/templates/omc/board.html: itemEditNote 입력칸 추가(placeholder="미입력 시 '재고 조정'으로 기록"), openEditBoardItem()에서 초기화, saveBoardItem()adjust-stock 페이로드에 note 전달. ②api/pfs/omc/service/board_service.py adjust_stock(): note 있으면 사용, 없으면 기존 '재고 조정' 유지(하위호환·DB/스키마 무변경 — inout note 컬럼 재사용). master c8e2a1c → deploy-live cherry-pick fd9f2c6. 검증=①dao 스텁 자체테스트 4케이스 PASS(비고 trim 적용/미입력·공백은 '재고 조정'/증감 방향·수량·차이0 무기록) ②SSM으로 운영서버 실파일 확인(live 템플릿 itemEditNote 3곳·서비스 note 폴백 존재·운영 HEAD=fd9f2c6). ⏳다음=페페 육안. - ✅완료·운영 배포 — 배차/택배 목록 주소 가독성 (2026-07-24, 코디, 페페 "운영배포"=승인). web/templates/basic/dispatch/dispatch_list.html 행 렌더러(622·628행)의 출발지·도착지 주소 span을 #8a96a3 11px#4a5765 13px(파일 기존 토큰 --dc-ink-2 값 재사용). 2줄 변경, 로직 무관. master 6f2d2ae → deploy-live cherry-pick f8aa9e4. 검증=diff·origin/deploy-live 내용 확인(운영 육안은 페페 — 로그인 필요). +후속(같은날, 운영배포) — 목록 가독성 3건(페페 지시): ①주문일 연도 2자리(26-07-24) — fmtDate()는 날짜입력칸(dcOrderDate/cOrderDate)·출력물(출고요청서·택배의뢰서)에서 그대로 쓰이므로 공용 함수는 손대지 않고 목록 행에서만 .slice(2)(공용 변경 시 <input type=date> 값 깨짐). ②차량 컬럼 88px→68px + 셀 nowrap·좌우 padding 8px로 폭 절약. ③인수자 셀에 기존 dc-ellipsis(nowrap+말줄임, 현장명 칸이 쓰던 클래스) 적용 → 항상 1줄, 긴 값은 title 툴팁(실측 인수자 길이 p95=7자, 10자↑는 1464건 중 2건뿐). master a05008f → deploy-live cherry-pick 96a5677. 검증=node로 행 마크업 실제 렌더해 assert(2자리 연도·4자리 잔존 없음·인수자 dc-ellipsis+title·차량 nowrap·fmtDate 원본 유지) ALL PASS. - ✅완료·운영 배포 — 휴가일정 중요업체 체크박스 + 폰트 10% 확대 (2026-07-24, 코디, 페페 "운영배포"=승인). web/templates/default/vacation.html 단일파일. ①표 첫 컴럼에 중요업체 체크박스(기본 전체 체크) 추가 — 해제하면 타임라인에서 제외되고 창 범위(tlWindow)·정렬·막대 배치가 남은 업체 기준으로 재계산(필터를 tlSorted() 한 곳에만 넣어 창·정렬·렌더 전부 자동 반영). 체크 상태는 화면 상태만(VAC_OFF, 해제된 것만 담음) — 서버 저장 없음, 새로고침시 전체 체크(DB·API 무변경). ②vac-* 폰트 일괄 10% 확대(표 14→15.4 / 표헤더·버튼·타임라인 업체명·범위 12→13.2 / 입력칸·검색항목 13→14.3 / 타임라인 타이틀 14→15.4 / 날짜헤더·막대글자 10→11px). master 067d8ef → deploy-live cherry-pick bdcfa99(전체 merge는 미배포 master 82커밋이 딸려가 회피 — 직전 배포들과 동일 패턴). 검증=JS 문법체크 + node 자체테스트(체크해제 시 창 209일→13일로 재계산·재체크 원복 assert PASS) + origin/deploy-live 내용 확인. ⚠️운영 페이지 HTTP 육안검증은 미실시(로그인 필요·이 PC aws CLI 미설치로 SSM 불가) → 다음=페페 육안 확인. +후속(같은날, 운영배포) — 체크 상태 서버 저장(페페 "새로고침시 유지" 지시): company_vacation.important_yn TINYINT(1) NOT NULL DEFAULT 1ensure_table()의 멱등 ALTER로 자동 추가(기존 _DDL_NULLABLE과 같은 패턴 — 컬럼 있으면 1060 에러를 try/except가 삼킴, 수동 DDL·마이그레이션 불요·앱 재시작 시 1회 적용). 신규 API PUT /api/vacation/<no>/important(체크만 갱신 — 업체·날짜 빈 미완성 행도 저장되게 기존 update()와 분리). 목록 SELECT에 important_yn 추가, loadList()0인 행만 해제 복원(값 없으면 체크 유지 = 하위호환). master c78ad90 → deploy-live cherry-pick f69d066. 검증=①node 자체테스트(복원·창 재계산 13↔209일·PUT 경로/본문 assert PASS) ②테스트서버 실 API E2E(임시행 생성→기본 1 확인→0 저장→재조회 0→1 복구→임시행 삭제, ALL PASS) ③운영 GET 실측: important_yn 컬럼 응답 확인, 기존 11행 전부 1(=전체 체크). 운영은 읽기만 호출(쓰기 없음, ALTER는 get_list→ensure_table가 자동 적용). - ✅완료·운영 배포 — 자재관리 탭에서 보드 3건이 안 보이던 문제 (2026-07-23, 코디, 페페 "운영서버 작업·배포 승인"). 원인 2개. ①용두동 KAEX7-SR: orderpaper 1455~1458(오엠씨 원자재)가 remove_yn=1 del_manual=1=화면 수동삭제 상태(NAS 원본 엑셀엔 실재) → 운영 RDS 복원(가드+before/after). ②의정부 7201-SKE·MND40ED: DB는 활성인데 원본 엑셀 오엠씨 탭 발주/입고 날짜 미기입 → 템플릿 기본값 2026-01-02 파싱 → 자재관리 3개월 창(passBaserefMs<now-90d) 밖으로 밀려 통째 숨음(파서 버그 아님). 수정=all-items에 regist_date 추가 + badDate()(날짜가 등록일보다 120일 이상 과거면 오기입으로 보고 창 예외). 처음 "등록일 최근이면 통과"안은 정상 과거건까지 260행 노출돼 기각, 실측 분포(오기입 166일↑/정상 81일↓)로 120일 컷=39행. 커밋 master d35976f31e2278, deploy-live cherry-pick 34cfbbf28a1f50(전체 merge는 미배포 월마감이 딸려가 회피), ?v=20260723a. 검증=테스트·운영 all-items 실HTTP + 필터 재현(의정부 5행 False→True). 같은 증상 10블록/7현장(GS 오산·GS 인천 산곡6·용두동 씨엔글라스샵·신우APT·금강 부산 에코·한양 이천 대월) 동시 해소. ⏳다음=페페 육안, 근본예방=발주서 엑셀 날짜 기입. +후속(같은날, 운영배포): 동기화 때 날짜 경고 리포트 추가 — date_warnings()(노출 기준일이 파일 월보다 120일↑ 과거=숨김 유발, 날짜칸 빔=미기입 2등급)를 orderpaper_sync.py stdout 끝에 출력(사이드카 페이지·result_text 양쪽) + '지금 동기화' 완료 시 노란 경고박스(#opDateWarn). 자체점검 test_date_warnings.py 6케이스 PASS. 실측 숨김 20블록/미기입 22블록. master bc9e2dc→deploy-live b40ddb6. - ✅완료·운영 배포 — 견적서 엑셀 A6 업체명 가운데정렬 + 넥서스·에넥스 (주)접두 (2026-07-22, 코디, 페페 "운영배포"=승인). estimate_print_service.py: ①_decorate_company_name() 신설 — orderer(=A6 업체명) 값에 넥서스·에넥스 업체면 (주) 접두(이미 (주) 있으면 무접두). ②A6(A{b+6}:C{b+6}) 정렬 s["l"]s["c"](origin·참조셀 양쪽). master 974ca55→테스트, deploy-live 4352624 cherry-pick→운영(충돌0·전체 merge는 무관파일 충돌로 회피). self-check 4케이스 PASS. ⏰예약 리마인더: 8/1 09:00 텔레그램(schtasks 일회성 reminder-nexus-hansem-20260801C:\dev\tools\reminders\nexus_hansem_rename_20260801.py→broker /notify-done) = "넥서스→한샘 업체명 변경" 알림. 변경작업 자체는 페페 지시 후 _decorate_company_name()의 넥서스→한샘 반영. - ✅완료·운영 배포 — 업체 필터 버튼식 전환 + 견적서v2 확대 (2026-07-22, 코디, 페페 "운영배포"=승인). ①업체 필터를 드롭다운→버튼 그룹(btn-group, .pfs-company-btn)으로 변경: 기본 전체 표시(선택 없음), 버튼 클릭 시 해당 업체만, 같은 버튼 재클릭 시 해제. ②동일 기능을 견적서 관리 v2(estimate_list_v2.html, 필터 div #search-result-datatable_filter, 데이터 datatableJSON, 신규 applyCompanyFilter()가 clear/add/draw 대체)에도 적용. 두 페이지 모두 company_name 부분일치·클라 필터·서버 무변경. master 3a05acd→테스트, deploy-live 73c9ae9 cherry-pick→운영(충돌0). ※직전 select판(field_list만, 3d1222e/4316fd6)은 이 커밋으로 대체됨. - ✅완료·운영 배포 — AL발주서 + 생산 스티커 출력 (cherry-pick 배포) (2026-07-21, 코디, 페페 "운영 배포" 지시=승인). master가 deploy-live보다 70커밋 앞선 상태에서 얽힘 진단 후 신규파일 위주라 분리 가능한 2기능만 cherry-pick. 운영 DB 선셋업(멱등·추가만, SSM+prod env): AL=al_orderpaper/al_orderpaper_item 테이블+메뉴(menu_no 43, al_orderpaper_seed.py prod) / 스티커=door_order_file·door_order_item·sticker_print_log·door_sync_request 테이블+메뉴(생산>스티커출력 menu_no 45, codi_sticker_schema.py+_v2+_menu_fix prod). 코드: deploy-live에 11커밋(스티커8+AL3 시간순) cherry-pick 충돌0(api/config.py 블루프린트 additive 자동병합), push 6394f8b→48ed33b. 검증: 운영 HEAD=48ed33b·uwsgi active·/field/al-orderpaper·/production/sticker·/api/al-orderpaper/vendors 모두 200. 미배포 잔여(운영 미반영): 자재관리 UI·orderpaper파싱은 OMC 보드/시트관리와 같은 파일 공유(얽힘)라 이번 제외 → 별도 결정 필요. 배차/택배(courier 마이그레이션 필요)·휴가타임라인·현장별 자재사양서(v3 마이그레이션)도 미배포. - ✅완료 — 테스트 field 전량 운영 미러 교체 + 카톡 메세지 반영 (2026-07-21, 코디, 페페 지시). ①테스트 field(1976→2041)·production_status(1975→2041)를 운영 데이터로 전량 미러 교체(운영=SELECT만, 테스트=트랜잭션 쓰기, field_no 운영값 보존). 스키마 가드+백업테이블 field_bak_20260721_prodrepl·production_status_bak_20260721_prodrepl(테스트 RDS, 롤백용 보존). 스크립트 scripts/_field_replace_test.py. ②더하임 주하늬 과장 카톡 메세지 반영(대상 용두동=2129 "SGC 광주 용두동"·LH의정부=2137 "LH 의정부 우정"). 최종형(페페 수정지시): 비고·자재비고(몸통재/마감재입고)에 넣은 것 전량 원복(운영값 미러 복원), 내용은 생산현황 최하단 전역 "생산 메모"(field_memo.json 파일 기반, web/static/uploads/memo/field_memo.json)에만 핵심 기입(오엠씨 입고건 제외). 운영+테스트 파일 모두 반영(페페 "운영서버 반영" 지시=승인, RDS 아닌 서버파일). 운영은 기존 상세노트(출고/LH의정부 엣지·용두동 플랩·하드웨어) 보존 후 append(생산현황 출력은 current만 표시 → merge 필수, previous는 비움). 디스크 재확인 PASS. 스크립트 _field_msg_apply_test.py(1차·폐기됨)→_memo_apply.py(원복+메모)→_memo_fix.py(merge)→_memo_verify.py. 주의: field_memo=단일 전역 메모(현장별 아님), 출력 current만 노출. 생산메모 파일 경로 소유권 chown(dir 소유자)로 앱 재쓰기 보장. - ✅완료·운영 데이터 수정 — 자재관리 품명칸에 규격이 뜨던 버그 (2026-07-20, 코디). 근본=orderpaper.item_name_user에 규격조각('15T/18T MDF')이 저장돼 COALESCE로 원본 item_name(WAU38-SR…)을 덮음(코드버그 아님=레거시 데이터, 서버 쓰기경로 /item-name 1개·정상). 운영 RDS에서 오염 5행 전부 item_name_user=NULL 정리(안전가드+before/after 검증, scripts/_fix_inu.py·_fix_inu2.py SSM): 1543·1544·1545(신우APT, 07-20 1차) + 328·329(다른 현장, 07-20 2차). 전역 item_name_user 오염 0건 달성(정상 사용자편집도 0). 상세=archive. - 견적서 엑셀 기본보기 = 페이지 나누기 미리보기 + 배율 100% — 운영배포 완료(2026-06-19): _set_print_areasheet_view.view='pageBreakPreview'·zoomScale=100·zoomScaleSheetLayoutView=100. master 9387fbc→deploy-live cherry-pick 3724fae. 운영 견적711 4시트 sheetView 실측 검증. - 운영 미반영 잔여 = 없음(2026-06-19 git cherry·net diff 실측): master↔deploy-live 순수 차이는 migrations/create_dispatch_tables.sql 1개뿐 — 배차(dispatch) 기능이 deploy-live서 한 번 revert(cd7faab) 후 재적용된 흔적의 무해 마이그레이션 기록 파일(배포는 SQL 미실행·운영 DB 테이블 기존재). 런타임 영향 0이라 의도적 미배포. .gitignore(cbe667433b1930)는 운영 동기화 완료. 구 핸드오프의 540eb1a 생산메모 미반영 메모는 stale(patch-id상 이미 운영 반영됨).

26.7.30 루트 NOW 캡 정리로 이관 (원문 그대로)

(HANDOFF NOW 이관 2026-07-31)

(HANDOFF NOW 이관 2026-07-31)

26.8.2 루트 NOW 캡 정리로 이관 (원문 그대로)

26.8.5(수) HANDOFF NOW에서 이관 — pfs 카톡관리 「체크=표시, 저장=일괄전송」(26.8.4 완료)

루트 HANDOFF NOW 이관 (2026-08-06, 캡 여유 확보)

견적서 재작성 + 현장 단위 차수 이력 (2026-08-06 완료 · 2026-08-08 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 견적서 재작성 + 현장 단위 차수 이력 [코디] 26.8.6 ✅운영배포 완료(deploy-live ff48c8b ← master c69c2d8+641ff82 5파일 선별 포워드 · 운영 RDS archive_yn DDL 선행 674행). 도면이 통째로 바뀌어 견적서를 새로 쓸 때 이전 차수는 삭제가 아니라 보관. 🔴지금까진 만들 방법이 아예 없었다 — 현장:견적서 1:1 가드(estimate_regist_v2.js:2142)가 현장 선택을 막았다 → 🔑가드는 한 줄도 안 고치고 estimate_countAND archive_yn='0' 만. 🔑불변식 = 「보관 안 된 것이 곧 지금 쓰는 견적서」(현장당 1건)라 되돌리기는 해제가 아니라 자리 바꾸기(PUT /<no>/select) — 목록 「차수 N」 모달에서 그 현장 전 차수를 한 표로 비교하고 고른다. ⚠추가건은 field_no 가 비어 있어 부모 조인 필요. 🔴덤 = 실패가 성공으로 새어나간다(ajaxSuccessProcess 는 code 2000 만 실패로 보는데 서버 예외는 9999). 운영 708 → 테스트 797 이관(대우 용인 MH·detail 50·sub 53, 행 전량 일치). 검증 = 테스트 러너 2종 32+21항목(둘 다 원상복구까지) + 운영 읽기전용 18항목 ALL PASS (🔑page.route 로 POST/PUT/DELETE 를 아예 차단하고 돌려 오조작 0 증명 · 보관 0·월마감 후보 11 불변·콘솔 0). 사이트맵 미반영 10→2(남은 2 = 기존 AL 백로그). ⏳페페 = 운영 육안(「차수 1」 눌러보기). → projects/pfs/{handoff,rules}.md

대우 용인 오엠씨 탭 1페이지 초기화·재입력 (2026-08-06 완료 · 2026-08-08 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 대우 용인 오엠씨 탭 1페이지 초기화·재입력 [코디] 26.8.6 ✅운영 완료(코드변경 0·커밋 없음). 페페가 NAS 엑셀 오엠씨 탭 1페이지 행을 지우고 고쳤다 → 그냥 동기화로는 안 되는 이유가 2개였다: ①그 블록 4행이 del_manual='1'(화면 ✕ 삭제)이라 동기화가 remove_yn=IF(del_manual='1','1','0') 로 계속 숨긴다 = 엑셀에 살아 있어도 영원히 안 뜸item_key=sha1(파일|탭|섹션|자재구분|**idx**) 라 중간 행이 빠지면 idx 가 밀려 옛 사용자편집이 다른 자재에 상속(실측 receive_date_user=07-14·재고 39/7 이 엉뚱한 보드에). → 「초기화」 = 그 블록만 물리 DELETE 후 신규 INSERT 로 재수신. block_key=sha1(파일|탭|섹션|자재구분)탭 1페이지 단위 그대로라 다른 탭 무영향. 실행 = _reset_daewoo_omc_prod.py 12행 삭제(before 전량 JSON=롤백, 사용이력 0건 확인 가드) → orderpaper_sync.py prod ins 11. 검증 = 운영 DB 33 ALL PASS + 운영 화면 43 ALL PASS(오엠씨 블록 「11건·발주 8.6·기본입고 8.11」·항목 11행·자재관리 탭 노출·콘솔 0·다른 탭 행수 불변). 사이트맵 그룹8·페이지49·미반영 2(전과 동일, 기존 AL 백로그). ⏳페페 = 운영 육안 + ⚠재고량이 발주량으로 초기화됐으니 수동 기입분 있었으면 재입력. → projects/pfs/{handoff,rules}.md

카톡관리 수정창 자동높이 + 편집 중복 방지 (2026-08-06 완료 · 2026-08-08 HANDOFF NOW 에서 원문 cut 이관)

🆕pfs 카톡관리 수정창 자동높이 + 편집 중복 방지 [코디] 26.8.6 ✅운영배포 완료(deploy-live 11e235e ← master cec85c6+229b61d 4파일 포워드 · poin-agent a5a5e45 · 데몬 재시작 PID 12084). ①수정창 min-height:64px 고정이라 10줄 항목도 3줄만 보였다 → kbGrow()가 scrollHeight로 맞추고 입력마다 재계산, 상한 60vh(운영 실측 76→309→570px). ②「중복 체크 프로세스 있는지 확인」의 답 = 어디에도 없었다3중 게이트 신설(화면 kbDupRow → 서버 add_op → 데몬 board_rows._dup_at). 판정은 셋 다 같은 섹션·첫 줄 동일 — 🔑첫 줄이 행 id 의 근거(sha1(섹션+첫줄+등장순번))라 같은 문구가 둘이면 id 가 등장순번으로만 갈려 앞 행이 사라질 때 뒤 행 id 가 조용히 바뀐다 → 그런 쌍을 애초에 못 만들게 막는 게 근본수정. 🔴덤으로 잡은 유실 = 같은 행에 대기 중 명령이 있으면 두 번째 거부 — 미러가 30~60초 늦게 갱신돼 그 사이 또 고치면 화면은 옛 내용을 보여주고 나중 명령이 앞 명령을 덮어써 방금 쓴 내용이 사라졌다. 검증 = 신설 scripts/_kakao_board_edit_check.py 테스트 26+API 6 · 운영 26 ALL PASS(높이는 픽셀 실측, 운영은 저장 안 누름) + 서비스 자체검사 13→15 + board_rows 자체검사. 사이트맵 3→2. ⏳페페 = 운영 육안. → projects/pfs/{handoff,rules}.md

카톡관리 소프트딜리트(요약 포인터) (2026-08-05 완료 · 2026-08-08 HANDOFF NOW 에서 원문 cut 이관)

pfs 카톡관리 소프트딜리트(「변동 반영 이력」 ✖ = 실제삭제→숨김 이력) [코디] 26.8.5 ✅운영배포 완료(deploy-live 0a75e3a) ⏳페페 육안 → projects/pfs/archive.md

2026-08-12 이관 (루트 HANDOFF NOW 2일 경과분 cut — 26.8.10 완료 3건)

HANDOFF NOW 이관 (2026-08-17)

HANDOFF NOW 이관 2차 (2026-08-17)

🧹 루트 HANDOFF NOW 이관 (2026-08-19 대청소 — pncad 외 전량, 페페 지시)

루트 HANDOFF.md를 pncad 만 남기고 비웠다. 아래는 그때 옮겨온 원문(문구 무변경).

🧹 루트 HANDOFF NOW 이관(2026-08-23 캡 경고 정리)