Conversation
roborev: Combined Review (
|
52b057a to
f8fd9e1
Compare
Review feedback addressed
|
roborev: Combined Review (
|
f8fd9e1 to
a841a0c
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
Co-Authored-By: Wes McKinney <wesmckinn+git@gmail.com>
roborev: Combined Review (
|
os.Chmod(path, 0o000) does not prevent reads on Windows, causing TestParseCortexSession_SplitHistoryReadError to fail. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
roborev: Combined Review (
|
Summary
Add Hermes Agent as a supported agent with full session parsing and discovery.
Hermes Agent (github.com/hermes-ai/hermes-agent) is a multi-platform AI coding agent that records sessions across CLI, Discord, webhooks, and cron jobs. Each platform gets its own project in the UI (hermes-cli, hermes-discord, hermes-webhook, hermes-cron).
Two session formats
Gateway (.jsonl) — Line-delimited JSON used by messaging platform sessions (Discord, webhooks, cron):
session_metaheader with model, platform, and tool definitionstool_callsarrayCLI (.json) — Single JSON object used by interactive CLI sessions:
session_id,model,platform,session_start,last_updatedsession_<id>.json(vs<id>.jsonlfor gateway)Deduplication
Some sessions exist in both formats (gateway saves both). The discovery function collects
.jsonlfiles first, then only adds.jsonfiles whose session ID isn't already covered —.jsonltakes priority since it has richer per-message timestamps.Naive timestamps
Hermes records wall-clock time without UTC offsets. Timestamps are parsed with
time.ParseInLocation(... time.Local)so they're interpreted in the server's timezone rather than defaulting to UTC.Files changed
internal/parser/hermes.go— parser, discovery, helpers (new, ~550 lines)internal/parser/types.go—AgentHermesconst + Registry entryinternal/parser/taxonomy.go— Hermes tool name → category mappingsinternal/sync/engine.go—processHermesdispatch + method