이슈 #235
Ryan Lee이(가) 7달 전에 변경
입력 검증. 특수문자 처리
## 완료 내역
- 언어 감지 전처리 함수 구현: `detectLanguage(text)` (`src/utils/detectLanguage.ts`)
- 스크립트 기반 정규식으로 9개 언어 판정 (ko, ja, zh, ar, ru, he, th, hi, en)
- 유니크 스크립트 언어는 거의 100% 신뢰, 라틴 계열은 en으로 폴백
- 빈 입력 거부: `chatStore.sendMessage()`에서 `trim()` 후 길이 0이면 early return (`src/stores/chatStore.ts:312-313`)
- 감지된 언어는 `startGeneration`으로 전달되어 응답 언어/워킹 메시지 표시에 활용 (`chatStore.ts:316, 387`)
## 주요 파일
- `src/utils/detectLanguage.ts` — `detectLanguage()`, `SupportedLanguage` 타입
- `src/stores/chatStore.ts` — 입력 검증 + 언어 감지 호출 지점
- `src/constants/workingMessages.ts` — 언어별 작업 중 메시지
- `src/components/WorkingIndicator.tsx` — 언어별 UI 표시
## 관련 커밋
- `feeb07e` (fixes ref #235) — detectLanguage 구현
## 후속 처리
- 특수문자·제어문자 이스케이프 처리는 하위 이슈로 분리 (본 이슈 아래 생성)
- #237 (5-4): `wrapUserInput()` 래핑으로 프롬프트 하이재킹 방지 (`[사용자 입력]...[/사용자 입력]` 마커)
- AXI §8 (`05e9836`): 하이재킹·내부 지침 노출 방지 프롬프트 보강
뒤로