Roadmap

PYNE forward plan — dual-host residual, runtime residual, plot parity harness; H2/T1/F2/L2 landed (2026-08).

This page

Roadmap

Abstract

The roadmap is a living prioritization document, not a contract. Source: docs/ROADMAP.md (updated 2026-08-19). Core v6 language/builtins are essentially closed. Product warm-compile (H2), series caps (T1), pending-fill (F2), L2 webhooks, corpus Runtime residual (C1), package Runtime SoT (H1 largely done), interpret Round 9 (0.3.10), and compile object-mode residuals (0.3.16–0.3.17) have landed (set01–04 parse 99.96%, Runtime interpret 100% excl. intentional demos). What remains: H1 worker-only extras. P1p official TV builtins are 0 MISMATCH (optional set0x community corpus unmeasured). Incremental nvi/pvi (T2) and Supertrend goldens (F1) have landed.

Conceptual model

P0 docs honesty → P1 dual-host H1 ✅ (package SoT + shims + worker thin wrap)
                → P1 plot parity residual (P1p)
                → H2 warm compile ✅ · T1 series caps ✅ · F2 pending-fill ✅ · C1 corpus ✅
                              ↘ T2 nvi/pvi ✅ · F1 Supertrend goldens ✅
                                  → P6 long-horizon (L1 / L3; L2 ✅)
Diagram

Rendering…

Interface surface

Status snapshot

ComponentStatus
Parser ANTLR4✅ v5/v6 + multiline / export const
Evaluator✅ incl. full var/varip, ReAssign
Builtins / TA / collections✅ broad (0 missing vs public TV ref list)
Strategy events + broker (OCA, commission, risk)
Numba + object-mode compile✅ MVP+ (disk IR cache, mode=auto, time_arr, cache recovery; 0.3.16–0.3.17 UDT/switch/matrix/drawing/round/color residuals)
Pro API + auth + Docker✅ (mode default auto; targets api / api-dev / lsp / cli)
PyPI hoox-pyne✅ live 0.6.4 (pypi.org/project/hoox-pyne); CLIs pyne / pyne-lsp
CLI surface (check/format/compile/run/prewarm/…)✅ + Nuitka binaries + CLI Docker image
Alert engine + L2 webhooks✅ dual-host export + outbound webhooks
Drawing max_*_count GC✅ package + Pro API + AXIS Pyodide
Package Runtime SoT (pynescript.runtime)✅ 0.3.4 — Pro API + worker thin wrap
Strategy exits (from_entry, qty_percent, trail, risk cascade)✅ 0.3.4
request.security HTF simple TA + foreign-na✅ same-symbol OHLCV/HTF allowlist; foreign → na
Free-tier Pro API guards✅ bar/script caps, rate, concurrency, mock-only free data
Dual-host TA goldens (ATR / Supertrend / Keltner)✅ first-party + test_ta_incremental CI
Interpret dispatch + unused derived skip + volume inc (Round 9)0.3.10 — bench @ 2000 bars: minimal 2.7×, ta_sma 2.0×, ta_combo 1.45×
Series caps (PYNE_SERIES_CAP)✅ T1
Warm-compile product path✅ H2 (SLOs, prewarm, deploy IR cache)
Pending-fill averaging (pyramiding ≤ 0)✅ F2
Interpret↔compile plot parity⚙️ harness + goldens landed; residual MISMATCH tail
Runtime timeout_seconds✅ 0.3.6 — wall-clock circuit breaker on interpret
UDT array.binary_search* sort_field✅ 0.3.6 — interpret + compile (Pine August 2026)
Runtime.run(..., libraries=) / POST /run libraries✅ 0.3.7+ — AXIS import ns/Name/ver; export finalize in 0.3.8; auto fallback keeps libs
pyne-worker 0.6.0✅ edge /run libraries + plot_meta/logs; engine vendor 0.3.8
PyneTS (@hoox-sh/pynets)✅ standalone TS library 0.2.0 — interpret + JS compile; Python remains oracle
pyne-agent-worker✅ sister NL authoring host (POST /v1/chat)
Full TV platform identity⚙️ out of scope

Completed themes (do not re-plan as greenfield)

  • Error message / typing hygiene
  • %%pinescript Jupyter magic + sample data helpers
  • pynescript lint
  • Yahoo / AlphaVantage / CCXT + realtime datafeed wiring
  • StrategyEvent emission + parity fixtures
  • Colocated TS extra tool extracted (0.3.7). Product TypeScript library is PyneTS.
  • Alert engine + dual-host export + L2 webhooks
  • Round 7: series caps, incremental TA (bb/kama/cmo/stochrsi), parse cache, warm compile, pending-fill, drawing GC
  • Round 9 / 0.3.10: interpret dispatch inlining, unused derived OHLCV skip, incremental obv/wad/cmf/klinger

