5127 Commits

Author SHA1 Message Date
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
sangwook yoo
f8467879a8 Merge remote-tracking branch 'origin/dev' into claude/lucid-shaw-91e51f 2026-05-20 09:41:37 +09:00
sangwook yoo
849f7a1dc9 feat(pdf-gemini): 배치면 초기설정에 PDF 도면 업로드 옵션 추가 — Gemini 외곽선 분석
- 「배치면 초기설정」 모달 寸法入力方法 라디오에 '도면 파일 업로드' 옵션 추가
- 선택 시 PDF 파일 업로드 + 읽기 페이지 설정(전체/입면도·평면도 지정) UI 노출
- 保存 클릭 시 /api/gemini/floor-plan 호출 → 외곽선을 캔버스에 반영한 후 기존 저장 흐름 진행
- Gemini File API 업로드 + finally 파일 폐기, 정점/면적 검증, 페이지 힌트 프롬프트 주입
- usePdfImport 훅: mm→canvas 좌표 변환, CCW 정규화, 기존 외곽선 덮어쓰기 confirm 후 QLine/QPolygon 생성
- @google/generative-ai 의존성 추가, GEMINI_MODEL env 4개 환경에 동기화
- 다국어(ja/ko) 메시지 추가, .playwright-mcp/ gitignore

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 09:39:41 +09:00
d48c94c99e Merge pull request 'dev' (#868) from dev into prd-deploy
Reviewed-on: #868
2026-05-20 09:02:59 +09:00
dc857b28fa [2173] junction-extended 패턴 outer hip 제거 + strokeWidth SK와 통일
[작업내용] :
- 대전제 반영: 케라바 ridge 가 생기는 분기에서 c1·c2 에 붙은 outer hip 2개 제거
  · inner hip(junction 너머) 보존
  · __removedHipsSnapshot 첨부 → revert 시 hip 2개 자동 복원
- revert 분기에서 hip 스냅샷 + ridge 스냅샷 둘 다 순회 복원하도록 대칭 보강
- 케라바 패턴 생성 라인 strokeWidth 2 → 4 (SK 라인과 동일, 6개소)
2026-05-20 08:46:43 +09:00
eb12b24138 [2173] 처마→케라바 junction-extended 패턴 + RG-1 자동 제거
[작업내용] :
- findHipPairViaJunction: H-7/H-1 의 junction 너머 inner hip(H-4/H-2) 무한확장 교점을 apex 채택
- applyKerabJunctionExtendedPattern (순수 추가):
  · ext hip 2개(junction→apex) + 중앙 ridge(mid→apex) 추가
  · ridgeEndpointsOnBothExtensions 로 RG-1 식별 → 스냅샷 첨부 후 제거 (RG-2 보존)
- applyKerabRevertPattern: __removedRidgesSnapshot(배열) 반복 복원으로 forward 와 대칭
- useRoofAllocationSetting: 분할 직전/후 패턴 라인 진단 로그(KERAB-PATTERN-DIAG)
2026-05-19 17:12:48 +09:00
sangwook yoo
c1247a95db Track docs markdown files 2026-05-19 16:20:48 +09:00
35ba41a104 탭에 path제거 2026-05-19 12:32:48 +09:00
ce84468f7c Merge pull request 'dev' (#865) from dev into prd-deploy
Reviewed-on: #865
2026-05-18 17:00:30 +09:00
sangwook yoo
530832e78d Merge remote-tracking branch 'origin/dev' into claude/lucid-shaw-91e51f 2026-05-18 16:32:47 +09:00
e74604d3f9 [2240] 손상 plan 좌표 가드/복원 — 로드 가드+저장 차단+복원 자동호출 2026-05-18 16:19:37 +09:00
sangwook yoo
51e6057c34 chore(codex): Add PreToolUse hook for graphify search context
Integrates a PreToolUse hook that provides context from the 'graphify' knowledge graph.
When the AI is about to use search commands (e.g., `grep`, `find`, `ripgrep`),
it will be prompted to consult `GRAPH_REPORT.md` if a graph exists, guiding it to
leverage structured knowledge before searching raw files.
2026-05-18 16:15:12 +09:00
sangwook yoo
e381ae0ebf chore(pdf-gemini): Gemini API 키 env 추가 + PDF 평면도 분석 구현 계획 문서
- .env.development / .env.production 에 GEMINI_API_KEY 추가 (PDF 평면도 분석 기능용)
- docs/ 에 PDF → Gemini → 캔버스 반영 기능 구현 계획서(html) 추가

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 16:05:18 +09:00
f32f9187d1 [DB] 컬럼 길이 가드 — addressee 합산 50자 + receiveUser 20자 클립 2026-05-18 15:00:20 +09:00
497c60775b Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into hotfix/dev_yscha 2026-05-18 12:42:49 +09:00
eaae0f4a84 [1961] hip 라벨 정합성 — SK↔할당 일치 + 0.5 step 표시 통일 2026-05-18 12:41:55 +09:00
589067d4b2 Merge pull request 'docs(S3): S3 이미지 저장 흐름 정리 문서 추가' (#861) from worktree-docs-s3-flow into dev
Reviewed-on: #861
2026-05-15 16:01:10 +09:00
sangwook yoo
313c3c629d docs(S3): S3 이미지 저장 흐름 정리 문서 추가
5개 이미지 API 라우트(upload/cad/map/canvas/estimate-image-copy)의 서버 처리,
클라이언트 콜러(useRefFiles/useImgLoader/useEstimateController), S3 키 레이아웃,
캔버스 캡처 가드 조건과 알려진 거친 모서리를 한 문서에 정리.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 15:58:53 +09:00
sangwook yoo
0211c57103 docs(README): create-next-app 보일러플레이트 → 실제 프로젝트 문서로 교체
- Stack / Scripts / Env / Routes / Source Layout / Deployment / Conventions / Troubleshooting 섹션을 현재 코드 상태(package.json, next.config.mjs, .env.*, ecosystem 파일) 기반으로 작성
- CLAUDE.md (gotcha 위주) 와 역할 분담: README 는 stack·디렉토리·env·배포 같은 기본 정보 담당
- docs/ PDF 와 .agents/skills/ 참조 인덱스 포함

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:35:02 +09:00
sangwook yoo
899b150ba8 docs(CLAUDE.md): 부정확 정보 정리 — README 신뢰 주장 제거 + graphify 섹션 현실 반영
- README.md 가 사실상 create-next-app 보일러플레이트인데 "authoritative" 라고 안내하던 문구 교체 — 단일 진실 공급원이 CLAUDE.md + docs/ PDF 임을 명시
- graphify-out/ 디렉토리 부재 및 .gitignore 미등록 현실 반영, 28줄 가이드를 5줄 핵심 사용법으로 축소

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 15:31:28 +09:00
sangwook yoo
9c0871d1fb Merge remote-tracking branch 'origin/dev' into claude/relaxed-jang-35f22b 2026-05-15 15:10:11 +09:00
8e7a6af3db 소스정리 2026-05-15 12:31:24 +09:00
116953ee2f 소스정리 2026-05-15 12:28:32 +09:00
905b51b865 [1423] 2차 user 판매점 select 항상 enable + 設計依頼 매핑 실패 시 본인 초기화 2026-05-15 12:19:15 +09:00
bfd9d446a3 [1423] 2차 user 판매점 select 항상 enable + 設計依頼 매핑 실패 시 본인 초기화 2026-05-15 11:09:28 +09:00
3aa61a25c4 Merge pull request '[1423] 設計依頼 import 매핑 정책 롤백 — StuffDetail.jsx 7e9ec4e3 복원' (#857) from dev into prd-deploy
Reviewed-on: #857
2026-05-15 10:05:39 +09:00