Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 3.12 KB

File metadata and controls

72 lines (53 loc) · 3.12 KB

Operon Roadmap

Operon v3.1.0 is an early public beta. It is feature-rich and well-tested (1,896 passing tests), but a few architectural improvements are intentionally deferred to keep the beta stable rather than risk a last-minute rewrite.

Known beta limitations

1. main.py is a monolith (~5,300 lines) — IN PROGRESS

The command dispatcher (handle_command) and the agent loop live in a single large module.

Done (v3.1.x): Introduced the cmd_handlers/ package with a CommandContext + dispatch registry. handle_command now consults the modular dispatch first and falls back to the legacy elif-chain for anything not yet migrated. Read-only commands (/clear, /undo, /history, /compress, /tools, /usage, /cost, /models, /config, /soul) are extracted into cmd_handlers/info.py, cmd_handlers/session_cmds.py, and cmd_handlers/config_cmds.py. The first stateful command, /macro, is now extracted into cmd_handlers/macro_cmds.py — it owns the lazy main._macros singleton through the live main module, proving the pattern for migrating global-state commands without a circular import. Covered by tests/test_cmd_handlers.py and tests/test_macro_cmds.py.

Remaining: Migrate the rest of the global-state-mutating commands (/gateway, /dashboard, /approve, /mcp, /webhook, /rag, /secrets, /heartbeat, /goal, /plugin, /curator) using the same live-module pattern. Then move the agent loop into its own module.

Target: v3.2.0

2. Synchronous tool dispatch (context compaction now async — done)

Tool calls run synchronously, so one slow network tool blocks the turn.

Plan: Move the tool-dispatch layer in run_agent_loop() to asyncio, using asyncio.gather() for independent parallel tool calls.

Target: v3.2.0

3. Messaging channels not yet production-depth

Discord, Telegram, and Slack integrations are functional but lighter than dedicated bots (no full thread/voice/embed parity).

Plan: Deepen each channel incrementally based on beta feedback.

Target: v3.3.0

Post-beta direction (subject to feedback)

Several of the originally post-beta items have already shipped in v3.1.x:

  • Background (non-blocking) context compression wired into the main loop (main._background_compact + BackgroundCompressor).
  • Unified memory facade over FTS5 + vector + Obsidian backends (core/memory_facade.py).
  • Streaming real-time voice over Deepgram WebSocket (CloudStreamingTranscriber in core/voice_pipeline.py).
  • Plugin marketplace with seed community plugins (plugins/examples/).
  • LSP / static-analysis integration in the SWE agent (StaticAnalyzer in core/swe_agent.py).
  • Supply-chain dependency scanning in /doctor (core/dep_audit.py).

Still ahead:

  • Deepen Telegram + Discord to match the expanded Slack toolset (threads, scheduled messages, pin/topic parity).
  • Move the agent loop out of main.py into its own module.

How to influence the roadmap

Open a feature request or start a GitHub Discussion. Beta feedback directly shapes priorities.