Commit Graph

24 Commits

Author SHA1 Message Date
Hyungi Ahn
08825111bd fix: Chat Confirm 노드 undefined 버그 — Qwen Classify 출력 직접 참조
PostgreSQL INSERT 출력에는 domain/tags가 없어서 undefined 표시됨.
$input.first().json → $('Qwen Classify').first().json으로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:24:29 +09:00
Hyungi Ahn
2c439803d7 fix: 회고 채널 봇 메시지 필터링으로 무한 루프 방지
확인 메시지가 다시 폴링되어 재전송되는 루프 발생.
RETROSPECT_USER_IDS로 허용된 사용자만 포워딩.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:19:56 +09:00
Hyungi Ahn
99c35fa829 fix: Chat Confirm을 form-encoded payload로 변경
Synology Chat incoming webhook은 JSON body가 아닌
form-encoded payload={"text":"..."} 형식 필요.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:17:08 +09:00
Hyungi Ahn
f737b31436 fix: source_post_id INTEGER → BIGINT (Synology Chat post_id 범위 초과)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:10:35 +09:00
Hyungi Ahn
8fc5b83ed4 fix: Synology Chat API 필드명 msg → message 수정
Synology Chat Post API의 텍스트 필드가 msg가 아닌 message임을 확인.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 15:06:38 +09:00
Hyungi Ahn
323de7afbe feat: 작업(VTODO) 파이프라인 구현 — n8n todo intent + Handle Todo 노드
- Qwen 분류기에 todo intent 추가 (프롬프트 + keyword fallback)
- Route by Intent switch에 Todo case 추가
- Handle Todo 코드 노드 신규: Qwen 추출 → CalDAV create-todo → DB 저장
- migrate-v7.sql: calendar_events에 event_type 컬럼 + start_time nullable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 15:06:00 +09:00
Hyungi Ahn
de5dde43ab feat: 회고 시스템 Phase 1 캡처 파이프라인
chat_bridge에 회고 채널 텍스트 폴링 + n8n 포워딩 추가.
n8n 워크플로우(8노드): Webhook → Validate → Qwen 분류 → PostgreSQL INSERT → Chat 확인.
retrospect 스키마 + 3 테이블 (entries, reviews, patterns).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 14:57:13 +09:00
Hyungi Ahn
5a067de189 fix(morning_briefing): CalDAV host.docker.internal 해결, field_reports 컬럼명, Karakeep env var
- CALDAV_BRIDGE_URL: host.docker.internal → 127.0.0.1 치환 (네이티브 실행 대응)
- field_reports: description → summary (실제 스키마 반영)
- KARAKEEP_URL: KARAKEEP_API_URL env var도 체크 (맥미니 .env 호환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 14:15:15 +09:00
Hyungi Ahn
782caf5130 feat: DEVONthink 제거 + 모닝 브리핑 추가
- DEVONthink 의존성 제거 → kb_writer 전환 (news_digest, inbox_processor, mail pipeline)
- devonthink_bridge.py, plist 삭제
- morning_briefing.py 신규 (매일 07:30, 일정·메일·보고·뉴스 → Synology Chat)
- intent_service.py 분류기 프롬프트 개선 + 키워드 fallback
- migrate-v5.sql (news_digest_log kb_path 컬럼)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 14:12:38 +09:00
Hyungi Ahn
fd8925637d fix: .venv/ gitignore 추가 + 트래킹 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:54:46 +09:00
Hyungi Ahn
c2257d3a86 fix: 포트 충돌 회피 — note_bridge 8098, intent_service 8099
Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:53:55 +09:00
Hyungi Ahn
dc08d29509 feat: 이드 기능 완성 — note_bridge, intent_service, CalDAV Todo
- note_bridge.py: port 8096, log-conversation 제거, message 필드 추가
- intent_service.py: 의도 분류(Ollama→Claude fallback) + 한국어 날짜 파싱 + API 사용량 추적
- caldav_bridge.py: VTODO 생성 (/calendar/create-todo) + 응답 message 필드
- LaunchAgent plist: note-bridge (8096), intent-service (8097)
- .env.example: API_MONTHLY_LIMIT, NOTE_BRIDGE_URL, INTENT_SERVICE_URL

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:48:10 +09:00
Hyungi Ahn
1137754964 feat: mlx-proxy 서버 + n8n 워크플로우 LLM/임베딩 URL 분리
mlx-vlm 기반 ollama 호환 프록시 서버 추가 (port 11435).
n8n GEN 노드 6개에 callLLM 래퍼 주입 (health check + ollama fallback).
임베딩/리랭커는 ollama(LOCAL_EMBED_URL)로 분리.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 10:00:00 +09:00
Hyungi Ahn
a050f2e7d5 fix: kb_writer 파일명 경합 수정 + qdrant_id 일관성 보장
- kb_writer: uuid4 short hash로 파일명 경합 방지, counter 기반 중복 방어 제거
- kb_writer: qdrant_id 외부 수신 지원 (body.qdrant_id)
- n8n: Set pid 노드 추가 — 분기 전 pid 한 번 생성, Handle Note/Embed & Save Memory에 전달
- Handle Note/Embed & Save Memory: 동일 pid를 kb_writer(qdrant_id)와 Qdrant point ID에 사용
- restore_kb.sh: DS1525+ → 맥미니 knowledge-base 복구 스크립트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 07:50:34 +09:00
Hyungi Ahn
852f5cb648 feat: kb_writer 마이크로서비스 + mail_bridge 추가
- kb_writer.py: DEVONthink AppleScript 브릿지 → 마크다운 파일 기반 전환 (포트 8095)
- knowledge-base/ 디렉토리 구조 (note, chat-memory, news)
- Handle Note: kb_writer 파일 저장 + Qdrant 임베딩 추가
- Embed & Save Memory: DEVONthink → kb_writer 교체
- mail_bridge.py: IMAP 날짜 기반 메일 조회 (포트 8094)
- mail-processing-pipeline: IMAP Trigger → Schedule + mail_bridge + dedup
- docker-compose, manage_services, LaunchAgent plist 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 14:46:57 +09:00
Hyungi Ahn
66a8b63cad Phase 7c: 분류기 fallback 키워드 분류 + Haiku 도구 제약 + tier 재분배
- Qwen Classify v2 catch: GPU 실패 시 키워드 정규식으로 intent 추정
  (calendar/note/mail/log_event 도구 호출 경로 보존)
- Call Haiku: [기능 범위] 섹션 항상 추가 — 거짓 응답 방지
- 분류기 프롬프트: response_tier local 범위 확대 (단순 질문, mail 간단조회)
- No RAG Context / Build RAG Context: api_light→local 전환기 오버라이드
- Log Classification: fallback_method 필드 추가
- GPU 헬스체크 스크립트 + LaunchAgent 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 15:10:40 +09:00
Hyungi Ahn
a3e5b5419a fix: Route by Intent 연결 순서 수정 + 메일 파이프라인 id 추가
Calendar/Mail/Note/fallback 연결이 인덱스 2부터 1칸씩 밀려있어
question intent가 Note 핸들러로 라우팅되던 버그 수정.
mail-processing-pipeline.json에 n8n import용 id 필드 추가.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 12:01:07 +09:00
Hyungi Ahn
30edc34cab Phase 7a-2: id-9b Modelfile (no-think) + 이드 페르소나 강화
- Modelfile.id-9b 생성: qwen3.5:9b-q8_0 기반, no-think ChatML 템플릿
- 모든 Ollama 호출(8개 노드+2개 Python)에 system: '/no_think' 이중 방어
- Call Haiku/Opus: 이드 페르소나 [자아]/[성격]/[말투]/[응답 원칙]/[기억] 강화
- Call Qwen Response: system 파라미터 분리 + 경량 자아 추가
- Claude API 노드에는 /no_think 미적용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:34:10 +09:00
Hyungi Ahn
1543abded6 Phase 7a: GPU 모델 id-9b:latest 전환 + 워크플로우 배포 자동화
- qwen3.5:9b-q8_0 → id-9b:latest 전체 교체 (워크플로우, Python 스크립트)
- deploy_workflows.sh 생성 (n8n REST API 자동 배포)
- .env.example: CalDAV/IMAP/Karakeep 기본값 수정
- 문서 업데이트: tk_qc_issues 컬렉션, 맥미니 Ollama 기동 안내

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 09:13:24 +09:00
hyungi
924560252e docs: add PROGRESS.md, add bridge URLs to .env.example
Phase 1-6 구현 현황 + 파일 인벤토리 + 서비스 기동 가이드 통합 문서.
.env.example에 bridge service URL 4개 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 07:36:36 +09:00
hyungi
612933c2d3 Phase 5-6: API usage tracking + Calendar/Mail/DEVONthink/OmniFocus/News pipeline
- 파이프라인 42→51노드 확장 (calendar/mail/note 핸들러 추가)
- 네이티브 서비스 6개: heic_converter(:8090), chat_bridge(:8091),
  caldav_bridge(:8092), devonthink_bridge(:8093), inbox_processor, news_digest
- 분류기 v2→v3: calendar, reminder, mail, note intent 추가
- Mail Processing Pipeline (7노드, IMAP 폴링)
- LaunchAgent plist 6개 + manage_services.sh
- migrate-v3.sql: news_digest_log + calendar_events 확장
- 개발 문서 현행화 (CLAUDE.md, QUICK_REFERENCE.md, docs/architecture.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 17:09:04 +09:00
hyungi
f7cccc9c5e n8n Task Runner 샌드박스 대응 및 워크플로우 업데이트
- CLAUDE.md: Task Runner VM 샌드박스 제약사항 문서화
- docker-compose.yml: NODE_FUNCTION_ALLOW_BUILTIN 환경변수 추가
- main-chat-pipeline.json: require('http/https/url') 방식으로 전환된 워크플로우 반영

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 14:45:39 +09:00
hyungi
f42096fb24 Phase 4-5: 회사 문서 등록 + 현장 리포팅 + 보고서 생성
워크플로우 37→42노드 확장:
- /문서등록: 2단계 플로우 (메타데이터 → 텍스트 청킹+임베딩+tk_company 저장)
- /보고서: field_reports DB 집계 → Claude Haiku 보고서 생성
- 현장 리포트: 비전 모델 분석 → Qwen 구조화 → SLA 계산 → DB+벡터 저장
- 응답 경로 통합: 6개 Send/Respond 쌍 → 2개 공유 노드로 정리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:11:17 +09:00
hyungi
6e6ffaa04b RAG 아키텍처 v2: 3단계 라우팅, 멀티-컬렉션 RAG, 선택적 메모리
Phase 1-3 구현:
- init.sql v2: 12테이블 (기존 5 + 신규 7) + 분류기 v2 프롬프트
- migrate-v2.sql: 기존 DB 마이그레이션 스크립트
- setup-qdrant.sh: tk_company 컬렉션 + payload 인덱스 설정
- 워크플로우 v2 (37노드): 토큰검증, Rate Limit, 프리필터,
  분류기v2(response_tier), 3-tier 라우팅(local/Haiku/Opus),
  멀티-컬렉션 RAG, 예산 체크, 선택적 메모리
- .env.example + docker-compose.yml: 새 환경변수 추가
- CLAUDE.md, QUICK_REFERENCE.md, docs/architecture.md 전면 갱신

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 12:51:30 +09:00