Skip to content

feat: hermes sessions import command #8650

Description

@iRonin

Problem

hermes sessions export can export sessions to JSONL, but there is no corresponding import command. The exported JSONL is effectively one-way (backup/analysis only).

Proposed Solution

1. SessionDB.import_session() in hermes_state.py

  • Insert session dict + messages into SQLite
  • Collision: skip by default, --force overwrites
  • Dangling parent_session_id: set to NULL
  • Unknown columns stripped (future-proofing)
  • JSON fields re-serialized automatically

2. CLI subcommand

hermes sessions import <file>           # import from JSONL
hermes sessions import -                # import from stdin
hermes sessions import backup.jsonl --force    # overwrite colliding IDs
hermes sessions import backup.jsonl --dry-run  # preview without writing
hermes sessions import backup.jsonl --source cli  # filter by source

3. Tests

  • 12 unit tests for import_session()
  • 10 CLI integration tests
  • Round-trip: export -> import -> all messages preserved

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havearea/sessionsSession lifecycle, resume, persistence, historycomp/cliCLI entry point, hermes_cli/, setup wizardtype/featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions