# 2026.03

## Overview

This release of Servoy is packed with updates specificaly in 2 areas: <1> we ship now also a developer plugin and <2> a lot of changes and improvements in the javascript editor.

## AI Developer Plugin

Besides the AI Runtime plugin that we ship with 2025.12 (and does have a few small fixes since then) we also now ship a Developer AI Plugin. This plugin should in the end replace for example the Github Copilot plugin (that we don't ship standard anymore but can be installed through the market place) Work is still ongoing, but we have a Servoy AI Chatview and various commands/actions throughout the developer that will trigger an AI request. You need to configure this in the preferences, because there a key needs to be provided for OpenAI or Gemini (others will soon follow like Claud) Then you can also choose the model of that provider which one you want to use. Stuff that are in currently in development are things like

"quick fix" on warnings (Quickfix with Servoy AI) "explain" this can be explain code, but also explain exception in the console view. "document" document the selected or current code. "i18n" The i18n editor has stuff to generate translations for the key, or it can generate key for you with various translations of the languages you want Also in the script editor you can select a text and translate this. "review" This can review your code and maybe give proposals how to do certain things better.

what also is in the planning are

"create jsunit tests" create jsunit test around the selected/current code. "plain sql to query builder" Convert plain sql to a query builder syntax

Also Code completion is still looked at to have AI help in the codecompletion (so when typing)

## Enhancements

### JavaScript Editor

A lot of improvements in the Javascript editor to detect the correct types and finding problems when assigning or call function

This can result in a lot more warnings, please let us know if you found something that you can't really fix.

Enum are a bit more special and can result in a lot more warnings because enums are now really threated like enums (so that means the Enum declaration in the type) For enums the property value is not that important, this is about the property name: so LOGGING\_LEVEL.ERROR this is passed around like LOGGING\_LEVEL and the property name ERROR is of that type and that you pass around (not what you assign to it) If the value is important then this is not really a enum but more a constant, we are looking into this for the next release to also introduce @constant which works the same as enums (also usable in relations) but there the values are what is more important.

Code completion now have **partial matches** so you can do application.sol\[ctrl-space] and you will get a list of closeSolution and getSolution

All **callback functions** including the one from a promise.then() will now have the correct type inside the function you

```
plugins.http.createNewHttpClient().createGetRequest("url").executeAsyncRequest().then((value) => {
            value.
})
```

in this code the value object is already a Reponse and code completion works fine on it.

Also when you to complete the "then" function above the callback function, with the correct signature, is also generated for you right away.

You can also trigger this your self:

```
databaseManager.getDataSetByQueryAsync(query,100).then([ctrl-space])
```

this will give you the option to choose the correct callback signature (or multiply at once like the then above can have)

Added a **quick fix** for creating a scope that is not there: scopes.nicescope or scopes.nicescope.doSomething() to create the function in that scope

The feature introduced in 25.12 JSForm.NAMES.xxx is enhanced so that "f3" on it does open the form editor and also **find references** will find also the lines of code where JSForm.NAMES.formname is mentioned.

**Debugger** Also Map and Set are now better displayed in the variables view, because what they store is not like a basic Object keys, but they are special.

## API Changes

* On a popupmenu item you can now set a boolean if it should close the popupmenu or not when clicked.
* application.getVersionInfo() now returns also all solutions/modules that are on the server not just from the active solution and its modules. so in an postImport hook you can get the version of the solution where the import hook is for.
* databaseManager and rawSQL plugin query functions now have an extra optional parameter "timeout" that can be used to timeout a query after a specific amount of time

## Plugins

The mail plugin has now support for sending email with OAuth (this is in combination with the OAuth plugin, so the mail plugin now depends on that one)

## Other small changes

A couple of browser-side memory leak checks were added, that are performed automatically when running a solution in development mode (from developer).

They cover 2 common scenarios, with possible leaking references that keep a form's UI in (browser/client side) memory after a form is no longer visible in the client/browser.

If you encounter these warnings in the browser console for a component while running your solution and the component is:

* provided by Servoy, please try the latest available version of that component's package and [create a case](https://servoy-cloud.atlassian.net/browse/SVY-20920) if it still happens - so that we can have a look;
* a custom component that you created, please check the browser-side code of that component.

```
WARN FoundsetType -  svy FoundsetViewportState(FoundsetTypeInternalState): listeners still present after the form UI was destroyed. Check for a possible cumulative memory leak in browser-side-component-code: formName.componentName.propertyName
WARN FoundsetType -  svy FoundsetValue: foundset.viewport.rows[?]._cache still present after the form UI was destroyed. Check for a possible temporary memory leak in browser-side-component-code: formName.componentName.propertyName
[
  { key1: valueOrValueConstructor1, key2: valueOrValueConstructor2, ... }
]
```

These warnings will not appear when running a deployed - production mode solution.

## Breaking Changes

This javascript changes can possible result in a lot more warnings because of much stricter typing.

Major angular upgrade from 20.3.x to 21.2.x als all major component packages to now use the new [signal()](https://angular.dev/guide/signals) way of working If you have custom components you should look to see if you start changing the same thing, because in the end this could be mandatory if we go [zoneless](https://angular.dev/guide/zoneless) (a different kind of change detection, should speed up the application, it can result in to 20 to 50% less script execution and a lot of rerender of components are then avoided.

## Dependency Updates

* Upgraded to Angular **21.2.x**
* Upgraded to NodeJS **24.14.0**

### Case List

See the case list below for the cases fixed in this release.

This has some new signing behavior for the update site of the developer, so it could behave a bit different then before depending from which version you upgrade from.

#### 2026.03.0-final

More DLTK/code validation fixes and improvements in various area's

More dependency updates for various artifacts (plugins and developer)

Some memory leaks (in the browser) where fixed in the components or ngclient code.

Some query generating fix is also included when a there where 2 joins (to the same table) that should be really different but was threated the same.

Also the SVY-20778 fix was reverted, waiting for another fix for the next release.

| Components                                                                                              | Key                                                              | Summary                                                                                                                           |
| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)   | [SVY-20960](https://servoy-cloud.atlassian.net/browse/SVY-20960) | [Components sharing dp but different formats lose format when dp is changed](https://servoy-cloud.atlassian.net/browse/SVY-20960) |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)   | [SVY-20932](https://servoy-cloud.atlassian.net/browse/SVY-20932) | [JSWindow.setSize ignored for dialog window](https://servoy-cloud.atlassian.net/browse/SVY-20932)                                 |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer) | [SVY-20970](https://servoy-cloud.atlassian.net/browse/SVY-20970) | [Improve styling for JSValuelist](https://servoy-cloud.atlassian.net/browse/SVY-20970)                                            |

#### 2026.03.0-RC2

more fixes in the javascript warnings to have better types on "form.elements\[x]" Also fixes for if you use + - / \* operators (then it mostly it becomes a number except with + that is a string concat)

let x = +StringVariable;

the above now makes the x variable a number because this is the notation to make numbers from strings in js.

Fixed a problem in the ViewFoundset that behaved differently with UUID columns (did return a string of it if the db value was a string, now it converts it to a UUDI just like a normal foundset)

updated nodejs from 24.11.1 to 24.14.0

fixed a few small memory leaks in the browser for the ngclient (see above the leak detection we now have build in)

| Components                                                                                                                                                                                                       | Key                                                              | Summary                                                                               |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient) | [SVY-20934](https://servoy-cloud.atlassian.net/browse/SVY-20934) | [Spinner onDataChange is broken](https://servoy-cloud.atlassian.net/browse/SVY-20934) |

#### 2026.03.0-RC1

| Components                                                                                                                                                                                                               | Key                                                              | Summary                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [API](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+API), [Runtime](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Runtime)                         | [SVY-20901](https://servoy-cloud.atlassian.net/browse/SVY-20901) | [Get versions-nr of main solution from a module \[SERVOY\]](https://servoy-cloud.atlassian.net/browse/SVY-20901)                                                           |
| [API](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+API), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                       | [SVY-20879](https://servoy-cloud.atlassian.net/browse/SVY-20879) | [Popup menu \| Configurable auto-close behavior for popup menu items](https://servoy-cloud.atlassian.net/browse/SVY-20879)                                                 |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20920](https://servoy-cloud.atlassian.net/browse/SVY-20920) | [Block UI spinner was depreciated](https://servoy-cloud.atlassian.net/browse/SVY-20920)                                                                                    |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20894](https://servoy-cloud.atlassian.net/browse/SVY-20894) | [JSForm.NAMES.XXX does not show up in reference search results](https://servoy-cloud.atlassian.net/browse/SVY-20894)                                                       |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20882](https://servoy-cloud.atlassian.net/browse/SVY-20882) | [Improve display of JS Maps in variable view](https://servoy-cloud.atlassian.net/browse/SVY-20882)                                                                         |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [DLTK](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+DLTK)                   | [SVY-20858](https://servoy-cloud.atlassian.net/browse/SVY-20858) | [remove the old parser preference](https://servoy-cloud.atlassian.net/browse/SVY-20858)                                                                                    |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20857](https://servoy-cloud.atlassian.net/browse/SVY-20857) | [i18n input (creating a new or choose existing), and generate translations in X number of languages](https://servoy-cloud.atlassian.net/browse/SVY-20857)                  |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20837](https://servoy-cloud.atlassian.net/browse/SVY-20837) | [Form designer - security tab: form level checkboxes should gray out the checkboxes that are made irrelevant by them](https://servoy-cloud.atlassian.net/browse/SVY-20837) |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20834](https://servoy-cloud.atlassian.net/browse/SVY-20834) | [Partial code completion matches](https://servoy-cloud.atlassian.net/browse/SVY-20834)                                                                                     |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20832](https://servoy-cloud.atlassian.net/browse/SVY-20832) | [Grouped datagrid doesn't select correct record](https://servoy-cloud.atlassian.net/browse/SVY-20832)                                                                      |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20831](https://servoy-cloud.atlassian.net/browse/SVY-20831) | [Deleting components that have security access set on them - 2 issues](https://servoy-cloud.atlassian.net/browse/SVY-20831)                                                |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20816](https://servoy-cloud.atlassian.net/browse/SVY-20816) | [sometimes the authenticator type is lost after restart](https://servoy-cloud.atlassian.net/browse/SVY-20816)                                                              |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20814](https://servoy-cloud.atlassian.net/browse/SVY-20814) | [Promise methods tooltip in script editor need to be formatted to look like the solex list tooltips](https://servoy-cloud.atlassian.net/browse/SVY-20814)                  |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20811](https://servoy-cloud.atlassian.net/browse/SVY-20811) | [double check all warnings that are introduced when "Any" types of the argument are not seen as always good](https://servoy-cloud.atlassian.net/browse/SVY-20811)          |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20805](https://servoy-cloud.atlassian.net/browse/SVY-20805) | [markeupId (id) is always undefined in form editor designer. followup for SVY-20777](https://servoy-cloud.atlassian.net/browse/SVY-20805)                                  |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20804](https://servoy-cloud.atlassian.net/browse/SVY-20804) | [Place field wizard sets tooltip on field labels](https://servoy-cloud.atlassian.net/browse/SVY-20804)                                                                     |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20803](https://servoy-cloud.atlassian.net/browse/SVY-20803) | [NPE when duplicating a form component](https://servoy-cloud.atlassian.net/browse/SVY-20803)                                                                               |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20796](https://servoy-cloud.atlassian.net/browse/SVY-20796) | [Order alphabetically solution list in deploy war dialog](https://servoy-cloud.atlassian.net/browse/SVY-20796)                                                             |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [DLTK](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+DLTK)                   | [SVY-20788](https://servoy-cloud.atlassian.net/browse/SVY-20788) | [support generic notation in script editor jsDoc for methods that return a promise, followup for SVY-20747](https://servoy-cloud.atlassian.net/browse/SVY-20788)           |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20786](https://servoy-cloud.atlassian.net/browse/SVY-20786) | [if we create a new scope, open it right away](https://servoy-cloud.atlassian.net/browse/SVY-20786)                                                                        |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [DLTK](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+DLTK)                   | [SVY-20783](https://servoy-cloud.atlassian.net/browse/SVY-20783) | [check the FLEQS solution for code completions warnings](https://servoy-cloud.atlassian.net/browse/SVY-20783)                                                              |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20780](https://servoy-cloud.atlassian.net/browse/SVY-20780) | [F3 does not work for forms and relations](https://servoy-cloud.atlassian.net/browse/SVY-20780)                                                                            |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20756](https://servoy-cloud.atlassian.net/browse/SVY-20756) | [Cannot search for references of entity methods](https://servoy-cloud.atlassian.net/browse/SVY-20756)                                                                      |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20752](https://servoy-cloud.atlassian.net/browse/SVY-20752) | [QuickFix modifies the DBI file differently than the table editor](https://servoy-cloud.atlassian.net/browse/SVY-20752)                                                    |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20731](https://servoy-cloud.atlassian.net/browse/SVY-20731) | [try to look if we can create our own AI plugin based on some other.](https://servoy-cloud.atlassian.net/browse/SVY-20731)                                                 |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20726](https://servoy-cloud.atlassian.net/browse/SVY-20726) | [Copying containers from one form to another renames children to \_copy even if not duplicate](https://servoy-cloud.atlassian.net/browse/SVY-20726)                        |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20707](https://servoy-cloud.atlassian.net/browse/SVY-20707) | [Nicer names for components copied from fcc to main form](https://servoy-cloud.atlassian.net/browse/SVY-20707)                                                             |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [Documentation](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Documentation) | [SVY-20653](https://servoy-cloud.atlassian.net/browse/SVY-20653) | [Tooltips in the script editor collapse component do not display the bold name of parameter correctly](https://servoy-cloud.atlassian.net/browse/SVY-20653)                |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20609](https://servoy-cloud.atlassian.net/browse/SVY-20609) | [Easy to apply quick fix for some scripting warnings - created on purpose by developer](https://servoy-cloud.atlassian.net/browse/SVY-20609)                               |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-20536](https://servoy-cloud.atlassian.net/browse/SVY-20536) | [Add an MCP server to the developer tomcat.](https://servoy-cloud.atlassian.net/browse/SVY-20536)                                                                          |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)           | [SVY-20419](https://servoy-cloud.atlassian.net/browse/SVY-20419) | [Using the TAB key in list form components doesn't work as expected](https://servoy-cloud.atlassian.net/browse/SVY-20419)                                                  |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer), [DLTK](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+DLTK)                   | [SVY-19261](https://servoy-cloud.atlassian.net/browse/SVY-19261) | [Invalid scoping of const variable](https://servoy-cloud.atlassian.net/browse/SVY-19261)                                                                                   |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-19230](https://servoy-cloud.atlassian.net/browse/SVY-19230) | [Wrong DateFormatEditor \[mac\]](https://servoy-cloud.atlassian.net/browse/SVY-19230)                                                                                      |
| [Developer](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Developer)                                                                                                                  | [SVY-18837](https://servoy-cloud.atlassian.net/browse/SVY-18837) | [Improve code insertion for Array functions](https://servoy-cloud.atlassian.net/browse/SVY-18837)                                                                          |
| [DLTK](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+DLTK)                                                                                                                            | [SVY-20895](https://servoy-cloud.atlassian.net/browse/SVY-20895) | [Add feature to open referenced item when clicking on JS reference names](https://servoy-cloud.atlassian.net/browse/SVY-20895)                                             |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions)                                                                                                                | [SVY-20954](https://servoy-cloud.atlassian.net/browse/SVY-20954) | [The HTTP plugin should not set a Content-Type header on a POST request with no body and no parameters](https://servoy-cloud.atlassian.net/browse/SVY-20954)               |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions)                                                                                                                | [SVY-20925](https://servoy-cloud.atlassian.net/browse/SVY-20925) | [NG Grids - add an api to set new columns](https://servoy-cloud.atlassian.net/browse/SVY-20925)                                                                            |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20897](https://servoy-cloud.atlassian.net/browse/SVY-20897) | [Cannot unselect radio button filter in nggrid](https://servoy-cloud.atlassian.net/browse/SVY-20897)                                                                       |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20876](https://servoy-cloud.atlassian.net/browse/SVY-20876) | [Kanban - Dropping an element does not return a sibling](https://servoy-cloud.atlassian.net/browse/SVY-20876)                                                              |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20873](https://servoy-cloud.atlassian.net/browse/SVY-20873) | [Kanban - Dragging a ticket to a column outside the view on the workboard isn't scrolling](https://servoy-cloud.atlassian.net/browse/SVY-20873)                            |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20864](https://servoy-cloud.atlassian.net/browse/SVY-20864) | [Web Components "Group Buttons" doesn't react on controller.readOnly](https://servoy-cloud.atlassian.net/browse/SVY-20864)                                                 |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20860](https://servoy-cloud.atlassian.net/browse/SVY-20860) | [Cloudflare Turnstile Component setup \[SERVOY\]](https://servoy-cloud.atlassian.net/browse/SVY-20860)                                                                     |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions)                                                                                                                | [SVY-20850](https://servoy-cloud.atlassian.net/browse/SVY-20850) | [Sending email using Oauth](https://servoy-cloud.atlassian.net/browse/SVY-20850)                                                                                           |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20841](https://servoy-cloud.atlassian.net/browse/SVY-20841) | [Datagrid should autofill id also for related columns](https://servoy-cloud.atlassian.net/browse/SVY-20841)                                                                |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20822](https://servoy-cloud.atlassian.net/browse/SVY-20822) | [Canvas \[SERVOY\]](https://servoy-cloud.atlassian.net/browse/SVY-20822)                                                                                                   |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20813](https://servoy-cloud.atlassian.net/browse/SVY-20813) | [NG grid: cellClickHandler triggered by Enter key onCellKeyDown produces empty JSEvent](https://servoy-cloud.atlassian.net/browse/SVY-20813)                               |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20776](https://servoy-cloud.atlassian.net/browse/SVY-20776) | [Enhance plugins.window.createShortcut() to support more key combinations and override browser shortcuts](https://servoy-cloud.atlassian.net/browse/SVY-20776)             |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions), [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)         | [SVY-20734](https://servoy-cloud.atlassian.net/browse/SVY-20734) | [New editType in AG-Grid: Request to add a colorpicker editType to AG-Grid](https://servoy-cloud.atlassian.net/browse/SVY-20734)                                           |
| [Extensions](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Extensions)                                                                                                                | [SVY-20689](https://servoy-cloud.atlassian.net/browse/SVY-20689) | [Update obsolete docs/files in servoy\_jasperreports](https://servoy-cloud.atlassian.net/browse/SVY-20689)                                                                 |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20919](https://servoy-cloud.atlassian.net/browse/SVY-20919) | [Cursor jumps to end of input after deleting a character in a Bootstrap textbox](https://servoy-cloud.atlassian.net/browse/SVY-20919)                                      |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20907](https://servoy-cloud.atlassian.net/browse/SVY-20907) | [Form in dialog does not fit screen height](https://servoy-cloud.atlassian.net/browse/SVY-20907)                                                                           |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient), [Runtime](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Runtime)               | [SVY-20862](https://servoy-cloud.atlassian.net/browse/SVY-20862) | [When showing forms containing subforms, possibly those forms are initialized in a wrong order?](https://servoy-cloud.atlassian.net/browse/SVY-20862)                      |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20826](https://servoy-cloud.atlassian.net/browse/SVY-20826) | [Fileupload throws error when uploading a mobileprovision extension file](https://servoy-cloud.atlassian.net/browse/SVY-20826)                                             |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20820](https://servoy-cloud.atlassian.net/browse/SVY-20820) | [upgrade to the latest angular](https://servoy-cloud.atlassian.net/browse/SVY-20820)                                                                                       |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20819](https://servoy-cloud.atlassian.net/browse/SVY-20819) | [use signals instead of @input in our components](https://servoy-cloud.atlassian.net/browse/SVY-20819)                                                                     |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20798](https://servoy-cloud.atlassian.net/browse/SVY-20798) | [Server side api for showing forms - sends form to client before onShow executes & others](https://servoy-cloud.atlassian.net/browse/SVY-20798)                            |
| [NGClient](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGClient)                                                                                                                    | [SVY-20746](https://servoy-cloud.atlassian.net/browse/SVY-20746) | [Data Grid Grouped Aggregates Should Support DISTINCT Count for One-to-Many Relationships](https://servoy-cloud.atlassian.net/browse/SVY-20746)                            |
| [NGDesktop](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+NGDesktop)                                                                                                                  | [SVY-20774](https://servoy-cloud.atlassian.net/browse/SVY-20774) | [automatic update ngDesktop fails in some scenarios](https://servoy-cloud.atlassian.net/browse/SVY-20774)                                                                  |
| [Runtime](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Runtime)                                                                                                                      | [SVY-20768](https://servoy-cloud.atlassian.net/browse/SVY-20768) | [Ability to timeout long running queries](https://servoy-cloud.atlassian.net/browse/SVY-20768)                                                                             |
| [Server](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Server)                                                                                                                        | [SVY-20913](https://servoy-cloud.atlassian.net/browse/SVY-20913) | [Extend Client information displayed in Servoy Admin > Clients page](https://servoy-cloud.atlassian.net/browse/SVY-20913)                                                  |
| [Server](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Server)                                                                                                                        | [SVY-20625](https://servoy-cloud.atlassian.net/browse/SVY-20625) | [SortingNullPrecedence should be configurable in servoy properties](https://servoy-cloud.atlassian.net/browse/SVY-20625)                                                   |
| [Testing](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVY+AND+component+%3D+Testing)                                                                                                                      | [SVY-20724](https://servoy-cloud.atlassian.net/browse/SVY-20724) | [Preimport module does not support modules when running in unit test](https://servoy-cloud.atlassian.net/browse/SVY-20724)                                                 |
| [Bootstrap Extra Components](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVYX+AND+component+%3D+%22Bootstrap+Extra+Components%22)                                                                         | [SVYX-1115](https://servoy-cloud.atlassian.net/browse/SVYX-1115) | [navbar inputs do not push their value to the server](https://servoy-cloud.atlassian.net/browse/SVYX-1115)                                                                 |
| [NG Grids](https://servoy-cloud.atlassian.net/issues/?jql=project+%3D+SVYX+AND+component+%3D+%22NG+Grids%22)                                                                                                             | [SVYX-1117](https://servoy-cloud.atlassian.net/browse/SVYX-1117) | [Alignment of headerCheckbox property in aggrid component](https://servoy-cloud.atlassian.net/browse/SVYX-1117)                                                            |
