Skip to content

v2.0.0 — Ogma is now a secure remote command runner (Claude optional)

Choose a tag to compare

@eric-wien eric-wien released this 02 Jul 10:53
· 18 commits to main since this release

The repositioning release. Ogma's core is now a secure remote command runner: chat-driven execution of commands you predefine on your own machine — deterministic, shell-free, double-gated. Claude Code is now an optional layer (OGMA_LLM=claude|off): keep it for a conversation partner that can perform tasks and analyze, or run commands-only with zero LLM dependency (Python stdlib is then the only requirement).

Three tiers, each optional on top of the one below:

  1. Core — gateway + command runner (/status, /health, your own commands via ogmactl.local + commands.local.json — see the new extending tutorial)
  2. LLM layer — free-text chat via headless Claude Code sessions
  3. Assistant layer — persona, memory, briefing, dream, skills

⚠️ Breaking changes

  • /restart requires /confirm — protected commands arm instead of firing (window: 180s, OGMA_CONFIRM_TTL; also available for your own commands via "confirm": true).
  • Group chats authorize the sender, not the chat — each user ID must be allow-listed individually.
  • Long command output (>~8k chars) arrives as a document, not chunked text.
  • bin/setup --reconfigure numeric section IDs shifted (names unchanged).
  • A missing claude CLI no longer aborts startup — the gateway runs command-only instead.
  • Internals reorganized for patch-carriers: Claude specifics → llm_claude.py, Telegram specifics → transport_telegram.py.

No .env migration needed — defaults preserve existing behavior.

Hardening (Phase 2)

  • Two-step /confirm for destructive commands, per-argument regex validation (fails closed), append-only audit log (state/audit.log, view via /logs audit), guest role (TELEGRAM_GUEST_USERS: read-only subset), delivery-lag-aware confirm windows, group sender checks.

Signal-ready (Phase 3)

  • All Telegram specifics live behind a six-method transport surface (transport_telegram.py). A signal-cli backend is now an implementation, not a rewrite.

Also

  • Command completion + duration logging; inbound delivery lag surfaced in the log; ogmactl restart timer no longer fires up to a minute late (AccuracySec=1s); assistant scripts (briefing/dream) are clean no-ops on command-only installs.

Full details in the CHANGELOG and the roadmap this release implements.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BpU5gQZgDocjfqqhNWJZvP