Skip to content

v0.6.0: Physical Rail Strategy, Engine Modularization & Production Hardening

Latest

Choose a tag to compare

@froooze froooze released this 03 Mar 11:56
· 27 commits to main since this release
dacfbcc

v0.6.0 - Physical Rail Strategy, Engine Modularization & Production Hardening

This is a major release covering 589 commits (Jan–Mar 2026) across 26 patch iterations.


Major Features

Physical Rail Strategy
The grid is now treated as a contiguous "rail" of orders that moves physically with the market. This eliminates gaps, improves stability during volatility, and simplifies the spread correction model to a constant-width design.

Simplified Consolidation (Merge/Split)

  • Merge (Dust): partials < 5% are absorbed into next grid rebuild
  • Split (Substantial): partials ≥ 5% are split cleanly without special-case state machines

Replaced the legacy Anchor & Refill state machine with direct grid regeneration.

Engine Modularization
OrderManager split into three focused engines:

  • accounting.js – Fund tracking, invariant verification, fee management
  • strategy.js – Physical Rail and Unified Rebalancing
  • sync_engine.js – Blockchain reconciliation and fill processing

AMA Market Price Adapter
Adaptive Moving Average integration for price-adaptive grid centering. Configurable delta threshold controls when AMA price change triggers a grid reset.

Multi-Node Management
Optional multi-node health checking with automatic failover, latency-based selection, and chain ID validation (opt-in via general.settings.json).

Unix Socket Credential Daemon
Eliminates plaintext MASTER_PASSWORD environment variable exposure. Password kept in RAM only, never written to disk.


Notable Improvements

  • Constants Centralization: 60+ magic numbers consolidated into constants.js
  • CacheFunds Removal: Eliminated redundant dual-tracking; grid now uses a single availableFunds source of truth
  • Memory-Only Integer Tracking: rawOnChain cache eliminates redundant API fetches during rotations (O(1) local updates)
  • RMS Divergence Toggle: Set RMS_PERCENTAGE: 0 to disable divergence-based grid regeneration
  • Fund Invariant Verification: Automatic detection of accounting leaks at runtime
  • COW Hardening: Copy-on-write batch commit guards and integer-exact accounting
  • Startup Improvements: Sequential fill rebalance before reconcile, batch retries, and self-healing of corrupted state files
  • Grid Diagnostics: Color-coded logGridDiagnostics visualization
  • QTradeX Export: dexbot export <bot-name> for backtesting CSV generation
  • EXPERT Config Section: Advanced settings accessible via JSON (not menu)

Fixed (99+ fixes across release + 26 patches)

  • Fund validation bug: was checking required > chainFree + required (always false)
  • COW cache deductions aligned to executed on-chain integers, not planned floats
  • Startup reconcile ordering: sync-detected fill rebalance now runs before reconcile
  • BTS fee unification: fees applied to all on-chain operations (rotations, size updates)
  • 12 race conditions in fill processing and sync engine
  • Active No ID grid corruption: orders now become ACTIVE only after confirmed broadcast
  • Startup reconciliation index overflow on large order counts
  • Division by zero in node manager stats when no latency data is available
  • Double dust partial creation
  • Excess order cancellation asymmetry

Breaking / Migration Notes

  • Asset precision is now mandatory: bot fails loudly if asset metadata is unavailable (fallback removed)
  • cacheFunds removed from persistence schema — existing snapshots load cleanly (field simply absent)
  • TIMING config menu split into Core and Fill sections