virtual-insanity
← 리포트 목록

OpenClaw 루트 데이터 디렉토리 Hermes 이전 매핑

2026-04-15 migrate [phase17-followup, hermes-migration, data-dirs, openclaw]

OpenClaw 루트 데이터 디렉토리 매핑

스냅샷 시각: 2026-04-15 KST

결론

Hermes 코드/활성 cron이 필요로 하는 OpenClaw 루트 데이터 중 개별 운영 파일만 선별 이전했다. 전체 디렉토리 복사는 하지 않았다.

  • bot_tokens.json: 이미 ~/.hermes/bot_tokens.json 존재, OpenClaw 원본과 sha256 동일 → 추가 복사 없음
  • auth/: workspace scripts 직접 의존은 없음. 단, Copilot 호환 프로필은 소형 파일이라 ~/.hermes/auth/profiles/에 복사
  • data/: ops_multiagent.db 중심으로 코드 참조 다수 → 필요한 DB 4개만 복사
  • secrets/: Notion/KIS 코드가 직접 찾는 credential 2개만 복사
  • memory/, agents/, logs/, monitoring/: 활성 cron 직접 의존 없음 또는 히스토리/스냅샷 성격 → 복사하지 않음
  • 코드 경로 rewrite: 필요 없음. 확인한 핵심 공유 경로는 이미 ~/.hermes/...를 보고 있음

참조 매핑

대상 범위: /Users/ron/.hermes/workspace/scripts 내부, backup/pyc/log/db/binary 제외.

루트 대상 참조 수 파일 수 대표 진입/사용 파일 판단
bot_tokens.json 3 3 claude_telegram_listener.py, codex_telegram_listener.py, shared/telegram_multibot.py ~/.hermes/bot_tokens.json 직접 참조. 파일 이미 존재/동일
auth/, github-copilot.json 0 직접 의존 0 workspace scripts 내 auth/profiles/github-copilot.json 직접 로드 없음 현재 우회 상태. 호환 보관용으로 프로필만 복사
data/ops_multiagent.db 185 115 shared/db.py, shared/vault_paths.py, shared/telegram.py, server.py, queue/ops 스크립트 다수 필수. 복사 완료
data/etf_weights.db 19 4 morning_briefing.py, data_analyst.py, overnight/portfolio_insights.py, server.py 운영 소형 DB. 복사 완료
data/n8n_pipeline.db 1 1 server.py 소형 DB. 복사 완료
data/approvals.db 4 3 server.py, agent_queue_worker.py 소형 DB. 복사 완료
data/otel_metrics.db 4 4 monitoring/otel_db_maintenance.py, pipeline/webapp/blueprints/admin.py, pipeline/blueprint_updater.py 1.4GB 모니터링 히스토리. 활성 cron 직접 의존 아님 → 미복사
root memory/ 4 4 collect_readonly_logs.sh, error_validator.py, run-cycle-diagnostic.py, run_cycle_diagnosis.py 활성 Hermes cron 직접 의존 아님 → 미복사
workspace memory/ 237 83 pipeline/webapp/collector 다수 이미 ~/.hermes/workspace/memory로 이전된 영역
secrets/ 7 5 pipeline/notion_publisher.py, pipeline/notion_analyst_sync.py, pipeline/vault_technical_bridge.py, shared/kis_client.py, pipeline/nepcon_collector.py Notion/KIS 파일만 복사. naver_browser_profile은 비활성/대용량 가능성으로 미복사

활성 Hermes cron 진입점 확인

현재 Hermes active cron 8개를 확인했다.

  • vault-analyst-feedback — prompt job, ~/knowledge/500~/knowledge-agent/200-atomic
  • ocPH-SPY-price-history-refresh~/.hermes/workspace/scripts/pipeline/price_history_collector.py
  • ocAK-AK000-bond-daily-dry-run~/.hermes/workspace/scripts/pipeline/bond_daily_report.py --notify
  • ocAO-AO003-bond-morning-command~/.hermes/workspace-root-scripts/gmail_credit_monitor.py --fixed-income-only
  • macro-series-collector~/.hermes/workspace/scripts/pipeline/macro_series_collector.py
  • fed-liquidity-aggregator~/.hermes/workspace/scripts/pipeline/fed_liquidity_aggregator.py
  • ocM-M019-blog-monitor~/.hermes/workspace/scripts/pipeline/blog_monitor.py --notify
  • ocAQ-AQ004-gmail-newsletter-command~/.hermes/workspace/scripts/pipeline/gmail_newsletter_collector_dual.sh --days 2

검증 결과:

  • active cron command 내 /Users/ron/.openclaw 참조: 0개
  • active entry script 직접 .openclaw 참조: 0개
  • gmail_credit_monitor.py에는 github-copilot/gpt-5-mini 문자열이 남아 있으나 루트 데이터 디렉토리 참조가 아니라 모델명 상수다. Copilot 403 우회 이슈와 별도.

복사 내역

전체 디렉토리 복사 대신 아래 파일만 rsync -a로 복사했다. 민감값 내용은 열람/기록하지 않았다.

