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. Fastsummarize_onlymode for risk assessment without LLM. Pre-commit hook athooks/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 setupauto-configures~/.claude/settings.jsonwith 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) andlib/llm.ts(TypeScript) supporting Anthropic, OpenAI, and OpenAI-compatible providers viaOMEGA_LLM_PROVIDER - LLM usage tracking: Per-call cost tracking with session rollups and admin dashboard
- Multi-model consultation:
omega_consult_gptandomega_consult_claudetools for cross-model second opinions (replacesomega_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_lessonstool (replaced byomega_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_untilfor point-in-time queries - Memory strength scoring with decay, deduplication, and
strength_minquery filter - Memory type classification — auto-classifies on store, filterable via
memory_typeparameter 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_errorhelpers 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 IMMEDIATEtransactions and WAL checkpoint logic - Connection leak in
record_metriceliminated 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
outputSchemavalidation 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_resumein 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
litellmdependency from router extras (was never imported) - Fixed commitizen
changelog_start_revto existing tagv0.3.0
Fixed
- 105 ruff lint errors across src/ and tests/ (unused imports, f-strings without placeholders)
pre_push_guardtest subprocess import pathauto_claim_branchpath 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_guardmigrated from standalone script to daemon handler (12 handlers total)_SLOW_HOOKSset with configurable timeout infast_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.pyandtest_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: passreplaced with specific exceptions + debug logging cleanup_old_requests()now usesmax_age_daysparameter (was ignored)- Merged 3 separate
store.query()calls into 1 inauto_capture()(saves 2 embedding generations)
Removed
- Dead
HAS_NUMPYvariable from graphs.py - Dead
get_model_history()stub from router/engine.py
0.4.1 - 2026-02-10
Fixed
omega doctornow 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_tagsparameter foromega_querywith AND-logic hard filtering- CLI
compactandstatssubcommands scripts/migrate_magma.pyfor 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 ImportErrorin mcp_server.py pyproject.toml: router/full optional dependency groups- Total tests: 779
0.3.2 - 2026-02-10
Added
filter_tagsparameter onquery_structured(AND-logic, 3x over-fetch)- 4 utilization gaps closed: auto-tags on store, confidence thresholds, plan capture triggers
pre_push_guardenhancements: 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_guardhook: 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_statusintoomega_health,omega_export/omega_importintoomega_backup,omega_cross_project_lessonsintoomega_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_guardhook blocks Edit/Write/NotebookEdit viasys.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 vialog_audit(tool_name="file_claim_force") forceboolean parameter added toomega_file_claimMCP 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_guardhandler inhook_server.pydispatch table pre_file_guardadded tofast_hook.pyfallback scripts table- 21 new tests in
test_pre_file_guard.pycovering blocking, self-claim, TTL expiry, force-claim, fail-open, notebook support - Atomic write for
profile.jsonvia tempfile +os.replaceto prevent corruption on crash
Fixed
- Deadlock in
claim_file:log_audit()was called insidewith self._lock:— sincethreading.Lockis 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_IDskips 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_cancelMCP 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 mode0o700(owner-only access)- Encryption key file created atomically with
O_EXCLto prevent TOCTOU race - Thread-safe SQLiteStore singleton via double-check locking
- Hardcoded
/opt/homebrew/bin/python3replaced 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_guardnow blocks pushes on divergence viasys.exit(2)(was advisory-only)auto_claim_filenow surfaces[CONFLICT]warnings instead of silently swallowing claim conflicts- Hook timeouts increased:
coord_session_start3s → 10s,coord_session_stop3s → 8s - Git fetch subprocess timeout reduced from 15s to 5s to fit within hook timeouts
- Replaced deprecated
datetime.utcnow()withdatetime.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_COUNTglobal from graphs.py
Fixed
- Numeric MCP handler parameters now clamped to safe bounds
.gitignorehardened with.env,*.db,*.log,*.key,hook.sock,.omega/cancel_tasknow enforces owner check — previously any session could cancel another's in-progress workclaim_file/claim_branchcatchsqlite3.IntegrityErrorfor cross-process race safetycheck_filereads now guarded by_lockfor consistency with write locking disciplinecheck_inboxread + mark-as-read unified under single lock to prevent concurrent read races_snapshot_sessionpreserves session capabilities in metadata for_auto_reregisterrecovery- 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.pystdin 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._conndirectly (use public API)
Fixed
- Daemon/standalone hook parity for scored surfacing, capture confirmations, and auto-feedback
- Stale surfacing file cleanup (both
.surfacedand.surfaced.jsonfiles 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_fileandcontext_tagsboost - 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 oneomega_timeline: show memories grouped by dayomega_consolidate: memory hygiene at scale (dedup, prune, optimize)- Auto-tags: extract languages, tools, file paths, project names at store time
- Auto-relate: create
relatededges 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
cryptographylibrary 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)