refactor(core): MCP 역할별 접근 제어 + asyncio.Lock 추가

- ROLE_MCP_ACCESS: agent만 MCP 도구 접근, 나머지 역할은 제거
- _settings_lock: settings.json 쓰기~프로세스 시작 직렬화
- agent.md: 쉘 명령 금지, MCP 도구 강제 사용 지시 추가
- config.py: WORKSPACE_BASE_DIR 경로 수정 (Variet-Worker)
- run_bot.bat: conda 환경 variet-agent로 변경
- workspaces.json: orphan 정리 + 경로 수정
- known-issues: MCP 접근제어, yolo 자율성, Nyaa 카테고리 이슈 추가
- devlog: 002 entry 및 index 업데이트
This commit is contained in:
2026-03-12 22:03:00 +09:00
parent 092bd588be
commit 63818999d9
8 changed files with 112 additions and 80 deletions

View File

@@ -0,0 +1,24 @@
# MCP 역할별 접근 제어 + 아키텍처 재분석
- **시간**: 2026-03-12 18:30~21:59
- **Commit**: (이번 커밋에 포함)
- **Vikunja**: 신규 태스크 생성 예정
## 결정 사항
### MCP 역할별 접근 제어 (구현 완료)
- `ROLE_MCP_ACCESS` dict로 agent만 MCP 도구 접근 허용
- `asyncio.Lock`으로 settings.json 쓰기~프로세스 시작 구간 직렬화
- 나머지 역할(coder, reviewer 등)은 MCP 제거됨
### 아키텍처 방향성 (검토중)
- **MCP 방식의 문제**: `--approval-mode yolo`에서 에이전트가 쉘/파일 조작 무제한 → 음악/만화 다운 등 예측 불가 동작
- **검토 중인 대안**: MCP 대신 Python 도구를 소스코드로 직접 제공 → Gemini CLI가 읽고 이해하여 사용
- **핵심 원칙**: "프롬프트는 부탁, 코드는 법률" → 안전장치는 도구 코드 레벨에 구현
## 미완료
- [ ] 아키텍처 최종 결정 (MCP → Python 도구 직접 제공 방식 전환)
- [ ] Nyaa 검색 카테고리 `1_2`로 변경
- [ ] NAS 기존 폴더 매칭 로직 추가
- [ ] discord_bot.py dead code ~572줄 정리
- [ ] config.py .env 따옴표 처리