주요 변경사항:
- 프로토타입 백업 파일 삭제 (대시보드, 회의진행)
- 참조 이미지 파일 정리 (KakaoTalk 스크린샷 4건)
- UI/UX 설계서 및 유저스토리 업데이트
프로젝트 정리 및 문서 구조 개선
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- SecurityConfig에서 JWT 인증 제거하여 모든 요청 허용
- JwtTokenProvider 및 JwtAuthenticationFilter 의존성 제거
- 프론트엔드에서 토큰 없이 API 호출 가능하도록 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- SecurityConfig에서 JWT 인증 제거하여 모든 요청 허용
- RecordingDto에 Jackson 역직렬화를 위한 어노테이션 추가
- @NoArgsConstructor, @AllArgsConstructor 추가
- @JsonDeserialize, @JsonPOJOBuilder 추가
- 프론트엔드에서 토큰 없이 API 호출 가능하도록 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AgendaSection 도메인 및 Entity에서 opinions 필드 제거
- ParticipantOpinion 내부 클래스 삭제
- MeetingAiController 및 AgendaSectionResponse에서 opinions 관련 로직 제거
- agenda_sections 테이블 마이그레이션 SQL 스크립트 추가
* agenda_number: varchar(50) → integer 변환
* decisions, pending_items, todos: text → json 변환
* opinions 컬럼 삭제
- 자동 백업 및 롤백 기능 포함
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- AI 서비스 reload 설정 비활성화 (포트 충돌 방지)
- start.sh 삭제 및 restart.sh로 대체
- STT 서비스 로깅 및 WebSocket 핸들러 개선
- 회의 안건 섹션 마이그레이션 SQL 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
UI/UX 설계서 및 유저스토리 용어 일관성 개선 (v1.5.9)
주요 변경사항:
- 화면설계서: 100개 인스턴스 변경
- 유저스토리: 132개 인스턴스 변경
- 프로토타입: 34개 인스턴스 변경
- 총 266개 인스턴스 용어 통일
사용자 역할 용어 체계 완전 통일 (생성자/참여자)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
회의록 수정 화면에서 Todo 관련 내용 완전 제거
- 프로토타입(11-회의록수정.html) 검증 결과 Todo UI 미존재 확인
- Todo 관리는 회의록 상세조회 화면(10-회의록상세조회.html)에서만 가능
- 회의록 수정 화면 출력 내용에 관련회의록 추가/제거 기능 명시
수정 사항:
- 수행절차: Todo 조회 항목 제거
- 출력/결과: Todo 목록 항목 제거, 관련회의록 추가/제거 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
UI/UX 설계서 및 유저스토리 용어 일관성 개선 (v1.5.9)
주요 변경사항:
- 화면설계서: 100개 인스턴스 변경
- 유저스토리: 132개 인스턴스 변경
- 프로토타입: 34개 인스턴스 변경
- 총 266개 인스턴스 용어 통일
사용자 역할 용어 체계 완전 통일 (생성자/참여자)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
유저스토리:
- UFR-TODO 참조 제거 (742, 1136-1137 라인)
- UFR-TERM-010/020/030 전체 삭제 (RAG와 기능 중복)
- 버전 업데이트: v2.4.3 → v2.4.4
- 목차에서 UFR-TERM 항목 제거
- 변경 이력 추가
UI/UX 설계서:
- Todo 서비스 매핑 제거 (96 라인)
- 09-Todo관리 화면 취소선 처리 및 제거 표시
- 09-Todo관리 섹션에 제거 안내 추가
- Todo 편집 섹션 제거 표시
- 버전 업데이트: v1.5.6 → v1.5.7
- 변경 이력 추가
- 목차 2-depth로 간소화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
• 02-대시보드.html 수정
- 예정 회의 카드 권한 제어 개선
- 생성자/참석자 역할별 클릭 동작 차별화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
• UFR-COLLAB-010 (회의록수정동기화) 삭제
- WebSocket 기반 실시간 동기화 기능 미구현
- MVP 스코프에서 제외됨
• UFR-COLLAB-020 (충돌해결) 삭제
- 안건 기반 충돌 방지는 UFR-COLLAB-030과 UFR-MEET-055에 통합
- Last Write Wins 정책은 UFR-MEET-055에 명시
• UFR-MEET-055 예외처리 개선
- 동시 편집 정책에 충돌 처리 상세 설명 추가
- Last Write Wins 정책 명시
• 마이크로서비스 구성 수정
- 실시간 협업 제거
- 안건별 검증완료 및 잠금 처리로 변경
- Notification 서비스 추가
• UI/UX 설계서 동기화
- 모든 UFR-COLLAB-010/020 참조를 UFR-COLLAB-030으로 변경
- 05-회의진행, 11-회의록수정 화면 관련 유저스토리 업데이트
- 화면 맵핑 테이블 수정
• 문서 버전: v2.4.2 → v2.4.3
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
## API 경로 변경
- /api/v1/ai → /api/ai 로 경로 단순화
- 최종 엔드포인트: /api/ai/suggestions/meetings/{meetingId}/stream
## Docker 컨테이너화
- Dockerfile 작성 (Python 3.11 slim 기반)
- .dockerignore 추가
- 헬스 체크 포함
## Kubernetes 배포
- Deployment 및 Service 매니페스트 작성
- Replica: 1, Port: 8087
- Liveness/Readiness Probe 설정
- 리소스 제한: CPU 250m-1000m, Memory 512Mi-1024Mi
## Secret 및 ConfigMap
- ai-secret: Claude API Key
- azure-secret: Event Hub Connection String (AI Listen Policy)
- redis-config/redis-secret: Redis 연결 정보
## Ingress 설정
- /api/ai/suggestions 경로 추가 (ai-service:8087)
- 기존 /api/ai 경로 유지 (ai:8080)
## 배포 문서
- DEPLOYMENT.md: 상세한 AKS 배포 가이드
- Docker 이미지 빌드 및 푸시
- Secret/ConfigMap 생성
- 배포 및 검증
- 트러블슈팅
## ACR 이미지
- acrdigitalgarage02.azurecr.io/hgzero/ai-service:latest
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Swagger UI를 Spring Boot 스타일(/swagger-ui.html)로 변경
- OpenAPI 스펙 개선 및 상세한 API 문서화
- 프론트엔드 연동을 위한 API-DOCUMENTATION.md 추가
- SSE 연결 예시 (JavaScript/React)
- 응답 스키마 및 TypeScript 인터페이스
- 동작 흐름 및 주의사항
- FastAPI 설정 파일(config.py) 추가
- API 엔드포인트:
- GET /api/v1/ai/suggestions/meetings/{meeting_id}/stream (SSE)
- GET /health (헬스 체크)
- GET /v3/api-docs (OpenAPI JSON)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
✅ 구현 완료
- AI Python Service (FastAPI, Claude API, 8087 포트)
- POST /api/v1/transcripts/consolidate
- 참석자별 회의록 → AI 통합 분석
- 키워드/안건별 요약/Todo 추출
- Meeting Service AI 통합
- EndMeetingService (@Primary)
- AIServiceClient (RestTemplate, 30초 timeout)
- AI 분석 결과 저장 (meeting_analysis, todos)
- 회의 상태 COMPLETED 처리
- DTO 구조 (간소화)
- ConsolidateRequest/Response
- MeetingEndDTO
- Todo 제목만 포함 (담당자/마감일 제거)
📝 기술스택
- Python: FastAPI, anthropic 0.71.0, psycopg2
- Java: Spring Boot, RestTemplate
- Claude: claude-3-5-sonnet-20241022
🔧 주요 이슈 해결
- 포트 충돌: 8086(feature/stt-ai) → 8087(feat/meeting-ai)
- Bean 충돌: @Primary 추가
- YAML 문법: ai.service.url 구조 수정
- anthropic 라이브러리 업그레이드
📚 테스트 가이드 및 스크립트 작성
- claude/MEETING-AI-TEST-GUIDE.md
- test-meeting-ai.sh
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
## 구현 내용
- 참석자별 회의록 조회 API (GET /api/meetings/{meetingId}/ai/participant-minutes)
- 안건별 섹션 조회 API (GET /api/meetings/{meetingId}/ai/agenda-sections)
- 회의 통계 조회 API (GET /api/meetings/{meetingId}/ai/statistics)
## DB 스키마 변경
- V4 마이그레이션: agenda_sections 테이블에 todos JSON 컬럼 추가
- AI가 추출한 Todo를 안건별로 저장하는 구조
## 주요 특징
- AI Service가 한 번에 요약 + Todo 추출
- 프로토타입 기반 요구사항 반영 (불필요한 통계 제거)
- Todo 수를 agenda_sections의 todos 컬럼에서 집계
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>