🦉미네르바

CHANGELOG

업데이트 이력

미네르바 플랫폼 프로토타입이 어떻게 발전해왔는지 기록합니다.
새 현자의 합류, 사상의 습득, UI 개선, 안전 장치 강화 —
플랫폼이 자라나는 과정을 함께 보시기 바랍니다.

v0.4.22026-04-15현재 버전

자동 저장 — 대화가 더는 날아가지 않습니다

기존에는 사용자가 우상단 💾 저장 버튼을 직접 눌러야만 대화가 보관되었습니다. 이 때문에 저장을 깜박하거나 탭이 닫히면 수십 분 분량의 대화가 통째로 사라지는 문제가 있었습니다. v0.4.2에서는 두 겹의 자동 저장 구조를 도입했습니다. 첫째, 로그인하지 않은 사용자도 이 브라우저 안에서는 대화가 자동으로 보관되며(localStorage), 다음에 같은 현자 페이지로 돌아오면 '이전 대화를 자동으로 불러왔습니다' 배너와 함께 그대로 이어서 대화할 수 있습니다. 둘째, 로그인한 사용자는 매 응답이 끝날 때마다 Supabase에 자동 동기화되어, 기기·브라우저를 바꿔도 '내 기록(/my)'에서 항상 최신 상태로 이어받을 수 있습니다. 수동 💾 저장 버튼도 그대로 남아있지만 이제는 보조 수단입니다.

주요 변경

  • 💾 로컬 자동 저장 — 로그인 여부와 무관, 매 턴 종료 시 브라우저 localStorage에 백업
  • ☁️ 원격 자동 동기화 — 로그인 시 매 응답마다 Supabase에 upsert (기기 바꿔도 복원)
  • 📜 '이전 대화 자동 불러옴' 배너 — 페이지 재진입 시 표시, '새 대화 시작' 버튼으로 초기화
  • 🔄 스트리밍 중에는 저장 보류 — 중간 상태가 덮어쓰지 않도록 보호
  • 🔐 Supabase RLS 'UPDATE' 정책 신설 — 본인 대화만 갱신 가능
🛡️계기
  • 프로덕션에서 20분 분량의 현자 대화가 저장 버튼 미클릭으로 소실되는 사고 발생
  • Anthropic API 로그도 prompt logging 비활성화 상태라 복구 불가 확인
  • 긴급 대응으로 v0.4.2 자동 저장 체계 도입
⚙️동작 방식
  • ConversePanel: 마운트 시 localStorage 'minerva_draft_<personaId>' 확인 → 있으면 메시지 복원
  • messages state 변경 + !isStreaming 시 localStorage 갱신 (모든 사용자)
  • 로그인 사용자는 동일 시점에 Supabase INSERT(최초) / UPDATE(이후) 수행
  • '새 대화 시작' 클릭 시 draft 제거 + conversation id 초기화
v0.4.12026-04-15

현자 대화 자연스러움 개선 — 되물음 30% 쿼터 제거

현자가 매 응답마다 사용자에게 질문을 되돌리는 빈도가 기계적이라는 피드백을 반영했습니다. 기존 공통 헌장에 있던 '되물음 비율 30% 이상 유지' 규칙을 제거하고, 되물음은 대화의 결을 따라 자연스러울 때만 사용하도록 바꿨습니다. 사용자가 자기 생각을 풀어놓을 때는 경청하고, 현자의 관점·경험·원전의 지혜를 담담히 내어놓는 방향으로 이동했습니다. 소크라테스처럼 문답이 고유 방법인 현자는 여전히 자연스럽게 질문을 이어가고, 최제우·공자·노자 등은 자기 경험과 비유로 이야기하기 좋아졌습니다.

주요 변경

  • 🗣️ 공통 헌장에서 '되물음 30% 쿼터' 규칙 삭제 — 질문은 강제 할당이 아니라 자연스러운 결을 따름
  • 🧘 현자의 관점·경험·원전의 지혜를 담담히 이야기하는 모드 강화
  • 📜 소크라테스의 문답법 고유성은 그대로 유지 (현자별 정체성 프롬프트에서 개별 보존)
  • ✨ 최제우·공자·노자 등 민중적·비유적 현자의 말맛이 더 살아남
v0.42026-04-15

로그인·대화 저장·내 기록 · 전역 헤더

현자와 나눈 깊은 대화를 '지금 이 순간'에만 머물지 않고, 언제든 다시 열어볼 수 있도록 저장 기능을 도입했습니다. Supabase 기반으로 Google·카카오 소셜 로그인을 붙이고, 전역 헤더를 새로 짜 우상단에서 로그인 상태를 항상 확인할 수 있게 했습니다. '내 기록' 페이지에서는 제목 검색·현자별 필터·제목 편집·삭제까지 관리 가능합니다. 로그인하지 않아도 대화는 그대로 이용할 수 있으며, 저장 버튼을 누르는 순간 로그인이 안내됩니다.

