243 Commits

Author SHA1 Message Date
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
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
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
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
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
f6652acbd7 2차 로그정리 2026-05-14 17:26:11 +09:00
281d9bb583 로그 수정 2026-05-14 14:38:27 +09:00
be95b1b39b [1470] 배치도·계통도 및 구조도의 화질 개선 cell 이미지 추가 2026-03-11 18:19:35 +09:00
670f2a4193 Fix typo: 'ues client' -> 'use client' 2026-03-10 12:29:26 +09:00
9ec59bdabb 500에러 발생확인 2026-03-09 14:20:35 +09:00
d35d65f688 삭제 2026-03-03 20:22:51 +09:00
1638d0ae33 Resolve merge conflicts between dev and prd-deploy 2026-03-03 19:47:20 +09:00
b361ccf4b7 세로로 긴 경우 이미지 잘리는 현상 수정 2026-01-19 10:23:12 +09:00
b76f6eb057 [1346]문의게시판 : cnustNm 추가 2025-12-16 14:12:44 +09:00
123657431d 좌우로 넓어진 형상은 스케일 조정 x 2025-07-29 14:55:23 +09:00
eb03054804 주석 수정 2025-07-22 09:53:43 +09:00
a319df0120 캡쳐 로직 수정 2025-07-21 15:05:08 +09:00
9f7fedab79 [1182] 추가 견적 출력 메시지 표시 변경 및 POPUP 메시지 추가 2025-07-11 15:59:30 +09:00
af29c83eb4 [1115] : [見積書作成後の図面の大きさを調整して欲しい]
[작업내용] : 엑셀 다운로드 pdf 다운로드 이미지 비율 수정
2025-06-19 13:04:02 +09:00
a0c64bdaa8 jimp-test 2025-06-05 17:49:37 +09:00
b6a2334fb8 jimp-test 2025-06-05 17:25:45 +09:00
63f12021e4 test
test
2025-06-05 17:17:40 +09:00
946aa231a3 견적시 이미지 운영, 개발 분리 2025-06-05 11:28:08 +09:00
c6d2904cfe Update environment configuration files to include S3_PROFILE variable for development and production environments; modify image upload path to incorporate S3_PROFILE. 2025-06-05 11:14:22 +09:00
514545cf65 복사 로직 오류 수정
[작업내용] : 복사 로직 오류 수정
2025-06-04 09:03:21 +09:00
387a1fd577 견적서 복사 로직 수정
[작업내용] : 이미지 존재 여부 확인 후 복사 진행
2025-06-04 08:54:00 +09:00
16c97ae041 플랜 복사시 견적서 이미지 복사 로직 추가 2025-06-03 10:26:08 +09:00
639c057e0c 견적서 복사 -> 이미지 복사 로직 추가 2025-06-02 17:40:38 +09:00
d16c3869d1 path 변경되면 FloorPlan state값 수정 2025-05-30 13:42:48 +09:00
1cd24aeca9 Refactor image upload process: set fixed ContentType for uploaded images and convert Base64 to Blob for file handling in useRefFiles hook. 2025-05-29 15:55:53 +09:00
bbb8bef37d [1004] 1:1 문의게시판 추가 2025-05-23 14:30:05 +09:00
ad2aa50d83 feat: 캔버스 s3 저장 테스트 및 확장자 수정 2025-05-13 15:24:57 +09:00
9d3ddd3ec1 Merge branch 'dev' into feature/aws-s3-upload 2025-05-13 15:17:57 +09:00
f3dfc50f6e 986 - 시공사번호 추가, 시공사(userId) 데이터만 조회 2025-04-23 16:13:07 +09:00
김민식
2b81cc192e Merge branch 'dev' of https://git.hanasys.jp/qcast3/qcast-front into qcast-pub 2025-04-22 17:09:41 +09:00
김민식
028fa7f9bf LocalStorage -> API 변경 2025-04-22 17:09:18 +09:00
159bbf2e6e 993 - HANASYS設計 => HANASYS DESIGN 변경및 메인 로고 디자인 변경 2025-04-21 13:12:43 +09:00
8d645d08dc refactor: API Router 코드 일부 리팩토링
- 패턴에 어긋나는 응답 포맷 수정
- 주석 작성
2025-03-25 13:33:36 +09:00
97389f7141 feat: 캔버스 이미지 S3로 저장 기능 추가 2025-03-25 11:01:40 +09:00
11edbe1988 feat: cad파일 컨버터 추가 2025-03-24 19:01:09 +09:00
9a9fa522f9 feat: 구글 맵 컨버트 기능 수정 2025-03-24 17:54:32 +09:00
2492b45a66 feat: 구글 맵 컨버트 기능 추가 2025-03-24 17:08:31 +09:00
a7b9062154 feat: s3 업로드 기본 기능 추가 2025-03-24 13:58:29 +09:00
yoosangwook
29378cbe72 📌fix: nextui 제거 및 코드 수정 2025-03-07 12:39:14 +09:00
yoosangwook
960046813b 🚦chore: 빌드 경고 제거 및 안쓰는 컴포넌트 제거 2025-02-25 09:47:07 +09:00
yoosangwook
2769ac2358 🚦fix: 사용하지 않는 컴포넌트 제거 2025-02-24 18:08:24 +09:00
yoosangwook
3efec0ace5 🚦fix: 컴포넌트 주석 추가
- 주석 및 설명 추가
2025-02-24 10:53:16 +09:00
yoosangwook
e0006875c7 📌fix: metadata 수정 2025-02-20 18:27:52 +09:00
yoosangwook
12ff356640 👽chore: 소스코드 정리
- 사용하지 않는 코드 삭제
- 사용되지 않은 임포트 구문 삭제
2025-02-14 11:15:26 +09:00