pfs 세션 로그
- [코덱스] 2026-09-21 — AL발주서 차수 탭·행선택 복사/이동: 현장명 앞 차수 버튼·같은 현장 차수 탭, 견적서식 선택 액션바, 차수 내 deep copy, 차수간 복사·이동 트랜잭션. 테스트
1a995a4, 운영c02bd4f; 테스트 UI 10/10+DB E2E 5/5, 운영 UI 10/10, 사이트맵 미반영1(기존 화면 밖 항목).
개별 세션 문서 방식. 신규 세션은
projects/pfs/session-YYYY-MM-DD-<주제슬러그>.md개별 문서로 작성하고register_doc.py --category archive로 등록한다(템플릿 =templates/session.md). 이 파일은 그 목록·링크 인덱스다. 형식:- YYYY-MM-DD — <주제> → 경로 (id). 본문(세션 내용)은 채티가 세션 종료 시 개별 문서에 작성한다.
세션 문서 목록
- [코디] 2026-10-19 — 소요 한남 2차(2184·99A) 라고데코 원단 별도 부자재 발주서 = 운영 PFS #11(확정·청솔산업·입고 26.10.22·COD_01 2yd+Harvard-09 4yd) · #8 에서 2행 제거(120→118) · 도면 F022 소요량 계산·가정 · 상세 =
session-2026-10-19-lagodeco-fabric-order.md - [코디] 2026-10-14 — 견적 v2 「저장된 추가금액 연동」 버튼(저장된 sub 마진 → 추가금액 마진 공통칸 일괄 연동 · 인라인 확인 줄 · 고정으로 · #qmDelta) 운영배포 19:54 KST(master 4e5224cb · deploy-live e2621c5f · DDL 0) · 소요한남2차 #803 → projects/pfs/session-2026-10-14-est-submargin-linkall.md (pfs-session-2026-10-14-est-submargin-linkall)
- [코디] 2026-10-14 — 한샘 소요 한남 2차(2184·99A) 부자재 발주서 초안 = 운영 PFS 부자재 발주서 #8(draft · 261008 도면 판독 · 116행 · 미확인 업체 72 · 봉적 14·이지웨이 10·해람 8 · 참고 행 4 · 다인스 18 · POST 1회 · GET 대조 0 · 엑셀 시트 9) → projects/pfs/session-2026-10-14-sohan2-suborder.md (pfs-session-2026-10-14-sohan2-suborder)
- [코디] 2026-10-14 — 한샘 소요 한남 2차 #803 → 한샘 양식 엑셀 V1(주방+수납 혼합 첫 사례 · 추가금액·다각형 부가비 12,911,900 행 합산 fold · 마감 종류만 · 갑지 33,860,000 = PFS 33,860,900 −900 절사 · NAS 견적\10월\한샘\소요 한남 2차 V1 · 판번호 자동) → projects/pfs/session-2026-10-14-sohan2-hansem-803.md (pfs-session-2026-10-14-sohan2-hansem-803)
- [코디] 2026-10-13 — [종결] 한샘 소요 한남 2차(2184·99A) 기본 견적 초안 = 운영 견적 v2 #803 · 월드산업 sub 58줄·패널단가 재적용(23,585,000) · 보드값 월드 단가 미포함(페페) → projects/pfs/session-2026-10-13-sohan2-estimate-803.md (pfs-session-2026-10-13-sohan2-estimate-803)
- [코디] 2026-10-13 — [종결] 한샘 소요 한남 2차 INEK10 원부자재발주서(PFS 자재 발주서 #4 확정 13줄 · 다각형 · 입고 월드산업 · 보드 40장 · NAS 새 파일 → 페페가 이름 고쳐 이동·발주 등록 예정 · 펫자재 추후) →
projects/pfs/session-2026-10-13-hannam2-inek10-order.md(pfs-session-2026-10-13-hannam2-inek10-order) - [코디] 2026-10-12 — 한샘 소요 한남 2차 r3 = 261008 새 도면 반영(구도면 대비 바뀐 곳만 · 작업본 #49·#50 + #48 승계 → 몸통 네스팅 #27 286매·엔진 51 / 도어 네스팅 #28 153매·엔진 40 · 폐기 대상 #23·#24·#25·#46·#47 · 표기 DWG NAS
코디 소요량 26.10.12· 보강밴드목 20) →projects/pfs/session-2026-10-12-hannam2-takeoff-r3.md(pfs-session-2026-10-12-hannam2-takeoff-r3) - [코디] 2026-10-11 — 한샘 소요 한남 2차(field 2184 · 99A) 몸통·도어 자재 소요량(PNCAD #46~48 → 몸통 네스팅 #25 265매·엔진 51 · #23 폐기 대상 / 도어 해치 159 → 네스팅 #24 엔진 41 · 표기 DWG NAS · 칼라 7 등록 · 높이 = 형상 기준) →
projects/pfs/session-2026-10-11-hannam2-takeoff.md(pfs-session-2026-10-11-hannam2-takeoff) - [코디] 2026-10-08 — 월드산업 협력사 네스팅(
/partner/nesting· 전용 테이블 ext_nesting_job · 계정 world01) + /api 계정유형별 허용목록 게이트(fail-closed) · 운영 deploy-livef69b484a(master6f20be40·0e175294· 사이트맵636b0090) · 운영 격리 30/30 · 화면 22/22 · 거래처 5계정 모의판정 23/23 →projects/pfs/session-2026-10-08-world-partner-nesting.md(pfs-session-2026-10-08-world-partner-nesting) - [코디] 2026-10-08 — 한샘 양식 변환 «작업 방식 저장» + 재사용 도구
C:\dev\tools\hansem-convert\hc.py(4사례 이식 · 설정 JSON + 단계 · 안전장치 내장 · 위치도 점 초안 31/31 구역) · 회귀 3건(한국유리부지 V1·V2·성포) 엑셀 파트 바이트 동일 · playbook §8 · 스킬 · 장부 68행 · handoff 한샘 3절 원문 이관 →projects/pfs/session-2026-10-08-hansem-convert-tool.md(pfs-session-2026-10-08-hansem-convert-tool) - [코디] 2026-10-08 — 한국유리부지 MH 임시견적 #800(31줄 · sub 31건 · 시공 12,000,000 · 운반 700,000) → 한샘 양식 변환(전환 규칙 2번째 · 🆕C-3 기본 안 함 · 수납 전용 3평형 양식 = form 11 깎음 · 블록 51 = 항목 31 +
-추가20 · 갑지 51,380,000) 로컬 산출(PFS 운영 쓰기 0) + NAS 새 파일…10월\한샘\한국유리부지\한샘 한국유리부지 MH 가구제작 견적서(26.10.08).xlsx→projects/pfs/session-2026-10-08-hankukglass-hansem.md(pfs-session-2026-10-08-hankukglass-hansem) - [코디] 2026-10-08 — GS 안산 성포 MH 포인 769 최신(26줄 32,051,000) → 한샘 양식 재작업(26.10.8 전환 규칙 첫 적용 · 블록 49 = 항목 26 +
-추가23 · 합산 치수 J{b+4} 8칸 · 갑지 43,650,000) 로컬 산출(PFS 운영 쓰기 0) + NAS 새 파일…10월\한샘\GS 안산 성포 MH\한샘 GS 안산 성포 MH 가구제작 견적서(26.10.08).xlsx→projects/pfs/session-2026-10-08-gs-ansan-seongpo-hansem-v2.md(manifest 미등록 — 타 세션 미등록 3건으로 validate 실패) - [코디] 2026-10-08 — 견적 v2 추가금액(sub) 「자당포함」 플래그(patch59
in_base_ynDDL 테스트→운영 INSTANT · 줄 칩·별도항목 3상태 일괄+되돌리기 · 키 누락 저장 = 기존값 유지 · sub_no 재사용 · 한샘 흡수 규칙 rules 🆕) 운영 deploy-live4ddbfc6c(master0bd5724b·36cd6622) · 테스트 49/49 · 운영 읽기 6/6 →projects/pfs/session-2026-10-08-estimate-sub-inbase.md(pfs-session-2026-10-08-estimate-sub-inbase) - [코디] 2026-10-07 — 견적 v2 QA 묶음(새 견적 빈 1줄·+항목추가 왼쪽 · 추가금액 마진 전역 연동/수동(DDL 0, 세션 플래그) · 추가금액 빈 줄+Enter · 헤더 twirl 전체 펼침 · 별도항목 사용처 펼침/이동/삭제) 운영 deploy-live
6a11ee17(master0da95f22) · 운영 80/80 →projects/pfs/session-2026-10-07-estimate-submargin-qa.md(pfs-session-2026-10-07-estimate-submargin-qa) - [코디] 2026-10-06 — GS 대전 변동(도마변동 · field 2175) 몸통·도어 네스팅 준비(PNCAD 작업본 #41~44 → 몸통 네스팅 #20 부재 396매·엔진 47장 / 도어 해치 DWG → 네스팅 #22 부재 250매·엔진 34장 · 미결 7) →
projects/pfs/session-2026-10-06-gs-daejeon-body-door-nesting.md(pfs-session-2026-10-06-gs-daejeon-body-door-nesting) - [코디] 2026-10-06 — 네스팅 「🧱 제품 계산기」(오픈장·휠라/EP ㄱ자·T자·냉장고 ㄷ자 산식 + poincad 샘플 116그룹 + 직접 구성,
GET /api/poin/sample-tree신설) 운영배포 master671dd485→ deploy-live980b4e43· 운영 146/146 →projects/pfs/session-2026-10-06-nesting-product-calc.md(pfs-session-2026-10-06-nesting-product-calc) - 2026-10-02 — GS 안산 성포 MH 포인 769 최신화(전시부스(84A) 4줄·운반비 600,000·시공비 11,000,000) → PFS 한샘 견적 6 재제작(form 14 · 78칸 · 엑셀 48,360,000) + NAS 새 파일 →
projects/pfs/session-2026-10-02-gs-ansan-seongpo-hansem.md(pfs-session-2026-10-02-gs-ansan-seongpo-hansem) - 2026-10-02 — GS 원주 단구·안산 성포 마감재 해치(1차 전면+2차 측면 EP)·네스팅 계산(원주 229매→31장 · 성포 261매→46장 · 운영 쓰기 0) →
projects/pfs/session-2026-10-02-gs-finish-nesting.md(pfs-session-2026-10-02-gs-finish-nesting) - 2026-09-30 — GS 안산 성포 MH 도면(DWG) → 현장별 자재(material-spec) 초안 운영 등록(spec_no 6 · 5타입 17위치 186칸 · 검수 24건) →
projects/pfs/session-2026-09-30-gs-ansan-matspec.md(pfs-session-2026-09-30-gs-ansan-matspec) - 2026-09-16 — 도어발주서 포인탭 → 월드산업(도장) 월드탭 변환(한샘 용산 나진MH · 11p 92행 · 큰제목 39 전량 · 부재 126→53) →
projects/pfs/session-2026-09-16-door-order-world-tab.md(pfs-session-2026-09-16-door-order-world-tab) - 2026-09-14 — 네스팅 QA 1·2차: 버튼줄 표 위·제목 정리·칼라DB 연동·수량 Enter 점프·계산기 + 상단 고정·컬러 구분색·크롬 datalist 폐기(자체 드롭리스트), 운영
de24c6f+60b1eb4→projects/pfs/session-2026-09-14-nesting-qa5.md(pfs-session-2026-09-14-nesting-qa5) - 2026-09-10 — 네스팅 그리드 2차: 범위 선택(드래그·Shift+클릭) + Ctrl+C/Ctrl+V, 운영
83e15b3→projects/pfs/session-2026-09-10-nesting-grid-range.md(pfs-session-2026-09-10-nesting-grid-range) - 2026-09-10 — 네스팅 부재 그리드 키보드·타입/위치 + 저장/열기 모달(현장 연결), 운영
4388bc4→projects/pfs/session-2026-09-10-nesting-grid-modal-plan.md(pfs-session-2026-09-10-nesting-grid-modal-plan) - 2026-09-07 — 발주서 정리 탭 모바일 전용 레이아웃(필터 기본 접힘·항목 카드형) →
projects/pfs/session-2026-09-07-orderpaper-mobile.md(pfs-session-2026-09-07-orderpaper-mobile) - 2026-09-07 — GS 안산 성포 MH 주방 견적 초안(포인·한샘 양식, 길이견적만) →
projects/pfs/session-2026-09-07-gs-ansan-seongpo-estimate.md(pfs-session-2026-09-07-gs-ansan-seongpo-estimate) - 2026-06-08 — 견적서 엑셀 공급자 이미지 O열 정렬(배포) →
projects/pfs/session-2026-06-08-excel-supplier-img-oalign.md(pfs-session-2026-06-08-excel-supplier-img-oalign) - 2026-06-08 — 견적서 엑셀 4종 보완 + OMC 배포·검증 →
projects/pfs/session-2026-06-08-excel-4items-omc-deploy.md(pfs-session-2026-06-08-excel-4items-omc-deploy) - 2026-06-09 — 분류 드롭박스 하단 잘림 수정(A안) →
projects/pfs/session-2026-06-09-category-dropdown-clip-fix.md(pfs-session-2026-06-09-category-dropdown-clip-fix) - 2026-06-09 — size_display 영속화(DB+서버+JS) →
projects/pfs/session-2026-06-09-size-display-persist.md(pfs-session-2026-06-09-size-display-persist) - 2026-06-09 — size_display 저장 직전 동기화 누락 follow-up →
projects/pfs/session-2026-06-09-size-display-sync-on-save.md(pfs-session-2026-06-09-size-display-sync-on-save) - 2026-06-09 — 엑셀 size_display 반영 + 공급자 이미지 O열 정렬 →
projects/pfs/session-2026-06-09-excel-size-display-supplier-oalign.md(pfs-session-2026-06-09-excel-size-display-supplier-oalign) - 2026-06-09 — 견적 구조 복사 목업·설계 →
projects/pfs/session-2026-06-09-estimate-copy-design.md(pfs-session-2026-06-09-estimate-copy-design) - 2026-06-10 — 견적 타입 순서 field_type 연동·페이즈A 지시문·두 경로 통합 보완 →
projects/pfs/session-2026-06-10-type-order-fieldtype-link.md(pfs-session-2026-06-10-type-order-fieldtype-link) - 2026-06-10 — 견적 1:1 원칙 확정·타입 자동 로드(역방향)·운영/테스트 RDS 실측 →
projects/pfs/session-2026-06-10-one-to-one-fieldtype-autoload.md(pfs-session-2026-06-10-one-to-one-fieldtype-autoload) - 2026-06-10 — handoff 주제별 분할·BRIEF 캡 초과 해소 →
projects/pfs/session-2026-06-10-handoff-split-brief-cap.md(pfs-session-2026-06-10-handoff-split-brief-cap) - 2026-06-10 — 견적 타입 SSOT 페이즈A(A/B/C/D) 구현·테스트 배포·검증 →
projects/pfs/session-2026-06-10-type-ssot-phaseA.md(pfs-session-2026-06-10-type-ssot-phasea) - 2026-06-10 — 견적 페이즈B 10건 원문 재진단(코드·운영/테스트 DB 실측) →
projects/pfs/session-2026-06-10-phaseB-rediagnosis.md(pfs-session-2026-06-10-phaseb-rediagnosis) - 2026-06-10 — 견적 페이즈A·B 테스트 검증 + 후속 5건(#1·3·4·9·10) 진단·지시문 →
projects/pfs/session-2026-06-10-phaseB-verify-followup.md(pfs-session-2026-06-10-phaseb-verify-followup) - 2026-06-10 — 견적 v2 +항목추가 버튼 하단 이동(채티 직접·운영배포) →
projects/pfs/session-2026-06-10-additem-row-bottom.md(pfs-session-2026-06-10-additem-row-bottom) - 2026-06-13 — 견적 v2 임시계산기 전체/몸통/도어 토글(코디 직접·운영배포) →
projects/pfs/session-2026-06-13-calc-part-toggle.md(pfs-session-2026-06-13-calc-part-toggle) - 2026-06-13 — 견적 v2 항목 전체/몸통/도어 토글 DB 영속(코디 직접·운영배포·테스트+운영 RDS 마이그레이션) →
projects/pfs/session-2026-06-13-part-mode-db-persist.md(pfs-session-2026-06-13-part-mode-db-persist) - 2026-06-18 — orderpaper(엣지·분류토글·엑셀필터·계층폴딩·업로드병합)·worklog 3기능·생산현황 대기칸 다건 운영배포(코디 직접) →
projects/pfs/session-2026-06-18-orderpaper-worklog-batch.md(pfs-session-2026-06-18-orderpaper-worklog-batch) - 2026-06-19 — 견적서 엑셀 결재칸(종합/추가건 첫장) + 페이지 선택 매핑 보완(타입→본건·추가건 raw 매칭)·운영배포 →
projects/pfs/session-2026-06-19-estimate-approval-box.md(pfs-session-2026-06-19-estimate-approval-box) - 2026-06-20 — 발주서정리/입고일정 대량 개선·복원·동기화 신규강조(C안 형광)·QA Helper 운영노출·로그인 env 도입(코디 직접·운영배포) →
projects/pfs/session-2026-06-20-orderpaper-newhighlight-batch.md(pfs-session-2026-06-20-orderpaper-newhighlight-batch) - 2026-06-20 — 업체관리 자재 하위분류(PRODUCT_CAT, common_code parent_code 컬럼)+마스터 목록 영구편집+분류간 드래그+하드웨어→자재 라벨(코디 직접·운영배포) →
projects/pfs/session-2026-06-20-material-category-parent-code.md(pfs-session-2026-06-20-material-category-parent-code) - 2026-06-22 — orderpaper '현장별 자재' 탭 신설(material-spec 이식·스타일3 카드갤러리·field_no제거·도면PDF 자동작성 phase2 릴레이+
claude -p사이드카·적대적 검토 에이전트48 버그15 수정·테스트 배포 d92e4e3) →projects/pfs/session-2026-06-22-material-spec-tab.md(pfs-session-2026-06-22-material-spec-tab) - 2026-06-22 — 견적 v2 현장검색 키워드 엔터 즉시검색(검색버튼 불필요·운영배포 1858742) →
projects/pfs/session-2026-06-22-estimate-enter-search.md(pfs-session-2026-06-22-estimate-enter-search) - 2026-06-22 — 현장별 자재 적대검토 5라운드(~135 에이전트)로 ~35건 수정·운영반영(모달버튼 복구·신규현장 드롭다운/가구업체자동·저장 동시성·field_no 전파·백엔드 보안[DELETE/릴레이 인증·RESTX 직렬화]·인쇄·편집가드) + 도면 자동작성 파서 실가동(사이드카 세션로그인+requeue, 라인VIP draft conf0.82/0.85)·10분 자동 스케줄 + 입고일정 탭 상단탭바 유지(코디 직접·운영배포) →
projects/pfs/session-2026-06-22-matspec-hardening-parser-schedtab.md(pfs-session-2026-06-22-matspec-hardening-parser-schedtab) - 2026-06-22 — worklog 미연결 묶음 추정현장 자동연결(서버측 wlSimScore 포팅·POST /api/worklog/auto-link·🔗버튼·보수적 게이트[점수≥80·유일·커버리지≥0.5]·운영 8묶음 32항목 연결·롤백로그·코디 직접·운영배포 c054dd3) →
projects/pfs/session-2026-06-22-worklog-autolink.md(pfs-session-2026-06-22-worklog-autolink) - 2026-06-22 — 견적 추가건 '출력 포함' 토글 DB 영속(적대검토: 토글이 State만 바꿔 미저장→엑셀 항상 기본 포함. PUT /api/estimate/
/include-print 신설+토글 즉시호출·롤백. 테스트 풀E2E[엑셀시트 토글반영]·UI 200·운영 검증 PASS·운영배포 7a28611) → projects/pfs/session-2026-06-22-estimate-include-print-toggle.md(pfs-session-2026-06-22-estimate-include-print-toggle) - 2026-06-22 — worklog 2차: 맥락파악 매핑(서브에이전트 4분할·항목맥락[연락처·발췌]+현장후보 shortlist→업체·지역·active 판단)+진행중/대기중 현장 우선(auto-link 동점 active 해소)·26묶음 49항목 연결(154→128)·운영배포 31781ae →
projects/pfs/session-2026-06-22-worklog-context-mapping.md(pfs-session-2026-06-22-worklog-context-mapping) - 2026-06-24 — orderpaper '자재관리' 첫 탭 신설(발주서 정리와 같은 DB값 순수 테이블·삼중정렬[자재분류/입고일↓/발주서↑]·블록토글·최근1개월/검색3개월·날짜 RFC1123 파서교정) + 재고량 RDS 영속(stock 컬럼·PATCH /api/orderpaper/
/stock·실 HTTP e2e PASS·코디 직접·테스트배포, 운영 미배포) → projects/pfs/session-2026-06-24-orderpaper-material-mgmt-tab.md(pfs-session-2026-06-24-orderpaper-material-mgmt-tab) - 2026-06-24 — orderpaper 자재관리탭 마감 3건 + 운영배포(가로폭 풀폭 확장[op-mm-active로 .op-wrap 1180px 해제]·비고 시작기호 ● 삭제·블록모드 자재토글 활성[rows() 필터 블록무관 S.mat 적용]; 운영 첫 배포라 운영 DB stock 선행 ALTER 후 deploy-live f8c1905·운영 Playwright PASS) →
projects/pfs/session-2026-06-24-orderpaper-material-mgmt-finalize.md(pfs-session-2026-06-24-orderpaper-material-mgmt-finalize) - 2026-06-24 — orderpaper 재고관리 엑셀→운영 재고량 시드 + 동기화 신규항목 발주량 복사(엑셀 RawData '남은수량'을 현장+자재코드+발주량 맥락매핑[코드폴백·최근주문건]으로 운영 187행 기입·미매칭0·신규생성없음; sync/upload INSERT에 stock=qty·재동기화 보존[로컬 사이드카라 웹배포 불필요]; 운영 Playwright+테스트 합성행 PASS·master dede794) →
projects/pfs/session-2026-06-24-orderpaper-stock-seed-and-sync.md(pfs-session-2026-06-24-orderpaper-stock-seed-and-sync) - 2026-06-25 — 도어발주서 추가건5 견적 등록(포인 20p→부모711 추가5=견적720·10줄·유상만·GROUP1줄/부품접음·'전시부스 가림판' 숫자접두없는 독립행 수동포함) + 견적 수량/단가 버그 루트픽스(메인행 수량 항상 편집가능·단가수정 시 .qty-cell 부재로 수량 1 덮어쓰던 버그 가드·금액=단가×수량; master bbe3cbb→deploy-live b6d1ee8 운영배포·테스트 Playwright PASS) →
projects/pfs/session-2026-06-25-estimate-add5-and-qty-price-bugfix.md(pfs-session-2026-06-25-estimate-add5-and-qty-price-bugfix) - 2026-06-25 — field/worklog 전체펼침/접기 토글 + 기본 2개월 기간제한(HAVING MAX(work_date))·인라인 전체검색(work_name/excerpt/note/site_name 4컬럼 LIKE)·기간 직접설정(최대1년 클램프 프론트+서버); 미연결(field_no NULL)도 기본/검색 포함 확인(운영 실측 146중123·70중60); master f5c9aa2→deploy-live 1c11aaf 운영배포·API E2E PASS →
projects/pfs/session-2026-06-25-worklog-fold-period-search.md(pfs-session-2026-06-25-worklog-fold-period-search) - 2026-06-26 — 업체 휴가일정 사이드메뉴(menu_catalog company_vacation·display_order900·ensure_vacation_menu 멱등시드)+신규 페이지 /vacation(3컬럼 인라인테이블·업체 company 드롭다운·날짜 input type=date·빈행추가/자동저장/삭제); 신규 모듈 api/pfs/vacation·테이블 company_vacation(nullable·ensure_table 멱등); 버그2(빈행 502 NOT NULL→nullable, 날짜 %Y-%m-%d 리터럴→param없는 쿼리 % 단일); master 5f12f82/e309117/3eb2c60→deploy-live 8bb1f56 운영배포·테스트+운영 curl E2E PASS →
projects/pfs/session-2026-06-26-vacation-menu-page.md(pfs-session-2026-06-26-vacation-menu-page) - 2026-07-07 — orderpaper 자재관리 탭 기능4(행삭제=숨김·품명/규격 편집·발주량 숫자+단위컬럼·15TT→15T·히스토리 아이콘 이동) + orderpaper_no 재번호(1..1500, 백업+offset 2패스, 동기화 ON DUPLICATE AUTO_INCREMENT 낭비 근본수정) + 성능 3연타 근본해결(대형테이블: ①삭제 시 전체 innerHTML 재빌드 제거 ②폼요소 2241개 지연렌더 ③table-layout auto→fixed; 운영 사용자크롬 실측으로 원인확정) → 운영배포(75b8ff0→93dc5f5, 승인 8건) →
projects/pfs/session-2026-07-07-orderpaper-mm-features-renumber-perf.md(pfs-session-2026-07-07-orderpaper-mm-features-renumber-perf) - 2026-07-10 — 업체 휴가일정 우측 2주 타임라인(vacation.html 단일 파일·백엔드 변경0·VAC_ROWS 재사용); flex 2단(좌 표/우 타임라인, 둘 다 축소 허용)·CSS grid 14칸+absolute 막대·월요일 정렬 창·주말/오늘 하이라이트·이전주/오늘/다음주 이동·창 걸침 cut-l/cut-r; 정렬=start↑→end↑→업체명 가나다순(빠른 휴가 우선·같은 기간 자동 인접); 검증=노드 하니스 11항목+로컬 스텁 렌더 육안+SSM 마커/HEAD/200; master ce29eb0·f8de989→deploy-live 9c1efc9·1abdadd 운영배포(⚠uwsgi 재시작 누락 재발→SSM restart) →
projects/pfs/session-2026-07-10-vacation-timeline.md(pfs-session-2026-07-10-vacation-timeline) - 2026-07-20 — 발주서 자재관리 품명칸에 규격이 뜨던 버그 운영수정(근본=orderpaper.item_name_user에 규격조각 저장돼 COALESCE로 원본 품명 덮음·코드버그 아닌 레거시데이터, 운영 RDS 1543/1544/1545 item_name_user=NULL·안전가드검증; 328/329 동일증상 미처리 대기) + handoff 완료이력 59항목 archive 이관(118KB→25KB) →
projects/pfs/session-2026-07-20-orderpaper-itemname-fix-and-handoff-cleanup.md(pfs-session-2026-07-20-orderpaper-itemname-fix-and-handoff-cleanup) - 2026-07-23 — 월마감 기능 신규(/estimate/monthly-close: 월×거래처 마감표 편집·견적 자동수집·검증 배지(가족합)·제출용 엑셀, 넥서스만 시공비 별도 construction_yn) + patch41 테이블 2종·메뉴46 + 26년 1~7월 마감 15건 테스트 시딩(72행 중 70행 견적 연결·백필 70건·기존 3건 업데이트)·엑셀 1원 단위 일치 검증; master dae788e→34ab1c3(5커밋), 운영배포 대기 →
projects/pfs/session-2026-07-23-monthly-close.md(pfs-session-2026-07-23-monthly-close) - 2026-07-23 — 자재관리 탭에서 안 보이던 보드 3건 원인규명·운영복원(용두동 KAEX7-SR=수동삭제 4행 remove_yn 복원 / 의정부 7201-SKE·MND40ED=원본 엑셀 오엠씨 탭 날짜 미기입→2026-01-02 기본값→3개월 창 밖으로 숨음); all-items에 regist_date 추가 + passBase 예외(등록일 대비 120일 이상 과거=오기입, 260행→39행으로 한정); master d35976f→31e2278, deploy-live cherry-pick 34cfbbf→28a1f50 운영배포·테스트/운영 all-items E2E PASS; 같은 증상 10블록/7현장 확인 →
projects/pfs/session-2026-07-23-orderpaper-mm-hidden-boards.md(pfs-session-2026-07-23-orderpaper-mm-hidden-boards) - 2026-07-27 — 테스트↔운영 미반영 커밋 산출(원시 89건 → patch-id
--cherry-pick필터 22건 → 실제 코드차이 20건, 운영이 merge 아닌 cherry-pick 이력이라 해시 전부 다름) + C·D·E만 선별 운영배포(merge 불가 → 파일단위git checkout origin/master -- <files>포워드 반영, 위험 낮은 순 E→C→D 3커밋·push 1회):6fe4e38(ssm_run aws 복구+택배 마이그 스크립트)7b916e8(품명0 제외·복사본 노이즈·stock 숫자부)8ca0389(자재관리 헤더 가운데정렬, css v20260715d); 검증=자체 14케이스 PASS + SSM 실측(운영 HEAD 일치·uwsgi active·/login 200·css 서빙); 남은 미반영=A 화물앱 3건·B 월마감 5건(patch41 선행); devplanpfs.html신설(미반영 커밋 관리표·체크리스트·지시문 복사, E2E PASS) →projects/pfs/session-2026-07-27-selective-deploy-cde.md(pfs-session-2026-07-27-selective-deploy-cde) - 2026-07-27 — field/worklog 노출기간 2주 제한 운영배포(페페: 페이지 로드 버벅임 → 최근 2주만·나머지 숨김·일자필터로 과거 2주창 별도조회·검색도 창 안): 노출창 단일출처
worklog_service.worklog_window()(미지정=오늘-13~상한없음 / 지정=그날+14일 배타 / 1년 하한 클램프), 기간게이트 HAVING MAX(work_date)→WHERE 창으로 교체(HAVING은 집계 후라 카드 건수에 창 밖 과거가 섞여 "2주만 표시" 불성립), 같은 창을 items·status-bulk·owners에도 적용해 카드건수=펼친목록=일괄변경범위 일치, 검색은 전체기간 폐지; ⚠함정=work_date에 미래 '예정' 항목 10건(전부 진행중/대기) 존재 → 기본창 상한 두면 예정작업 증발, 상한은 사용자가 과거날짜 지정 시만; master ed2ea6a→deploy-live 750fdad(worklog 5파일 포워드, A·B 미반영 유지); 검증=자체 7항목 PASS + 운영 실측 묶음 702→252(64%↓)·항목 1674→565·최신작업 07-29(예정 유지) →projects/pfs/session-2026-07-27-worklog-2week-window.md(pfs-session-2026-07-27-worklog-2week-window) - 2026-07-28 — 생산 메모(/field/list 모달) 기존/신규 2창 → 단일 입력창 통합 운영배포(페페 QA 리포트 1건): textarea 2개(readonly current + new) → 1개 field-memo-content, 모달 열면 저장본 그대로 주입·편집·저장, 라벨=메모 내용+(최종 저장 일시); 빈값은 차단 대신 confirm(통합창에선 비우고 저장=삭제 의도); 서버 API/DAO 무변경(previous 밀어내기 유지); ⚠지시문 "자동저장"은 기존 저장동작 유지로 해석(pfs는 견적 autosave를 Patch #21로 전면폐지·재도입=위험작업); 부작용=저장 안 하고 닫으면 편집분 소실(경고 미구현); 2차 지시(같은 날)=저장 안내 alert 폐기+저장 성공 시 modal(hide) 자동 닫힘(실패 시엔 모달 유지, 빈값 confirm은 삭제가드라 존치); master 6e647fe→deploy-live 7c76774 / master 70475a0→deploy-live 8bb6fd9(둘 다 파일 1개 포워드 반영, 사전 diff가 해당 커밋 변경분과 일치하는지로 A·B 미포함 확인); 검증=테스트 13항목 PASS(라운드트립·previous 보존·모달 닫힘·alert 없음·재오픈 저장본·원복)+운영 읽기 9항목 PASS →
projects/pfs/session-2026-07-28-field-memo-modal-merge.md(pfs-session-2026-07-28-field-memo-modal-merge) - 2026-07-28 — 현장 내용 = 카톡관리(1탭) + 통화관리(2탭) 분리 운영배포(페페: "카톡관리를 field/worklog 메인페이지로, 기존 페이지를 탭으로 나눠 첫번째 탭 / worklog는 통화관리 탭 2번째·통화 수집분만 / 이번주 월요일부터 기록만 현장별 그룹화·월요일 이전은 숨김이력 / 야간에 서브에이전트로 현장매핑 반복"): 1탭=신규
api/pfs/kakao_board(미러kakao_board+ 웹 편집 명령 큐kakao_board_op) — 원본 board.md는 사무실 PC에 있고 EC2가 거기로 못 들어가므로 방향을 뒤집어 데몬이 push·pull·적용·ack(폰 조작 주체는 여전히 데몬 하나, 웹은 「의도」만 넘긴다), 화면에 반영 대기 n건·실패 사유 노출; 2탭=_source_clause()(source='call')를 조회·집계·묶음변경 전 경로에 적용해 카드건수=목록=일괄변경 범위 일치; 노출창 최근2주→이번주 월요일부터(week_start())+scope=hidden(월요일 이전 1년, 배타상한이 기본창 시작과 맞물려 경계 누락·중복 없음); 야간 02:00talklog/server/night_worklog.py=전사·분류·적재→규칙 auto-link→남은 미연결만 claude 서브에이전트가 pfs 현장과 매칭(conf≥0.8·입력에 없는 현장명/번호 폐기)→가구KBpractice/ops_*_calls.md적립; ⚠api/config.py는 브랜치 간 통째 포워드 금지(미배포 monthly_close가 딸려와 운영 임포트 사망 — 이 파일만 2블록 직접 추가) ⚠숨김이력 682장에서 전체펼침 XHR 폭주 502→loadItems큐(동시 6) ⚠감시 데몬은 상승권한이라 코디 재시작 불가 → 1분 예약작업PFS-KakaoBoard-Sync를 예비 경로로(싱글턴 락 47312); master 028fd6a→deploy-live 9e3a049, 502수정 master dd76774→deploy-live a9036c3, poin-agent 39726f9, talklog 1440777; 검증=자체18+로컬7+pfs-test E2E 8+운영 Playwright(카톡 4방 85항목·이번주 2026-07-27~·숨김이력 682현장·카톡배지 0/통화배지 1211·콘솔오류 0)+운영 무해 왕복 1건(같은 본문 되쓰기→40초 내 완료, board.md 해시 불변) →projects/pfs/session-2026-07-28-worklog-tabs-kakao-board.md(pfs-session-2026-07-28-worklog-tabs-kakao-board) - 2026-07-29 — AL설정(원부자재발주서.xlsx 「설정」 탭) 관리 페이지 CRUD + 발주서 헤더 컴팩트화 운영배포(페페: 설정탭을 관리페이지로 CRUD / AL발주서에 접속버튼 / 새 발주서 작업 중에도 추가·수정 / 운영배포 + 추가지시 업체정보 란 컴팩트화): 지시문 첫 경로
부자재 발주서 일지.xlsm은 시트가 주문조회·RawData뿐이라 페페가원부자재발주서.xlsx로 정정; 저장소를 정적 JSON 자산 → RDSal_profile(patch43)로 이전하고 JSON은 초기 시딩·「엑셀 원본 복구」 기준값으로만 존치(DAO ensure_tables가 비었을 때 1회 시딩 → 마이그 수동실행 불필요); 행 순서 sort_no = 엑셀 VLOOKUP 첫매치 순서라 중복 품명 2건은 위 행이 이기고 아래는 死행(NO칸 노랑 표시); 신규/field/al-profile(사이드바 미등록, 접근은 AL발주서 버튼 2곳), 저장은 화면 전체 1콜POST /api/al-orderpaper/profiles(서버가 soft delete→upsert); 작업 중 수정은 새 창 +window focus시 설정 재조회·전 행 재계산(모듈 전역 캐시는 uwsgi 워커별로 갈라져 폐지, 요청당 1회 profile_map 조회로 교체); 헤더는 업체 1곳당 1줄 placeholder + 접기 토글(폼 106px, 그리드 시작 262→195px); 🔴버그=save_bulk가 INSERT 뒤 soft delete를 돌려 신규행이 같은 트랜잭션에서 즉시 삭제(응답 saved:50인데 조회 49 = 조용한 실패) → 삭제를 INSERT보다 먼저 + UPDATE에 remove_yn='0'; master f99e739→d38661e→6f228b9, deploy-live a0faf03; 검증=엑셀↔시딩 실제불일치 0(공란 50칸 0 정규화뿐)+테스트 CRUD E2E 16항목+UI Playwright 테스트18/운영18(콘솔오류 0)+운영 SSM 실측(al_profile 49행 시딩) →projects/pfs/session-2026-07-29-al-profile-crud.md(pfs-session-2026-07-29-al-profile-crud) - 2026-07-29 — AL발주서 QA 8건(페페 QA 리포트,
/field/al-orderpaper): #1 인쇄가 「AL업체 제목 아래 프레임 굵은 선만」 찍히던 것 =@media print의body *{visibility:hidden}토글이 모달의transform+max-height:92vh+overflow:auto에 걸려 인쇄 레이아웃이 잘린 것 → 인쇄 대상만 담은 iframe 문서로 분리(printSheets()), 부수로 양식 헤더 colspan 합이 본문보다 1 커서 우측에 빈 컬럼이 남던 것도 정정(n-3→n-4); #2 업체 다중등록(그릴링 1문항 → 페페 선택 = 헤더에 여러 줄 + 그리드 컬럼에서 선택) — 헤더+AL업체/+유리업체행 추가, 그리드에AL업체·유리업체select(빈칸=첫 업체로 일괄), 미리보기·엑셀은 업체마다 발주서 1장(블록 통째 배정, 한 블록에 두 업체 혼재 금지), 저장=al_orderpaper.vendorsJSON +al_orderpaper_item.al_vendor/glass_vendor(patch44, DAO ensure_tables가 멱등 ALTER), 첫 업체는 기존 단일컬럼에 유지해 목록·검색·구 페이로드 무손상; #3 계산 브레이크다운#94a3b8→#333(블랙 80%) + 폰트 블랙 70%+ 를 pfs 기본 지침으로projects/pfs/rules.md신설·기록; #4 계산셀font-weight:700→400(색상 유지); #5 엑셀 빈블록을 print_area 밖으로 미루지 않고 행 삭제(_trim_blocks, AL 180→20행), 부수로_fill_label_row_addr조기 return 탓에 입고처가 첫 블록에만 채워지던 것(2장부터 공란) 수정; #6<datalist>→ 자체 인라인 드롭리스트(attachCombo, 부분일치 + Enter=강조행 확정); #7 업체행 CSS grid(display:contents)로 5컬럼 왼쪽 라인 정렬 + 담당자·전화·팩스 폭 오토(031-355-9705(내선206)잘림 발견해 확대 적용); #8 그리드width:max-content; min-width:100%(지정폭=하한 → 눌려서 잘리던 컬럼이 늘어남), 품명 150→175px·목대/유리 100→124px; ⚠운영 미배포 — 지시문에 「운영 배포」 문구 없음(deploy-live 절대 규칙); masterb69d325→f6bcfb2→6f9732c(테스트 8001 자동배포); 검증=엑셀 생성기 자체검사 + 테스트 E2E 18항목 + UI Playwright 27항목(콘솔오류 0) →projects/pfs/session-2026-07-29-al-orderpaper-qa8.md(pfs-session-2026-07-29-al-orderpaper-qa8) - 2026-07-29 — 미반영 A·B 그룹 운영배포(화물앱 배차 3건 · 월마감 5건)(페페: "미배포건이 있다. A,B 그룹 먼저 운영배포한다"): 배포 경계는 커밋 수가 아니라 파일 diff 37개로 판정(07-27 파일단위 포워드 탓에 patch-id 비교는 이미 반영된 것도 28건으로 잡힘) → A 8파일·B 14파일·AL 15파일(범위 밖)로 분리; 공유 파일 2개 사전확인이 핵심 = api/config.py 미반영 diff는 월마감 2줄뿐(AL은 이미 반영), common/database/mysql_util.py는 A의 execute_id뿐 → 통째 포워드해도 AL 미유입(시드의 "config.py 통째 포워드 금지" 경고는 monthly_close가 미배포이던 시절 조건이라 이번엔 반대로 뒤집힘 — 경고를 기계 적용 말고 매번 diff 확인); DB 선행 = monthly_close_seed.py의 ENV_PATH만 pfs-live.env로 SSM 실행(BEFORE 스냅샷 tables:[] / menu:None 확인 후) → monthly_close·monthly_close_item 생성 + menu_catalog menu_no=46; 권한은 has_menu_permission이 자사에 명시 row 없으면 기본 허용이라 추가작업 불요(user_permission 83행 중 월마감 0행); 배포 = deploy-live 83540c8(A) + 70ba185(B) 2커밋·push 1회, 그룹마다 git diff --cached --stat origin/master가 비는지 확인 후 커밋 + py_compile 10파일; ⚠git reset --hard가 위험작업 훅에 걸렸으나(RISK-20260729-YJHQ) 로컬 deploy-live가 origin과 0/0이라 애초에 불필요했다(막히면 쪼개기 전에 필요성부터 판단); 검증=운영 HEAD 70ba185·서비스 active·/login 200·/estimate/monthly-close 200·/api/monthly-close 200·/api/dispatch 405(GET 미지원=등록됨)·execute_id 반영·잔여 diff는 AL 15파일뿐; 로그의 Table already exists(1050)는 ensure_tables 매회 실행 설계 탓 무해, 함께 찍히는 pymysql "Already closed"(del)는 기존 구조 이슈로 code-qa platform-core 소관; 안 한 것 = 마감 데이터 시딩(운영 견적 기준 재판단 필요·별건)·D005 배차사진 경로 버그(페페 "배포만, 버그는 P0에서") →
projects/pfs/session-2026-07-29-deploy-ab-freight-monthlyclose.md(pfs-session-2026-07-29-deploy-ab-freight-monthlyclose) - 2026-07-30 — 신영 광주 챔피언스시티 MH 견적서 운영등록(본건 740 · 추가1 741)(페페: NAS 견적서 xlsx를 운영서버 견적서 등록 / 본건 견적 생성 후에 추가건:추가1 항목으로 / 현장은 id 1973 / 운영배포 승인): 입력이 도어발주서 xlsm이 아니라 견적서 xlsx(단가=고객 확정가)라 기존 스킬 경로가 안 맞아 시트부터 재판독 — 단일 시트
추가1= p1 요약블록(추가1 1,027,000 + 운임 150,000 = 1,177,000) + p2 상세블록(섹션헤더 2 + 품목 13줄 = 1,027,000); 🔑이 양식이 PFS 출력양식(estimate_print_service._build_money_sheet)의 요약+상세 블록과 1:1임을 확인(블록 45행 주기·본문 base+17부터 20행)하고 매핑을 추측하지 않고 렌더러 셀 주소에서 역산 — 요약행은A=현장명(site) C=항목명(=type_name), 상세행은A=품명 C=규격 I=단가로 컬럼이 다르다(초안이 A열에서 항목명을 읽어 '운임'이 '신영 광주 챔피언스시티 MH'로 잡혔다 → 수정); 등록 = 본건 740신영 광주 챔피언스시티 MH 견적서(빈 컨테이너 0원 — 이 파일에 본건 내용이 없고 NAS 견적 폴더 전량 검색에도 신영 광주 본건 견적서 파일이 이 1건뿐) → 추가건 741추가1(13줄, parent 740) →extra/bulk-save기타부가비운임 150,000 (신규자재 운임); 결정 3건 =type_name은 스킬 관례추가N-1대신 엑셀 p1 요약행 이름추가1(최근 선례 738도추가1단일 타입) · 운임은master.transportation_cost아닌estimate_extra_cost(transportation_cost는 출력 라벨이 '물류비' 고정이고 비고를 못 담아 원본 재현 불가, 월마감은 total_amount를 보므로 금액 영향 0) · 마진은 mastermargin_percent=0(수동 0%)+detailNULL(자동→마스터 추종) — master를 None(자동)으로 두면 재로드 시 넥서스 15.5%가 얹혀 견적가가 부풀려진다(도어발주서 스킬의 'master도 None' 규칙은 price=0 미정 등록 전용); 미수집 = 섹션헤더 2행(128타입 50-010 몸통재·84D타입 HS2661 몸통재) — PFS detail에 대응 필드가 없고 타입으로 쪼개면 p1 요약이 1→2줄로 바뀌어 이미 발송된 문서와 달라진다 /A74:B76병합(놀테 자재누락분 1품명 3규격)은 3줄 전개 + 품명 앵커 상속; NAS는 한글 공유명이라pfs\orderpaper-sync\_mount_nas.py(win32wnet) 경유·로컬 사본data_only=True; 검증 4단 ALL PASS = ①빌드 금액 3중 교차(품목합==p2 공급가액==p1 타입행 / +운임==p1 합계) + 행별 단가×수량 assert ②VERIFY=1사전조회(로그인 200·현장 1973=신영 광주/넥서스/MH·기존 본건 0건) ③등록 왕복GET /api/estimate/74113줄 전 항목 대조 불일치 0 +extra/list확인 ④GET /api/estimate/print/excel/740실제 다운로드(353,851B, 시트 종합/본건/추가1) → NAS 원본추가1시트와 셀 단위 대조 불일치 0; 기존 동작(내 등록 탓 아님, 선례 738 실측 동일) = 추가건 시트 요약행 A열 현장명 공백(select_sub_estimates가 field_name 미반환)·담당자는 업체 refer_man(고재형 이사) 표기; pfs 리포 코드 변경 0(데이터 등록만) → 커밋·배포 없음, 스크립트 =order-automation\build_and_register_shinyoung_add1.py(DRY/VERIFY/REGISTER 3모드) →projects/pfs/session-2026-07-30-shinyoung-add1-estimate.md(pfs-session-2026-07-30-shinyoung-add1-estimate) - 2026-08-04 — 카톡관리 저장 버튼 일괄 반영 + 게시글 호칭 규칙(신동승 차장: "항목 한개 한개 체크할때마다 바로 반영으로 넘어가서 딜레이로 인한 내용 누락 문제가 있다 / 행별 임시 하이라이트 + 저장 버튼으로 여러 행 한번에 / 운영배포", 작업 중 추가 = "카톡 게시글에서 나의 지칭을 절대 페페라고 하지마라, '신동승 차장'이라고 해라, 현재 게시된 글도 전량 수정"): 원인은 체크 한 건마다
/op등록 후kbLoad()로 목록 전체를 재렌더하던 것 — 그 왕복 사이 클릭이 사라진 DOM을 향해 조용히 날아갔다; 클릭을 전송이 아니라 표시로 바꿔KB_PEND{행키→명령}단일 출처에 담고 그 행만 다시 칠한다(재렌더 없음 = 유실 구간 자체 소멸), 같은 버튼 재클릭=해제, 「저장」이 신설POST /api/kakao-board/op/bulk로 전 행 일괄 전송, 저장 대기 중엔 30초 자동 새로고침 정지(작성 중 수정문이 쓸려나가면 같은 사고 재발), 저장 후 실패한 행만 표시로 남김; 서버는 단건add_op를 그대로 반복 호출해 검증·세션·읽기전용 게이트가 단건과 동일(새 신뢰경계 0)하고 실패분은{room_name,id,action,err}로 회신 — 🔑복원i=0함정: 식별자를id or i로 고르면 숨김이력 첫 줄(0)이 falsy라 빈 값이 되어 화면이 그 행을 못 잡는다 → None 판정 분리; 배포 중 회귀 1건 = 완료·취소 표시가 걸린 행에서 ✎ 편집기 취소 시kbPaint가 edit 분기가 아니라 본문 복원을 건너뛰어 textarea HTML이 남던 것(수정 표시가 아닌 모든 경우 원문 복귀로 교정, 실브라우저가 잡음); 게시글 호칭 = 원문 전수 grep 결과 실사용 1건(ivision/board.md이력[페페 지시]) →[신동승 차장 지시]로 고쳐 감시 데몬이 v16으로 카톡 실반영(19:27:05), 재발 차단은 모델이 화자를 그대로 받아쓰는 자리를 고쳐[운영자 지시 — devplan 댓글]→[신동승 차장 지시 — …]+ PROMPT 4-3/REBUILD_PROMPT 7에 "페페 금지" 명시(poin-agentc41e6fd), 화면 별칭kakao-rules.json페페 (1:1)→신동승 차장 (1:1)(gitignore 대상=로컬); ⚠감시 데몬은 상승권한이라 코디가 재시작 못 해 프롬프트 수정분은 다음 재시작부터 적용(그 전엔 새 이력에 재발 가능); 함정 3 = Edit 도구가 LF 템플릿을 CRLF로 바꿔 git diff가 1,527행 전체 리라이트로 부풀어 배포 경계 판정이 무의미해진다(커밋 전--ignore-all-space대조 후 LF 정규화) · push 직후 검증은 배포보다 빨라 옛 템플릿으로 돌아 FAIL 1건 오진 직전(검증 전 서빙 HTML에 새 문자열 확인) · 배포 경계는git diff --stat origin/deploy-live <작업직전커밋> -- <대상파일>이 비어야 내 변경분뿐(AL 15파일 유입 방지); 커밋 master9f9c7f3+9de058c→ deploy-liveabc5208(파일단위 포워드 4파일); 검증 = 자체검사 13항목 PASS(일괄·부분실패·복원 i=0·과다·게이트) + 실브라우저 23항목 ALL PASS × 테스트·운영 양쪽(체크 시 POST 0건·연속 클릭 3회 전부 반영·목록 미재렌더·콘솔 0), 고객 게시글 무접촉(저장은 없는 방으로만 호출), 검증 스크립트scripts/_kb_save_ui_check.py는.gitignore scripts/_*대상이라 로컬 보관 →projects/pfs/session-2026-08-04-kakao-board-batch-save.md(pfs-session-2026-08-04-kakao-board-batch-save) - 2026-08-27 — 배차 실입금액 요율 이력화 + 고시 변경 감시(페페: "산재보험료 계산은 주기적으로 변화할수 있다… 과거 데이타는 유지하고 신규 배차에만 적용 / 스케줄러를 코디CLI로만 걸어야 하나" → 앞 세션 인터럽트 재개, "추천안대로 3개 다 가고 미커밋 파일도 정리해. 운영배포 진행"): 🔑스케줄러 위치보다 과거 보존이 먼저 — 실입금액은 DB에 없고(
dispatch에freight_cost뿐) 화면이 매번 계산해서 요율 상수를 고치는 순간 과거 배차 표시금액까지 소급해 바뀐다 →DC_RATES[{from,rate,expense}]이력 배열 +rateFor(주문일)(DDL 0·백필 0, 최고참 이전 날짜는 폴백 = 확인 못 한 과거 고시를 추정해 넣지 않는다); 페페 확정 3건 = GitHub Actions schedule(미니PC 예약작업 20개+ 와 분리, EC2 cron 은 배포가 하드리셋이라 크론 스크립트가 리포 안이면 되돌아가고 밖이면 버전관리 밖으로 샌다) · 코드 내 요율 이력 배열 · 알림+자동 PR, 머지는 사람; 감시scripts/dc_rate_watch.py3층 = 달력 트리거(1.1·7.1 고정이라 안 깨짐)+구글뉴스 RSS+파싱실패 별도 문구(조용히 죽는 게 제일 위험), 연 2회짜리라 오탐<미탐; 🔑고시 원문 숫자는 자동으로 못 읽는다(moel·law.go.kr JS 렌더, 실수치는 hwp 첨부 안) → hwpx=zip 을 직접 열어 공고 2026-272호 화물차주 49.9% 유지(2026.7.1~2027.6.30) 대조 후from:20260701줄 추가(표시금액 무변); 짝함정 = 목록YYYYMMDDvs 모달YYYY-MM-DD두 형식 ·#dcOrderDate onchange없으면 날짜만 바꿀 때 옛 금액이 남는다; 검사 = node 가rateFor를 mock 3항목으로 화이트박스 검증 + python 은 요율표를 이중으로 안 적고 화면rateFor를 불러 기대값 생성; 검증 테스트 13/13·운영 13/13 ALL PASS(90,000→98,603 리팩터 전후 동일)·사이트맵 미반영 0; master45d1a89→deploy-live680088a; ⏳막힌 것 =.github/workflowsWrite 가 broker auto-deny(OPS_FILE_PATTERNS) + GitHub 시크릿 2개 + Actions PR 생성 권한 →projects/pfs/session-2026-08-27-dispatch-rate-history-watch.md(pfs-session-2026-08-27-dispatch-rate-history-watch) - 2026-08-27 — ipwatch: 사무실 공인IP 감시 · 운영 RDS 보안그룹 자동 반영(페페: "사무실PC에 감시워커 설치해서 그때그때 인터넷 연결이 바뀌면 공인IP에 맞춰서 적용되게. 작업결과는 텔레그램 보고"): 앞 사고(회선 변경 → 공인IP가 3306 화이트리스트 이탈 → 엑셀 ODBC 21.7초 타임아웃 = "엑셀이 안 열린다")를 사람이 두 번 안 겪게 자동화. 그릴링 3배치 9문항 확정 = 사무실PC 단독 · 5분 예약작업(pythonw·창없음) · 승인 없이 즉시 적용 + 사후 텔레그램; 기각안 = 미니PC 폴링(전원 의존)·승인 후 적용(그동안 엑셀 먹통)·ASN 대역 판정(복잡도만 증가)·사무실PC에 봇토큰 심기(tailnet SSH 릴레이로 대체). 🔑순서가 설계의 전부 — 새 IP 규칙 추가 → 3306 MySQL 핸드셰이크 실연결 검증 → 성공한 뒤에만 옛 규칙 삭제(반대면 자기 접속을 먼저 끊는다, 코덱스 지적 11건 중 최대). 노출 한도 5겹 = 자동 규칙 항상 1줄(교체식)·Description 태그 소유 격리(
PEPE phone WAN·EC2 불가침)·전용 IAMipwatch-officeSG 1개 리소스 제한 +AWS_SHARED_CREDENTIALS_FILE덮어써poinadmin폴백 원천 차단·하루 10회 상한 후 자가 halt·매 변경 텔레그램(실패 시 큐 재발송). 기존 수동 규칙은modify-security-group-rules로 설명만 바꿔 이관(삭제·재추가 없음 = 끊기는 창 0). 🔑함정 = 중첩 SSH+파이프는 Session 0 에서hostname조차 타임아웃(코드 버그 아닌 하네스 아티팩트 → 판정은 예약작업 실행으로) · 한글은 ssh argv 로 못 넘겨 base64 릴레이 ·set PYTHONUTF8=1&&앞 공백 금지.authorize/revoke-security-group-ingress가 brokerAWS_HARD_DENY라RISK_APPROVAL_POLICY.md에 예외 1건 명문화. 검증 5건 ALL PASS(selftest·사무실PC 실행·무중단 E2E 더미203.0.113.7/32자가 회수·알림 경로·예약작업LastTaskResult 0). 산출 =C:\dev\tools\ipwatch\(원본) → 사무실PCC:\pfs-ipwatch\(ACL 잠금) · devplanipwatch.html허브 등록 →projects/pfs/session-2026-08-27-ipwatch.md(pfs-session-2026-08-27-ipwatch) - 2026-09-04 — 넥서스→한샘 자동전환 재검토 + 신영 광주 추가2·추가3 한샘 전용 견적 작성(운영 4·5) →
projects/pfs/session-2026-09-04-hansem-shinyoung-add23.md(pfs-session-2026-09-04-hansem-shinyoung-add23) - 2026-09-04 — 한샘 양식 교체(사업자등록증 포인 것) + 포인↔한샘 단가표 매칭표 페이지 →
projects/pfs/session-2026-09-04-hansem-form-swap-price-map.md(pfs-session-2026-09-04-hansem-form-swap-price-map) - 2026-09-14 — AL발주서 엑셀 산출물 실물 대조 개선([페페] "pfs al발주서 현재 엑셀 작성본 확인해서 개선 사항 연구하고 반영해라"): NAS 실물 26.9월 4건(봉적·이지웨이·에넥스 금호 구미 형곡3차·한샘 학동)을 받아 PFS 생성기와 대조 → 갭 5건 반영. ①날짜칸에 문자열을 넣어 양식 서식
mm" ."dd(aaa)가 안 먹던 것 →date(Excel COM 실측'09 .09(수)'= 실물과 문자 단위 동일), 연도칸 int ②매수칸 템플릿 수식=ROUNDUP(ROW()/20,0)이 블록주기 29 인 유리시트에서 3장째부터 1,2,4,5,7 로 튀던 것(원본 엑셀 버그 상속, 실물 4건 전부 같은 값) → 장 번호를 값으로 ③블록마다 page break — 없으면 AL 자동나눔이 40행이라 한 페이지에 발주서 두 장이 찍혀 수신처 다른 업체 것이 같은 팩스로 나간다(화면 인쇄는 이미 장 단위였다) ④유리만/AL만 발주 시 반대쪽 빈 발주서 시트 제거 ⑤양식 「타 입」 칸(type_note) 신규 — 실물은84A,59:주방3,일반2처럼 적어 보내는데 PFS 만 비웠다; 🔴새 함정 = openpyxl 로 시트를 지우면workbookView.firstSheet=1이 남아 엑셀이 파일을 아예 못 연다(openpyxl·zip 구조로는 정상이라 파일만 봐선 안 걸린다, 판정 = Excel COM 열기) ·fitToPage=True라도fitToHeight=0이면 수동 page break 는 먹는다(코덱스 답과 반대, 실측 3블록 → 3페이지) · 브레이크 id 는delete_rows를 안 따라온다; 타입칸 UI 는 web-designer 진단대로 별도 줄(1366px 에서 첫 줄이 이미 경계) +.w220재사용으로 새 CSS 0줄; 커밋 master7c81ac8·8500344→ 운영배포 완료(페페 채팅 승인)deploy-live2357d07·cb84927— 배포경계 diff 0 · 체리픽 후 blob 6/6 동일 · 마커 8/8 · 서버 openpyxl 3.0.10 으로_demo()PASS · 운영 실데이터 1건(금강 부산에코)으로 실제 엑셀 생성(시트2·브레이크 [20]/[29]·매수 [1,2]) · uwsgi 04:19:27 재기동 · health 200 · DB =type_noteADD COLUMN 만(운영·테스트) · 사이트맵 그룹8 페이지58 미반영1(/field/worklog, 남의 건) · devplan PENDING 에 낡아 있던 07-29 AL QA 4건도 정리(마커가 이미 deploy-live 에 있다) · ⚠deploy-live는 별도 worktreeC:\dev\pfs_deploy_wt— 본 리포 checkout 은 거부된다 · ⏳화면 육안·로그인 500 은 남았다(운영 AL발주서 데이터는 1건뿐) →projects/pfs/session-2026-09-14-al-orderpaper-excel.md(pfs-session-2026-09-14-al-orderpaper-excel) - 2026-09-15 — 부자재 발주서 신규
/field/sub-orderpaper([페페] "Pfs에 부자재 발주서 기능 추가. 기존 엑셀 발주서 및 자재관리 페이지 확인해서 추천안으로 구성. 입력시에는 해당 현장 업체를 사용자가 섞어서 입력하고, 추후 정렬로 정리할수 있다. 발주서는 업체별로 분리 출력 가능하게. 개별 출력 가능하게. 운영배포"): 부자재는 상류(작성·출력)가 통째로 비어 있었다 — NAS원부자재발주서.xlsx「발주서」 탭을 탭 복제→업체명 rename→수기로 채우던 것을 웹으로. 하류(orderpaper발주추적)는 그대로 두고 새 테이블(sub_orderpaper/_item)로 갔다(item_key=sha1(...)가 NAS 파일과 묶여 있어 웹 행을 끼우면 다음 동기화가 전 행을 새 행으로 만든다). 입력순seq를 저장하고 「업체별 정렬」은 화면 표시만 바꾼다 →업체별 정렬↔입력순으로토글로 되돌아간다; 출력은 상단 「엑셀 전체 다운로드」(업체마다 시트 1장) + 그룹 머리행 「이 업체만 출력」, 둘이 셀 단위로 일치함을 검사로 박았다; 품명·규격 자동완성은 과거 부자재 이력(orderpaper파생 S + 자기 저장분); 목록 UI 는droplist.js한 벌 + 이 화면에서만 13px 덮기; 엑셀에서 긁어온 탭·개행 붙여넣기 분배. 🔴새 함정 2건 = ①양식 24행은 캡노트 행(C24:H24병합)이라 규격·수량을 쓰면 예외 없이 사라진다 → 품목행[8..23]+[25]=17행, «내 자체검사가 품명(B열)만 봐서 통과했었다»(Fable 계획이 잡아냄) ②pymysql 집계값DECIMAL을jsonify가 못 싸 500 → 집계는ORDER BY에만; 29행 블록 복제는 채우기 전에(병합 뒤엔 MergedCell read-only) ·copy_worksheet는 인쇄설정·page break 를 안 옮긴다 · 입고처가 바뀌면 블록을 나눈다(26행이 블록당 한 칸) · 메뉴행 없으면 일반 계정만 403. 검증 = 테스트 API E2E 21항목 ALL PASS + 화면 Playwright 16항목 ALL PASS(콘솔 에러 0); 배포 masterdddfdc3→7867849→cca900f→ 운영caf0357(선별 포워드 · blob 5/5 일치 ·field_controller.py는 다른 세션 worktray 라우트가 섞여 내 7줄만 수동 삽입); 뺀 것 = 화면 미리보기·인쇄·팩스(엑셀 열어 인쇄), 입고 추적; ⏳페페 = 운영 육안 · intake-check 편입 여부 ·al-btn.green대비 3.75:1 전역 결정 →projects/pfs/session-2026-09-15-sub-orderpaper.md(pfs-session-2026-09-15-sub-orderpaper) - 2026-09-15 — 용산 나진 상가 네스팅 → 원부자재 발주서 + 경면코드 자동적용([페페] "pfs 용산 나진 상가 도어전용 네스팅 자료 결과 보고 엑셀 발주서 작성 진행해줘. 모드 LPM 보드이고 상원보드에서 생산한다 / 엣지샘플은 효산 제작 입고처 진영LDM / 피스마개 스티커도 효산 제작 입고처는 포인 / 엣지 발주서는 선재기업 / 보드 두께별 엣지 수량 50m 단위 올림 / 피스마개는 발주수량 대신 칼라별 보드 수량 / um 경면은 소프트엠보로 / 경면코드가 반영이 다 안됐다 — 컬러에 괄호친 부분 확인해서 경면코드로 적용시켜라 / 운영배포, 원부자재 폴더 9월에 저장"): 네스팅 job2(부재 127행·컬러 5종)에서 119행의 경면칸이 비어 있었다(사람이 다 칠 수 없다) → 컬러명 꼬리 괄호를 경면코드로 자동 유도(
finishFromColor,FINISH_ALIAS로 UM=소프트엠보), 빈칸일 때만 채우고 사람 값은 안 덮는다. 🔑채우는 지점이 하나로는 부족했다 — 붙여넣기(setupPaste)는 빈 행을 먼저 만들고 값을 나중에 박아서addPartRow로는 못 잡는다(web-designer 실측) → 행추가·붙여넣기·컬러편집 3곳. 🔴여유키 승격이 진짜 위험지점(promoteFinishSlot) — 경면이 그룹키에 들어가면 저장본의…|민자|양면여유 키가 고아가 돼 발주 98매가 75매로 조용히 준다. 덤 = 드롭리스트 「민자」를 고르면 규격이 「경면양면」·비고에 「(민자)」가 찍히던 잠복버그, 경면칸 폭 44→86px(부재표)·44→60px(패널),#parseStat12→13px. 발주서 = 상원보드(보드 21행/98매, 규격은 화면과 글자 단위로 같고 코드는 비고E0 (소프트엠보)) · 선재기업(엣지 12행/950m, 폭=두께+4mm→15·18T 22mm/25·30T 34mm, 9·12T·4.5T 제외, 컬러×두께 50m 올림) · 효산엘피엘(칼라샘플 5→진영LDM, 피스마개스티커 5→포인, 수량=칼라별 보드매수). 🔴엑셀 작성기 결함 2건 = 24행 캡노트에 품목을 쓰면 규격·수량이 예외 없이 사라진다(행번호 누적 → 슬롯 리스트 소비로 경로 제거) · 17건 초과 시 29행 블록 복제 + D26 입고처 수식 행보정. 검증 =_nesting_finishcode_check로컬 21/21·운영 25/27(기능 전항목·쓰기 0건) ·_nesting_colorpanel_check47/47 ·_droplist_side_check27/27 · 엑셀 39/39 · 운영 job2 재저장 후 되읽기(자동표시 0행·BOM 21행·발주 98매·여유 13건). masterd78dd4a→ 운영c7790d0· 사이트맵 그룹8/페이지60/미반영1(남의 건) · NAS2026현장\원부자재발주서\09월\한샘 용산 나진 상가 원부자재발주서.xlsx저장(왕복대조 일치) · devplanpfs-najin-wonbujae-order.html. ⏳페페 =40056512T 「경면」 1행 오타 여부 · 발주/입고일 · 엣지 두께별 12줄 vs 폭별 9줄 →projects/pfs/session-2026-09-15-najin-wonbujae-order.md(pfs-session-2026-09-15-najin-wonbujae-order) - 2026-09-16 — 학동매장 원부자재발주서 「피앤알」 탭 작성 → 인쇄 + 팩스 발송([페페] "원부자재발주서 : 학동매장 / 발주일 오늘 긴급 / 피앤알탭으로 발주서 작성 / 팩스까지 발송, 출력물 인쇄. 발주서 블록선택해서 선택영역 인쇄로 진행 / 미성형보드 MDF 25T 9자 3매·22T 9자 5매·18T 10자 2매 / 오엠씨 입고"); NAS
2026현장\원부자재발주서\09월\한샘 학동매장 원부자재발주서.xlsx에 「발주서」 탭 복제→「피앤알」 rename, C2 만 넣으면 업체시트 INDEX/MATCH 로 단축번호·참조·전화·팩스 자동충전(남태욱상무 / 032-815-1587 / 팩스 032-815-1589), 규격표기는 운영 orderpaper 학동매장 26.6.30 실적 그대로(25T MDF 4*9(2700)), 입고일=발주일 9.16(수)·비고E0, 긴급; 인쇄=선택영역 =PrintArea $A$1:$J$29(29행 1페이지 블록) 1부; 팩스 = SINDOH FAX 드라이버 팝업을 win32gui 로 조종해 코디가 끝까지 발송(uiautomation 은 그 창을 못 본다 · 컨트롤 ID 표 · WM_CHAR 한 글자씩 · 송부처 1건 검증 후 확인) → 팝업 즉시 닫힘·오류창 0·스풀 0; 🔴함정 3 = Bash=Session 0 라 Excel COM 붕괴(schtasks /IT + 절대경로 pythonw) · COM 날짜는 엑셀 시리얼 정수(datetime 은 KST+9 로 하루 밀린다) · NAS UNC 직접 열기 금지; ⏳기기 통신결과는 웹으로 못 읽는다(통신관리보고서 육안) →projects/pfs/session-2026-09-16-hakdong-pnr-order-fax.md(pfs-session-2026-09-16-hakdong-pnr-order-fax) - 2026-09-17 — 용산 나진 MH 도면(LL-F·UL-C) 배치탭 → 모델공간 통합본([페페] 26.9.16 「레이아웃에 작업을 해놔서 도저히 보기가 너무 어렵다 … 외부 참조한 벽체 라인 등이 나오게 해서 정상적인 탭으로」 + 26.9.17 「완료가 안된거 같다. 시드 복원하고 이어서」): 진단 = 시트 20여장이 배치탭 「PLAN」 한 장의 페이퍼공간에 1:30 으로 통째(모델공간 12·3 vs 페이퍼공간 16,021·6,665, 도곽 20·19, bbox 400만 단위), 벽체는 모델공간 xref 를 뷰포트 4개로만(LL-F 는 그 뷰포트가 Defpoint=비출력). 페페 선택 = 시트별 탭 분리가 아니라 모델공간 통합 1장 → EXPORTLAYOUT + -PURGE + 시트뭉치 ZOOM 저장 + 미리보기 PNG. 결과 = 15,997/6,643 엔티티(원본 페이퍼공간 그대로), 11.6MB/10.0MB(퍼지 전 166.8/38.5 — xref 원본 블록 정의가 90%), NAS
2026현장\진행중\9월\한샘 용산 나진 MH°917 도면 모델통합본\. 🔴UL-C 입면 xrefX-ref_PLAN_ULC_EL.dwg는 zip 에 없어 복구 불가(발신처 요청 = 페페 몫). 함정 = AutoCAD COM 은 Bash(Session 0)에서 새로 띄우는 것조차 안 된다(-2146959355 → schtasks /IT + 숨김 vbs) ·.vbs의set PYTHONUTF8=1 &&앞 공백이 파이썬 즉사 ·-EXPORTLAYOUT없음(FILEDIA=0 + LISP) · 큰 도면은 5~20분간 산출물이 0바이트 · 블록 내부 전수 크롤은 COM 왕복이라 수십 분(PNG 육안이 빠르다) · IsXRef=False 인데 경로만 남은 블록은 xref 아님. 절차는 스킬dwg-flatten으로 굳혔다(C:\dev ools\dwg-flatten\go.py한 줄) →projects/pfs/session-2026-09-17-najin-dwg-flatten.md(pfs-session-2026-09-17-najin-dwg-flatten) - 2026-09-21 — 견적서 목록 「추가건 엑셀」 — 도어발주서 xlsm → 추가건 견적 자동등록([페페] "Pfs 견적서 추가건 엑셀파일 → pfs 견적 양식 변환 스킬을 견적서 목록에 기능 버튼으로 추가해줘. 작업중, 작업 완료표시 필수. 예상작업시간도 게이지 표시"): 그릴링 6건 확정(도어발주서 xlsm · 행별 버튼 = 그 행이 곧 부모 · 바로 등록 · 동기+클라이언트 게이지 · 페이지 칸+중복경고 · 운영까지) 후 로컬
build_and_register*.py8벌을 서버 한 벌로 합쳐 화면에 붙였다. 신규 =door_order_parse.py(순수 파서, DB·세션 모름 → 단독 정답지 대조 가능) +door_order_import_service.py(부모 검증 → 페이지 중복검사 → payload →add_estimate직접 호출, HTTP 자기호출 안 한다) · 수정 =estimate_controller.py(GET/POST /api/estimate/<no>/door-order-importmultipart) +estimate_list_v2.html. DDL 0 · 새 테이블 0 · 새 라우트 파일 0. 게이지 3구간 = 업로드 0~40% 실측(XHRupload.progress) / 파싱·등록 40~95% 추정(파일크기 예상초, 「약 N초 남음(예상)」) / 응답 100% — 서버가 늦으면 95%에서 멈춘 채 기다리고(거짓 완료 금지) 실패는 그 시점 %에서 빨강으로 굳힌다, 처리 중 ✕·바깥클릭·ESC 차단,timeout:180000. 중복 장부 = 줄 비고p{페이지} / 사유(26.8.19 금강 형식) + 모달 프리플라이트. 🔑실측 발견 = 추가2 형 발주서는 U열이 통째로 비어 「유상만」으로 0줄 → 「유상만 / 페이지 전량」 토글 신설. 검증 = 로컬 34/34 · 테스트 E2E 30/30(DB 원상복구) · UI 실행 1회(콘솔오류 0) · 버튼 7개 전부 13px·줄바꿈 0 · 사이트맵 그룹8 페이지60. 정답지 = 실제 운영 등록 페이로드 5벌(add3 7/7·add4 8/8·add5 9/9·add6 5/5·금강 47/47) + 추가1 11/11·추가2 12/12 — 🔑골든 대조가 결함 4건을 잡았다(원본 셀 공백 2칸 ·좌날개/우날개누락 ·엣지파 픽스·기둥목안 접힘). 추가5 의 1줄 차이는 원본 개정 차이(그 줄이 지금은 무상, 품목이 p20→p23 이동)라 「설명된 예외」로 고정. 덤 = 테마style.css:2045가.btn-sm을 12px 로 덮어 기존 6버튼 전부 13px 하한 위반이던 부채를 표 스코프 1줄로 수리. master0e21dc0+9a73048→ 운영배포305f1ad완료([페페] 채팅 「운영 배포」 · 선별 포워드 cherry-pick · blob 4/4 일치·삭제 0·남의 코드 0 · 반영 15초 · 운영 읽기전용 8/8 쓰기 0건 · 운영 버튼 13px·줄바꿈 0·콘솔오류 0 · 사이트맵 미반영 13→1) · ⏳페페 = 운영에서 실제 발주서 육안 1회 · devplanpfs-door-order-import.html→projects/pfs/session-2026-09-21-door-order-import.md(pfs-session-2026-09-21-door-order-import) - 2026-09-22 — 네스팅 「서랍 자동계산기」(도어전용 탭)([페페] "도어전용에 서랍 자동계산기를 추가해줘 … 모달로 내용 입력 후 도어 부재 입력 테이블에 들어가게 제작해줘. 운영배포" + 같은 날 추가지시 "텐덤박스 바닥판·후판은 기성품 구매 안 하고 15T PB 지정 목재로 우리가 생산한다, 계산항목에 포함"): 외곽몸통 W·D·H(기본 600×470×450)·단수 + 자재두께 2벌 + 레일 3종 + 마감 2벌(「내부도 동일」 체크) + 마이다 좌우 날개·뒷판·갭을 넣으면 부재 목록이 나오고
addPartRow()로 부재표에 덧붙는다(같은 규격 수량 합산 1행). 🔑산출식 신설 0 —C:\dev\pncad\SPEC-DRAWER.md§3 정본(imos 134종·실부재 2,451행 역산, 편차 0)의 구현체drawerBox()를/production/pncad/schema.js에서 import 재사용(복제하면 편측갭 갱신이 화면까지 안 닿아 정본이 둘). 기준은 존 내경Wz = W−2×몸통두께−2×날개폭. 🆕텐덤 = 바닥판·후판 2종만, 가로는 마이다 폭 −103/−115, 후판 높이 소 65·대 142 고정규격(실발주 3건 8/8 편차 0) — 첫 조사의 「완제품이라 마이다만」은 오판, 페페 지시로 재조사해 정정. 확신 낮은 값(마이다 갭 3종·날개폭·뒷판 유무·서랍통 깊이/높이)은 전부 입력칸으로 빼고 자동값은 모달 안내로. 함정 = ESM 모듈 하나에 import 를 몰면 schema.js 404 에 컬러 자동완성까지 죽는다(별도 module 로 분리) · 두께↔MDF/PB 상충경고 회피(15T↑=PB·12T↓=MDF). 검증 =_nesting_drawer_calc_check.py로컬 61/61 · 테스트 68/68 · 운영 69/69(쓰기 0건) · 기존 네스팅 검사 5벌 회귀 0. master5bdd97d→ 운영배포a9c5d22(선별 포워드·blob 1/1) · 파일 1개(web/nesting/nesting.html) · 서버·DDL·사이트맵 변화 0 · ⏳[페페] 실무값 4개 + 육안 1회 · devplanpfs-nesting-drawer-calc.html→projects/pfs/session-2026-09-22-nesting-drawer-calc.md(pfs-session-2026-09-22-nesting-drawer-calc) - 2026-09-22 (2차) — 네스팅 서랍 계산기 보정([페페] "모든 값은 소수점이 들어가면 안된다 내림처리해서 정수 처리해야한다. 결방향 있는 파트도 있기 때문에 특히 서랍 측판, 전후판은 높이쪽 치수가 가로 재단쪽, 반대쪽을 세로재단으로 보고 세로결 지정해서 데이터를 가져온다. 운영배포"): 가로·세로
Math.floor(마이다 146.67→146, 두께는 자재 규격이라 예외) + 서랍측판·서랍전후판·텐덤후판을 높이→가로칸 / 나머지→세로칸 + 결방향 세로(바닥판류는 그대로 결무시, 몸통·마이다·날개는 원래부터 세로=높이라 무변경). 🔑정본drawerBox()는 설계 기준(l=길이·w=높이)이라 그대로 꽂으면 결이 반대로 박힌다 → 정본은 두고 화면에서 재단 기준으로 변환. 검사 골든 전량 뒤집기 + 「소수점 0개」 2항목 신설 → 로컬 65/65 · 테스트 72/72 · 운영 73/73. masterf5b2776→ 운영5faf806· ⚠테스트·운영 첫 시도 로그인 502(배포 직후 재기동 + 기록된 pfs-test 간헐 502) → 재시도 통과 →projects/pfs/session-2026-09-22-nesting-drawer-calc.md「2차」 절
handoff 5차 이관분 (2026-09-22, 페페 지시 「미결이라서 남긴다」 폐기 반영)
- 2026-06-19 — orderpaper 새 탭 '현장별 입고일정' 목업 10종 검토(v1 10스타일→v2 GPT 추천안→v3 개선판, QA helper 부착·1차 수정 7건, 테스트서버 정적 배포. 실 구현은 archive.md 별도 절) →
projects/pfs/session-2026-06-19-orderpaper-schedule-mockup.md(pfs-session-2026-06-19-orderpaper-schedule-mockup) - 2026-07-23 — pfs 미결 묶음(스티커1층배치·월마감15건시딩·AL발주서페이지신규·원부자재발주서 자동작성 파이프라인 연구·운영백업테이블정리·업체목록정렬+유사업종필터·사이드바현장기록접이식그룹·완료이력이관노트·C:\dev정리·AL자재구분·견적타입SSOT잔여2건·estimate2/3차·재료집계product테이블·견적705정리·네스팅그리드 미승인후보, 2026-06-20~08-10 여러 세션 소규모 미결 묶음) →
projects/pfs/session-2026-07-23-pfs-pending-batch.md(pfs-session-2026-07-23-pfs-pending-batch) - 2026-07-26 — 배차 「화물앱 접수」 연동(테스트 서버 전용, 차량19종·화물중량 자동, dispatch 8컬럼 ALTER, execute_id 근본수정. 이후 QA로 FREIGHT_ENABLED=false 게이트) →
projects/pfs/session-2026-07-26-dispatch-freight-app.md(pfs-session-2026-07-26-dispatch-freight-app) - 2026-08-19 — intake-check 자재 입고 체크 현황(카톡 「포인01」 명세서 사진→판독→orderpaper 매칭, 26.8.10 가동 중, 정밀도 100%·재현율 46.7%, 루트 NOW 이관분) →
projects/pfs/session-2026-08-19-intake-check-status.md(pfs-session-2026-08-19-intake-check-status) - 2026-08-19 — 월마감 항목 ↔ 견적서 매핑 실태 조사(monthly_close_item.estimate_no·field_no 링크 실측, 추가견적 번호 미보존, 코드 변경 없음) →
projects/pfs/session-2026-08-19-monthly-close-estimate-mapping.md(pfs-session-2026-08-19-monthly-close-estimate-mapping) - 2026-09-01 — 넥서스 7월마감 업금액 정산 대기(장동욱 차장 통화, 행신동 임가공비·시공비·일레본 쟁점 3건, 장 차장 회신 대기) →
projects/pfs/session-2026-09-01-nexus-july-settlement.md(pfs-session-2026-09-01-nexus-july-settlement) - 2026-09-04 — 스테이징 슬롯(8002) 신설 = 운영 시뮬레이션 배포 리허설(deploy-live→스테이징→운영 2단계 파이프라인, Docker MySQL 3308, /api/health 신설, 리허설 PASS/FAIL 양쪽 통과) →
projects/pfs/session-2026-09-04-staging-slot-8002.md(pfs-session-2026-09-04-staging-slot-8002) - 2026-09-04 — 포인↔한샘 매칭표 재정리 지시(「길이단가 vs 길이단가+추가금액 별도」로 재정리, 페페 지시 미착수) →
projects/pfs/session-2026-09-04-hansem-price-map-redo.md(pfs-session-2026-09-04-hansem-price-map-redo) - 2026-09-15 — 용산 나진 MH/상가 컬러·사양 대조(DWG 2본↔최종반영 대조 + 네스팅↔PDF 사양서 대조, HS2662LS/HS2684LS/HS2685LS 코드 검증보고, 조치는 페페 판단) →
projects/pfs/session-2026-09-15-najin-color-check.md(pfs-session-2026-09-15-najin-color-check) - 2026-09-17 — 견적서 「미등록 현장 임시기재 → 현장 진행」(임시견적 라디오→현장 진행 전환, temp_site_name/temp_company_member_no, patch52+53, 운영배포 e860647+QA 2건) →
projects/pfs/session-2026-09-17-estimate-temp-site.md(pfs-session-2026-09-17-estimate-temp-site) - 2026-09-23 — 거래처 담당자 이메일 칸(company_member.email, 운영 ac73ca1) + 한샘 담당자 3명 이메일 운영 입력 [종결] →
projects/pfs/session-2026-09-23-member-email.md(pfs-session-2026-09-23-member-email) - 2026-09-23 — 발주서 dedupe 경계만 Jev noul(적용·현재 결과 동일) + intake-check 명세서 대조 Jev choice 섀도(28/28 정답) [분배 D2] →
projects/pfs/session-2026-09-23-orderpaper-jev.md(pfs-session-2026-09-23-orderpaper-jev) - 2026-09-23 — worklog 추정현장 Jev 폴백 오프라인 임계 측정(723호출·575,667토큰, 0.90 자동연결 0건·정답/오답 확률 겹침·해당없음 94.6%) → 구현 보류, 페페 선택 대기 [분배 D1] →
projects/pfs/session-2026-09-23-worklog-jev-measure.md(pfs-session-2026-09-23-worklog-jev-measure) - 2026-09-29 — 호반 대구 칠성(job 8, PNCAD 작업본, 아이비젼글로벌) 네스팅 → 원부자재 발주서 초안: 컬러 HPB-EM738 = PP 래핑(에넥스 대전 실적)이라 피앤알 5매·선재기업 100m·한솔아트(PP시트 30m→피앤알·칼라샘플→진영LDM·피스마개 5→포인) 가정 구성, NAS 09월 저장·되읽기 대조 일치, pfs 코드 0 →
projects/pfs/session-2026-09-29-chilseong-wonbujae-order.md(pfs-session-2026-09-29-chilseong-wonbujae-order) - [코디] 2026-09-30 — 학동매장 도어발주서 초안(포인탭, 네스팅 #3 10행 + DWG 경첩레이어
3_fur_hn좌우 판독) → NAS넥서스 학동매장 발주초안(검토용).xlsm, 검증 1~5 통과(네스팅 대조 불일치 0 · 부속 보존), 🔴COM Merge 빈 앵커 →#REF!함정 · 같은 폴더에 사람이 작성 중인한샘 학동매장 도어발주서.xlsm발견 →projects/pfs/session-2026-09-30-hakdong-door-draft.md(pfs-session-2026-09-30-hakdong-door-draft) - [코디] 2026-09-30 — [종결] 봉적 9월 마감(23) 네고 부가비 반영(751 −504,000·756 −73,000, 월마감 합계=확정 10,000,000) + NAS 견적서 3건 + 인쇄(SINDOH 3쪽) ⏳미결 3(NAS 마감 xlsx 교체·756 가구 803,000 사유·_print_scratch) →
projects/pfs/session-2026-09-30-bongjeok-close-nego.md(pfs-session-2026-09-30-bongjeok-close-nego) - [코디] 2026-10-05 — [종결] 원주 단구 네스팅 #17 에 안산 성포 #18 손수정 반영: 서랍앞판 가로≥450 [↔] 교환 5행만 적용(31→32장, 운영 PUT 1회) →
projects/pfs/session-2026-10-05-wonju-apply-seongpo.md(pfs-session-2026-10-05-wonju-apply-seongpo) - [코디] 2026-10-10 — dwg-takeoff 자재소요량 CLI 구축(tools
e6022f1·8c1db80, 테스트 4종 ALL PASS) + 주방84A 비교 실험 채점(A 선례 재사용 몸통 100%·도어 91%·장수 차 0 vs B README 만 몸통 96%·도어 9%·도어 −2장) + README 보강 + Jev 규칙 완화 3단 →projects/pfs/session-2026-10-10-dwg-takeoff.md(pfs-session-2026-10-10-dwg-takeoff) - [코디] 2026-10-13 — [종결] PFS 자재 발주서 QA 연쇄 7건(입고처 칸·품목군 변경·삭제행 업체 예외·자재관리 수량=최종·제목=현장명·엑셀=NAS 양식·입고일·엑셀 보완) 전부 운영 반영 →
projects/pfs/session-2026-10-13-mat-orderpaper-qa-chain.md - [코디] 2026-10-15 — [종결] 네스팅 저장본 열기 목록에서 PNCAD 숨김 작업본 전용 저장본 제외(master dad612d5 → deploy-live 0e111f32 · 목록 30→27) + 소요 한남2차 #53·#54 뒤판 칼라 70-115 → 배치 메인칼라(운영 PUT) →
projects/pfs/session-2026-10-15-nesting-hidden-backcolor.md(pfs-session-2026-10-15-nesting-hidden-backcolor) - [코디] 2026-10-16 — [종결] 초대 토큰 자가 회원가입(
/join·patch66·deploy-livee5cd5fe9, 핫픽스4e58e5c2) + 신규 거래처 SLS(465) 전용 페이지·임시 계정 sls_temp(비활성화) →projects/pfs/session-2026-10-16-invite-signup.md(pfs-session-2026-10-16-invite-signup)