Skip to main content

Changelog

All notable changes to OMEGA will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Code review (omega_review): Multi-agent specialist review panel with 5 agents (correctness, security, performance, consistency, blast radius). Hybrid static+LLM analysis: 12 deterministic pattern checks (zero false positives) plus LLM for novel issues. Memory-powered: uses OMEGA conventions, past incidents, and team preferences for context. Confidence gating with strict/normal/verbose modes. Fast summarize_only mode for risk assessment without LLM. Pre-commit hook at hooks/pre_review.py. Standalone engine: singularityjason/revue.

[1.2.0] - 2026-03-04

Added

  • Hooks in wheel: Claude Code hooks now ship inside the pip package; omega hooks setup auto-configures ~/.claude/settings.json with correct paths
  • Multi-user auth: Google Sign-In, role-based access control, self-service onboarding wizard, per-user data scoping across all admin API routes
  • Auth guards: 46 API routes hardened with session verification
  • LLM provider abstraction: Unified llm.py (Python) and lib/llm.ts (TypeScript) supporting Anthropic, OpenAI, and OpenAI-compatible providers via OMEGA_LLM_PROVIDER
  • LLM usage tracking: Per-call cost tracking with session rollups and admin dashboard
  • Multi-model consultation: omega_consult_gpt and omega_consult_claude tools for cross-model second opinions (replaces omega_lessons)
  • Growth engine: Thompson Sampling bandit for content optimization, attribution engine correlating X metrics with GitHub/PyPI, content genome pipeline
  • Scheduled jobs infrastructure: State machine with retry logic, approval gates, audit trail, SLA escalation, heartbeat monitoring, Vercel cron migration
  • Query expansion: LLM-based retrieval augmentation with strong-signal short-circuit and position-aware reranking (QMD-inspired)
  • System insights: Permanent-TTL insight memories with protocol surfacing, file-triggered hooks, and admin graph visualization
  • Trajectory distillation: Auto-extracts session summaries at session stop with quality gate
  • Project registry: Unified canonical projects table with status tracking and auto-generation at session stop
  • Schema v13: Unique index on forgetting_log to prevent duplicate entries
  • Coordination upgrades: File claim gap closed with read tracking, peer-claimed commit blocking, auto-handoff on session stop, message priority
  • Admin dashboard: Projects tab, LLM Usage tab, Entities tab, Conductor Console, Growth tab, Settings expansion (Profile, Agent, Memory, Projects, Integrations)
  • Website: Next.js 16.1.6, homepage restructure, /pro page redesign, 6 new blog posts, HeroGraph visualization
  • Automation: Target scanner, scan-and-reply cron, daily summary email, @omega_memory multi-account infrastructure

Changed

  • sqlite_store.py split into mixin-based package (7 modules) for maintainability
  • Oracle engine upgraded to thread-safe singleton
  • Hook system abstracted for multi-client support (Claude Code, Cursor, Windsurf, Cline)
  • Protocol adapted for multi-model providers with provider-specific notes
  • Admin theme refined (violet accent, semantic signal colors)

Fixed

  • ~176 bug fixes across security, admin, knowledge, bridge, entities, growth, LLM routing
  • Multi-user data isolation across 29 API routes
  • Thread-safety issues in oracle and embedding engines
  • Knowledge base: SSRF prevention, entity filtering, race conditions
  • Bridge: full memory ID returned from dedup/evolve/reconfirm paths
  • Cloud sync hardening and expanded test coverage

Removed

  • SayDo experimental module (archived)
  • omega_lessons tool (replaced by omega_consult_gpt/omega_consult_claude)

[1.1.0] - 2026-02-25

Added

  • Automatic entity extraction from conversations (Phase 3) with async processing and throttle controls
  • Bi-temporal data model with valid_from/valid_until for point-in-time queries
  • Memory strength scoring with decay, deduplication, and strength_min query filter
  • Memory type classification — auto-classifies on store, filterable via memory_type parameter in omega_query
  • Contradiction detection surfaced in store output
  • Intelligence cards — compact [OMEGA] cards for memory, decision, and learning events at NORMAL+ transparency
  • Entity graph relationships wired into retrieval scoring
  • Campaign Orchestrator v3.0 (Layers 1-3) with automation modules and proposal feed
  • MCP server instructions for automatic memory usage by connected agents
  • Session awareness and agent discipline protocol sections (v1.3.0)
  • Admin dashboard: 3D Memory Graph visualization with bloom and clustering
  • Admin dashboard: Interactive entity knowledge graph
  • Admin dashboard: Skills Graph 3D visualization with manifest and API
  • Admin dashboard: KnowledgeBase rewrite with folder tree, markdown preview, and breadcrumb navigation
  • Admin dashboard: Orchestrator proposals feed, ambient awareness layer, historical coordination view
  • Admin dashboard: Recharts-based Insights tab with memory sparklines and project charts
  • Security hardening — shared validation module, coordinator handler hardening, write-tool rate limiting, CI dependency auditing, Dependabot
  • Windows installer improvements and repair utility
  • Website: downloads page, competitive positioning, OpenAI comparison blog post, dual-account tweet generation

