5152 Commits

Author SHA1 Message Date
nalpari
2d35b04dcb chore(gitignore): 루트 워크트리 컨테이너 .worktrees/ 제외 추가 2026-07-01 14:15:42 +09:00
sangwook yoo
83783c869b feat(roof-shape): PDF 지붕형상 매칭 시 설정완료 자동 적용
매칭되면 버튼 선택(setShapeNum) 후, shapeNum 이 matched 로 커밋된 뒤
[shapeNum] effect 에서 handleSave(설정완료)를 자동 호출해 지붕형상까지 적용한다.
마운트 effect 에서 즉시 호출하면 stale shapeNum(기본값 1)으로 잘못된 패턴이
적용되므로 autoSaveShapeNumRef 가드 + 별도 effect 경유로 처리.
매칭 결과는 콘솔에 ' N번 버튼 매칭 → 자동 선택 + 설정완료' / ' 매칭 없음'
한 줄로 명시. CLAUDE.md PDF-import 절을 'pre-select만 → 설정완료 자동 적용'으로 갱신.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 10:53:11 +09:00
sangwook yoo
6457817e70 feat(roof-shape): 지붕형상 자동판독 결과 로깅 추가 — 수동 QA 보조
[작업내용] :
- route.js: Gemini roofShape 원본+정규화 결과 logger.debug (서버 콘솔)
- useRoofShapeSetting: descriptor→매칭 shapeNum+패턴명 logger.info (브라우저 콘솔, pre-select 시점)
- raw console.log 대신 logger 사용(NEXT_PUBLIC_ENABLE_LOGGING=true 시 출력, 프로덕션 무음)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 15:18:23 +09:00
sangwook yoo
729198b650 docs(claude): PDF 지붕형상 자동 선택(pre-select) 플로우 추가
[작업내용] :
- PDF-import 절에 roofShape descriptor 반환·normalizeRoofShape·pdfRoofShapeDescriptorState 저장·useRoofShapeSetting pre-select(consume-once) 흐름 기술
- handleSave 비자동(사용자 [적용]) 명시 + Gemini roofShape 런타임 QA 잔여 경고

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 15:14:03 +09:00
sangwook yoo
edeb766b3a feat(roof-shape): PDF 지붕형상 매칭 버튼 자동 선택(pre-select)
[작업내용] :
- 마운트 시 pdfRoofShapeDescriptorState → matchRoofShapePattern → setShapeNum(매칭 버튼 pre-select)
- pre-select only: handleSave 비자동(사용자 [적용])
- consume-once: 매칭 시도 후 atom 리셋(비-PDF 재진입 stale 방지)
- 매처 null(복합형) 시 강제 선택 없이 기본값 유지
- 런타임(실제 분기별 pre-select) 수동 검증 잔여

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:55:34 +09:00
sangwook yoo
28ea1e9b8e feat(roof-shape): PDF 지붕형상 descriptor atom 저장 배선
[작업내용] :
- pdfRoofShapeDescriptorState atom 추가(outerLineAtom)
- analyzePdfAndApply: 분석 시작 시 리셋 + payload.roofShape 저장
- 소비(매칭·pre-select)는 다음 task

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:51:53 +09:00
sangwook yoo
9d60948e64 feat(roof-shape): Gemini API 에 지붕형상 descriptor 산출 추가
[작업내용] :
- 응답 스키마에 roofShape{type,ridge,flows,confidence?} 필드
- BASE_PROMPT 에 [지붕형상 판독] 섹션(棟/軒先 → type/ridge/flows, 화면축)
- buildPrompt 입면도 활용을 棟방향·경사 판별 보조로 확대(외곽선 추출은 여전히 평면도만)
- 반환에 normalizeRoofShape(parsed.roofShape) 배선
- 런타임(실제 Gemini roofShape 응답) 수동 검증 잔여

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:47:13 +09:00
sangwook yoo
3f8ead0a3e feat(roof-shape): Gemini 출력 정규화 normalizeRoofShape 추가
[작업내용] :
- raw 지붕형상 출력 → RoofShapeDescriptor(type/ridge/flows/confidence?) 정규화
- 어휘 밖 type/ridge 는 ''(매처 결측 관대), flows 는 어휘만 소문자화·중복제거
- 모두 비면 null, direction 비산출(매처 미사용)
- route.js 배선은 다음 task

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:43:04 +09:00
sangwook yoo
4ebe02186f docs(roof-shape): 지붕형상 자동판별 B·C 구현 계획서 추가
[작업내용] :
- B(2 task): normalizeRoofShape 순수함수(TDD, roofShapePattern.js 동거) + route.js 스키마/프롬프트/반환 배선
- C(2 task): pdfRoofShapeDescriptorState atom 저장/리셋 + useRoofShapeSetting 마운트 consume-once pre-select
- B→C 순차, 각 독립 커밋

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:40:12 +09:00
sangwook yoo
4e919923d8 docs(roof-shape): PDF 기반 지붕형상 자동 판별·자동 선택 설계 스펙 추가
[작업내용] :
- B: Gemini 스키마에 roofShape 추가 + 棟/軒先/立面図 판독 프롬프트 + normalizeRoofShape 순수함수
- C: pdfRoofShapeDescriptorState atom + pre-select only(setShapeNum, handleSave 미호출) + consume-once
- 제품결정: C=자동선택만(사용자 확인), B=立面図 활용
- RoofShapeDescriptor(direction 제외) 인터페이스, 매처가 B↔C 다리
- 2 플랜(B→C) 순차 구현

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:34:07 +09:00
sangwook yoo
bcdd630a00 feat(roof-shape): 지붕형상 패턴 매처 matchRoofShapePattern 추가
[작업내용] :
- descriptor(type/ridge/flows)→shapeNum|null 순수 매칭 함수
- flows 집합 1차 키 + type/ridge guard(모순 거부, 결측 관대)
- 폴백 null(autoMatchable=false인 4 비반환), confidence 무시
- Gemini 분석 확장(B)·자동 클릭 배선(C)은 다음 작업으로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 14:00:19 +09:00
sangwook yoo
cfd8e3bdef docs(roof-shape): 지붕형상 패턴 매처 구현 계획서 추가
[작업내용] :
- matchRoofShapePattern 단일 Task TDD 플랜(하니스 8불변식)
- flows 집합 키 + type/ridge guard, 폴백 null
- Gemini 분석 확장·자동 클릭은 후속 작업으로 명시

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 11:34:53 +09:00
sangwook yoo
cb9912b31d docs(roof-shape): 지붕형상 패턴 매처 설계 스펙 추가
[작업내용] :
- matchRoofShapePattern(descriptor)→shapeNum|null 순수 함수 설계
- 매칭 키 flows 집합(1차) + type/ridge guard(모순 거부)
- 폴백 null(4 비반환), confidence 무시 — UX 정책은 C 단계 위임
- 검증: scratchpad .mjs 불변식 하니스 8종

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 11:29:35 +09:00
sangwook yoo
e4045142bf docs(roof-shape): 지붕형상 패턴 카탈로그 구현 계획서 추가
[작업내용] :
- 2026-06-24 카탈로그 모듈 구현 플랜(단일 태스크, node 불변식 검증 하니스)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:50:42 +09:00
sangwook yoo
61ffcee949 feat(roof-shape): 지붕형상 패턴 카탈로그 상수 모듈 추가
[작업내용] :
- ROOF_SHAPE_PATTERNS(8) + ROOF_FLOW/ROOF_SHAPE_TYPE/ROOF_RIDGE 상수
- 매칭 키 type+ridge+flows, flows 집합만으로 8패턴 유일 식별
- getRoofShapePatternByShapeNum 접근자
- 매칭 함수·PDF 분석 확장은 다음 작업으로 분리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:50:35 +09:00
sangwook yoo
105c8470ad docs(roof-shape): 지붕형상 패턴 카탈로그 설계 스펙 추가
[작업내용] :
- PDF 분석→지붕형상 자동 매칭의 선행 단계로 8패턴 카탈로그 설계 정의
- 매칭 키: type+ridge+flows(화면축) 시그니처, flows 집합만으로 8패턴 유일 식별
- 5~8 화면축↔버튼 매핑을 useRoofShapeSetting case 4~8 에서 1:1 전사
- 매칭 함수·PDF 분석 확장은 다음 작업으로 분리(계약만 명시)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:43:18 +09:00
sangwook yoo
ca2b0c3dae feat(pdf-import): 외벽선 자동 확정 스위치를 분석 후 별도 팝업으로 분리
배치면 초기설정의 자동 확정 스위치를 제거하고, PDF 분석으로 외벽선을 미확정
상태로 그린 직후 '외벽선 자동 확정' 팝업(스위치+확인)을 띄워 분기한다.
- ON: outerLineFix 확정 + saveCanvas 영속화 → 지붕형상 설정 직행
- OFF: 미확정 유지 → 외벽선 확정 팝업(WallLineSetting)
신규 메뉴 상수 AUTO_OUTERLINE_FIX + useMenu case 로 MenuDepth01 이 자동 표시

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 15:48:12 +09:00
sangwook yoo
2e7c8769aa ```
docs(outerline): 외벽선 확정(handleFix) 흐름 및 PDF 자동 확정 가이드 문서 추가
```
- 외벽선 확정 (`handleFix`) 로직의 상세 흐름과 확정 후 캔버스/Recoil 불변 조건을 문서화합니다.
- PDF 도면 분석을 통한 외벽선 자동 확정 기능 구현 시 참고할 설계 가이드와 체크리스트를 포함합니다.
- `handleFix` 본체와 `useEffect`, `ccwCheck` 등 관련 로직의 역할 및 주의사항을 명확히 합니다.
```
2026-06-22 10:48:29 +09:00
sangwook yoo
dbaebf9e2b feat(pdf-import): 외벽선 자동 확정 토글 동작 연결 — ON 확정·지붕형상 직행 / OFF 미확정 유지
- usePdfImport.applyOuterline 에 autoFix 옵션 추가 — outerLineFix 확정 여부를 토글에 따라 분기
- PlacementShapeSetting.handleSaveBtn 에서 토글값으로 메뉴 분기(ON→ROOF_SHAPE_SETTINGS / OFF→EXTERIOR_WALL_LINE); 모달은 MenuDepth01 이 currentMenu 변화로 자동 오픈하므로 직접 addPopup 제거
- fix: basicSettingSave 의 setMenuByRoofSize 를 skipSideEffects 가드 안으로 이동 — ON 인데도 async 저장(await post) 직후 메뉴가 EXTERIOR_WALL_LINE 로 덮어써져 외벽선 작성 팝업으로 되돌아가며 확정이 풀리던 문제 수정
- docs(claude): PDF 임포트 절에 자동 확정 분기·MenuDepth01 메뉴 연동·skipSideEffects 주의 반영

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:53:25 +09:00
sangwook yoo
fafee78c8a feat(pdf-import): 외벽선 자동 확정(auto fix) 토글 추가 — 전역 옵션·기본 ON
배치면 초기설정 PDF 입력 화면에 '외벽선 자동 확정' 토글을 추가한다.
- autoOuterLineFixState 전역 atom 신설(기본값 true), outerLineFixState 와 별개의 옵션 플래그
- ko/ja i18n 라벨·설명 키 추가
- toggle-btn 스위치를 읽기 페이지 설정 행 아래 배치, 분석 중에는 비활성화

실제 PDF 자동 확정 동작 연결(usePdfImport)은 별도 작업으로 분리.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 21:34:55 +09:00
sangwook yoo
ce295dd8ff feat(pdf-import): 지정 페이지만 분할·인라인 전송으로 분석 속도 개선
- '읽기 페이지 설정'의 평면도/입면도 페이지 번호가 프롬프트 힌트로만 쓰이고
  PDF 전체가 Gemini 로 전송되던 문제 해결 — pdf-lib 로 지정 페이지만 잘라 전송
- 분할본이 12MB 이하면 inlineData(base64) 즉시 전송 → Files API 업로드·폴링 제거,
  초과 시에만 Files API 로 fallback
- 분할 시 buildPrompt 를 페이지번호 힌트 대신 평면도/입면도 순서 매핑으로 전환
- 유효 페이지 0개 → 422 INVALID_PAGE_RANGE, 분할 실패 → 422 PDF_SPLIT_FAILED
- 설계 문서 추가(docs/superpowers/specs/2026-06-21-pdf-page-split-design.md)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 20:49:11 +09:00
sangwook yoo
f46dc788cc fix(pdf-import): 분석 타임아웃 120s→300s 확대 — 서버 정상 완료 직전 클라이언트 abort 방지
[작업내용] :
- 서버가 120,011ms 에 200 으로 정상 완료했는데 클라이언트 AbortController 가 정확히 120,000ms 에
  fetch 를 끊어 타임아웃 toast 가 뜨던 문제 — gemini-3.1-pro-preview(thinking 비활성 불가)
  + MEDIA_RESOLUTION_HIGH PDF 분석은 정상 응답도 2분을 넘길 수 있어 300초로 확대
- 추후 진단용으로 서버에 단계별 소요시간(fileReady/generate) debug 로그 추가

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:28:06 +09:00
sangwook yoo
8768182fa8 docs(claude): PDF 도면 임포트 아키텍처 노트 추가
[작업내용] :
- 임포트 파이프라인(모달→Gemini API→usePdfImport)과 '수동 확정과 동일 상태' 불변식,
  좌표 스케일 금지·viewport 줌 규칙을 Floor Plan 섹션에 문서화

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:10:36 +09:00
sangwook yoo
08ef577260 fix(gemini): floor-plan API 에 세션 인증·레이트리밋 추가
[작업내용] :
- iron-session 세션 검사 추가 — 페이지용 layout redirect 가 API 라우트를 보호하지 않아
  익명 요청으로 Gemini 과금이 가능하던 문제 차단(401)
- 사용자별 분당 5회 in-memory 레이트리밋(429) — 연타 업로드 과금 폭주 방지

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:07:01 +09:00
sangwook yoo
7b15b76054 fix(pdf-import): 좌표 축소 스케일 제거 — 치수 라벨 실측 정합(R1)
[작업내용] :
- fitAndCenter 가 큰 도면(9.6m 초과)에 scale<1 을 좌표에 곱해 'QLine 길이×10=표시 mm' 불변식을
  깨뜨리던 문제 해소 — 좌표는 실측 그대로 평행이동만 하는 centerOnCanvas 로 대체
- 화면맞춤은 fitViewport 로 분리: 캔버스 중앙 고정 viewportTransform 줌 + canvasZoomState 동기화
  (useCanvasEvent 의 setZoom 은 동일 zoom 값에서 translation 을 보존)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:06:33 +09:00
sangwook yoo
29fd4cbd59 fix(pdf-import): 분석 중 라우팅 이탈 시 늦은 결과 적용·플랜 덮어쓰기 차단
[작업내용] :
- 진행 중인 PDF 분석 요청을 pdfRunRef 로 추적, 모달 언마운트 시 AbortController.abort() 호출
- fetch 완료 후·저신뢰 confirm 후 두 지점에서 컨트롤러 동일성 가드 — 언마운트로 무효화된 늦은 결과가
  비워진 canvas 에 적용되고 saveCanvas 가 이전 플랜 DB 를 outline-only 로 덮어쓰던 데이터 손실 경로 차단

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:05:40 +09:00
sangwook yoo
c7757fabda fix(pdf-import): PDF 외곽선을 수동 확정 상태와 동일하게 생성 — 지붕형상 설정 차단 해소
[작업내용] :
- useLine.addLine 경유로 outerLine 생성 — attributes/planeSize/fontSize 부여(지붕형상 설정·처마/케라바 편집·재로드 복원에 필수)
- canvas.outerLineFix + outerLineFixState 설정 — 미설정 시 지붕형상 설정 진입이 wall.line.not.found 로 즉시 차단되던 문제 해소
- skeletonBuilder 가 소비하는 outerLinePoint 정점 circle 생성(수동 플로우와 동일)
- 조기 WALL 폴리곤 생성 제거 — 수동 플로우와 동일하게 지붕형상 설정 적용 시점에 WALL/ROOF 생성
- 짧은엣지 dedup 을 '직전 유지 정점' 기준으로 수정하고 닫힘 엣지(Gemini 닫힌 링 반환 포함)까지 검사, 임계값을 addLine 의 1unit 과 일치
- PDF 적용 후 외벽선 그리기 메뉴(진입 시 재드로잉 강등) 대신 지붕형상 설정 메뉴로 직행

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 10:05:09 +09:00
sangwook yoo
ef55c819d5 chore(skills): grill-me 스킬 제거
- .agents/skills/grill-me/SKILL.md, skills-lock.json 삭제
- .claude/skills/grill-me 심볼릭 링크 삭제(미추적)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:37:03 +09:00
sangwook yoo
25c8f4d262 chore(btob): start:btob 개발 서버 포트 6060으로 변경 + pnpm workspace 설정 추가
- package.json: start:btob 포트 5060 → 6060 (포트 충돌 회피)
- pnpm-workspace.yaml 신규 추가

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 14:53:22 +09:00
sangwook yoo
9a3649342e chore(skills): grill-me 스킬 추가 + CLAUDE.md 마크다운 포맷 정리
- .agents/skills/grill-me/SKILL.md, skills-lock.json 추가
- CLAUDE.md 섹션 사이 빈 줄 보정 및 Always Do의 type check 항목 제거

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 14:07:48 +09:00
sangwook yoo
0c1c66f65c chore(debug): 미사용 debugCapture 유틸 제거
LOW-PITCH-DIAG 진단 제거로 debugCapture 사용처가 0 이 되었고, 대상
/api/debug 라우트도 구현된 적이 없어 한 번도 동작하지 않던 죽은 코드다.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 18:30:07 +09:00
sangwook yoo
707148ed0f chore(low-pitch): LOW-PITCH-DIAG 임시 진단 로그 제거
/api/debug 라우트가 구현된 적이 없어 debugCapture.log 호출이 매번 404 를
유발하던 콘솔 노이즈를 제거한다. 해당 진단은 주석에 "검증 후 제거"로 표시된
임시 코드였다(앱 동작에는 무영향).

- PlacementShapeSetting.jsx, useRoofAllocationSetting.js 에서 debugCapture
  import 과 LOW-PITCH-DIAG 호출 3건 제거
- 진단 전용으로만 쓰이던 isLowPitchRestricted·LOW_PITCH_RESTRICTED_ROOF_IDS
  import 도 함께 제거(notifyLowPitchRestrictionForRoofs 실기능 import 는 유지)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 18:27:06 +09:00
sangwook yoo
654b8d6e08 fix(gemini): 라우트 정리(deleteFile)를 응답에서 분리
finally 에서 await fileManager.deleteFile(...) 가 catch 의 return 을 게이팅해,
정리용 네트워크 호출이 행되면 500 응답조차 클라이언트로 송신되지 않던 문제를 해소한다.

- deleteFile 을 await 하지 않고 fire-and-forget + .catch 로 분리해 응답을 정리 완료에 묶지 않음
- 상주 Node 서버(PM2 next start)이므로 응답 후에도 detached 삭제가 정상 완료되며,
  미삭제 시에도 Gemini 측에서 자동 만료
- 클라이언트 120s 타임아웃과 짝을 이뤄 한쪽이 행되어도 스피너에 갇히지 않음

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:52:20 +09:00
sangwook yoo
49b2d0940f fix(pdf-import): 클라이언트 분석 타임아웃·스피너 해제 보장
PDF 분석 요청 실패/행(hang) 시 전역 스피너가 영구히 멈춰 화면 복귀가
불가능하던 문제를 해소한다.

- 네트워크 구간을 try/finally 로 감싸 성공·실패·타임아웃 어떤 경로든
  스피너(pdfAnalyzing·isGlobalLoading)를 반드시 해제하도록 보장
- AbortController + 120s 타임아웃으로 무한 행 차단
- alert 은 스피너 해제 후 표시(스피너 z-index 가 alert 보다 높아 가려지는 것 방지)
- pdf.import.error.timeout 메시지 키 추가(ko/ja)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 17:52:10 +09:00
sangwook yoo
761c42a637 feat(pdf-import): 분석 신뢰도 게이팅 + 저신뢰 확인 메시지(ko/ja)
- analyzePdfAndApply에서 confidence < 0.6이면 반영 전 useSwal confirm으로 사용자 확인
- pdf.import.confirm.low.confidence 메시지 키 ko/ja 추가

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:12:15 +09:00
sangwook yoo
0418dd84ee feat(pdf-import): 외곽선 기하 후처리(축정렬 스냅·단순화·자기교차 복구) 추가
- normalizeGeometry 단계 신설: snapNearAxisEdges(축정렬 스냅) → turf.simplify(과다 정점 단순화) → cleanSelfIntersectingPolygon(자기교차 복구)
- applyOuterline의 중복점 제거 직후·fitAndCenter 전에 삽입(스냅→단순화 순서로 축정렬 보존)
- 기존 검증 순수함수 재사용, 신규 의존성 없음

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:12:14 +09:00
sangwook yoo
afda525be9 feat(gemini): 屋根伏図 지붕투영면 외곽선 추출 프롬프트 강화 + media_resolution HIGH
- BASE_PROMPT를 지붕 투영면(屋根伏図 footprint) 기준으로 재작성: 屋根伏図 우선(처마/케라바 포함), 立面図/配置図/求積図/断面図 배제, 도머/개구부 제외
- 寸法線 mm 1순위 축척 규칙, 910/1820mm 모듈 단서, L자/직각 형상 보존 규칙 추가
- generationConfig에 mediaResolution: MEDIA_RESOLUTION_HIGH 추가(미지원 SDK 시 무시), usageMetadata 로깅
- FLOOR_PLAN_SCHEMA 및 응답에 selectedDrawingType 추가

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:12:13 +09:00
sangwook yoo
3e37b7448c Add new HTML report for PDF 도면 → 외벽선 자동작성 기능
This commit introduces a new HTML document detailing the functionality of the PDF 도면 to 외벽선 자동작성 feature, including styles and layout for improved presentation.
2026-05-29 18:24:04 +09:00
sangwook yoo
0187b234fb Revert: PDF 도면 파일 업로드 라디오 옵션 재표시
배치면 초기설정 팝업에서 '도면 파일 업로드' 옵션 주석 처리를 해제하여 다시 노출.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:17:02 +09:00
sangwook yoo
f8641079e6 Disable PDF input mode option 2026-05-27 17:54:49 +09:00
sangwook yoo
dba2b16277 Merge remote-tracking branch 'origin/dev' into dev 2026-05-27 17:30:47 +09:00
sangwook yoo
379216a78a feat(btob): Add BtoB development server startup script
- Adds a new `start:btob` script to `package.json` for launching the Next.js application on port 5060 for the BtoB environment.
- Introduces `startscript-btob.js` as a convenience executable to run the `start:btob` command.
2026-05-27 17:05:11 +09:00
sangwook yoo
6a99b6de4a Merge remote-tracking branch 'origin/dev' into feature/pv-btob 2026-05-27 16:56:33 +09:00
8be7b03072 Merge pull request 'dev' (#871) from dev into prd-deploy
Reviewed-on: #871
2026-05-27 16:21:54 +09:00
a4b7f519bb [2173] valleyExt TRIM — hip-presence 원래hip-only + cascade hide 2026-05-27 16:18:33 +09:00
e9f5ceab69 [2173] 골짜기확장라인 TRIM 재활성 + Y junction 보존 + 끝점일치 보존 2026-05-27 15:20:55 +09:00
sangwook yoo
79aafbd613 Merge remote-tracking branch 'origin/dev' into claude/lucid-shaw-91e51f 2026-05-27 14:41:26 +09:00
5ba5623d46 [2173] 골짜기확장라인 self-extension 모델 + TRIM/FIXPOINT-cuts off — 확장만 2026-05-27 13:58:26 +09:00
8d7ffdc957 [2173] KERAB-OFFSET-SURGICAL flag ON — 케라바 토글 出幅 surgical 반영 활성화 2026-05-27 10:09:52 +09:00
f5f8eb9460 [2173] 처마/케라바 토글 KERAB-SIMPLE 알고리즘 + offset-surgical helper(flag off) 2026-05-27 10:03:56 +09:00