Commit Graph

77 Commits

Author SHA1 Message Date
28ae0d5853 fix(anime): download + title 없을 때 batch_download로 처리
- action=download, title='' → filter에 sub 포함시 sub_only, 아니면 auto
- video_only도 title 없을 때 batch 처리 추가
2026-03-18 21:44:01 +09:00
dc1bc8f46b fix(anime): 전수 감사 — action 분기 완성 + 중복 코드 제거
- sub_only: title O → download(sub_only), title X → batch_download(sub_only)
- video_only: pipeline.download(video_only) 분기 추가
- schedule: list/scan과 통합 (NAS 현황 조회)
- 존재하지 않는 sync_subtitles → batch_download(sub_only)로 교체
- 중복 list/scan 코드 블록 제거
2026-03-18 21:39:35 +09:00
7a9f4c292f fix(bot): anime handler import 수정 (handle_anime_action -> handle_anime_message) 2026-03-18 21:32:15 +09:00
489755ff22 test: E2E 테스트 스크립트 추가 (분류/Foreman/NC 전모듈) 2026-03-18 21:28:45 +09:00
77bd211bce fix(prompt): anime 분류 정확도 강화 (6/6 테스트 통과)
- NAS/자막/애니 키워드 포함시 task 대신 anime 우선 분류
- nextcloud 판단 기준 별도 섹션 추가
- anime/nextcloud 키워드 우선 규칙 명시
2026-03-18 21:25:19 +09:00
c55203474b fix: NC 검색 PROPFIND 폴백 + 자막 중복 스킵
- nc_files.py: WebDAV SEARCH 501 시 PROPFIND depth=99 + 로컬 필터 폴백
- subtitle_downloader.py: download_file에 기존 파일 존재 체크 추가 (이미 있으면 스킵)
2026-03-18 21:14:38 +09:00
35b9813d44 debug(bot): classify_and_route 상세 로그 추가 + 파이프라인 검증 스크립트 2026-03-18 18:26:33 +09:00
62bc257be6 fix(bot): JSON 파서 중첩 객체 매칭 수정 (중괄호 균형 방식) 2026-03-18 18:15:57 +09:00
56787b1e4f fix(bot): unified prompt 분류 -> 라우팅 흐름 구현 2026-03-18 18:01:46 +09:00
d22493125c feat(nextcloud): Nextcloud 4모듈 + NC핸들러 + AI Foreman v0.1
- tools/nextcloud_client.py: WebDAV/OCS/CalDAV/CardDAV 공통 클라이언트
- tools/nc_files.py: 파일 검색/목록/최근/공유링크
- tools/nc_calendar.py: CalDAV 일정 CRUD + ICS 빌더
- tools/nc_mail.py: IMAP 메일 조회 (PLAIN auth for Mailcow)
- tools/nc_contacts.py: CardDAV 연락처 + EasyOCR 명함 스캔
- handlers/nc_handler.py: 자연어→NC도구 자동 라우팅
- core/foreman.py: 목표 분해 + 상담 세션 + Vikunja 등록
- prompts/foreman.md: Foreman 시스템 프롬프트
- prompts/unified.md: nextcloud 모드 분류 추가
- config.py: .env 따옴표 파싱 버그 수정
- api/discord_bot.py: /goal 커맨드 + Foreman 스레드 라우팅
2026-03-18 17:26:03 +09:00
CD
aae9c188eb docs: devlog 세션 4 기록 (커뮤니티 스크래퍼 구현) 2026-03-17 00:42:51 +09:00
CD
ced1523c40 feat(tools): 커뮤니티 트렌드 스크래퍼 구현 (DCInside 인기글 + Gemini Skill) 2026-03-17 00:35:36 +09:00
CD
ddbe0dc89a docs: devlog 세션 3 기록 (Vikunja CRUD 테스트 + Debate Room 설계) 2026-03-16 18:11:18 +09:00
CD
ffbb291509 docs: devlog 세션 2 기록 (agent 수칙 업데이트) 2026-03-16 14:36:40 +09:00
CD
6c17f9b10b refactor(agent): .agents 통합 + AGENT.md 수칙 업데이트 + STATUS.md 도입 + end.md Wiki 동기화 개편 2026-03-16 14:35:28 +09:00
a9a48e5fa7 docs: devlog 커밋 해시 업데이트 2026-03-16 11:30:19 +09:00
c9068cdf1c fix(bot): 기동 버그 3건 수정 + feat(vikunja): 프로젝트 관리 기능 추가
- fix: apscheduler 누락 의존성 설치
- fix(main): StreamHandler cp949 UnicodeEncodeError 수정 (UTF-8 강제)
- fix: workspaces.json 경로 Certes→Variet-Worker 수정
- fix(gemini): MCP issues detected 노이즈 필터 추가
- fix(bot): on_command_error 핸들러 추가 (CommandNotFound 로그 오염 방지)
- feat(vikunja): projects 커맨드 (전체 프로젝트 목록+태스크 통계)
- feat(vikunja): report 커맨드 (태스크+git log+devlog 종합 현황)
- docs(agent): Vikunja 도구 섹션 확장 (12개 커맨드+라벨 가이드)
- docs: known-issues 2건 추가, devlog 세션 1 기록
2026-03-16 11:29:17 +09:00
CD
d8436cb415 docs: devlog 세션 5 기록 (MCP 제거 + 철칙 추가) 2026-03-15 23:14:23 +09:00
CD
e59fcdf114 refactor(agent): MCP 서버 제거 → CLI 도구 직접 실행 전환 + Wiki 도구 추가 2026-03-15 23:05:38 +09:00
CD
2f7c18df49 docs(agent): 에이전트 철칙 추가 — 전체 구조 파악 의무, 관련 소스 참조 필수 2026-03-15 22:56:02 +09:00
CD
6490ed4be4 fix(wiki): update_page tags 누락 에러 수정 + refactor(bot): 레거시 NLU/핸들러 800줄 제거 2026-03-15 22:43:56 +09:00
CD
9daa165b0b test(wiki): WikiClient 통합 테스트(CRUD) 추가 및 배치 환경 구성 2026-03-15 22:25:38 +09:00
CD
89d93e7e6f feat(tools): Wiki.js GraphQL 클라이언트 추가 — 페이지 CRUD + 리서치 대시보드 2026-03-15 19:06:47 +09:00
CD
3ee2dad868 devlog: session 2-3 entries 2026-03-15 18:31:37 +09:00
CD
9e06c01f6e docs: anime pipeline architecture and operation guide 2026-03-15 18:28:57 +09:00
CD
3618387b8e feat(anime): 자막/토렌트 파이프라인 대폭 개선
- Blogspot Atom Feed API로 전체 에피소드 자막 URL 발견
- AniList prequel 체인 기반 시즌 에피소드 오프셋 자동 감지
- Nyaa S-tag 감지 → 절대/시즌 번호 체계 자동 판별
- 기존 자막 에피소드 스킵 (URL 페치 전 pre-skip)
- 오프셋 적용 자막 리네임 (시즌번호→절대번호 매칭)
- ASW HEVC 토렌트 우선 정렬 (truncation 방지)
- 토렌트 완료 대기 → 자동 삭제 라이프사이클
- 중복 자막 자동 삭제
- .smi 자막 확장자 지원
2026-03-15 18:23:57 +09:00
CD
9f74812710 fix(anime): 파이프라인 5건 수정 — 에피소드 정규식(v2/S01E), 릴리스 그룹 필터, 자막 보호, 배치 다운로드, 타임아웃 2026-03-15 08:29:59 +09:00
63818999d9 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 업데이트
2026-03-12 22:03:00 +09:00
092bd588be docs: devlog 커밋 해시 업데이트 2026-03-12 16:53:35 +09:00
246d2a26c4 refactor(agent): MCP 기반 에이전트 아키텍처 재설계 — unified.md 분류기 제거, Gemini CLI + MCP 자율 도구 호출로 전환 2026-03-12 16:52:20 +09:00
acc8533ef2 refactor: .agents + .agent 단일 .agent 디렉토리로 통합 (agent_guide 포맷, 12→7 워크플로우 축소) 2026-03-11 01:04:52 +09:00
CD
d50d3d86af docs: devlog 커밋 해시 업데이트 2026-03-10 22:51:49 +09:00
CD
044200a786 chore: Agent Guide 셋업 — agent_guide.git 기반 .agents 재구성 + 프로젝트별 설정 2026-03-10 22:51:14 +09:00
CD
e1aca2b79f docs: devlog 커밋 해시 업데이트 2026-03-08 17:44:50 +09:00
CD
1dab257401 fix(tools): 애니 파이프라인 버그 4건 수정 — Unicode SyntaxError, 카타카나 변환, Nyaa 검색 전략 + Python 환경 설정 2026-03-08 17:43:54 +09:00
CD
a3a083f6da chore: vikunja PROJECT_ID 설정 (7) 2026-03-08 16:09:17 +09:00
CD
c92433b0b1 feat(tools): 애니메이션 자동화 파이프라인 구현
- tools/anissia_client.py: Anissia API 클라이언트 (편성표/자막)
- tools/nyaa_client.py: Nyaa.si RSS 토렌트 검색
- tools/qbit_client.py: qBittorrent Web API 클라이언트
- tools/subtitle_downloader.py: Google Drive/Tistory/Naver 자막 파서
- tools/title_matcher.py: 제목 매칭 + NAS 폴더명 생성
- tools/anime_pipeline.py: 전체 파이프라인 오케스트레이터
- tools/nas_scanner.py: NAS 폴더/파일 스캔
- prompts/unified.md: anime 모드 추가 (AI 평문 의도 분류)
- api/discord_bot.py: AI 평문 anime 핸들러 + /anime 슬래시 커맨드
- config.py: qBittorrent/NAS 설정 추가
- .agents/: agent_guide 워크플로우 통합
- docs/devlog: 세션 기록
2026-03-08 16:07:16 +09:00
CD
49ee5f397c fix: reviewer 타임아웃 300초, unified에 workspace 경로 추가
- reviewer agent timeout: 180s → 300s (에이전트 시작 오버헤드 고려)
- unified context에 workspace path 명시 → 경로 질문에 정확한 답변
- planner agent timeout 유지: 180s
2026-03-07 01:37:48 +09:00
CD
e65e2250a3 feat: Planner direct 모드 + Reviewer 검증
- direct 모드: Planner 직접 처리 → Reviewer 검증 → 완료 (2단계)
- tasks 모드: 기존대로 full pipeline (5단계)
- 대화 히스토리 embed 내용 포함 (clarify 맥락 유지)
2026-03-07 01:26:32 +09:00
CD
80a5560134 fix: 대화 히스토리에서 embed 내용 유실 - clarify 맥락 보존
- _get_channel_history에서 embed title/description/fields 추출
- 봇의 clarify 질문이 히스토리에 포함되어 맥락 유지
- planner 프롬프트 강화: 불필요한 태스크 분할 방지
2026-03-07 01:22:08 +09:00
CD
0fa62d24e9 revert: unified 프롬프트에서 모델명 제거 (인위적) 2026-03-07 00:53:02 +09:00
CD
4dc75804ad fix: unified 프롬프트에 모델 정체성 추가 (Gemini 3 Flash) 2026-03-07 00:51:35 +09:00
CD
01bf8aa258 feat: gemini-3-flash-preview + 역할별 thinkingBudget
- 모델: gemini-3-flash-preview (2.0 Flash → 3 Flash 업그레이드)
- 역할별 thinkingBudget 동적 조절:
  unified/summarizer = 512  (가벼운 분류/요약)
  planner            = 4096 (계획/검수)
  coder/reviewer     = 8192 (구현/비평)