Changed

  • Extracted shared mcp_response/mcp_error helpers to reduce duplication across server handlers
  • Generate button switched from SSE to job polling for reliability
  • Tweet pipeline migrated to EST with slot optimization and reply queue
  • Heavy cron jobs migrated from Vercel to GitHub Actions

Fixed

  • SQLite lock contention reduced with BEGIN IMMEDIATE transactions and WAL checkpoint logic
  • Connection leak in record_metric eliminated with hardened close/reconnect
  • Stale embedding backend state causing tuple.encode() crash resolved
  • Hook resilience improved — retry on startup race, skip informational hooks in fallback mode
  • JIT proxy: bypass MCP SDK 1.26 outputSchema validation errors
  • Router intent classifier no longer unconditionally overwrites session task
  • Cloud sync: per-document error isolation with timeout config
  • FTS5 query sanitization hardened against malformed input

1.0.0 - 2026-02-13

Added

  • Open-core plugin architecture (OmegaPlugin base class, discover_plugins())
  • Graceful degradation for all optional modules (coordination, router, entity, knowledge, profile, cloud)
  • Apache-2.0 license
  • GitHub Actions CI/CD (test matrix: Python 3.11, 3.12, 3.13)
  • PyPI publish workflow with trusted publishers
  • CONTRIBUTING.md, SECURITY.md, NOTICE
  • Issue and PR templates

Changed

  • License: MIT → Apache-2.0
  • Author: → Kokyō Keishō Zaidan Stichting
  • Hook server: conditional coordination handler registration
  • CLI: graceful "requires omega-pro" messages for commercial modules
  • MCP server: commercial tool schemas loaded only when modules available
  • Version bump: 0.6.1 → 1.0.0

0.6.1 - 2026-02-11

Removed

  • Phoenix module deleted — 1,531 lines source + 1,152 lines tests. Fully disconnected dead code: no hooks triggered it, no workflows called its 6 MCP tools, respawn requests wrote to JSON files nothing read. Session context handoff already handled by coordinator's snapshot/recover system.
  • 6 MCP tools removed: omega_phoenix_check, omega_phoenix_request, omega_phoenix_complete, omega_phoenix_requests, omega_phoenix_handoff, omega_phoenix_metrics
  • [phoenix] optional dependency group from pyproject.toml

Changed

  • MCP tool count: 60 (was 66)
  • Test count: 1406 across 29 test files (was 1447 across 31)
  • Renamed _phoenix_recovery_session_resume in hook_server.py (pure coordinator logic, no Phoenix dependency)
  • [PHOENIX] label → [RESUME] in coord handler output

0.5.0 - 2026-02-10

Added

  • Router auto-warmup on session start, auto-classify on every user prompt
  • Router provider status surfaced in welcome briefing
  • Groq re-added for simple_edit intent (speed mode)
  • 1122+ tests across 28 test files, 0 lint errors

Changed

  • Router classifier status checked on start, hot-reload on config change

0.4.3 - 2026-02-10

Changed

  • Router rewired: xAI/Grok-4 as primary for exploration intent (research/AI trends), Google/Gemini as fallbacks, Groq re-added for simple_edit (speed mode)
  • Router secrets: API keys loaded from ~/.omega/secrets.json — 5/5 providers active (Anthropic, OpenAI, Google, xAI, Groq)
  • CI matrix: dropped Python 3.10 (unsupported), added 3.13
  • Removed phantom litellm dependency from router extras (was never imported)
  • Fixed commitizen changelog_start_rev to existing tag v0.3.0

