Skip to content

Stage 5: v3.0.0 — Stable Platform ​

Target version: v3.0.0
Current: v3.0.0 (2026-07-10 GA)
Prerequisite: All previous stage exit checklists satisfied
This is the release, not another stepping stone.


GA audit snapshot ​

AreaStatus
Features (8 prior-stage criteria)✅ Done
Bundles core / trading / scientific / full / react✅ Done
Migration + what's-new + CHANGELOG BREAKING✅ Done
PLUGIN-STATUS complete / partial / experimental✅ Done
CI lint + docs on v* tags✅ Done
ESLint clean + bundle size CI✅ GA
Public entry-point any cleanup (types.ts)✅ GA
Known limitations on API pages (inject + registry)✅ GA
Security audit documented✅ SECURITY-AUDIT.md
ADRs for key v2/v3 decisions✅ 001–003
npm latest / GitHub release assetsShip with release tag
portfolio-fall on v3Post-release KPI (5.24)

Goal ​

Ship velo-plot v3.0.0 as a production-grade platform — an exponential improvement over v1.12.0 measured by objective criteria, not feature count alone.

v3.0.0 consolidates bundles, documents every breaking change since v1.12.0, and sets the foundation for long-term maintenance.


What "exponential improvement" means ​

Improvement is multiplicative across dimensions, not a single big feature:

mermaid
quadrantChart
  title v3.0.0 Quality Dimensions
  x-axis Low --> High
  y-axis Low --> High
  quadrant-1 Target zone
  quadrant-2
  quadrant-3
  quadrant-4
  Performance: [0.85, 0.9]
  Trading parity: [0.8, 0.85]
  Scientific depth: [0.8, 0.8]
  Test coverage: [0.75, 0.7]
  React DX: [0.8, 0.75]
  Docs honesty: [0.9, 0.95]
  v1.12 baseline: [0.35, 0.4]
Dimensionv1.12.0 baselinev3.0.0 target
Honest APIStubs marked completeZero undocumented throwing methods
Test coverage~3.5% files≥60% lines, CI enforced
CI pipelinePublish + docs onlyTest + lint + build + benchmark on PR
Trading workflowsManual indicator wiringaddIndicator(), drawings, replay, alerts
Scientific workflowsFragmented examples3+ end-to-end guides, forecasting complete
PerformanceClaimed, not verifiedBenchmark suite with published numbers
React integrationLow-level hooksDeclarative <StackedPlot />, reactive hooks
Bundle claritycore / full confusioncore, trading, scientific, full
AccessibilityNoneKeyboard nav + ARIA + reduced motion
Migration pathN/AFull v1→v2→v3 guide

Work items ​

P0 — Bundle consolidation ​

IDTaskPriorityComplexityDefinition of done
5.1velo-plot (core)P0MediumChart, series, scales, themes, animation — no 3D, no ML
5.2velo-plot/tradingP0MediumCandlestick, stacked, sync, indicators, drawings, replay, alerts
5.3velo-plot/scientificP0MediumAnalysis, FFT, regression, 3D, LaTeX, forecasting
5.4velo-plot/fullP0LowEverything (current behavior, documented as heavy)
5.5velo-plot/reactP0LowAll React exports
5.6Bundle size budget CI checkP1MediumFail CI if trading gzip > agreed limit (e.g. 150KB)

P0 — API stability audit ​

IDTaskPriorityComplexityDefinition of done
5.7Public API surface reviewP0HighEvery export in entry points has docs + tests or @internal
5.8Deprecation cleanupP0MediumNo deprecated APIs without removal timeline
5.9Semantic versioning lockP0Lowv3.0.0 follows semver strictly; CONTRIBUTING updated
5.10Plugin status registryP0Lowdocs/PLUGIN-STATUS.md maintained

P0 — Migration and release ​

IDTaskPriorityComplexityDefinition of done
5.11Migration guide v1.12 → v3.0P0Highdocs/guide/migration-v3.md
5.12Breaking changes changelogP0MediumAggregated BREAKING section in CHANGELOG
5.13Codemod scripts (optional)P2Highnpx velo-plot-codemod v3 for common renames
5.14Release candidate cycleP0Lowv3.0.0-rc.1, rc.2 with community feedback window

P0 — Quality gates for v3.0.0 ​

IDTaskPriorityComplexityDefinition of done
5.15CI required checks on PRP0Lowtest + lint + build must pass
5.16Coverage threshold ≥60%P0MediumEnforced in vitest config
5.17E2E smoke tests (Playwright)P1HighBasic chart render, stacked, indicator in headless Chrome
5.18Benchmark regression gateP1MediumBlock merge on >15% FPS regression
5.19Security auditP1Lowpnpm audit clean or documented exceptions

