Releases

Release Notes

kScript release history: features, fixes, and breaking changes, listed newest first with anchor links into full entries.

All notable changes to kScript are recorded here. Releases are sorted with the latest first.

Latest release

v2.2.0 — Pie plots & volume-profile access

June 2026 · New plotPie builtin (auto-normalized slices, display text mode, batchable with per-element sizing), plus documented volume_profile row structure and raw price-level bucket access alongside the vp* accessors.

Full notes →

All releases

VersionDateHighlightsBreaking changes
v2.2.0Jun 2026plotPie per-bar pie chart (auto-normalized slices, display text mode, batchable with per-element radius/colors); documented volume_profile row structure + raw bucket accessNone (additive within v2)
v2.1.0May 2026plotPriceLabel builtin, glow halo on chart-shape plots, lineStyle (solid/dashed/dotted), opacity on plotShape/plotTextNone (additive within v2)
v2.0.0Sep 2025Per-bar execution model, kwargs, stronger compiler, dedicated data subscriptions, scalars from indicators, func + loops, extended plotsYes (relative to v1; see Migration (v1 vs v2))

v2.2.0 — June 2026

Pie plots and clearer volume-profile access: a new proportional pie builtin, plus first-class documentation of the volume_profile row structure and raw price-level bucket access.

Added

  • plotPie(value, price, radius?, colors?, opacity?, display?) — per-bar pie chart drawn as a proportional circle anchored to a price.
    • value is an array of slice magnitudes, normalized automatically ([60, 40] → 60% / 40%; [3, 1] → 75% / 25%).
    • price sets the vertical anchor; radius (px), colors (per slice), and opacity (0–1) control appearance.
    • display — per-slice text mode: "percent" (default), "value", or "none". This is a single mode string, not the label=[...]/desc=[...] series-label arrays the other plots take.
    • Batchable — works inside plotBatches, so you can draw one pie per price level (e.g. buy/sell split at every volume_profile bucket). Each batched pie carries its own radius, colors, and opacity.

Documented

  • volume_profile data structure — each bar is a row shaped [timestamp, [priceLow, priceHigh, buyVol, sellVol], …]: slot 0 is the timestamp and every later slot is one price-level bucket. The bucket count varies per bar.
  • Raw bucket access — alongside the scalar vp* accessors, you can iterate buckets directly: vpa[0] is the current row and vpa[0][i + 1] is the i-th bucket. Pairs naturally with vpBucketCount + plotBatches (e.g. a pie per bucket).
  • Accessor functionsvpBuy, vpSell, vpDelta, vpTotal, vpPoc, vpPocVolume, vpBucketCount, vpPriceHigh, vpPriceLow documented with parameter tables and examples.

Reference

  • PlottingplotPie parameter table and examples.
  • Volume Profile Functions — data structure, raw bucket access, and the full vp* accessor reference.
  • Backward-compatible within v2; no migration required.

v2.1.0 — May 2026

Plotting refresh: a new per-bar label builtin and richer styling kwargs across the existing chart-shape plots.

Added

  • plotPriceLabel(price, text?, type?, position?, ...) — per-bar decorative label anchored at a price level. Three visual modes:
    • "callout" (default): text box with a leader line and dot
    • "simple": centered text box
    • "icon-only": SVG path or image URL, with iconSize, anchorX, anchorY controls
    • Text styling kwargs: color, backgroundColor, fontFamily, fontWeight (clamped 100–800), size (clamped 1–30), opacity (clamped 0–1)
    • tooltip for hover text (supports \n for line breaks)
    • icon-only URLs support animated GIFs and WebP, so labels can render looping or animated icons
  • glow kwarg on plotLine, plotBar, plotCandle, plotShape, and plot — soft halo around the stroke. true enables a default blur in the series color; a number sets the blur radius in pixels (clamped 0–30, 0 disables).
  • lineStyle kwarg on plotLine and plot"solid" (default), "dashed", or "dotted". No effect on bar / candle / point types.
  • opacity kwarg on plotShape — overall element opacity (0–1, clamped).
  • fontWeight and opacity kwargs on plotText — text weight 100–800 (clamped, rounded to nearest 100) and overall opacity 0–1 (clamped).

Changed

  • plotShape shape catalog clarified"circle", "triangle", "cross", and "diamond" are all supported. The reference previously documented circle-only.

Reference

  • Plotting — full parameter tables, including the new entries.
  • This release is backward-compatible within v2; no migration required.

v2.0.0 — September 2025

Major release of kScript v2 on the Kiyotaka platform: new execution model, language features, and standard library—with intentional breaking differences from v1 for long-term ergonomics and performance.

Added

  • Per-bar execution with clear phases for initialization, calculation, and plotting—see Execution model.
  • Keyword arguments on builtins for clearer, order-independent calls (Keyword arguments).
  • func user-defined functions and for / while loops (with the documented var restrictions) (User functions).
  • Dedicated data subscriptions: ohlcv(...), trades(...), orderbook(...) replacing the generic v1-only source(...) pattern in v2 docs.
  • Reverse index access on time series (ts[0] = latest bar) as described in the v1→v2 transition material.
  • Extended plotting: plotCandle, plotShape, and richer styling kwargs alongside existing line/bar plots (Plotting).

Changed

  • Technical indicator helpers now resolve to scalar values per bar instead of returning full composite series that required manual alignment in typical v1 usage.
  • Compiler performs stronger static analysis (syntax, scope, types) so more issues surface at edit time rather than at runtime.
  • OHLCV field access standardized via accessors such as ohlcvTs.close, ohlcvTs.volume, etc.

Fixed

  • Class of issues where v1 scripts could run without obvious errors yet mis-align series or misuse full-series returns; v2’s model and compile checks reduce this failure mode.

Breaking changes

  • Scripts written for kScript v1 are not source-compatible with v2 without migration (execution model, subscriptions, indicator return shapes, and keyword-only ergonomics). Use the v1 vs v2 migration guide together with this entry when porting.
  • Removal of reliance on buildTimeseries / mergeTimeseries / matchTimestamp-style manual alignment in favor of engine-driven per-bar evaluation for typical indicators.