주요 변경

  • 🔐 Google · 카카오 소셜 로그인 (Supabase Auth · OAuth 2.0 + OIDC)
  • 💾 대화 저장 — 모든 메시지 · 현자 · 다중 관점 응답까지 구조화된 JSON으로 보관
  • 📜 내 기록 페이지 (/my) — 제목 검색 · 현자별 필터 칩 · 인라인 제목 편집 · 삭제
  • 🧭 전역 헤더 · 우상단 사용자 메뉴 — 모든 페이지에서 로그인 상태 항상 확인
  • 🔔 토스트 알림 — 저장·삭제·로그아웃 등 주요 행동에 즉각 피드백
  • 📄 Markdown 내보내기 — 대화 전체를 .md 파일로 다운로드
🔐계정·보안
  • Google OAuth 2.0 로그인
  • 카카오 OAuth 로그인 (profile_nickname scope · 비즈 앱 전환 불필요)
  • 세션 자동 갱신 미들웨어 + Row Level Security로 본인 대화만 접근
  • 로그아웃 시 즉시 세션 종료 + UI 동기화
💾데이터·저장
  • Supabase PostgreSQL 연동 (conversations 테이블)
  • 첫 질문 60자 자동 제목 생성 — 추후 인라인 편집 가능
  • 저장 전 localStorage에 임시 보관 → 로그인 후 자동 저장
  • RLS 정책: 본인 user_id만 select/insert/update/delete
🎨UI · UX
  • 전역 GlobalHeader — 로고 · 메뉴 · 로그인 상태 (모든 페이지 공통)
  • UserMenu 드롭다운 — 아바타(이니셜) · 이름 · 내 기록 · 로그아웃
  • 홈 히어로 CTA 로그인 상태별 변형 (비로그인: 로그인 안내 / 로그인: 내 기록 바로가기)
  • Portal 기반 AuthModal — 어떤 페이지 위에서도 상단 가림 없이 정확히 표시
  • 토스트 알림 시스템 (성공·오류·안내 3톤)
  • 대화 카드 hover 시 골드 좌측 바 · 캡션 웨이트 300으로 정보 위계 강화
v0.32026-04-14

대화 주제 개방 · 조율자 명칭 통일

미네르바는 인생 전반에 대한 대화 플랫폼입니다. 초기 설계에서 정치·선거를 금지 주제로 설정했지만, 이는 지나치게 제한적이었습니다. "민주주의란 무엇인가", "선거에서 어떤 기준으로 사람을 뽑아야 하는가" 같은 질문은 철학·가치관·삶의 방향과 깊이 연결된 인생 질문입니다. 이번 업데이트로 정치·선거 주제 차단을 해제하고, 모든 인생 질문에 현자의 지혜로 응답할 수 있게 했습니다. 또한 "지휘자" 표현을 "조율자"로 통일해 미네르바의 역할을 더 정확하게 표현했습니다.

주요 변경

  • 🗳️ 정치·선거 주제 차단 해제 — 민주주의·가치관·선택 기준 등 인생 질문으로 응답
  • 🎼 "지휘자" → "조율자" 전면 교체 — 미네르바의 역할 표현 일관성 확보
v0.2.12026-04-13

미네르바 정체성 재정의 · 업데이트 이력 페이지 신설

v0.2에서 미네르바가 멀티에이전트 오케스트레이터로 격상되면서, 기존 "단일 엔진"이라는 기술적 용어는 더 이상 맞지 않게 되었습니다. 미네르바를 "지혜의 여신 · 10인 현자를 부르는 조율자"로 재정의하고, 사용자가 플랫폼 변화를 직접 확인할 수 있도록 업데이트 이력 페이지를 신설했습니다.

주요 변경

  • 🎼 미네르바 정체성 재정의: "단일 엔진" → "지혜의 여신 · 10인 현자를 부르는 조율자"
  • 📜 업데이트 이력 페이지 신설 (/changelog) — 푸터에서 접근 가능
  • 🏛️ About 페이지에 "미네르바의 3가지 모드" 섹션 추가 (변신·다중·특정)
  • 🏷️ 홈·About·Personas 푸터에 현재 버전 뱃지 + 이력 링크 추가
v0.22026-04-13

영혼의 대화 · 10인의 현자 · 멀티에이전트 오케스트레이터

김종민 의원이 직접 프로토타입을 테스트한 후 "소셜 마인드 취지에 딱 맞다"는 피드백을 주셨고, 동시에 세 가지 중요한 지시를 추가하셨습니다 — "영혼, 영혼, 영혼" 3회 반복 강조, 필수 현자 3인(노자·최제우·니체) 추가, 그리고 "AI는 단순 중재자가 아니라 앵커·링커·참여자 역할"이라는 철학적 확장. 이 세 지시를 한 번에 구현하면서, 미네르바를 진정한 멀티에이전트 오케스트레이터로 격상시켰습니다.

