v2.0.0 — Greenfield redesign: ports-and-adapters core, Nautilus engine, tick data
Flint 2.0.0 — the greenfield rewrite
Ground-up rewrite of Flint on a ports-and-adapters architecture. 85 commits, ~930 files changed vs v1.5.4. Canonical spec: docs/redesign/DESIGN.md; honest build ledger: docs/redesign/STATUS.md.
Architecture
- Strict one-directional layering:
core/(pure models) →engine/→services/→ surfaces (api/,sdk/,mcp_srv/,agent/). Surfaces talk only toservices/. - Every service call takes a
TenantContext; tenant scoping is enforced by a two-tenant cross-leak contract test. - All I/O behind six ports with local adapters (DuckDB, in-memory bus, .env secrets, in-proc jobs).
Engine
- Nautilus Trader is the only simulation substrate — the legacy bar engine and the Rust engine are deleted. Parity goldens were frozen from the legacy engine before removal (byte-exact funding, liquidation, and cross-market ordering).
- Bar strategies run unmodified via the bar-lane shim with Flint-priced fills;
TickStrategygets native L2 matching and process()-driven perp economics. - Warm-start seam: seed positions materialize in Nautilus with strict reconciliation; paper lane runs on the same engine.
- Liquidation: tiered maintenance, cross-pool cascade, HL backstop. Funding: predicted/final split, cap, oracle-priced settlement.
Data
- Tick-data foundations: kinds/schemas,
CoverageLedger, Tardis vendor adapter (CSV datasets client, ledger-driven backfill), live tick recorder (BBO quotes, predicted funding), BOOK_DELTA streaming with quotas + prune. - Granularity tiers with auto-resolution and structured rejections.
- Funding is a hard gate: a backtest over a window without real funding data is rejected with available ranges and the fix — never silently zero-filled or interpolated.
- No synthetic data anywhere (D26): tests use hand-authored inputs or real recorded fragments.
- One-shot importer for legacy v1.x DuckDB lakes — old data is imported, never discarded.
Strategy surface & security
- Public
StrategyAPI with Signal → Order conversion and a read-only context; declarative ML strategies with a managed model store and feature-causality screen; 9+ built-in templates. - User strategy code runs in an OS-isolated sandbox subprocess (env-scrub + RLIMIT; nsjail/seccomp on Linux). The AST import allowlist is lint-grade UX, not the security boundary.
Surfaces
- REST/WS API front door, SDK Lab +
flintCLI overservices/, MCP agent surface, HL live executor with caps, kill switch, and reconciliation. - New web UI: v1 shell with Dashboard/Lab/Docs, backtest results, funding heatmap, data explorer, funding lab.
Test baseline
pytest tests/ -q → 679 passed, 4 skipped · UI vitest 151 passed · ruff check clean · codemap check green (33 shards).
Housekeeping
- Drift Protocol remains dropped (offline post-hack). Hyperliquid is the live venue; Jupiter and Phoenix are planned expansion.
- All pre-redesign work reconciled:
restructure(merged as v1.4.0 / #33), Jupiter perps, volume-scaled CEX fills, repo declutter are all in main's history; 21 stale branches pruned.
Full Changelog: v1.5.4...v2.0.0