All notable changes to 0pnMatrx are documented here.
- Capability catalog: 221 discrete Web3 capabilities across 21 categories, data-driven from
runtime/capabilities/catalog.py - 14 new backing services: restaking, mpc, tba, auctions, nft_lending, compute, storage (Filecoin/Ceramic/OrbitDB), ccip, creator_platforms, social_protocols, advanced_governance, oracles_plus, kyc, payment_channels
- Unified notifications (runtime/notifications/): 9-channel dispatcher (Telegram, Discord, Slack, Email, SMS, WhatsApp, Web chat, iOS push, Webhook)
- Modular setup wizard (setup/): one re-runnable configurator per notification channel, driven by setup_communications.py
- Gateway capability endpoints: GET /api/v1/capabilities, /categories, /{id}; POST /api/v1/capabilities/{id}/invoke
- Extensions registry (extensions/registry.json) regenerated from the catalog (v2.0.0)
- Platform paymaster unchanged — every new capability routes through existing GasSponsor
- Communications config now lives under config["notifications"] (legacy config["communications"] auto-migrated)
- Stripe subscription code (subscriptions handled in MTRX iOS via Apple IAP)
- Legacy referrals and metered billing modules
- Dead top-level plugins/ module (old Stripe tier manifest registry)
- Internal-only content (launch/, grants/, gumroad/, dedication/)
- New
runtime/config/validation.pyenforces env-only loading for every secret listed inSECRET_PATHS. Placeholder values (YOUR_…,CHANGE_ME,REPLACE_…,xxx-…) are treated as unset. - Strict mode (
OPNMATRX_ENV=production) refuses to start the gateway if a required secret is missing from the environment — no more silent fallback to committed placeholders. ValidationReportreturns structured missing/warnings lists so CI can diff them.
- New
runtime/logging/package withJsonFormatter,RequestIdFilter, and aconfigure_logging()bootstrap. Every log line is single-line JSON withtimestamp,level,logger,message,request_id, and arbitraryextrafields. - Per-request
request_idpropagated through an asynccontextvars.ContextVar, generated (or accepted viaX-Request-Id) by a new middleware ingateway/server.py. The request ID is returned to the client and stamped on every log line for the request. - New
runtime/monitoring/otel.pysoft-failing OTLP push exporter that bridges the internalMetricsCollectorinto OpenTelemetry when the SDK is installed. Controlled bymonitoring.otel.{enabled,endpoint,headers,interval_seconds}orOTEL_EXPORTER_OTLP_ENDPOINT.
- Per-authenticated-wallet rate limiter (three-tier: wallet → API
key → IP) replaces the single-shape bucket. Fixed a bug where
wallet_sessionwas checked against the wrong field (expiredinstead ofexpires_at). - New
timeoutmiddleware enforcesgateway.request_timeout_seconds(default 30s) and returns504 Gateway Timeoutfor deadline overruns. - WebSocket frame limit (
gateway.ws_max_message_size, default 1 MiB) and heartbeat interval (gateway.ws_heartbeat_seconds, default 30s) are now pulled from config instead of hard-coded.
docker-compose.prod.ymlcomposes a Caddy sidecar on top of the basedocker-compose.yml. Gateway port is reset toexpose-only; Caddy handles TLS.Caddyfile— auto-HTTPS via Let's Encrypt, HSTS, X-Frame-Options, WebSocket-aware upstream, JSON access logs.k8s/directory with namespace, configmap, secret template, PVC, deployment (securityContext, readOnlyRootFilesystem, liveness/readiness/startup probes), service, ingress, and README.
foundry.tomlpins solc 0.8.20, setsevm_version = shanghai, enables the optimizer, and wires gas reports for all nine production contracts.remappings.txtmapsforge-std/tocontracts/lib/forge-std/.scripts/build-contracts.shis a one-shot wrapper: installs forge-std + OpenZeppelin (pinned), builds, then runs the full test suite.--no-testand--cleanflags supported.- New
contracts/test/directory with nine Foundry test files covering every production contract:OpenMatrixPaymaster.t.sol(14 tests — agent auth, sponsorGas, withdraw, ownership)OpenMatrixAttestation.t.sol(10 tests including a fuzz run)OpenMatrixStaking.t.sol(9 tests — stake / unstake / claim / fees)OpenMatrixDAO.t.sol(6 tests — deposit, propose, voting power)OpenMatrixDID.t.sol(8 tests — create, resolve, update, addService)OpenMatrixInsurance.t.sol(7 tests — premium tiers, purchase, expire)OpenMatrixNFT.t.sol(9 tests — constructor, mint, royalty)OpenMatrixDEX.t.sol(5 tests — createPool, swap)OpenMatrixMarketplace.t.sol(5 tests — listItem, approval, ownership)mocks/MockERC20.solhelper
- New:
tests/test_config_validation.py(36 tests) covering production detection, placeholder detection, env-only enforcement in strict and lenient modes, required-secret errors,validate_config, andValidationReport. - New:
tests/test_logging_json.py(20 tests) covering request-ID contextvars, async task isolation,JsonFormatterfield emission, exception capture, non-serializable fallback, andconfigure_logging(). - New:
tests/test_sentry_init.py(8 tests) covering Sentry DSN detection, placeholder stripping, env-var precedence, missing-SDK fallback, and init-exception handling. - New:
tests/test_otel_bridge.py(12 tests) covering_parse_headers, disabled-by-default, missing-endpoint handling, non-dict config, shutdown-before-start, and env-var override. - Extended:
tests/test_gateway.pyandtests/test_websocket.pyfixtures now seedrate_limiter_wallet,request_timeout,ws_max_message_size,ws_heartbeat_seconds, andotel_bridge.
pytest.iniremoved —[tool.pytest.ini_options]inpyproject.tomlis now the single source of truth.docs/api-reference.mdrewritten to cover the full HTTP + WebSocket +/bridge/v1/surface, middleware chain, and error envelope.- README updated with a "Production Deployment" section pointing at the new Caddy / k8s / Foundry plumbing, and the blockchain capability count corrected.
- Versioned schema migrations replace the flat
SCHEMAlist. Each migration runs insideBEGIN IMMEDIATEand is recorded in a newschema_versiontable; partial failures roll back atomically. Database.restore_from()closes the live connection, atomically swaps the database file, reopens it, and re-runs migrations to bring the snapshot up to the current version.BackupManager.restore_latest()andrestore_from()higher-level helpers; full restore procedure documented indocs/RUNBOOK.md.
- New
GET /metrics/promendpoint exposes counters, gauges, and histograms in Prometheus text exposition format (counters as_total, histograms as summaries with 0.5 / 0.95 / 0.99 quantiles). - Service / oracle cache prune is now wired into the gateway cleanup
loop via a duck-typed
prune_caches()chain (ToolDispatcher → ServiceDispatcher → ServiceRegistry → OracleGateway). Evictions are reported viacaches.evicted. MatrixBridgenow performs real on-chain balance lookups via a lazily constructedWeb3Manager, falling back gracefully when the chain is not configured.
pyproject.tomlis now the source of truth for metadata, build config, optional dependency groups, and tool configuration (pytest, coverage, mypy, interrogate).requirements.txtis now runtime-only with~=("compatible release") pins. Development tooling moved torequirements-dev.txt, optional Sentry monitoring extras torequirements-monitoring.txtand the[opnmatrx[monitoring]]extra.
- New CI jobs: mypy type-check, interrogate docstring coverage,
pytest-cov coverage reporting, pip-audit dependency audit, and a
Docker smoke-test job that builds the image and curls
/health. - New release workflow (
.github/workflows/release.yml) cuts a GitHub Release when av*tag is pushed, builds sdist + wheel, and pulls the matching CHANGELOG section as the release body. .github/CODEOWNERSand.github/PULL_REQUEST_TEMPLATE.mdadded.docs/RUNBOOK.mdadded with the full on-call playbook.
- New:
tests/test_db_migrations.py(12 tests) covering schema versioning, idempotency, additive migrations, and rollback on failure. - New:
tests/test_metrics.py(14 tests) covering counter / gauge / histogram collection plus Prometheus formatting. - New:
tests/test_websocket.py(8 tests) covering the previously uncoveredhandle_websocketendpoint: happy path, conversation persistence, validation errors, and graceful failure when the ReAct loop raises. - Extended:
tests/test_backup.pyandtests/test_graceful_degradation.pywith restore-flow and cache-eviction coverage.
- The MTRX iOS app remains intentionally out of scope for this
repository — see
ROADMAP.mdfor what belongs in the separateMTRX-iOSrepo (Swift code, APNs, TestFlight CI, StoreKit).
- Event-driven inter-agent communication via typed EventBus
- 20 event types covering session, agent, task, security, and protocol lifecycle
- Session persistence and resumable sessions via LifecycleManager
- 8 lifecycle hook points: pre/post session start, pre/post tool use, pre/post shutdown, on error, on resume
- Agent activity tracking: message counts, tool calls, error rates per session
- Task delegation now emits TASK_DELEGATED / TASK_COMPLETED / TASK_FAILED events
- Morpheus interventions tracked via MORPHEUS_INTERVENTION events
- Glasswing audit blocks emit AUDIT_BLOCKED events for observability
- Event log persisted to hivemind/events.jsonl for audit trails
- Session state persisted to hivemind/sessions/ for crash recovery
- MTRX iOS app: Glasswing security knowledge in agent conversations
- MTRX iOS app: managed agent architecture awareness in Trinity/Neo/Morpheus responses
- Security audit layer: 12 vulnerability checks run on every contract before deployment
- Reentrancy, unchecked calls, tx.origin, selfdestruct, delegatecall, unbounded loops, integer overflow, floating pragma, locked ether, access control, front-running, timestamp dependence
- Audit gate on deploy: critical vulnerabilities block deployment
- Audit report included in every contract conversion response
- Morpheus enforces audit findings — no unsafe contracts reach the chain
- Mythos Preview added as model provider (Glasswing frontier model)
- Security configuration in openmatrix.config.json
- HiveMind security instance type for collective vulnerability reasoning
- Ultron deploy planning now includes mandatory security audit step
- Friday monitors security vulnerability events
- Vision tracks security patterns across user activity
- Omniversal protocol tracks security as an expansion domain
- Three-agent architecture: Neo, Trinity, Morpheus
- ReAct reasoning loop with full tool dispatch
- File-backed memory system
- HTTP gateway on configurable port
- 36 skills loaded via skills loader
- HiveMind shared state across all agents
- 221 capabilities across 21 categories on Base (Ethereum L2)
- Unified Rexhepi Framework governing all agent decisions
- Full SDK for external integrations
- Migration system for upgrading between versions
- Support for Ollama (local), OpenAI, Anthropic, NVIDIA, Gemini
- One-command install and start scripts
- MIT licensed