- ~/.gemini/settings.json에 호출 직전 반영
- Docker에서도 settings.json 마운트로 동작
2026-03-07 00:48:30 +09:00
CD
fcd3ebfd41 fix: docs_manager 세션 기록 크래시 방지
- record_session을 try/except로 감싸서 실패해도 봇 지속
- mkdir 안전장치 추가 (에이전트가 docs/ 삭제할 수 있음)
- em-dash → ASCII dash 변경
2026-03-06 23:42:06 +09:00
CD
a408bb32fe refactor: 전체 구조 점검 - 데드코드 제거, 에이전트 모드 통일, 취소 기능
1. 데드 코드 제거: execute() 146줄, _read_project_files() 31줄
2. 전 역할 agent 모드: summarize도 call_agent로 변경
3. 작업 취소: 취소/stop/cancel 입력으로 실행 중 작업 중단
4. 중복 방지: 채널당 1작업만 허용
2026-03-06 23:30:00 +09:00
CD
5f669117b2 feat: Planner/Reviewer 에이전트 모드 + 직접 파일 접근 2026-03-06 23:25:30 +09:00
CD
52402065f3 feat: Planner 오케스트레이션 루프 구현
이중 루프 구조:
- 내부 루프 (Planner 자가검증, 최대 3회):
  계획 → 코딩 → Planner가 결과 검증 → 미달 시 추가 태스크 → 반복
  Planner가 만족할 때까지 자체적으로 보완 작업 진행
