Backend capability register¶
This table consolidates the status of every capability documented in this section. Status tokens
follow the fixed vocabulary used throughout: verified (present in code at the pin),
production-record (attested only by the tracked deployment record, never independently
observed live), private-test-stage, target-contract (declared but not yet current behavior),
upstream (Nautilus's own behavior), extension (an intentional ONIX addition), retired, and
unverified.
| Capability | Status | Evidence anchor | Caveat |
|---|---|---|---|
| Nautilus 2.0.0rc3 pin, unmodified public wheel (macOS dev) | verified |
python/uv.lock |
— |
| Private patched Linux wheel (Hyperliquid ACK lifecycle) | verified (existence only) |
python/src/onix_engine/spine/hyperliquid_patched_runtime.py |
Contents, digests, and build recipe are withheld from all public documentation |
run() over run_async() runtime hosting |
extension |
python/src/onix_engine/runtime/lifecycle.py |
Chosen due to a measured upstream run_async() lock-order defect on this pin |
Durable catalog = thin façade over ParquetDataCatalog |
verified |
python/src/onix_engine/catalog/store.py |
No custom Parquet layout/compaction of any kind |
1m durable, 5m–1d derived via Nautilus TimeBarAggregator |
verified |
python/src/onix_engine/spine/resolutions.py |
Derived buckets withheld across unresolved gaps |
Hydration status vocabulary (EMPTY/HYDRATING/READY/FAILED wire) |
verified |
python/src/onix_engine/spine/hydration.py |
Internal state machine has two additional non-wire states |
| Coverage accounting (eligible/planned/subscribed/failed/with_flow/quiet) | verified |
python/src/onix_engine/spine/coverage.py |
— |
Retained-ingestion manifest mv5-epoch1, Bybit-only |
production-record |
feature-state/rc3-data-plane-frozen-current-production.yaml |
Live host never independently observed |
Retained-ingestion manifest mv8-epoch1 (dev, 2 venues) |
verified (as development artifact) |
deploy/retained-ingestion.json |
Not shown to have been promoted to production |
| Bybit venue: activated, in tracked production record | production-record |
feature-state/rc3-data-plane-frozen-current-production.yaml |
— |
| Hyperliquid venue: ingest-only, dev roster | verified (dev roster) |
deploy/activation.json |
Execution explicitly disabled; absent from production record |
| Binance venue: ingest-only, dev roster, operator-gated | verified (dev roster) |
deploy/activation.json |
Refuses startup until boundary params supplied; absent from production record |
| Interactive Brokers venue: real broker execution code | verified (code); private-test-stage (activation) |
python/src/onix_engine/ibkr/execution.py; deploy/activation.json |
enabled: false; absent from production record |
| 19 Nautilus adapters reflected/registered | upstream |
python/src/onix_engine/venues/registry.py |
Enumeration of what Nautilus ships, not what ONIX activates |
| Market-spine node: zero exec/risk clients registered | verified |
python/src/onix_engine/spine/service.py |
Applies to every venue process in every tracked configuration |
Structural guard on add_exec_client |
extension |
python/src/onix_engine/venues/execution_guard.py |
Python-level structure; not a language-level sandbox |
Sandbox lifecycle (start/stop/status) |
verified (deferred) |
python/src/onix_engine/spine/deferred.py |
UNAVAILABLE/501 on core spine + Binance; UNSUPPORTED/404 on IBKR (no such concept). Tool specs exist in MCP; the underlying route refuses on every node. |
| Account/portfolio/order/fill/position read surface | verified (per node) |
docs/contracts/capability-registry-v1.md |
UNAVAILABLE/501 on core spine + Binance; READY on IBKR node against a live execution-projection |
| Real-money live execution | unverified — no evidence found |
— | No path in source, dev roster, or production record demonstrates it |
| Nautilus Cache save/load | verified (reachable, proven no-op) |
python/src/onix_engine/runtime/probes.py |
No backing store field exists on CacheConfig at this pin |
| Redis/Postgres cache config construction | verified (rc3 only; unreachable end-to-end) |
python/src/onix_engine/runtime/probes.py |
Improved since rc2; still not wired to CacheConfig |
| Nautilus event store (capture/seal/replay) | verified (categorically absent from Python) |
python/src/onix_engine/runtime/probes.py |
Real in Rust; zero Python surface at this pin |
| In-process MessageBus pub/sub | verified |
python/src/onix_engine/runtime/probes.py |
External (Redis) backing unreachable, same as cache |
| Strategy Studio: immutable, content-addressed revisions | verified |
docs/contracts/strategy-studio-v2.md |
— |
| Strategy admission gate (7-point re-derivation) | verified |
docs/contracts/strategy-studio-v2.md |
— |
| Raw importable-strategy submission path | retired |
docs/contracts/strategy-studio-v2.md |
Removed from both REST and MCP |
| TypeScript strategy compile/execution/isolation runtime | unverified (no backend evidence either way) |
— | Confirmed absent from this backend at the pin; Python is the sole authoring language present |
| LLM/generated-strategy sandbox | verified as deliberately unbuilt |
docs/decisions/0003-python-strategy-boundary.md |
ADR states a partial sandbox was rejected in favor of none |
Backtests via official BacktestNode, verbatim results |
verified |
python/src/onix_engine/spine/backtest_run.py |
ONIX computes none of the reported statistics |
| Backtest determinism (byte-identical fresh-process rerun) | verified |
workbench rerun tooling | Proven via a local offline tool, not a production SLA |
Screener absent-value honesty (ABSENT vs missing key) |
verified |
schemas/feature_row.schema.json |
Schema-enforced, not convention |
| Screener confluence: all seven resolutions projected and eligible to vote | verified |
python/tests/test_screener_bridge.py |
confluence.py's own docstring is stale (describes a since-fixed "1m only" defect); a derived timeframe still votes neutral only until its own warmup elapses |
| Gateway contract: 58 schemas, digest-pinned | verified |
docs/handoff/contract-manifest.json |
Digest matches the task's recorded schema-set hash exactly |
Capability registry (GET /v2/registry) as discovery surface |
verified |
docs/contracts/capability-registry-v1.md |
— |
| Backend MCP: 81 tools default (16 mutating) / 82 max with one operator-gated tool (17 mutating) | verified |
python/src/onix_engine/mcp/tools.py |
stdio transport only; config input is type+65,536-byte bounded, not a closed enum; 15 tools still front the older v1 fixture/runtime gateway |
See nautilus-boundary.md, runtime/index.md, and
venues/index.md for the full narrative behind the production-record versus
development-intent rows above.
Evidence and source pins for this page
Verified. Current behaviour, confirmed in source at the pinned commit.
Verified on against the following immutable sources:
backend@efa38e04:feature-state/rc3-data-plane-frozen-current-production.yamlbackend@efa38e04:deploy/activation.jsonbackend@efa38e04:python/src/onix_engine/spine/deferred.pybackend@efa38e04:python/src/onix_engine/mcp/tools.py
Status tokens are defined on the documentation and status model page. Every pin on this site is listed under versions and source pins.