Session Sync pipeline P0-P8 core completed
Date: 2026-07-01 KST Project: maester Repo: /home/tlswk/projects/maester-agent
Completed
- Added
session_sync/package with Envelope/Watermark/Message models. - Added Claude Code adapter for
~/.claude/projects/**/*.jsonl; subagent sidecar logs are excluded to preserve{device}/{agent}/{session_id}dedup identity. - Added Codex adapter for
~/.codex/sessions/**/*.jsonl; developer/system messages and reasoning blocks are excluded from long-term summary input. - Added SQLite
sessions_statefor watermark dedup and update planning. - Added OpenRouter strict JSON distiller contract/parser and summary Markdown renderer.
- Added Maester ingest/update executor and rolling local
session_index. - Added shared reconcile service used by CLI, watcher, and HTTP API.
- Added foreground polling watcher with debounce (
scripts/session_sync_watch.py); no scheduler/service/cron/routine was created. - Added HTTP endpoints:
GET /api/maester/session-sync/index,POST /api/maester/session-sync/reconcile. - Added docs:
docs/SESSION_SYNC_PIPELINE.md.
Verification
python3 scripts/test_session_sync.py-> PASS: session sync P0-P8 core..venv/bin/python -m compileall api.py session_sync scripts/session_sync_reconcile.py scripts/session_sync_watch.py scripts/test_session_sync.py-> passed.python3 scripts/session_sync_reconcile.py --agent codex --limit 2-> dry plan ok.- FastAPI TestClient dry-run
POST /api/maester/session-sync/reconcile-> 200, decision_counts{'ingest': 1}. - FastAPI TestClient
GET /api/maester/session-sync/index-> 200. python3 scripts/session_sync_watch.py --agent codex --once-> exits cleanly.
Not executed
- No
--executelive write was run. No bulk Maester ingest/update. - No watcher was installed or scheduled.
Remaining
- Hermes adapter requires a real message-bearing session schema. Current
/home/tlswk/.hermes/sessions/sessions.jsonexposes session metadata/origin/token counters, not message history. - OpenClaude adapter remains blocked because no local OpenClaude session root was found in this pass.
Worktree note
- Existing dirty
data/action_lifecycle_audit.jsonlwas present and left untouched.