- 외부 루프 (Reviewer, 최대 2회):
  Planner 만족 → Reviewer 검토 → 반려 시 피드백으로 재계획

새 메서드:
- planner_verify(): Planner가 계획 달성도 자가 검증
- _read_recent_files(): 프로젝트 파일 읽기 공용 헬퍼
2026-03-06 23:14:05 +09:00
CD
47a8c41a81 feat: Coder 자가검증 루프 추가
구현 → 자가검증 → 자가수정 → 검증통과 → 완료보고
- 2단계: 파일 다시 읽어 완전성/참조/문법 확인
- 3단계: 문제 있으면 직접 수정 후 다시 검증
- 4단계: 검증 통과 후에만 리뷰어에게 전달
외부 리뷰 재시도 비용을 줄이는 내부 품질 루프
2026-03-06 23:07:57 +09:00
CD
69e3a051f7 refactor: 전체 프롬프트 점검 및 수정
- reviewer.md: 에이전트 모드에 맞게 전면 개편
  - 실제 파일 기반 리뷰로 변경
  - 명확한 통과/반려 기준 (critical만 반려, 스타일은 통과)
  - '의심이 되면 통과시키세요' 원칙
- coder.md: 완성도 요구사항 추가
  - 빈 폴더(새 프로젝트) 대응 안내
  - TODO/뼈대 금지 — 완성된 코드 요구
  - 파일 간 참조 확인 지시
- summarizer.md: 입력 설명을 에이전트 모드에 맞게 수정
- router.md: 삭제 (unified.md가 대체)
2026-03-06 22:51:19 +09:00
CD
3d2af29a0a fix: 태스크 과분할 방지 - unified/planner 프롬프트 대폭 수정
- unified.md: tasks 배열 완전 제거, mode+summary만 출력
- planner.md: '대부분 1개 태스크로 충분' 원칙 강화
  테트리스=1개, 파일삭제+재생성=1개, 독립기능만 분할
2026-03-06 22:47:00 +09:00