주요 변경

  • 🆕 현자 3인 추가: 노자(도가)·최제우(동학)·니체(실존) — 총 10인 현자 체계
  • ✨ "영혼의 대화" 메타포 전면 채택 — 홈 히어로·About·시스템 프롬프트 전반
  • 🧭 교양·공감·연결 3가치 구조 명시 (의원 4/13 통화)
  • 🎭 미네르바 변신 모드 + 다중 관점 모드 도입 (멀티에이전트)
  • 🛡️ 위기 감지 이중 레이어 (키워드 + LLM 맥락 감지)
  • 🏛️ 스티브 잡스의 "소크라테스와 점심" 인용 — 미네르바의 가치 제안
👥새 현자 3인
  • 🌊 노자 — 도덕경 81장, 무위자연·반자도지동·상선약수
  • ☯️ 최제우 — 동경대전·용담유사, 인내천(人乃天)·시천주·유불선 통합
  • 🦅 니체 — 짜라투스트라·선악의 저편 외 5권, 영원회귀·초인·운명애
🧠멀티에이전트 아키텍처
  • 오케스트레이터 신설 (lib/orchestrator.ts) — Claude Sonnet 기반 주제 분석
  • confidence score 산출로 모드 자동 분기 (0.70 기준)
  • 변신 모드: 미네르바가 주제에 가장 맞는 현자로 변신해 답변
  • 다중 관점 모드: 주제가 모호할 때 3인 현자 병렬 호출 → 카드 병치 UI
  • 10인 현자별 상세 시스템 프롬프트 (COMMON_CHARTER + SAGE_IDENTITY)
🎨UI / UX
  • 홈 메인 문구: "인생에 대한 대화" → "영혼의 대화" (서브헤드로 보존)
  • 홈 하단 3블록: 왜 미네르바인가 → 교양·공감·연결
  • About 페이지 대폭 확장 — 영혼의 대화 본질·3가치 카드·국풍 아이덴티티
  • 스티브 잡스 인용 섹션 추가 — "잡스가 원했던 그 대화를 오늘의 당신에게"
  • 다중 관점 카드 UI: 현자별 심볼·이름·전통 + 응답 카드 그리드
  • 변신 배너: "🦉 → 🌊 미네르바가 노자의 목소리로 답합니다"
🛡️안전 · 원칙
  • CRISIS_KEYWORDS 보강 (사라지고 싶다·짐만 되는·끝내고 싶다 등)
  • 오케스트레이터 레이어 위기 맥락 감지 (암묵적 신호 포함)
  • 정치·선거 주제 자동 우회 (routing_refused)
  • COMMON_CHARTER에 앵커·링커 역할 명시 (의원 4/13 지시)
v0.1.12026-04-12

배포 안정화 · 한글 경로 우회 절차 확립

주요 변경

  • Netlify 배포 시 Google Drive 한글 경로 이슈 해결
  • c:/tmp 영문 임시 경로 경유 배포 파이프라인 문서화
  • ANTHROPIC_API_KEY Netlify 환경변수 설정 완료
  • 개발매뉴얼 v0.1 부록 D에 배포 절차 기록
v0.12026-04-11

미네르바 플랫폼 프로토타입 첫 배포

김종민 국회의원이 2026-04-08 제안하고 4-10 통화로 구체화한 "미네르바 플랫폼" 구상을 3일 만에 프로토타입으로 구현했습니다. Claude Sonnet 4.6 기반 SSE 스트리밍 대화, 7인 현자 선택, 위기 키워드 감지, 모바일(iPhone 12) 반응형 대응까지 포함된 엔드-투-엔드 프로토타입.

주요 변경

  • 🎉 프로토타입 최초 배포 (https://minerva-wg-prototype.netlify.app)
  • 👥 7인 현자: 소크라테스·공자·장자·원효·다산·아우구스티누스·키에르케고르
  • 🤖 Claude Sonnet 4.6 기반 SSE 스트리밍 대화
  • 📱 iPhone 12 모바일 반응형 (h-[100dvh] · safe-area · 16px textarea)
  • 🚨 위기 키워드 감지 → 1393 · 1577-0199 즉시 라우팅
  • 🎨 NanumSquare Neo 단일 폰트 · ink/parchment/gold 디자인 토큰

🛠️ 프로토타입 진행 상황

현재 미네르바 플랫폼은 프로토타입 단계입니다. 의원님·파트너 피드백을 받아 계속 진화하고 있으며, 이 페이지에 모든 주요 변경 사항이 기록됩니다.

문의·제안: 토마스(윤덕찬, Who’s Good 대표)