P1 — Documentation release ​

IDTaskPriorityComplexityDefinition of done
5.20v3.0 landing page sectionP0Lowdocs/index.md updated
5.21"What's new in v3" guideP0MediumHighlights trading + scientific + DX
5.22Architecture decision records (ADRs)P1Mediumdocs/adr/ for key v2/v3 decisions
5.23Comparison table vs alternativesP2Lowlightweight-charts, Plotly, ECharts — honest comparison
5.27Link to Stage 6 SVG parity roadmapP1Lowv3 docs state raster export today; SVG full homolog is Stage 6 → v4

Post-v3: Full SVG homolog of all v3 features is Stage 6 (target v4.0.0). v3.0 ships with per-chart exportSVG() partial coverage and raster stack export.

P1 — Ecosystem ​

IDTaskPriorityComplexityDefinition of done
5.24portfolio-fall on v3P1MediumConsumer app validated on v3.0.0
5.25npm dist-tagsP0Lowlatest → v3.0.0; v1 tag for maintenance if needed
5.26GitHub release with assetsP0LowChangelog, migration guide linked

v3.0.0 release criteria (all must pass) ​

Code quality ​

  • [x] Zero public API methods that throw not implemented (typed forecasting methods implemented; unknown method strings still throw)
  • [x] All plugins in PLUGIN-STATUS.md are complete, partial (documented), or experimental
  • [x] Test coverage ≥60% line coverage (core/bindings gates ≫60% on scoped modules)
  • [x] ESLint clean (flat config + CI enforced)
  • [x] TypeScript public entry types without any (ChartOptions.plugins, Sankey update fields typed)

Features (from prior stages) ​

  • [x] Business-day time scale
  • [x] addIndicator() high-level API
  • [x] Drawing tools with undo/redo
  • [x] Replay + price alerts
  • [x] Forecasting without stubs
  • [x] <StackedPlot /> React component
  • [x] Candlestick virtualization
  • [x] Indicator worker offload

Performance (verified) ​

  • [x] 1M line points ≥55 FPS (benchmark: ~60 FPS headless, 2026-07-10)
  • [x] 500k candlesticks ≥50 FPS (benchmark: ~60 FPS)
  • [x] 5-pane stack resize ≥55 FPS (benchmark: render-throughput metric passes CI smoke)
  • [x] velo-plot (core) gzip ~51 KB / budget 52 KB
  • [x] velo-plot/trading gzip ~72 KB / budget 150 KB
  • [x] velo-plot/scientific gzip ~114 KB / budget 200 KB

Documentation ​

  • [x] Migration guide published (migration-v3.md + whats-new-v3.md)
  • [x] Bundle architecture guide (bundle-architecture.md) + ADR 004
  • [x] Per-entry API pages: core, trading, scientific
  • [x] Trading + scientific end-to-end guides
  • [x] Known limitations section in every major API page (VitePress inject + known-limitations.json)

CI/CD ​

  • [x] CI on every PR: test, lint, build, bundle size
  • [x] Benchmark job (warning via continue-on-error)
  • [x] npm publish workflow uses Node 24 actions
  • [x] Docs deploy on release tag (v*) + main

Post-v3.0 roadmap (preview) ​

Not in scope for v3.0.0, but direction after release:

ThemeExamples
v3.1Renko/Kagi, order book DOM, volume profile
v3.2Collaborative cursors, shared chart state
v3.3WebGPU production renderer
v4.0Possible rewrite of overlay to WebGL unified pipeline

Timeline estimate (indicative) ​

StageCalendar estimateCumulative
Stage 04–6 weeksv1.15
Stage 18–12 weeksv1.19
Stage 2 + 3 (parallel)12–16 weeksv2.2
Stage 410–14 weeksv2.9
Stage 54–6 weeksv3.0.0
Total~12–18 months

Estimates assume part-time or small-team velocity. Adjust per actual capacity.


Success metrics (6 months post-v3.0) ​

KPITarget
npm weekly downloads+100% vs pre-v3
GitHub issues median resolution<48 hours
Open bug issues<10
portfolio-fall and 2+ external apps on v3Yes
Docs site monthly visitors+50%

This document is the definition of done for the entire roadmap. When every checkbox above is checked, velo-plot v3.0.0 ships.

Released under the MIT License.