Open backlog (IDs stable)

IDItemPriStatus
H1Dual-host Runtime (package SoT + backend shims + pyne-worker thin wrap ✅; residual = worker-only extras)P1✅ largely done
H2Product warm-compile (SLOs, prewarm API/CLI, IR cache on in deploy)P1
C1Corpus set01–04 residual (parse 99.96%; Runtime 100% excl. EXPECTED)P1✅ 2026-08-09
P1pCompile/interpret plot parity residualP1✅ first-party + official TV builtins 0 MISMATCH; optional set0x unmeasured
T1Cap current_series to max_bars_back / _SERIES_MAXP2PYNE_SERIES_CAP default ON
T2Incremental TA for remaining heavy kernelsP2✅ R7 + 0.3.10 volume inc + 0.3.11 nvi/pvi + 0.3.12 aroon/dpo/donchian/kst
F1ATR Wilder / TV supertrend re-baseline only with dedicated goldensP2✅ mid±factor·ATR locked; TV ratchet out of scope
F2Pending-fill averaging when pyramiding ≤ 0P2
L1v5↔v6 converter maturityP3open
L2Webhook alerts productizationP3✅ Pro + pyne-worker
L3Legacy TS Worker builtin parityP3sister hoox-sh/pine-worker only — not a product-docs target; new TS work is PyneTS
B1Real (non-mock) request.* market data⚙️ by design; foreign-na policy landed

Longer horizon (not next): ML wrappers, automatic refactor, parallel/distributed eval experiments.

Priority recommendation

HorizonFocus
ShortH1 worker extras (logs/profile); optional set0x P1p sweep
MediumFurther nested incremental TA where profiled
LongL1 converter maturity; TypeScript library work is PyneTS (L2 ✅)

Landed residual notes (2026-08)

  • Plot parity: Always-on smoke in tests/test_interp_compile_parity.py. Full corpus compare: python scripts/compare_interp_compile.py.cache/interp_compile_parity.json. Flags --ignore-hline-keys / --ignore-fill-keys drop structural residuals.
  • Corpus residual (C1): set01–04 parse 99.96% (2476/2477); Runtime interpret 100% excl. EXPECTED_FAIL (2466 OK + 11 intentional demos); set01 249/249. Third-party corpora are not shipped in git.
  • Foreign-na: request.security on foreign/complex expressions → na both backends; ChartOHLCVProvider refuses non-chart symbols.

Internals

PathRole
docs/ROADMAP.mdCanonical roadmap prose
docs/PROGRESS_REPORT.mdHistorical completion narrative
docs/COMPILER_PLAN.mdCompile/numba plan
scripts/compare_interp_compile.pyPlot parity harness
.opencode/plans/Engineering plans (strategy events, consolidation)
sister hoox-sh/pyne-workerPython edge evaluate host — docs
sister hoox-sh/pyne-agent-workerNL authoring host — docs
pynets/ submoduleTS library pin v0.2.0 (interpret + JS compile); Python remains oracle

Invariants & edge cases

  1. Roadmap dates lag code — always diff against missing_features.md and tests.
  2. Sister repos (pyne-worker, pyne-agent-worker) may absorb “integration” items.
  3. AXIS is a separate product tree (docs/axis) — chart UX roadmap is not PYNE-core.
  4. Avoid reintroducing deleted backups (builder.py.bak, etc.) as “plan items.”
  5. Do not re-open H1 / H2 / T1 / T2 / F1 / F2 / L2 / C1 as greenfield — they are marked ✅ (H1 residual = worker extras only; P1p is corpus tail) in docs/ROADMAP.md (2026-08-16).

Worked examples

Track a roadmap item with a test

# pick a gap, write failing test first, implement, update missing_features.md
pytest tests/test_v6_features.py -k footprint -v

Plot parity smoke

pytest tests/test_interp_compile_parity.py -q
python scripts/compare_interp_compile.py   # opt-in full compare

TypeScript library gate (PyneTS)

# standalone checkout — not present as pine-worker/ in this repo
cd ../pynets && bun test && bun run typecheck

See PyneTS.

Failure modes

Anti-patternWhy it hurts
Planning features already ✅Duplicated work (H2/T1/F2/L2 are done)
Roadmap without testsUnverifiable “done”
Ignoring by-design limitsInfinite platform chase

See also