원본 대상 크기 검증
~/.openclaw/auth/profiles/github-copilot.json ~/.hermes/auth/profiles/github-copilot.json 106B sha256 match, JSON key 구조 확인
~/.openclaw/data/ops_multiagent.db ~/.hermes/data/ops_multiagent.db 56M sha256 match, SQLite integrity ok
~/.openclaw/data/etf_weights.db ~/.hermes/data/etf_weights.db 9.7M sha256 match, SQLite integrity ok
~/.openclaw/data/n8n_pipeline.db ~/.hermes/data/n8n_pipeline.db 12K sha256 match, SQLite integrity ok
~/.openclaw/data/approvals.db ~/.hermes/data/approvals.db 4K sha256 match, SQLite integrity ok
~/.openclaw/secrets/notion_credentials.json ~/.hermes/secrets/notion_credentials.json 185B sha256 match, JSON key 구조 확인
~/.openclaw/secrets/kis_credentials.json ~/.hermes/secrets/kis_credentials.json 254B sha256 match, JSON key 구조 확인

~/.hermes/bot_tokens.json은 이미 존재했고 ~/.openclaw/bot_tokens.json과 sha256이 동일했다.

복사하지 않은 항목

항목 이유
~/.openclaw/data/otel_metrics.db 1.4GB 모니터링 히스토리 DB. 현재 active cron 직접 의존이 아니며 루트 monitoring/ 성격에 가까움
~/.openclaw/secrets/naver_browser_profile nepcon_collector.py~/.hermes/secrets/naver_browser_profile 경로를 갖지만 현재 active cron 아님. secrets/ 전체가 109MB라 무조건 복사하지 않음
~/.openclaw/memory/ root memory 직접 참조는 소수 legacy/진단 스크립트. active cron 직접 의존 없음
~/.openclaw/agents/ 이번 grep 대상 코드에서 active cron 직접 의존 확인 안 됨
~/.openclaw/logs/, ~/.openclaw/monitoring/ 역사/스냅샷 데이터. 지시대로 이전 제외
~/.openclaw/cron/ Hermes는 ~/.hermes/cron 사용 중. 이미 별도 이전됨

경로 rewrite 판단

수정 필요 없음.

확인한 핵심 경로:

  • shared/db.py: canonical DB = ~/.hermes/data/ops_multiagent.db
  • shared/vault_paths.py: _OPENCLAW_DB = ~/.hermes/data/ops_multiagent.db
  • shared/telegram.py: 알림센터 로그 DB = ~/.hermes/data/ops_multiagent.db
  • shared/llm.py: ~/.hermes/.env, ~/.hermes/openclaw.json, ~/.hermes/logs/llm
  • shared/kis_client.py: ~/.hermes/secrets/kis_credentials.json~/.hermes/openclaw.json fallback

참고: ~/.hermes/workspace-root-scripts/ops/* 쪽에는 비활성/미등록 스크립트 기준 .openclaw 문자열이 13개 남아 있다. 현재 Hermes active jobs에서는 쓰이지 않아 이번 범위에서는 건드리지 않았다.

검증 커맨드 결과 요약

sqlite3 ~/.hermes/data/ops_multiagent.db 'PRAGMA integrity_check;'
# ok
sqlite3 ~/.hermes/data/etf_weights.db 'PRAGMA integrity_check;'
# ok
sqlite3 ~/.hermes/data/n8n_pipeline.db 'PRAGMA integrity_check;'
# ok
sqlite3 ~/.hermes/data/approvals.db 'PRAGMA integrity_check;'
# ok
python3 - <<'PY'
import sys
sys.path.insert(0, '/Users/ron/.hermes/workspace/scripts')
from shared import db, vault_paths
print(db.resolve_ops_db_path())
print(db.resolve_ops_db_path().exists())
print(vault_paths._OPENCLAW_DB)
print(vault_paths._OPENCLAW_DB.exists())
PY
# /Users/ron/.hermes/data/ops_multiagent.db
# True
# /Users/ron/.hermes/data/ops_multiagent.db
# True
# active cron command 내 .openclaw 참조
# count 0

# active entry script 직접 .openclaw 참조
# 0개

변경 파일 목록

새로 생성/복사된 Hermes 파일:

  • /Users/ron/.hermes/auth/profiles/github-copilot.json
  • /Users/ron/.hermes/data/ops_multiagent.db
  • /Users/ron/.hermes/data/etf_weights.db
  • /Users/ron/.hermes/data/n8n_pipeline.db
  • /Users/ron/.hermes/data/approvals.db
  • /Users/ron/.hermes/secrets/notion_credentials.json
  • /Users/ron/.hermes/secrets/kis_credentials.json

보고서:

  • /Users/ron/knowledge-agent/400-reports/260415_migrate_s4_data_dirs.md

코드 파일 변경 없음.

잔존 리스크

  1. otel_metrics.db는 미복사 상태라 admin telemetry/monitoring 계열을 Hermes 단독으로 돌릴 때 별도 판단이 필요하다.
  2. nepcon_collector.py의 브라우저 프로필(~/.hermes/secrets/naver_browser_profile)은 미복사 상태다. 해당 cron 이전 시 별도 복사/로그인 상태 검증이 필요하다.
  3. workspace-root-scripts/ops/*의 미등록 스크립트에는 .openclaw 문자열이 남아 있다. 현재 active cron 영향은 없지만, 해당 ops 스크립트들을 Hermes로 활성화할 때 rewrite 대상이다.

자체 평가

  • 정확성: 4.7/5 — 요청한 루트 데이터 참조 매핑, 선택 복사, 활성 cron 검증 완료
  • 완성도: 4.6/5 — 대용량/비활성 항목은 명시적으로 제외하고 잔존 리스크 기록
  • 검증: 4.8/5 — sha256, SQLite integrity, Python path resolution, active cron .openclaw 참조 검증 완료
  • 최소 변경: 4.9/5 — 코드 변경 없이 필요한 개별 파일만 복사

종합: 4.75/5