virtual-insanity
← 리포트 목록

daily-context-snapshot 이관 결정 — Hermes 복구 후 1주 dual-run

2026-04-24 daily [openclaw-kill, hermes-migration, daily-context-snapshot, dual-run]

결정

유지 + Hermes 복구 + 1주 dual-run.

OpenClaw를 바로 죽이지 않았다. 이유는 Hermes 동등 파일이 존재했지만 2026-04-15 버전으로 stale했고, OpenClaw 쪽만 2026-04-24 v2 스냅샷/세션로그를 정상 생성하고 있었기 때문이다.

이번 조치: - Hermes script를 OpenClaw 최신 v2 script로 갱신 - Hermes memory 경로로 쓰도록 WORKSPACE = ~/.hermes/workspace 보정 - Hermes jobs.json에 daily-context-snapshot active 등록 - OpenClaw jobs.json은 enabled=true 유지 — 1주 dual-run 비교 후 사망 판단

1) 상태 점검

항목 OpenClaw Hermes
job daily-context-snapshot active 기존 동등 job 없음/또는 stale copy만 존재
script ~/.openclaw/workspace/scripts/pipeline/daily_context_snapshot.py ~/.hermes/workspace/scripts/pipeline/daily_context_snapshot.py
script mtime 2026-04-24 09:33 2026-04-15 13:38 → 이번에 갱신
latest.json 2026-04-24T13:08:43, schema v2 2026-04-15T00:00:51, schema v1 → 이번에 2026-04-24T14:11:49 v2
출력 ~/.openclaw/workspace/memory/daily-context-snapshot/latest.json ~/.hermes/workspace/memory/daily-context-snapshot/latest.json

2) 원인

Hermes 쪽은 스크립트와 산출물이 04-15에서 멈춰 있었다. OpenClaw 쪽은 surface:9 복구본으로 v2 스키마와 세션로그 생성 기능이 추가되어 실제 본체 역할을 하고 있었다.

따라서 “OpenClaw 본체이고 Hermes stale” 케이스로 판정했다.

3) 실행 조치

백업

  • /Users/ron/.hermes/workspace/scripts/pipeline/daily_context_snapshot.py.bak-before-refresh-20260424T141149
  • /Users/ron/.hermes/cron/jobs.json.bak-daily-context-refresh-20260424T141149

스크립트 갱신

cp ~/.openclaw/workspace/scripts/pipeline/daily_context_snapshot.py \
   ~/.hermes/workspace/scripts/pipeline/daily_context_snapshot.py

보정:

WORKSPACE = HOME / ".hermes" / "workspace"

SESSION_STATE는 phase1 동안 OpenClaw listener state가 source-of-truth라 ~/.openclaw/logs/session_state.json을 유지했다.

Hermes job 등록

{
  "id": "daily-context-snapshot",
  "enabled": true,
  "state": "scheduled",
  "schedule": {"kind": "cron", "expr": "0 9,22 * * *", "tz": "Asia/Seoul"},
  "next_run_at": "2026-04-24T22:00:00+09:00",
  "command": "cd /Users/ron/.hermes/workspace && PYTHONPATH=/Users/ron/.hermes/workspace/scripts:/Users/ron/.hermes/workspace/scripts/shared:/Users/ron/.hermes/workspace/scripts/pipeline /usr/bin/python3 /Users/ron/.hermes/workspace/scripts/pipeline/daily_context_snapshot.py"
}

OpenClaw job은 유지:

~/.openclaw/cron/jobs.json: daily-context-snapshot enabled=true

4) 검증

python3 -m py_compile ~/.hermes/workspace/scripts/pipeline/daily_context_snapshot.py
python3 -m json.tool ~/.hermes/cron/jobs.json
cd ~/.hermes/workspace && PYTHONPATH=... /usr/bin/python3 scripts/pipeline/daily_context_snapshot.py

실행 출력:

{
  "ok": true,
  "json": "/Users/ron/.hermes/workspace/memory/daily-context-snapshot/2026-04-24.json",
  "latest": "/Users/ron/.hermes/workspace/memory/daily-context-snapshot/latest.json",
  "report": "/Users/ron/knowledge-agent/400-reports/260424_pipeline_daily-context-snapshot.md",
  "session_log": "/Users/ron/knowledge/800 운영/850 실행/세션로그/260424_session.md",
  "context_log": "/Users/ron/knowledge/800 운영/850 실행/세션로그/context_20260424_1411.md",
  "enabled_stale_over_24h": 22
}

latest 비교:

경로 schema generated_at cron total/enabled
OpenClaw latest v2 2026-04-24T13:08:43+09:00 371 / 75
Hermes latest v2 2026-04-24T14:11:49+09:00 376 / 77

Hermes CLI:

daily-context-snapshot [active]
  Schedule:  0 9,22 * * *
  Next run:  2026-04-24T22:00:00+09:00

5) 다음 판단 기준

1주 dual-run 동안 비교: - ~/.openclaw/workspace/memory/daily-context-snapshot/latest.json - ~/.hermes/workspace/memory/daily-context-snapshot/latest.json

사망 조건: - 7일 동안 Hermes가 09:00/22:00에 정상 생성 - schema v2 유지 - cron.total/enabled, enabled_stale_over_24h, session log 생성이 OpenClaw와 의미상 동등

조건 충족 시 OpenClaw daily-context-snapshot disabled.

자체평가

  • 정확성: 4.4/5 — stale 원인과 산출물 mtime/schema를 실측했다.
  • 완성도: 4.3/5 — Hermes 복구, job 등록, 수동 실행, next_run 확인 완료.
  • 검증: 4.4/5 — py_compile, JSON validation, actual run, latest 비교, Hermes CLI 확인.
  • 최소 변경: 4.5/5 — OpenClaw는 유지하고 Hermes만 복구해 1주 dual-run으로 안전 확보.

DONE