Fixed

  • 105 ruff lint errors across src/ and tests/ (unused imports, f-strings without placeholders)
  • pre_push_guard test subprocess import path
  • auto_claim_branch path validation
  • Feedback score inflation: clamped to valid range
  • Unbounded state growth in coordination audit log
  • Stale Haiku model ID updated in router defaults
  • Deprecated datetime.utcnow() replaced with timezone-aware alternative
  • Missing thread lock in coordination cleanup path

Added

  • 31 new tests: migration, reingest, reembed, lessons, classifier, concurrency coverage gaps
  • Updated SCORECARD.md to v0.4.3 with post-cleanup metrics (242 memories, 4/5 providers)
  • README rewrite for public audience: problem statement, 60-second quickstart, comparison table (vs Mem0/Zep/Copilot Memory), collapsible advanced details, contributing section, PyPI badge
  • README: corrected test count (1074→1102), tool counts (22 memory + 25 coord), hooks (11)
  • CONTRIBUTING.md: updated test count (1074→1102)
  • SECURITY.md: added 0.3.x and 0.4.x to supported versions

Removed

  • 162 stale Gnosis-era memory artifacts (506→242 memories)
  • Dead code paths identified in diagnostic audit

0.4.2 - 2026-02-10

Added

  • Unified hook system: all 11 hooks via fast_hook.py → daemon UDS dispatch
  • pre_push_guard migrated from standalone script to daemon handler (12 handlers total)
  • _SLOW_HOOKS set with configurable timeout in fast_hook.py
  • 37 new batch protocol tests (daemon batch, client batch, fallback short-circuit, log format)
  • 4 UAT test suites: memory (10 scenarios), router (4), cross-module (4) — 2,153 lines
  • 83 new tests in test_cli.py and test_graphs_coverage.py

Fixed

  • Thread lock added to get_node() in sqlite_store.py (race condition on access_count)
  • Null-guard on access_count arithmetic in bridge.py dedup path
  • 19 bare except: pass replaced with specific exceptions + debug logging
  • cleanup_old_requests() now uses max_age_days parameter (was ignored)
  • Merged 3 separate store.query() calls into 1 in auto_capture() (saves 2 embedding generations)

Removed

  • Dead HAS_NUMPY variable from graphs.py
  • Dead get_model_history() stub from router/engine.py

0.4.1 - 2026-02-10

Fixed

  • omega doctor now loads sqlite-vec extension before checking vec index
  • Circuit breaker cooldown recovery: embeddings resume after transient failures
  • Orphaned vec index entries cleaned up on startup

0.4.0 - 2026-02-10

Added

  • Router module (10 MCP tools): multi-LLM intent classification and routing
    • ONNX prototype classifier (<2ms, no ML deps beyond existing bge-small)
    • 5 intents: coding, creative, logic, exploration, simple_edit
    • 5 providers: Anthropic, OpenAI, Google, Groq, xAI
    • 4 priority modes: cost, speed, quality, balanced
    • Context affinity tracking with switch penalties
    • Large context override (>100K tokens → Gemini)
    • omega_route_prompt, omega_classify_intent, omega_router_status, omega_set_priority_mode, omega_switch_model, omega_get_model_config, omega_get_current_model, omega_router_context, omega_warm_router, omega_router_benchmark
  • filter_tags parameter for omega_query with AND-logic hard filtering
  • CLI compact and stats subcommands
  • scripts/migrate_magma.py for Gnosis MAGMA → OMEGA migration
  • README rewrite covering all tools, architecture diagram, install flow

Changed

  • MCP tool count: 47 → 57 (+10)
  • Optional module loading: try/except ImportError in mcp_server.py
  • pyproject.toml: router/full optional dependency groups
  • Total tests: 779

0.3.2 - 2026-02-10

Added

  • filter_tags parameter on query_structured (AND-logic, 3x over-fetch)
  • 4 utilization gaps closed: auto-tags on store, confidence thresholds, plan capture triggers
  • pre_push_guard enhancements: checkout target parsing, branch claim checks

Changed

  • Hooks manifest aligned with active coordination hooks
  • Utilization scorecard: grade improved from C+ to A- (gap 0.3)

0.3.1 - 2026-02-10

Added

  • 24 coordination MCP tools re-enabled: sessions, file/branch claims, intents, tasks, messaging, audit
  • pre_task_guard hook: blocks edits when file's task is assigned to another agent
  • Utilization scorecard tracking (SCORECARD.md)

