Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d213a57
Fetch hyperformula-tests before running linter (#1672)
sequba May 11, 2026
f62db38
HF-161: document OFFSET function limitations (#1666)
marcin-kordas-hoc May 19, 2026
508d78f
Merge branch 'release/3.3.0' into develop
sequba May 20, 2026
1a578df
Add Indonesian language pack (#1683)
sequba May 27, 2026
c7cfc9d
Improve docs UX on narrow screens (#1684)
sequba May 27, 2026
00e5c73
Clean up in-repo dev docs (HF-65) (#1682)
sequba Jun 1, 2026
0e047ee
docs: fix SSR section framing in React integration guide (#1688)
Haxikowy Jun 3, 2026
79f2f15
docs: rewrite Vue integration guide around markRaw pattern (#1689)
Haxikowy Jun 3, 2026
d4195b5
HF-238 - Review "Integration with Angular" guide and demo (#1691)
KrzysztofZie Jun 9, 2026
72205bd
docs(api): fix getAllSheetsSerialized/getRangeSerialized JSDoc for nu…
marcin-kordas-hoc Jun 15, 2026
8bfa558
docs(guide): named ranges in formulas + fix limitations pointer (HF-2…
marcin-kordas-hoc Jun 25, 2026
cffd922
HF-24: add stringifyCurrency config callback for TEXT (#1665)
marcin-kordas-hoc Jul 6, 2026
2471a37
Fix a non-correct changelog entry
sequba Jul 6, 2026
4e302ff
Update share capital in LICENSE.txt (#1700)
demtario Jul 6, 2026
d03c3e3
Add function XIRR (#1701)
sequba Jul 9, 2026
033f8ac
Add independent security certificate documentation (#1704)
sequba Jul 9, 2026
92e6c73
Update contact link for feature requests (#1706)
GreenFlux Jul 14, 2026
3064a8b
feat(functions): implement VSTACK and HSTACK (HF-71) (#1698)
marcin-kordas-hoc Jul 14, 2026
e0e1261
docs: clarify setRowOrder/setColumnOrder permutation semantics (#1687)
sequba Jul 15, 2026
fd04f77
fix(lookup): skip empty cells in approximate MATCH/VLOOKUP/HLOOKUP/XL…
marcin-kordas-hoc Jul 16, 2026
6e87a37
docs(guide): update support page (HF-128) (#1712)
GreenFlux Jul 22, 2026
fbb4710
feat: implement SORT dynamic array function (HF-69) (#1707)
marcin-kordas-hoc Jul 23, 2026
23a7437
feat: implement UNIQUE dynamic array function (HF-68) (#1708)
marcin-kordas-hoc Jul 23, 2026
3b0ebc5
Agent-friendly documentation: .md companions, llms.txt, coding-agent …
marcin-kordas-hoc Jul 27, 2026
d860eef
Add docs content guide
sequba Jul 28, 2026
ad142ba
fix: avoid catastrophic backtracking in number parsing for empty thou…
marcin-kordas-hoc Jul 28, 2026
ebaa2b2
Function metadata API: getAvailableFunctions / getFunctionDetails (HF…
marcin-kordas-hoc Jul 31, 2026
dcff210
3.4.0
sequba Aug 3, 2026
bad1bfa
Update the release script
sequba Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .cursor/rules/main.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: Project-wide guidance for AI agents working in this repository
alwaysApply: true
---

All guidance for AI agents working in this repository lives in [AGENTS.md](mdc:AGENTS.md) at the repository root. Read it first.
7 changes: 7 additions & 0 deletions .cursor/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"plugins": {
"superpowers": {
"enabled": true
}
}
}
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@ lib
script
test-jasmine
test-jest
test-utils/snippets
typedoc
typings
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,6 @@ module.exports = {
rules: {
'@typescript-eslint/no-non-null-assertion': 'off',
}
}
},
],
}
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
contact_links:
- name: Feature requests and questions
url: https://github.com/handsontable/hyperformula/discussions
url: https://forum.handsontable.com/t/about-the-hyperformula-category/9073
about: Start a new discussion about your idea.
13 changes: 12 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,18 @@ jobs:
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0
- name: Checkout main repository
uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Checkout hyperformula-tests repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ssh-key: ${{ secrets.DEPLOY_TOKEN }}
repository: handsontable/hyperformula-tests
path: test/hyperformula-tests

- name: Fetch hyperformula-tests and sync branches
run: cd test && ./fetch-tests.sh

- name: Install dependencies
run: npm ci
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,10 @@ dev*.html
.DS_Store

/test/hyperformula-tests/

# Doc snippets are regenerated from the docs before every test run
# (the `test:*` scripts run `snippets:extract` first), so they are never committed.
/test-utils/snippets/*.generated.ts

# Generated at docs:build from built-in-functions.tmpl.md (HF-249 single-source); do not commit.
docs/guide/built-in-functions.md
44 changes: 44 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# AGENTS.md

Instructions for AI coding agents (Cursor, Claude Code, Codex, Aider, and any other AI tool) working in this repository.

## Start here

Whatever you do, start by reading entire [DEV_DOCS.md](DEV_DOCS.md). Only then proceed to your task.

## Other important resources

- the repository [README.md](README.md) — high-level project description and quick install/usage
- the markdown files in [`docs/guide/`](docs/guide/) — user-facing guides (installation, configuration, built-in functions, custom functions, integrations, etc.)
- the markdown files in [`docs/api/`](docs/api/) — API reference (generated from JSDoc; run `npm run docs:build` if the folder is missing)

Prefer reading these local files over fetching the rendered documentation from the web.

## Response style

- Be concise by default. Use as few words as possible unless the user asks for more detail.
- When the user asks for specific content, lead the response with the requested information.
- Structure answers with bullet lists, numbered lists, tables, or code blocks where useful.
- Ask clarifying questions when the request is ambiguous rather than guessing.
- If you do not know something, say so and ask for help.
- When answering from project documentation, quote the exact relevant fragments to support your claim.

## Common ways agents fail

This section is maintained by the team. Whenever an AI agent makes a mistake worth flagging, an item is added here describing what the agent did wrong and what it should have done instead. Read this list before starting any non-trivial task.

<!-- Add new items to the top of the list. Use the format:
- **Short title** &mdash; What the agent did wrong. What it should have done instead.
-->

1. Often pull request descriptions becomes obsolete. Remember to update it as you work.

## Skills, MCPs, and other agent tools

This section is maintained by the team. Skills, MCP servers, and other tools vetted as useful for AI agents working on this codebase are listed here.

<!-- Add new items here. Use the format:
- **Name** &mdash; What it provides and when to use it.
-->

_No items yet._
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

## [3.4.0] - 2026-08-10

### Added

- Added the `getAvailableFunctions()` and `getFunctionDetails()` methods (both static and instance) for retrieving function metadata. [#1692](https://github.com/handsontable/hyperformula/pull/1692)
- Added new functions: VSTACK, HSTACK. [#1698](https://github.com/handsontable/hyperformula/pull/1698)
- Added a new function: `XIRR`. [#1701](https://github.com/handsontable/hyperformula/pull/1701)
- Added the UNIQUE function. [#1708](https://github.com/handsontable/hyperformula/pull/1708)
- Added the SORT function. [#1707](https://github.com/handsontable/hyperformula/pull/1707)
- Added an Indonesian (Bahasa Indonesia) language pack. [#1674](https://github.com/handsontable/hyperformula/pull/1674)
- Added a `stringifyCurrency` config option that lets you plug in a custom currency formatter for the `TEXT` function. [#1145](https://github.com/handsontable/hyperformula/issues/1145)

### Fixed

- Fixed the behavior of `MATCH`, `VLOOKUP`, `HLOOKUP`, and `XLOOKUP` functions when the search range contained empty cells. [#1697](https://github.com/handsontable/hyperformula/pull/1697)
- Fixed the `VLOOKUP`, `HLOOKUP`, and `XLOOKUP` functions to return `0` instead of an empty value when the matched cell in the result range is empty. [#1697](https://github.com/handsontable/hyperformula/pull/1697)
- Fixed the page freezing when entering a long string of digits containing a non-digit character near the end (e.g. `012...789a` or `012...789 123`) into a cell. [#1520](https://github.com/handsontable/hyperformula/issues/1520)

## [3.3.0] - 2026-05-20

### Added
Expand Down
95 changes: 0 additions & 95 deletions CLAUDE.md

This file was deleted.

1 change: 1 addition & 0 deletions CLAUDE.md
47 changes: 0 additions & 47 deletions CONTRIBUTING.md

This file was deleted.

1 change: 1 addition & 0 deletions CONTRIBUTING.md
Loading
Loading