Changelog¶
All notable releases are documented here.
Version source of truth: src/monte_neo/_version.py.
[v0.17.7] — 2026-09-17¶
Changed¶
- Docs site homepage is native MkDocs
docs/index.mdat site root (no/home/duplicate) - Renamed
docs/INDEX.md→docs/docs-map.md(macOS case-insensitive safe next toindex.md) - Native MkDocs
docs/index.mdas site root;docs.ymlchecks root index and rejectssite/home/(sed/copy-home hack removed) - Maintenance tests and contributing rules point at
docs/docs-map.md
Notes¶
- Docs / Pages infra only — no runtime API break vs 0.17.6.
- License remains MIT. No peer product names in this tree.
[v0.17.6] — 2026-09-17¶
Added¶
- GitHub Actions PyPI install smoke (
.github/workflows/pypi-smoke.yml):workflow_dispatch, weekly schedule, andreleasepublished → clean venv +pip install monte-neo==… --no-cache-dir+ import policy/holdout (viascripts/verify_pypi_install.sh, CDN retries) - Links to SECURITY.md from README, CONTRIBUTING, docs INDEX, and MkDocs Project nav
Changed¶
scripts/verify_pypi_install.shdefault version → 0.17.6;--no-cache-dir+ retry/sleep for PyPI CDN lag
Notes¶
- Docs / OSS trust only — no runtime API break vs 0.17.5.
- License remains MIT. No peer product names in this tree.
[v0.17.5] — 2026-09-17¶
Changed¶
- Research
device="auto"preferscpu_numbafor wall clock on typical grids (measured M1 Pro: Metal was ~50–100× slower on 100k×64 / 1M×32) - Sets
fallback_reason="auto_prefer_cpu_numba"when auto declines Metal/MLX for speed - Explicit
device="metal"/"mlx"unchanged (size gate only; may be slow — user's choice) - OMS
resolve_device("auto")unchanged (still prefers Metal when available)
Added¶
- Env
MONTE_NEO_RESEARCH_AUTO_PREFER_METAL=1— restore pre-0.17.5 prefer-Metal research auto - Env
MONTE_NEO_RESEARCH_AUTO_METAL_MIN_COMBOS=N— allow auto→Metal only whenn_combos >= N
Notes¶
- See Performance and FAQ.
- License remains MIT. No peer product names in this tree.
[v0.17.4] — 2026-09-17¶
Changed¶
- Performance: primary table is MacBook Pro M1 Pro 16 GB real timings (post-warmup)
- Honest guidance: for measured small/medium grids,
cpu_numbabeat Metal wall-clock whileautostill selected Metal when eligible
Notes¶
- Docs / trust only — no runtime API break vs 0.17.3.
- License remains MIT. No peer product names in this tree.
[v0.17.3] — 2026-09-17¶
Added¶
- Job-fit scenarios on Home and FAQ: when Monte-Neo fits / when not (research bar vs OMS/live; peer-free)
- Performance rewrite with first-party
export_sma_sweeptimings +scripts/bench_research_bar.py - MkDocs nav: Performance under Get started
Changed¶
- Quick start is export-first (pip → export → policy → holdout); CLI wizard moved to optional section
- Softened stale “125x” / “300k ops/sec” / “v0.0.4 targeting” claims in public docs
Notes¶
- Docs / trust pack only — no runtime API break vs 0.17.2.
- License remains MIT. No peer product names in this tree.
[v0.17.2] — 2026-09-17¶
Changed¶
- Holdout default
promote_mode="holdout_positive": positive holdout no longer blocked by large train−holdout gap - HeuristicPolicy: block promote only when
holdout_promote_okis false; high gap → MC flag; holdout can unlock promote
Added¶
promote_mode="strict"for legacy conservative gateappend_research_labelJSONL logger + CLI--holdout-log/--human-label(corpus for a future LocalScorer — not B yet)
Notes¶
- LocalScorer B still deferred until real labeled runs exist.
- License remains MIT.
[v0.17.1] — 2026-09-17¶
Added¶
- CONTRIBUTING + GitHub issue/PR templates
- Install audit docs: pipx, extras matrix, safe TestPyPI
--no-depsrecipe - FAQ: TestPyPI poison, extras ImportError, policy/holdout CLI pointers
Changed¶
- Installation page current release → 0.17.x; docs site link in install/FAQ
- MkDocs nav: Contributing
Notes¶
- Docs/OSS friction only — no runtime API break vs 0.17.0.
- License remains MIT.
[v0.17.0] — 2026-09-17¶
Added¶
- Holdout helper (
holdout_sma_sweep,split_bar_range): train SMA sweep → score top-K on holdout - Schema
mn.holdout_report.v1with gap / overfit_risk / promote_ok - HeuristicPolicy enrichment via
build_research_state(..., holdout_report=) - CLI:
monte-neo --holdout-sma - Docs: Holdout API
Notes¶
- Practical anti-overfit without ML. LocalScorer B still deferred.
- License remains MIT. No peer product names in this tree.
[v0.16.0] — 2026-09-17¶
Added¶
- HeuristicPolicy A (
monte_neo.policy): local deterministic triage after research export build_research_state→ compactmn.research_state.v1(no raw OHLCV)triage_export/HeuristicPolicy.decide→ next_action, promote/MC flags, reasons- CLI:
monte-neo --policy-triage path/to/export.json - Docs: export API + policy pages; install extras matrix (
[apple],[plot],[data],[ml],[server],[full])
Changed¶
- Slim default dependencies — research-core only (numpy/pandas/pyarrow/numba/rich/CLI)
- Optional extras:
apple(darwin markers),plot,data,ml,server,full - Lazy imports for Binance downloader, websocket client, plot helpers (
monte-neo[data]/[plot]) - CI syncs
--extra apple --extra plot --extra data --group dev - Documentation URL → https://neozork.github.io/Monte-Neo/
Notes¶
- Not a cloud “System One” model — offline rules only. Holdout helper / LocalScorer B deferred.
- License remains MIT. No peer product names in this tree.
[v0.15.1] — 2026-09-16¶
Fixed¶
- Bare
pip installwithout MLX (from __future__ import annotationson acceleration modules) - Quiet Metal-unavailable import noise (debug level)
- Include
monte_neo.datain wheels (.gitignore/data/) - CI: portable CLI subprocess cwd; ruff clean on coverage boosts
- Coverage close-out for sequential advice + cli
__main__pragma
Packaging¶
- Ready for first TestPyPI / PyPI upload as PEP 440
0.15.1 - GitHub tag
v0.15.0predates these packaging/CI fixes — ship as 0.15.1
[v0.15.0] — 2026-09-15¶
Fixed¶
verify_export_golden/verify_golden_vectors: auto Metal float32 tolerance band when batch resolves to Metal- Unit metrics: pin Numba path for deterministic
trade_count; native extract stub via_get_native - Build: pin
hatchling>=1.24,<1.26so wheels emit Metadata 2.3 (twine-check friendly) - Packaging:
.gitignore/data/(root only) somonte_neo.datais included in wheels - Import without MLX:
from __future__ import annotationson acceleration modules so barepip installworks - Metal extension absence logged at debug (no emoji warning on every import)
Packaging / PyPI prep¶
mlx+ PyObjC Metal moved to optional extramonte-neo[apple](Linux/CI-friendly wheels)- Hatch version pattern strips leading
vfor PEP 440 distribution version - Richer
projectmetadata: description, keywords, classifiers,project.urls docs/project/PACKAGING.md— free-only PyPI / TestPyPI checklist
Docs / examples¶
- Demo assets:
docs/assets/demo_sma_sweep.png,docs/assets/demo_memory_plan.png examples/export_sma_sweep_quickstart.py+ examples README- README install notes for
[apple]and git install
Notes¶
- First PyPI upload still gated on TestPyPI + maintainer OK (see PACKAGING.md)
- License remains MIT. No peer product names in this tree.
[v0.14.1] — 2026-09-15¶
Fixed¶
- Research accelerator no-hang gate: oversized Metal/MLX workloads fall back to
cpu_numbainstead of blocking forever on GPU wait (e.g. 10M-bar sweeps on 16GB-class hosts) - Transparent
fallback_reasonwhen auto demotes Metal (metal_max_bars_exceeded, shared-budget, host soft budget)
Docs¶
- README: install from GitHub, research export quickstart, advantages, device notes
docs/guides/FAQ.mdstarter
Notes¶
- Env knobs:
MONTE_NEO_RESEARCH_BYTES_BUDGET,MONTE_NEO_METAL_SHARED_BYTES_BUDGET,MONTE_NEO_METAL_MAX_BARS - License remains MIT. No peer product names in this tree.
[v0.14.0] — 2026-09-15¶
Added¶
plan_research_bytesfor Apple Silicon 16GB soft budgets / tile hints- Export depth:
equity_stride,include_journal, optionalmemoryon single/batch - README positioning: local macOS research job vs non-goals (no rival names)
Notes¶
- License remains MIT. Evidence publication stays permission-gated and out of tree.
[v0.13.0] — 2026-09-15¶
Added¶
- Research signal factory (
build_sma_cross_grid): Numba-parallel SMA cross grids - Sweep/export expose
signal_elapsed_s+economics_elapsed_s(wall includes both)
Notes¶
- Default signal device is Numba (exact); MLX signal path remains opt-in.
- No peer product names in this tree. License remains MIT.
[v0.12.0] — 2026-09-14¶
Added¶
- Stable research-bar export API (
export_single/export_batch/export_sma_sweep/research_manifest) - Frozen golden vectors (
verify_golden_vectors) for fee-hurts + batch↔single parity before any external timer - Timers disclose
includes_signal_buildso harnesses cannot mis-attribute work
Notes¶
- No peer product names in this tree. Export is for external honesty harnesses only.
- License remains MIT.
[v0.11.0] — 2026-09-14¶
Added¶
- Research Metal economics: funding, session mask, long_short (Numba golden parity)
- Rewrote stale MLX engine unit tests against current kwargs-only API (no skips)
Notes¶
- Evidence publication stays out of this repository.
- License remains MIT.
[v0.10.0] — 2026-09-14¶
Added¶
- Research Metal economics: SL/TP/trail on long/flat next-bar-open (Numba golden parity)
- Parity + perf coverage for Metal stop/trail subset
Notes¶
- Funding / session mask / long_short remain Numba-only.
- Evidence publication stays out of this repository and permission-gated.
- License remains MIT.
[v0.9.1] — 2026-09-14¶
Removed¶
- Public evidence-reproduce helpers, CLI entrypoint, and
core/raceoptimization surface - Development race docs that described public evidence reproduce flows
Notes¶
- Evidence publication remains permission-gated and lives outside this repository.
- License remains MIT.
[v0.9.0] — 2026-09-14¶
Added¶
- Research bar Metal economics batch (long/flat next-bar-open subset)
- OMS:
BarClock,TimeInForce(GTC/IOC), OCO/bracket helper, honestmax_fill_qtypartials - OMS:
adapters/replay.pyOHLC replay; accelBufferPool+shader_catalog device=onrun_bar_backtest_batch/run_sma_sweep(Metal when eligible, else Numba golden)- Parity + perf smoke for Metal vs Numba (
fill_fraction/leverageincluded)
Notes¶
- SL/TP/trail/funding/session/long_short remain Numba-only (full ExecutionModel).
- Metal float32 vs Numba float64 uses documented rtol/atol.
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.8.0] — 2026-09-14¶
Added¶
- MC Metal/MLX/CPU unified dispatch (
plan_mc_run) honoringcompute_device/use_gpu - M1 Pro 16GB-class scenario memory budgets (
plan_scenario_budget, tile ranges) MCResult.device_used/bytes_peak_est/accel_plan;MCConfig.memory_budget_bytes- Docs:
docs/project/mc_accel.md
Notes¶
- Metal-first on Apple Silicon; MLX used when native params are absent but MLX repr exists.
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.7.0] — 2026-09-14¶
Added¶
- Metal L2 book-walk dispatch (PyObjC) with Numba float64 golden parity
run_l2_walk/run_l2_walk_batchdevice-aware paths; TickL2Engine uses them- Unit parity + performance smoke for Metal L2 batch walk
Notes¶
- Metal uses float32; parity tests allow documented rtol/atol vs Numba float64.
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.6.0] — 2026-09-14¶
Added¶
- Metal OMS batch dispatch (PyObjC) with Numba float64 golden parity
run_batch_terminal(device=...)/preferred_compute_devicefor honest device reports- MCConfig.
compute_device+ enginecompute_prefchecklist - Perf smoke for auto Metal/Numba batch path
Notes¶
- Metal uses float32; parity tests allow documented rtol/atol vs Numba float64.
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.5.0] — 2026-09-14¶
Added¶
- Venue adapters:
PaperExchangeAdapter,BinanceAdapter,BybitAdapter make_adapter()factory + fill reconciliation helper- Live safety gates:
MONTE_NEO_LIVE_TRADING,MONTE_NEO_LIVE_DRY_RUN(default dry-run) .env.examplekeys for Bybit + live flags
Notes¶
- Paper mode is default (no network). Live submit without dry-run is blocked in this build.
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.4.0] — 2026-09-14¶
Added¶
- Tick/L2 OMS lane:
TickL2Engine, synthetic ticks, order book, L2 walk - Numba
walk_book_marketwith Python L2 parity tests - Metal shader scaffold
oms_l2_walk.metal - Docs updated for dual research + OMS tick paths
Notes¶
- Paper/synthetic books only in this cut (live adapters later).
- License remains MIT. Evidence publication still permission-gated (out of tree).
[v0.3.0] — 2026-09-13¶
Added¶
- Paper OMS lane (
monte_neo.oms): orders, matching, portfolio netting, blotter - Accel device select (
cpu_numba/metal/mlx/auto) for Apple Silicon - Numba OMS batch helper + Metal shader scaffold (
oms_bar_match.metal) - Docs:
docs/project/oms_engine.md; roadmap rules (silence, Evidence gate, sync)
Notes¶
- Research bar engine (
monte_neo.backtest) unchanged as a separate lane. - License remains MIT.
- No public Evidence publication without maintainer permission after correct private runs.
[v0.2.0] — 2026-09-13¶
Added¶
- Session mask (block new entries off-session; exits/SL/TP still allowed)
- Funding lite (
funding_bps_per_bar) and leverage (leverage >= 1) - Shared-cash multi-symbol portfolio (
run_portfolio_shared_cash) - Correctness suite: dual-hit SL preference, batch≡single with new knobs
Notes¶
- Research bar engine scope unchanged (not a full OMS).
- No public speed evidence until private comparisons complete and user OK.
- License remains MIT.
[v0.1.0] — 2026-09-13¶
Added¶
- Brand logo (
docs/assets/monteneo-logo.png) and honest GitHub-facing README - GP bar engine:
StrategySpec/run_strategy_backtest, trail stops, impact_bps, partialfill_fraction, expanded work checklist - Docs: clearer scope (research bar engine ≠ full OMS)
Notes¶
- License remains MIT.
[v0.0.9] — 2026-09-13¶
Added¶
ExecutionModel.sl_pct/tp_pctwith H/L exits (SL preferred on dual hit)- Trade journal + metrics (
sharpe,profit_factor,win_rate, max DD) run_bar_backtest_batchfor external signal matrices (shared economics)run_multi_symbol_lite(independent cash books)run_sma_sweepnow wraps batch (labeled convenience, not D001 kernel)
Notes¶
- Costs remain bps on this path; older
metricshelpers may use %.
[v0.0.8] — 2026-09-13¶
Added¶
- Professional fee-aware bar backtest engine (
monte_neo.backtest): next-bar fills, commission/slippage bps, cash/position/equity, SMA sweep with the sameExecutionModel, optionalReplayBarSourcemid-price feeder (no Redis on hot path) - Docs:
docs/project/backtest_engine.md - Unit / integration / stress / performance tests for the new engine
Notes¶
- Specialized SMA kernel gates for private local protocols remain out of scope; this package path is for matched-semantics peer races (private or future D002).
[v0.0.7] — 2026-09-12¶
First formal GitHub Release. Canonical development branch is main
(older branches named v0.0.1 … v0.0.6 are historical archives only).
Added¶
- Public evidence-reproduce helpers and CLI (later removed in v0.9.1)
- Type B CPU fallback when Metal native extension is unavailable
- Unit tests for license/version doc sync
Changed¶
- License metadata aligned to MIT (
LICENSE+pyproject.toml) - Docs / INDEX / ROADMAP synchronized to v0.0.7
Security¶
- Pillow pinned to
>=12.3.0on the release line (Dependabot alerts cleared)
Notes¶
- Install:
pip install "monte-neo @ git+https://github.com/NeoZorK/Monte-Neo.git@v0.0.7" - Or:
uv add "monte-neo @ git+https://github.com/NeoZorK/Monte-Neo.git@v0.0.7"