2026.06
Changes since the 2026.03 release.
Servoy AI — Integrated AI Assistant
The flagship addition in 2026.06 is a fully integrated Servoy AI perspective and view directly inside the Eclipse IDE.
Servoy generates/configurates a full servoy skill and mcp server setup for deep integration in Servoy Developer.
This is for now invite only, please contact us if you like to work with us to test this.
Rhino upgrade
Rhino upgraded to 1.9.1 (from 1.8.x) this brings a lot of (internal) changes and improvements to the ECMA spec
See https://github.com/mozilla/rhino/releases (1.9.0 and 1.9.1 release notes) for more information. Not all features that are api or syntax are ported yet to the editor (will work at runtime), but if you notice one that you really would like to have please let us know.
Java upgraded to 25.0.3
Angular upgraded to 21.2.16 (the latest major release of 21.x)
This can potentially have some issues with webpackages that don't implement all components for TiNG or don't implement all the spec handlers fully (the one starting with "on" will then result in angular not building TiNG) For this a few packages like bootstrap, bootstrap-extra, servoy-extra and advanced renderers need to be updated.
Security Hardening
A comprehensive batch of security improvements was applied to servoy-client:
Encryption upgraded to AES-256-GCM + PBKDF2 —
CryptUtilswas rewritten with a new streaming API (newEncryptingStream,fileEncryption/fileDecryption). The legacy MD5+AES-ECB decrypt path is kept as a fallback for existing encrypted files but is deprecated; the oldcreateCipherAPI is marked@Deprecated. All new encryption uses AES-256-GCM.AES-GCM IV reuse vulnerability fixed —
EncryptionHandlerwas reusing the same IV across calls; it now generates a cryptographically fresh IV per encryption call.PBKDF2 iteration count raised from 9,999 to 600,000 — aligned with NIST SP 800-63B (2024 revision).
JWT fallback signing key now uses
SecureRandom— was previously usingMath.random().PKCE PLAIN method removed — only S256 is accepted in
OAuthHandler.HTTP security response headers added:
X-Content-Type-Options,X-Frame-Options, andStrict-Transport-Security(HSTS) are now sent on all responses.CSRF token removed from server logs — the token value was being written to INFO-level logs in plain text; it is no longer logged.
CSRF
Securecookie flag is now set conditionally based onrequest.isSecure().Failed authentication attempts are now logged at WARN level with the username and remote IP address.
Multiple XSS vulnerabilities fixed (CodeQL scanning alerts 69, 70, 74).
Zip Slip vulnerability fixed in archive extraction (alert 81).
Uncontrolled command line fixed (alert 49).
XML external entity injection fixed (alert 50).
Implicit narrowing conversion in compound assignment fixed (alert 55).
Database & Data Model
SVY-20967 — JSONB is now a native column type, enabling direct use of PostgreSQL's binary JSON type without wrapping or manual casting.
SVY-21085 —
query.getSQLParameters()now casts parameters to the actual column type rather than returning them as raw objects.SVY-20984 — Valuelist state is now correctly preserved after a find/search cycle.
SVY-20988 — DBTreeView state restore was silently failing; it now works correctly.
SVY-20942 — New
@constantannotation alongside@enum; constants also work in relation columns.
Script Editor & Type System
uuidnow extendsString— UUID typed values are now assignable to and fromStringvariables, removing spurious type-mismatch warnings throughout the script editor.form.elements[x]returns the unifiedComponenttype —IBaseFormRuntimeComponentis the newComponentbase type shared by both web components and classic components. Casts between the two now work correctly, and the base type exposesvisibleandenabled.Array<T>maps tojava.lang.Objectat runtime — enables correct type inference for constructs such asArray<bytes>.SVY-20992 — Multiple DLTK typing issues resolved: stack overflow on self-referencing custom types, incorrect QB join return types,
JSFoundSet.getParentRecords()returning the correctArray<JSRecord>type, andvar x = {}now allowed whenxis aCustomType.SVY-20944 — Many new
@SuppressWarningstags added; line-level suppression is now supported.SVY-21086 — Suppressed unnecessary compiler warning when assigning a variable with an element of the same type.
SVY-20909 — Overriding a method from a base form now correctly inherits JSDoc from the parent method.
SVY-20921 — QB methods
coalesce,nullif, andmodnow have documentation in Solex and show@paramtypes correctly in the script editor tooltip.SVY-20653 — Script editor tooltips: bold parameter name rendering in collapse component fixed; rogue
@returnwithout a description removed.SVY-20983 — Solex shows a component's API even when the component is installed as a ZIP package.
Form Designer
SVY-21129 — Dynamic alignment guides no longer jump when resizing a component in a single direction.
SVY-20910 — Responsive form builder now blocks pasting components outside a container; behavior is consistent with drag-drop.
SVY-21056 — Restoring a default value on a tabpanel
tabsproperty now correctly refreshes the form designer ghosts.
Mobile Client
SVY-20993 — Services without server-side scripting now work in the mobile client.
SVY-20994 —
forms.<formname>.containers.<name>navigation paths now work in the mobile client.
Testing
SVY-20918 — Code coverage is now reported in unit test runs.
SVY-21025 — [AI] New "Show form in browser" action opens a form directly in the browser for testing purposes, bypassing authentication.
SVY-21024 — [AI] jsunit test tool can now be run from within the IDE with results fed back inline.
Bug Fixes
Menus: enabled=false now propagates correctly
Duplicate UUID and name in script methods after clone
Non-bootstrap date input fields now update data correctly when entered without a separator
Cannot select files to upload (incident fix)
Popup menu: tooltip text support on submenu items
Tab order now works correctly in a second popup form
OAuth plugin: state mismatch callback, JWK key with no algorithm specified, webclient compatibility
Stateless login form no longer flickers when permissions change
JSWindow.setSize() is no longer ignored for dialog windows
Rhino updated to 1.9.0; PDF viewer server-side compile error fixed
WebCustomType flattened serialization refactored; fixes related e2e and jsunit failures
async-now API now correctly sends component/service changes to the client
InvalidDateTime error no longer thrown when the hour has only one digit
Typeahead dropdown caret rendering fixed
REST Web Services
Binary response handling improved — When a REST web service method returns a
byte[]and the declared content type is binary, the byte array is now sent directly to the response without conversion. Previously this could cause incorrect serialization of binary data.SVY-20995 — Upgraded to Apache Commons FileUpload2 M5. (this is also used in other places where uploads are done like NGClient)
Platform & Infrastructure
Eclipse 2026-03 (4.39) — The underlying Eclipse platform, JFace, and all p2 target sites have been updated to the latest 2025-12 release. The splash screen text visibility regression introduced by Eclipse 4.39 has been fixed.
Tomcat 11.0.22 — Embedded Tomcat updated to 11.0.22.
Chromium/CEF 144.0.5 — Bundled Chromium browser updated to 144.0.4.
Rhino 1.9.1 — JavaScript engine updated (also fixes the PDF viewer server-side compile error, see SVY-20904).
20226.06.0 (final) Cases
there are some extra fixes in the rhino/dltk part in the final build
2026.06 RC2 — All Cases
2026.06 RC1 — All Cases
Last updated
Was this helpful?