---
title: Release Notes
description: >-
  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.1.0** — Plotting refresh
>
> **May 2026** · New `plotPriceLabel` builtin, `glow` and `lineStyle` kwargs across chart-shape plots, and `opacity` controls on shapes and text.
>
> [Full notes →](#v2.1.0-may-2026)

## All releases

| Version                                                              | Date     | Highlights                                                                                                                                | Breaking changes                                                 |
| -------------------------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [**v2.1.0**](/kscript/releases/changelog#v2.1.0-may-2026)            | May 2026 | `plotPriceLabel` builtin, `glow` halo on chart-shape plots, `lineStyle` (solid/dashed/dotted), `opacity` on plotShape/plotText | None (additive within v2) |
| [**v2.0.0**](/kscript/releases/changelog#v2.0.0-september-2025) | Sep 2025 | Per-bar execution model, kwargs, stronger compiler, dedicated data subscriptions, scalars from indicators, `func` + loops, extended plots | Yes (relative to **v1**; see [Migration (v1 vs v2)](/kscript/migrations/v1-vs-v2)) |

---

## 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](/kscript/functions/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](/kscript/core-concepts/execution-model).
- **Keyword arguments** on builtins for clearer, order-independent calls ([Keyword arguments](/kscript/core-concepts/keyword-arguments)).
- **`func` user-defined functions** and **`for` / `while` loops** (with the documented `var` restrictions) ([User functions](/kscript/core-concepts/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](/kscript/functions/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](/kscript/migrations/v1-vs-v2) 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.