Changed

  • Tool optimization: 44 → 22 MCP tools (23% → 91% utilization)
    • Phase 1: Disconnected redundant coordination schemas (44 → 25)
    • Phase 2: Merged omega_status into omega_health, omega_export/omega_import into omega_backup, omega_cross_project_lessons into omega_lessons (25 → 22)
    • Phase 3: Activated 8 dormant tools via hook wiring (session_start: type_stats, list_preferences, auto-backup; session_stop: session_stats, timeline; surface: traverse, phrase_search)
  • MCP idle timeout: 600s → 3600s (1 hour)

0.3.0 - 2026-02-10

Added

  • Real multi-agent file enforcement: PreToolUse pre_file_guard hook blocks Edit/Write/NotebookEdit via sys.exit(2) when the target file is claimed by another agent session
  • Claim TTL auto-expiry: CLAIM_TTL_SECONDS = 600 — file claims expire after 10 minutes of inactivity, independently of the 30-minute stale session timeout
  • Force-claim override: claim_file(force=True) lets agents explicitly steal claims when coordination breaks down, with full audit trail via log_audit(tool_name="file_claim_force")
  • force boolean parameter added to omega_file_claim MCP tool schema
  • _clean_expired_claims() method runs during periodic stale session cleanup
  • TTL-aware check_file() auto-deletes expired claims on read
  • Daemon parity: handle_pre_file_guard handler in hook_server.py dispatch table
  • pre_file_guard added to fast_hook.py fallback scripts table
  • 21 new tests in test_pre_file_guard.py covering blocking, self-claim, TTL expiry, force-claim, fail-open, notebook support
  • Atomic write for profile.json via tempfile + os.replace to prevent corruption on crash

Fixed

  • Deadlock in claim_file: log_audit() was called inside with self._lock: — since threading.Lock is non-reentrant, this caused silent hangs. Audit call moved outside the lock block

Design Decisions

  • Fail-open: OMEGA unavailability never blocks edits — coordination is opt-in safety
  • Standalone hook, not daemon-routed: PreToolUse is on the critical path; standalone is safer if daemon crashes
  • No enforcement in single-agent mode: Empty SESSION_ID skips all file guard checks

0.2.8 - 2026-02-10

Added

  • SECURITY.md with vulnerability reporting policy
  • CHANGELOG.md in Keep-A-Changelog format (backfilled v0.2.0–v0.2.7)
  • CLI memory commands: omega query, omega store, omega remember, omega timeline
  • LLM-agnostic setup: omega setup --client claude-code (decoupled from Claude Code)
  • omega_task_cancel MCP tool with handler and schema (was dead code — coordination method existed but had no MCP path)

Changed

  • Removed 6 zero-utilization MCP tools (deduplicate, extract_preferences, constraints, batch_store, reload, dedup_stats)
  • Removed 3 overhead hooks (post_edit_test, pre_edit_surface, track_file_read), reducing per-edit Python processes from 5 to 3
  • Export/import paths restricted to ~/.omega/ (was entire home directory)
  • Error messages in MCP handlers no longer leak internal details
  • ~/.omega/ directory created with mode 0o700 (owner-only access)
  • Encryption key file created atomically with O_EXCL to prevent TOCTOU race
  • Thread-safe SQLiteStore singleton via double-check locking
  • Hardcoded /opt/homebrew/bin/python3 replaced with dynamic resolution in hooks
  • Silent vec-index delete failures now logged at DEBUG level
  • Dedup regex compiled once at module level instead of per-query
  • Hook log rotation at 5 MB cap to prevent disk fill
  • pre_push_guard now blocks pushes on divergence via sys.exit(2) (was advisory-only)
  • auto_claim_file now surfaces [CONFLICT] warnings instead of silently swallowing claim conflicts
  • Hook timeouts increased: coord_session_start 3s → 10s, coord_session_stop 3s → 8s
  • Git fetch subprocess timeout reduced from 15s to 5s to fit within hook timeouts
  • Replaced deprecated datetime.utcnow() with datetime.now(timezone.utc) in hooks and coordination
  • Coordination tool count: 25 handlers (was 24)

Removed

  • Dead save()/load() compatibility stubs from SQLiteStore
  • Undefined _LOAD_ATTEMPT_COUNT global from graphs.py

