Spaces:
Runtime error
Runtime error
Commit History
-
fix: IPv6 익명화 앞4그룹+마지막그룹 유지 (기기 구분 가능)
ClaudeUnverified signature앞 4그룹만 유지하면 같은 Wi-Fi 학생 모두 동일값 → 자기공감 방지 오작동. 마지막 그룹 추가로 기기별 구분 가능하도록 개선. 예: 2406:5900:117c:424b::4444 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT009a807 -
fix: IPv6 IP 익명화 지원 추가 (anonymize_ip 공통 함수)
ClaudeUnverified signatureIPv4만 처리하던 익명화 로직을 IPv6도 지원하도록 개선. utils.py에 anonymize_ip() 공통 함수 추가, app.py, opinion_change.py에서 해당 함수 사용. https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT02c069f -
fix: get_client_ip 헤더 탐색 범위 확장 + 미발견 시 헤더 목록 로그
ClaudeUnverified signature대소문자 변형 헤더(X-Forwarded-For 등) 추가 탐색. IP를 찾지 못한 경우 수신된 헤더 키 목록을 로그로 출력하여 배포 환경별 헤더 이름 디버깅 가능하도록 개선. https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKTa03076c -
fix: 이미지 이모지 제거 대신 텍스트 레이블로 대체
ClaudeUnverified signature✅ → [완료], 🌱 → [성장] 등 알려진 이모지를 의미 있는 텍스트로 치환. 한국어 폰트가 렌더링 못하는 이모지가 □ 박스로 깨지던 문제 개선. AI 피드백 카드의 잘한점/발전할점 레이블이 이미지에서도 식별 가능. https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKTc2dd7cd -
fix: 이미지 렌더링 시 BMP 이모지(✅🌱 등) 깨짐 수정
ClaudeUnverified signature_strip_non_renderable에 BMP 이모지 블록 추가 제거: - U+2190~U+27FF: 화살표/딩뱃(✅ U+2705 포함) - U+2B00~U+2BFF: 기타 기호/화살표 - U+FE00~U+FEFF: 변형 선택자 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKTab347bd -
fix: AI 피드백 카드 파싱 수정 + 이미지 다운로드에 피드백 포함
ClaudeUnverified signature- 정규식 수정: 콜론 이후 같은 줄 내용을 올바르게 캡처 - create_analysis_image에 ai_feedback 파라미터 추가 - 이미지 다운로드 시 잘한 점/발전할 점 내용 포함 - 교사 대시보드 이미지 다운로드도 동일하게 적용 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT32b1d82
-
fix: AI 분석 이미지 소제목 시각적 구분 개선
ClaudeUnverified signature배움의 변화/성장한 점/한 줄 요약을 굵은 강조색으로 렌더링하고 소제목 간 여백(SUBSEC_GAP) 추가로 문단 구분 명확화 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT0c7f47b -
feat: AI 분석 결과 이미지 저장 + 교사 대시보드 학생별 분석 뷰어
ClaudeUnverified signature- 학생/교사 화면에 AI 배움 분석 PNG 이미지 다운로드 버튼 추가 - Dockerfile.base에 NanumGothic 한글 폰트 설치 추가 - 교사 대시보드에 학생별 분석 결과 조회 기능 추가 (드롭다운 선택) - fetch_all_opinion_changes() DB 함수 추가 https://claude.ai/code/session_016DE3uHLsVmA5Uv7gZGGaKT352ddf6
-
fix: 코드 리뷰 지적사항 8건 수정
ClaudeUnverified signature[🔴 심각] - env.py 신설: _get_secret → get_secret 공개 API로 전환 db.py, config.py, teacher_auth.py, teacher_dashboard.py 임포트 일괄 정리 - app.py: 의견 제출 Rate Limiting 추가 (10초 제한) [🟡 경고] - validators.py: validate_opinion_content에 allowed_pattern=None 적용 (특수문자·이모지 허용, 길이만 체크) - validators.py: _validate_text_field 길이 체크를 truncate 이전에 수행 (TOO_LONG 오류가 절대 발생하지 않던 버그 수정) - utils.py: get_kst_now()를 timezone-aware KST datetime 반환으로 변경 - app.py: DB 저장 전 IP를 SHA-256 해시(16자)로 처리 [🔵 개선] - tests/ 신설: validators, utils 단위 테스트 24개 (pytest) - CI에 test job 추가 - teacher_dashboard.py를 hint/summary/records 3개 컴포넌트로 분리 - wordcloud.py: max_words 75→40으로 축소 (O(n²) 성능 개선) - utils.py: compact_ai_report_output 이중 치환 버그 → 정규식으로 수정 https://claude.ai/code/session_01BRbPoMBBfvgN58bGkNhmv744ebedd
-
Fix: datetime.utcnow() deprecation, AI response None guard
ClaudeUnverified signature- utils.py: utcnow() → datetime.now(timezone.utc) (Python 3.12+ 대응) - services/ai.py: generate_content() 반환값 None 체크 추가 https://claude.ai/code/session_018WXW8M8SMsWcHtj1RynUi43db3ff8
-
Split app.py: extract utils.py and wordcloud.py
ClaudeUnverified signature- utils.py: datetime 헬퍼, get_client_ip, log_audit, to_bool_flag, compact_ai_report_output 분리 - wordcloud.py: build_word_frequencies, build_circular_wordcloud_html 분리 (SVG 워드클라우드 250줄) - app.py: 1007줄 → 853줄로 축소, 분리된 모듈 import로 대체 https://claude.ai/code/session_018WXW8M8SMsWcHtj1RynUi44b0d992