Skip to content

Commit 508d78f

Browse files
committed
Merge branch 'release/3.3.0' into develop
2 parents f62db38 + 55d5380 commit 508d78f

14 files changed

Lines changed: 5333 additions & 218 deletions

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
77

88
## [Unreleased]
99

10+
## [3.3.0] - 2026-05-20
11+
1012
### Added
1113

1214
- Added 12 database functions: DCOUNT, DSUM, DAVERAGE, DMAX, DMIN, DGET, DPRODUCT, DCOUNTA, DSTDEV, DSTDEVP, DVAR, DVARP. [#1652](https://github.com/handsontable/hyperformula/pull/1652)

docs/guide/ai-sdk.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ A single import, one extra line in `tools`, and the model can evaluate formulas,
4444

4545
## Use cases
4646

47-
- **Spreadsheet Q&A** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
47+
- **Explain the spreadsheet** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
4848
- **What-if scenarios and forecasting** — the agent tweaks assumptions and reports how downstream results change, deterministically.
4949
- **Validate and clean data** — the agent scans ranges for errors, missing values, or inconsistencies and fixes them in place.
5050
- **Generate formulas from natural language** — the agent translates a plain-English calculation into a verified, working Excel formula.

docs/guide/custom-functions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ it('returns a VALUE error if the range argument contains a string', () => {
358358
359359
## Working demo
360360
361-
Explore the full working example on <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/custom-functions?v=' + $page.buildDateURIEncoded">Stackblitz</a>.
361+
Explore the full working example on <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.3.x/custom-functions?v=' + $page.buildDateURIEncoded">Stackblitz</a>.
362362
363363
This demo contains the implementation of both the
364364
[`GREET`](#add-a-simple-custom-function) and

docs/guide/integration-with-angular.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,4 @@ The service above is already SSR-safe — HyperFormula has no browser-only API d
124124

125125
## Demo
126126

127-
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/angular-demo?v=' + $page.buildDateURIEncoded">Angular demo on Stackblitz</a>.
127+
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.3.x/angular-demo?v=' + $page.buildDateURIEncoded">Angular demo on Stackblitz</a>.

docs/guide/integration-with-langchain.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ A single import, one entry in `tools`, and the agent can evaluate formulas, read
4747

4848
## Use cases
4949

50-
- **Spreadsheet Q&A** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
50+
- **Explain the spreadsheet** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
5151
- **What-if scenarios and forecasting** — the agent tweaks assumptions and reports how downstream results change, deterministically.
5252
- **Validate and clean data** — the agent scans ranges for errors, missing values, or inconsistencies and fixes them in place.
5353
- **Generate formulas from natural language** — the agent translates a plain-English calculation into a verified, working Excel formula.

docs/guide/integration-with-react.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,4 @@ In the Pages Router, the same `dynamic(..., { ssr: false })` call works directly
114114

115115
## Demo
116116

117-
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/react-demo?v=' + $page.buildDateURIEncoded">React demo on Stackblitz</a>.
117+
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.3.x/react-demo?v=' + $page.buildDateURIEncoded">React demo on Stackblitz</a>.

docs/guide/integration-with-svelte.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,4 @@ In SvelteKit, top-level statements in `<script>` run on the server too. HyperFor
123123
124124
## Demo
125125
126-
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/svelte-demo?v=' + $page.buildDateURIEncoded">Svelte demo on Stackblitz</a>.
126+
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.3.x/svelte-demo?v=' + $page.buildDateURIEncoded">Svelte demo on Stackblitz</a>.

docs/guide/integration-with-vue.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ const hfInstance = markRaw(
113113

114114
## Demo
115115

116-
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.2.x/vue-3-demo?v=' + $page.buildDateURIEncoded">Vue 3 demo on Stackblitz</a>.
116+
For a more advanced example, check out the <a :href="'https://stackblitz.com/github/handsontable/hyperformula-demos/tree/3.3.x/vue-3-demo?v=' + $page.buildDateURIEncoded">Vue 3 demo on Stackblitz</a>.
117117

118118
::: tip
119119
This demo uses the [Vue 3](https://v3.vuejs.org/) framework. If you are looking for an example using Vue 2, check out the [code on GitHub](https://github.com/handsontable/hyperformula-demos/tree/2.5.x/vue-demo).

docs/guide/mcp-server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ The client now sees tools like `evaluate`, `getCellValue`, and `setCellContents`
4040

4141
## Use cases
4242

43-
- **Spreadsheet Q&A** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
43+
- **Explain the spreadsheet** — ask the agent what a workbook does, which cells are inputs, and how each output is derived; get answers grounded in real formula evaluation.
4444
- **What-if scenarios and forecasting** — the agent tweaks assumptions and reports how downstream results change, deterministically.
4545
- **Validate and clean data** — the agent scans ranges for errors, missing values, or inconsistencies and fixes them in place.
4646
- **Generate formulas from natural language** — the agent translates a plain-English calculation into a verified, working Excel formula.

docs/guide/release-notes.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,25 @@ This page lists HyperFormula release notes. The format is based on
66
HyperFormula adheres to
77
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## 3.3.0
10+
11+
**Release date: May 20, 2026**
12+
13+
### Added
14+
15+
- Added 12 database functions: DCOUNT, DSUM, DAVERAGE, DMAX, DMIN, DGET, DPRODUCT, DCOUNTA, DSTDEV, DSTDEVP, DVAR, DVARP. [#1652](https://github.com/handsontable/hyperformula/pull/1652)
16+
- Added new functions: PERCENTILE, PERCENTILE.INC, PERCENTILE.EXC, QUARTILE, QUARTILE.INC, QUARTILE.EXC. [#1650](https://github.com/handsontable/hyperformula/pull/1650)
17+
- Added `maxPendingLazyTransformations` configuration option to control memory usage by limiting accumulated transformations before cleanup. [#1629](https://github.com/handsontable/hyperformula/issues/1629)
18+
- Added a new function: TEXTJOIN. [#1640](https://github.com/handsontable/hyperformula/pull/1640)
19+
- Added a new function: SEQUENCE. [#1645](https://github.com/handsontable/hyperformula/pull/1645)
20+
21+
### Fixed
22+
23+
- Fixed a memory leak in `LazilyTransformingAstService` where the transformations array grew unboundedly, causing increasing memory usage over time. [#1629](https://github.com/handsontable/hyperformula/issues/1629)
24+
- Fixed a memory leak in `UndoRedo` where `oldData` entries for evicted undo stack entries were never cleaned up, causing increasing memory usage over time. [#1629](https://github.com/handsontable/hyperformula/issues/1629)
25+
- Fixed the IRR function returning `#NUM!` error when the initial investment significantly exceeds the sum of returns. [#1628](https://github.com/handsontable/hyperformula/issues/1628)
26+
- Fixed the ADDRESS function ignoring `defaultValue` when arguments are syntactically empty (e.g., `=ADDRESS(2,3,,FALSE())`). [#1632](https://github.com/handsontable/hyperformula/issues/1632)
27+
928
## 3.2.0
1029

1130
**Release date: February 19, 2026**

0 commit comments

Comments
 (0)