Fixed

  • Numeric MCP handler parameters now clamped to safe bounds
  • .gitignore hardened with .env, *.db, *.log, *.key, hook.sock, .omega/
  • cancel_task now enforces owner check — previously any session could cancel another's in-progress work
  • claim_file/claim_branch catch sqlite3.IntegrityError for cross-process race safety
  • check_file reads now guarded by _lock for consistency with write locking discipline
  • check_inbox read + mark-as-read unified under single lock to prevent concurrent read races
  • _snapshot_session preserves session capabilities in metadata for _auto_reregister recovery
  • Push event logging no longer truncates commit hashes (was [:12], causing hash comparison mismatches)

0.2.7 - 2026-02-10

Added

  • Memory visibility UX: capture confirmations, scored surfacing, health pulse, session activity summary
  • Auto-feedback on surfaced memories at session stop
  • Auto-compaction of lessons every 14 days at session start
  • Cross-project lesson surfacing at session start
  • File-extension-to-tag mapping for contextual re-ranking in edit surfacing
  • fast_hook.py stdin bridging for fallback hook scripts
  • Public SQLiteStore API: edge_count(), get_last_capture_time(), get_session_event_counts()
  • 61 tests for hook UX output formatting

Changed

  • Disabled CoreML provider to prevent native memory leak (~700KB/op); CPU-only ONNX used instead
  • Session summaries TTL reduced from LONG_TERM (2 weeks) to SHORT_TERM (1 day)
  • Hooks no longer access SQLiteStore._conn directly (use public API)

Fixed

  • Daemon/standalone hook parity for scored surfacing, capture confirmations, and auto-feedback
  • Stale surfacing file cleanup (both .surfaced and .surfaced.json files older than 24h)
  • Idle watchdog task reference saved to prevent GC cancellation
  • Resolved 23 test failures from broken hook imports
  • Error dedup in hooks: cap at 5 errors/session, deduplicate by first-100-chars hash

0.2.4 - 2026-02-09

Added

  • UDS hook server for fast hook dispatch (~5ms vs ~750ms cold start)
  • Graph traversal (omega_traverse) with BFS over edges table, max 5 hops
  • Memory compaction (omega_compact) with Jaccard clustering and consolidated summaries
  • Contextual re-ranking with context_file and context_tags boost
  • Auto-claim file hook for implicit coordination
  • Orphan process cleanup and proactive stale session GC
  • 24 tests for UDS hook server, idle watchdog, and stale cleanup debounce
  • UAT suite for registration, coordination, and conflict avoidance

Fixed

  • Coordination lifecycle, edge creation, and TTL gaps
  • Batch embedding falls back to single-item ONNX before hash

0.2.3 - 2026-02-09

Added

  • bge-small-en-v1.5 as primary embedding model (384-dim, better quality than all-MiniLM-L6-v2)
  • Periodic TTL garbage collection (at most once per hour via time.monotonic())
  • Git-aware coordination: detect uncoordinated agents via git state
  • Observability: omega doctor, FTS5 repair, backup, timing, plan capture

Changed

  • Python minimum version raised to 3.11+ (3.10 EOL)
  • Test isolation improvements for safety

Fixed

  • bge-small-en-v1.5 HuggingFace download URLs corrected

0.2.2 - 2026-02-09

Added

  • Intelligence layer: constraints, cross-project lessons, smart surfacing
  • Task management with deadlock detection and audit log
  • Defensive hooks: read tracking and read-before-write warning
  • Session recovery: snapshot/recover crashed sessions

Fixed

  • Flaky tests caused by embedding circuit-breaker leak
  • Naive/aware datetime comparison bug in query()
  • 4 documented feature gaps closed

0.2.1 - 2026-02-09

Added

  • omega_similar: find memories similar to a given one
  • omega_timeline: show memories grouped by day
  • omega_consolidate: memory hygiene at scale (dedup, prune, optimize)
  • Auto-tags: extract languages, tools, file paths, project names at store time
  • Auto-relate: create related edges on store (similarity >= 0.45)

Fixed

  • 3 critical bugs found during UAT testing

0.2.0 - 2026-02-09

Added

  • SQLite + sqlite-vec backend replacing in-memory graphs + JSONL sidecar
  • FTS5 full-text search for phrase queries
  • Multi-agent coordination system (12 tools, 38 tests)
  • Encryption at rest with cryptography library
  • omega_remember, omega_store, omega_query, omega_welcome, omega_profile
  • Export/import for backup and restore
  • Batch store for multiple memories in one call
  • 37 handler tests covering all 21 handlers

Changed

  • Complete storage rewrite from JSONL to SQLite
  • Parameterized SQL throughout (no string interpolation)