[G1-Sync] Manual knowledge update

This commit is contained in:
Antigravity Agent
2026-04-30 22:42:02 +09:00
parent 0bd4f19e38
commit c36c0644a1
4888 changed files with 18470 additions and 18602 deletions
@@ -2,7 +2,7 @@
Date: 2026-04-25 21:07:52 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
@@ -44,7 +44,7 @@ Repository: `/Volumes/Data/project/Antigravity/Datacollector`
실행한 검증:
```bash
node --check scripts/mcp_bridge.mjs
node --check [[Scripts]]/mcp_bridge.mjs
npm run lint
npm run build
```
@@ -55,7 +55,7 @@ npm run build
- TypeScript 타입체크 통과
- Vite 프로덕션 빌드 통과
## Operational Note
## [[Opera]]tional Note
앞으로 앱은 아래 방식으로 실행해야 한다.
@@ -1,8 +1,8 @@
# Datacollector Codebase Structure Review and Initial Risk Assessment
# Datacollector Codebase Structure Review and Initial Risk [[Assessment]]
Date: 2026-04-25 20:38:01 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
Knowledge Vault: `/Volumes/Data/project/Antigravity/Wiki/00_Raw`
## Summary
@@ -12,11 +12,11 @@ Knowledge Vault: `/Volumes/Data/project/Antigravity/Wiki/00_Raw`
현재 프로젝트는 단순한 프런트엔드 앱이 아니라, React 기반 UI와 Zustand 상태 저장소, 자율 실행 엔진, 그리고 NotebookLM MCP 및 로컬 LM을 연결하는 Express 브리지 서버가 결합된 자동화 연구 도구 형태로 구성되어 있다.
## High-Level Architecture
## High-Level [[Architecture]]
전체 흐름은 아래와 같다.
`React UI -> Zustand Store -> KnowledgeEngine -> Express Bridge -> NotebookLM MCP / Local LM / GitHub / Wiki Storage`
`React UI -> Zustand Store -> KnowledgeEngine -> Express Bridge -> NotebookLM MCP / Local LM / GitHub / Wiki [[Storage]]`
핵심 책임 분리는 다음과 같이 이해했다.
@@ -30,7 +30,7 @@ Knowledge Vault: `/Volumes/Data/project/Antigravity/Wiki/00_Raw`
NotebookLM 미연결 시 사용하는 로컬 LM 프롬프트 생성 및 응답 파싱
- `src/lib/github.ts`
결과 Markdown을 GitHub 저장소의 `00_Raw/` 경로로 업로드
- `scripts/mcp_bridge.mjs`
- `[[Scripts]]/mcp_bridge.mjs`
NotebookLM MCP 서버와 통신하는 지속 프로세스형 브리지 서버
## Execution Flow
@@ -58,7 +58,7 @@ Knowledge Vault: `/Volumes/Data/project/Antigravity/Wiki/00_Raw`
## Review Findings
### 1. Sensitive secrets are persisted in browser storage
### 1. Sensitive secrets are persisted in [[Browser]] storage
`githubToken``notebookLmCookies`가 Zustand persist 설정에 포함되어 있어 브라우저 localStorage에 평문으로 저장된다.
이 방식은 세션 쿠키나 GitHub 토큰 같은 민감 정보의 저장 위치로는 안전하지 않다.
@@ -99,7 +99,7 @@ MCP 실행 파일 경로와 위키 저장 경로가 절대경로로 하드코딩
- 다른 개발자 머신, 다른 사용자 계정, 다른 운영체제에서 그대로 실행하기 어렵다.
- 배포보다는 특정 개인 작업 환경에 강하게 종속된다.
### 4. Manual handoff state is not fully cleared
### 4. Manual handoff [[State]] is not fully cleared
`resolveManualNext`가 store에 함수 형태로 저장되는데, `clearState()`에서 정리되지 않는다.
수동 합성 대기 중 reset 또는 새 미션 시작이 발생하면 상태 꼬임 가능성이 있다.
@@ -2,14 +2,14 @@
Date: 2026-04-25 20:50:41 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
Datacollector의 생성 결과 저장 방식을 GitHub 업로드 중심에서 로컬 Wiki 저장 전용으로 정리했다.
앞으로 앱에서 생성되는 연구 문서는 `/Volumes/Data/project/Antigravity/Wiki/00_Raw`에 저장되고, Git 업로드는 사용자가 나중에 별도로 한 번에 처리하는 운영 방식으로 둔다.
## Previous Behavior
## Previous [[Behavior]]
기존 흐름은 결과 생성 후 두 경로가 동시에 존재했다.
@@ -23,7 +23,7 @@ Datacollector의 생성 결과 저장 방식을 GitHub 업로드 중심에서
새 흐름은 다음과 같다.
1. 연구 결과 Markdown 생성
2. `savedReports`에 프리뷰용 로컬 캐시 저장
2. `saved[[Reports]]`에 프리뷰용 로컬 캐시 저장
3. 브리지 서버의 `/api/wiki/save`를 통해 `/Volumes/Data/project/Antigravity/Wiki/00_Raw`에 Markdown 파일 저장
4. GitHub 업로드 버튼이나 토큰 설정 없이 완료
@@ -1,8 +1,8 @@
# Datacollector Mac Windows Launcher Scripts
# Datacollector Mac Windows Launcher [[Scripts]]
Date: 2026-04-25 21:09:42 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
@@ -44,7 +44,7 @@ npm run lint
- macOS shell script 문법 통과
- TypeScript 타입체크 통과
## Operational Note
## [[Opera]]tional Note
앞으로 맥에서는 `run_mac.command`, 윈도우에서는 `run_win.bat`만 실행하면 된다.
`npm run dev` 단독 실행은 프런트엔드만 켜므로 NotebookLM, Wiki save, 인증 복구 API가 동작하지 않는다.
@@ -2,7 +2,7 @@
- 작성 시각: 2026-04-25 21:31:00 KST
- 프로젝트: `/Volumes/Data/project/Antigravity/Datacollector`
- 관련 파일: `scripts/mcp_bridge.mjs`, `auth_mac.command`, `auth_win.bat`, `.env.example`
- 관련 파일: `[[Scripts]]/mcp_bridge.mjs`, `auth_mac.command`, `auth_win.bat`, `.env.example`
## 상황
@@ -12,7 +12,7 @@
- `인증 자동 복구 실패. 브라우저 로그인이 필요한 상태일 수 있습니다.`
- `MCP initialized: true, pending: 0`
사용자는 NotebookLM 인증 중 Chrome이 열렸다가 닫히는 점을 보고, 인증 브라우저를 유지해야 하는 것 아니냐고 질문했다.
사용자는 NotebookLM 인증 중 [[Chrome]]이 열렸다가 닫히는 점을 보고, 인증 브라우저를 유지해야 하는 것 아니냐고 질문했다.
## 확인한 내용
@@ -2,7 +2,7 @@
Date: 2026-04-25 20:47:05 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
@@ -12,7 +12,7 @@ Repository: `/Volumes/Data/project/Antigravity/Datacollector`
## Root Cause Hypothesis
기존 구조는 MCP 서버의 `refresh_auth` 도구 호출에만 의존했다.
하지만 포맷 이후 로컬 토큰 저장 위치나 Chrome 세션 상태가 달라지면서 `refresh_auth`만으로 복구되지 않는 상황이 발생할 수 있다.
하지만 포맷 이후 로컬 토큰 저장 위치나 [[Chrome]] 세션 상태가 달라지면서 `refresh_auth`만으로 복구되지 않는 상황이 발생할 수 있다.
사용자가 직접 실행하던 파일은 다음 명령의 래퍼였다.
@@ -26,7 +26,7 @@ Repository: `/Volumes/Data/project/Antigravity/Datacollector`
수정 파일:
- `/Volumes/Data/project/Antigravity/Datacollector/scripts/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/[[Scripts]]/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/src/components/AgentDashboard.tsx`
- `/Volumes/Data/project/Antigravity/Datacollector/.env.example`
@@ -41,7 +41,7 @@ Repository: `/Volumes/Data/project/Antigravity/Datacollector`
- 장시간 실행 중에는 15분 간격으로 요청이 없는 시점에 인증 상태를 사전 갱신한다.
- UI 안내 문구를 수동 재인증 중심에서 자동 복구 중심으로 수정했다.
## Runtime Behavior
## Runtime [[Behavior]]
새 인증 복구 순서:
@@ -2,7 +2,7 @@
- 작성 시각: 2026-04-25 22:17:33 KST
- 프로젝트: `/Volumes/Data/project/Antigravity/Datacollector`
- 관련 파일: `scripts/mcp_bridge.mjs`
- 관련 파일: `[[Scripts]]/mcp_bridge.mjs`
## 상황
@@ -57,4 +57,4 @@ curl -sS -X POST http://127.0.0.1:3002/api/check-connection
4. 그래도 실패하면 `notebooklm-mcp-auth` CLI 실행
5. 인증 캐시 정리 후 MCP 재시작 및 실제 호출 검증
NotebookLM 브라우저 세션이 완전히 로그아웃된 상태라면 자동 CLI도 브라우저 로그인을 요구할 수 있다. 이 경우 사용자가 열린 NotebookLM Chrome 창에서 로그인만 해두면 이후 자동 복구가 다시 이어질 수 있다.
NotebookLM 브라우저 세션이 완전히 로그아웃된 상태라면 자동 CLI도 브라우저 로그인을 요구할 수 있다. 이 경우 사용자가 열린 NotebookLM [[Chrome]] 창에서 로그인만 해두면 이후 자동 복구가 다시 이어질 수 있다.
@@ -2,7 +2,7 @@
Date: 2026-04-25 21:02:35 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
@@ -38,7 +38,7 @@ ENGINE ERROR Local LM returned an empty or invalid response.
수정 파일:
- `/Volumes/Data/project/Antigravity/Datacollector/scripts/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/[[Scripts]]/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/src/components/AgentDashboard.tsx`
- `/Volumes/Data/project/Antigravity/Datacollector/index.html`
@@ -78,7 +78,7 @@ curl -s -X POST http://127.0.0.1:3002/api/restart
- `/api/health` 응답 정상
- `/api/restart``notebooklm-mcp` 프로세스가 하나만 남는 것 확인
## Operational Note
## [[Opera]]tional Note
현재 실행 중이던 오래된 브리지와 누적된 MCP 하위 프로세스는 종료했다.
앱은 다시 실행해야 새 브리지 로직이 적용된다.
@@ -2,14 +2,14 @@
Date: 2026-04-25 21:17:24 KST
Project: Datacollector
Repository: `/Volumes/Data/project/Antigravity/Datacollector`
[[Repository]]: `/Volumes/Data/project/Antigravity/Datacollector`
## Summary
사용자가 UI에서 `NotebookLM 연결 상태 점검 중...` 로그만 반복되고 실제 진행 상황을 알 수 없다고 보고했다.
확인 결과 앱이 프로젝트 생성 단계까지 가지 못하고 있었으며, 원인은 NotebookLM 연결 확인 단계에서 MCP 인증이 만료 상태로 판단되기 때문이었다.
## Observed State
## Observed [[State]]
확인한 상태:
@@ -19,14 +19,14 @@ Repository: `/Volumes/Data/project/Antigravity/Datacollector`
- `/api/health` 응답 가능
- `/api/check-connection`은 NotebookLM 인증 만료 오류 반환
브리지 로그상 자동 인증 CLI는 Chrome을 열고 로그인 및 토큰 추출까지 수행했다.
브리지 로그상 자동 인증 CLI는 [[Chrome]]을 열고 로그인 및 토큰 추출까지 수행했다.
그러나 MCP 서버는 이후에도 `Authentication expired`로 판단하여 NotebookLM notebook list 호출에 실패했다.
## Changes Made
수정 파일:
- `/Volumes/Data/project/Antigravity/Datacollector/scripts/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/[[Scripts]]/mcp_bridge.mjs`
- `/Volumes/Data/project/Antigravity/Datacollector/src/components/AgentDashboard.tsx`
핵심 변경:
@@ -64,7 +64,7 @@ curl -sS --max-time 25 -X POST -H 'Content-Type: application/json' -d '{}' http:
현재 문제는 앱 실행이나 Bridge 연결 문제가 아니라 NotebookLM MCP 인증 상태 문제다.
자동 인증 CLI가 토큰을 저장해도 MCP 서버가 계속 만료로 판단하므로, 다음 단계에서는 NotebookLM MCP 패키지의 인증 저장 형식 또는 권장 인증 방식(`--file` 모드 등)을 확인해야 한다.
## Operational Note
## [[Opera]]tional Note
확인용으로 실행했던 Bridge/Vite/MCP 프로세스는 종료했다.
새 진행 상태 로그를 보려면 앱을 `run_mac.command`로 다시 실행해야 한다.
@@ -11,12 +11,12 @@
- [[Datacollector/2026-04-25-Datacollector_Engine_Processed_Count_and_Stalled_Loop_Guard]]
- [[Datacollector/2026-04-25-Datacollector_Local_Wiki_Save_Only_Output_Mode]]
- [[Datacollector/2026-04-25-Datacollector_Mac_Windows_Launcher_Scripts]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Auth_Browser_and_Stale_Env_Cookie_Fix]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Auth_[[Browser]]_and_Stale_Env_Cookie_Fix]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Automatic_Auth_Recovery]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Automatic_Reauth_Verification_and_Lock]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Connection_Guard_and_MCP_Restart_Fix]]
- [[Datacollector/2026-04-25-Datacollector_NotebookLM_Progress_Visibility_and_Auth_Diagnosis]]
- [[Frontend_Mastery/2026-04-25-Datacollector_Auto_Resume_After_Reauth_Fix]]
- [[Frontend_[[Mastery]]/2026-04-25-Datacollector_Auto_Resume_After_Reauth_Fix]]
- [[Frontend_Mastery/2026-04-25-Datacollector_Bridge_Connection_Refused_Run_Script_Fix]]
- [[Frontend_Mastery/2026-04-25-Datacollector_Codebase_Structure_Review_and_Initial_Risk_Assessment]]
- [[Frontend_Mastery/2026-04-25-Datacollector_Local_Wiki_Save_Only_Output_Mode]]