Release Notes
08 Jun 2026: ver. 4.0.8 Beta
Theming
- User-selectable theme: set
Theme/UserSelection: Trueand drop aController: ThemeSwitcheranywhere in the GUI — the end user picks Light / Auto / Dark live, persisted per-app inlocalStorage, FOUC-safe boot, no page reload Themeis now a structured config block discoverable by KIDEx:Theme/Mode(Auto/Light/Dark), shared font/icon settings, and per-modeLight:/Dark:palettes (each with its ownPrimary-Color) — replaces the old flatTheme: <mode>value (existing configs still load)
Login
- Full-width footer and side-panel layout refinements; optional per-section theme switcher
KIDEx
- Boolean
[YamlNode]defaults now carry the inverse of the runtime default, so the "Add node" menu writes the meaningful value instead of a no-op
MCP-KittoX
- Many new tools added — full CRUD on Models / Views / Layouts, database introspection (connections, tables, columns), config read/update, locale (
.po) reading, metadata validation, and grid/list view scaffolding (40+ tools total, up from 16)
18 May 2026: ver. 4.0.7 Beta
Controller/AutoOpenandController/PagingToolsbased on model'sIsLargeflag- A Reference field whose target Model has
IsLarge: Truerenders as a searchable lookup popup
JWT / ACL hardening
Auth: JWTno longer emits the legacy<AppName>session-id cookie norkx_db— the JWTsidanddbclaims carry the same info- Server-side ACL enforcement on every
HandleKX*route (view/data/save/delete/form/lookup/blob/upload/tool/detail*/wizard) - New auth gate in
DoHandleRequestreturns 404 on protected routes for unauthenticated requests (public views excluded) - Toolbar Add/Edit/Delete/Dup stay
disabledfor ACL-denied users - Per-thread JWT context cache uses
TObjectDictionary<TThreadID, ...>
IDE / wizard
- New RAD Studio IDE plugin gallery:
KittoXIDE.bplregisters 4 entries under File > New > Other > KittoX Projects (Standalone .exe / Desktop .exe / ISAPI .dll / Apache .dll) - Three paths to scaffold a new app: KIDEx standalone, the new IDE gallery, and
MCP-KittoX project_create_app - New project default:
Auth: TextFilewith a ready-to-useHome/FileAuthenticator.txt(admin/admin demo accounts) so the generated app authenticates out of the box, no users table required. JWT envelope kept as default.AccessControldefault switched toNullto avoid deny-all post-login on a brand-new project.DB.FD.yamltemplate now setsODBCAdvanced: TrustServerCertificate=yesso SQL Server ODBC Driver 17/18 connects on first try - Model Wizard
Beautify namesoption now also handles DB names with spaces (Northwind-style:Quarterly Orders→QuarterlyOrders,Sales by Category→SalesByCategory); the original name is preserved inPhysicalNamefor the SQL layer - Model Wizard — new editable
DisplayLabelandHintfields on every Add/Update Field action: auto-populated from the database's native column comment when present (MSSQLMS_Description, PostgreSQLpg_description, FirebirdRDB$DESCRIPTION, MySQLCOLUMN_COMMENT, OracleUSER_COL_COMMENTS), fully editable before Apply - Action "New TreeView..." on the Views folder is now idempotent: pointing it at an existing
MainMenu.yamlmerges the Models that aren't yet referenced under theFolder: Menublock, preserving every hand-edited entry, instead of raising a duplicate-object error
MCP-KittoX
- New tool
models_create_from_db— the headless equivalent of the Model Wizard. AI agents can reverse-engineer Models from a database connection conversationally: defaults todry_run: true(preview only); passdry_run: falseto commit. Output is byte-identical to what the visual wizard writes.DisplayLabelauto-populated from the database's native column comments; optionalfield_descriptionsarray lets the agent inject labels from a non-DB source (CSV, glossary, prior YAML) with per-property override precedence - New tools
models_list/models_read/views_list/views_read/resources_list/resources_read— enumerate and read project metadata and static resources headlessly - New tool
menu_generate_main_menu— create or refreshMainMenu.yamlwith one entry per Model under a top-levelFolder: Menu; idempotent (existing entries preserved, only missing Models appended) - Database column comments are now auto-fetched for all 5 supported engines (MSSQL, PostgreSQL, Firebird, MySQL, Oracle) and flow into both the KIDEx wizard and the MCP tool
- 16 tools now implemented (was 9)
- Better error reporting from MCP tools: errors are now propagated verbatim to the JSON-RPC client (class name + message) instead of being replaced by a generic fallback
Setup / tooling
- Setup installer ships
MCPKittoX.exealongsideKIDEX.exesharing OnGuard license Tools/SetVersion.ps1now also bumps the 12 dprojs of the 3 official examples (HelloKitto, TasKitto, KEmployee — 4 deployment variants each), and inserts<VerInfo_Release>and other VerInfo tags when the .dproj has them stripped (Delphi removes VerInfo tags whose value is 0)
01 May 2026: ver. 4.0.6 Beta
- New
Auth: JWTwrapper authenticator (signedkx_tokencookie, sliding expiration, programmatic key registration) - New
AccessControl: JWTreading grants fromkx_aclclaim snapshotted at login, with optional DB fallback - Updated examples to JWT Auth (TasKitto / HelloKitto / KEmployee)
- Updated TasKitto example with three-tier ACL (
admin/user/viewer) - Multi-database support on TasKitto and HelloKitto: SQL Server / PostgreSQL / Firebird
- Cross-dialect macros:
%DB.TRUE%/%DB.FALSE%,%DB.DATEDIFF,%DB.DATETIME_FROM - Login form with optional "Environment" combo for multi-database apps (
Auth/DatabaseChoices) - Native boolean types on the three sample DBs (
BIT/BOOLEAN); Firebird setup is now SQL-script-only - Firebird Activity Dashboard views translated from the SQL Server originals
- TasKitto SQL Server DDL split (tables / views in separate scripts because of T-SQL batch rules)
- New
Tools/SetVersion.ps1: one-shot version bump across constant, dproj, README and Inno Setup - New
Projects/BuildAllPackagesD{10_4,11,12,13}.ps1wrappers: rebuild Core + Enterprise per Delphi version - YAML metadata files included in every
.dproj(visible in Project Manager, KIDEx highlighting) EF.Logger.TextFileactive out-of-the-box for the standalone Indy hosts
23 Apr 2026: ver. 4.0.5 Beta
- Architectural refactor: DB connection ownership unified in
TKConfig - New API
TKConfig.DatabaseFor(Name)andTKConfig.CreateStandaloneDBConnection(Name) CreateDBConnectionmoved frompublictoprotectedClearDatabase/DestroyInstancenow clear bothFDatabaseandFDatabases- New
InDBConnection/InDBTransactionhelpers
22 Apr 2026: ver. 4.0.4 Beta
- Manual column resize in grids
- Tooltip on truncated grid cells (only when actually truncated)
- Fix: in-memory lookup popup closing on resize
- Tooltip on TreePanel menu nodes
- Multi-column sort in grids
- Multi-page form validation
- Edit-mode accent border for combobox and other non-text-editable fields
- SunEditor readonly rendering
- Checkbox styled like other form inputs
- DetailTables Style (Tabs/Bottom/Popup)
- Added CSS
.disabledclass
23 Apr 2026: ver. 4.0.3 Beta
- Editing-mode field borders
- Form toolbar anchoring
- DateTime field fixes
- Fixed KittoEmailSenderSrvc
- Grid keyboard navigation
- SunEditor theming and resize
- Dialog focus
- DetailTables Style (Tabs/Bottom/Popup)
- ExportExcel / ExportFlexCel
- Fixed Date/time filters SQL conversion
- Date/time filter trigger
- Error dialog consistency
Controller: Windowrestored backward-compatibility
19 Apr 2026: ver. 4.0.2 Beta
- Simplified Apache/IIS deployment: static resources served internally, no RewriteRule needed
- New deployment mode: Windows Service + reverse proxy (nginx/Apache/IIS) with install/uninstall scripts
- Fixed ViewMode to EditMode save bug in master-detail forms
- Implemented Apply*Rules event chain (EditRecord, NewRecord, Duplicate, AfterShowEditWindow)
- Master-detail: "Confirm" button (save-cache) and "Save All" only visible in ViewMode
- HTTP error feedback (htmx:responseError) with Retry/Reset dialog
- Updated Italian localization (.po/.mo) with all KittoX strings
- Extensive documentation updates (deploy, proxy, localization, form state machine, routing)
- Added DDL and DML script for Example databases
09 Apr 2026: ver. 4.0.1 Beta
- Fixed Field Rules client-side (ForceUpperCase, ForceCamelCaps, MinValue/MaxValue)
- Fixed PackageGroup
- Fixed modal lookup for Reference fields
- Fixed Example for Apache modules
07 Apr 2026: ver. 4.0.0 Beta (first public release)
First public release of Kittox, the fourth generation of the Kitto framework: complete rewrite of the client from ExtJS to HTMX + AlpineJS + TemplatePro, with a new modular server architecture.
- HTMX + AlpineJS client: server-generated HTML, partial page updates, no heavy JS framework
- Attribute-Based Routing via RTTI (MARS/WiRL-style), DI request context, dynamic JS/CSS injection
- Open Core licensing: Core (Apache 2.0), Enterprise (AGPL-3.0 / Commercial), KIDEx (Commercial)
- Server-Side Store: record state tracking, transactional master-detail save, blob lazy-load
- Controllers: List, GroupingList, Form, Wizard, BorderPanel, TabPanel, FlexPanel, TreePanel, TilePanel, HtmlPanel, StatusBar, ToolBar
- Enterprise controllers: ChartPanel, CalendarPanel, GoogleMap, Dashboard
- Card View (List with custom HTML template) and Desktop Embedded Mode (WebView2)
- Database agnostic (FireDAC / DBExpress / ADO)
- Master-detail transactional save with in-memory detail CRUD
- Form state machine (ViewMode / EditMode) with save-cache + Save All workflow
- Custom Grid and Form layouts (multipage, collapsible regions)
- Mobile support: auto-detection, fullscreen dialogs, TilePanel, per-size Home views
- Filter Panel: FreeSearch, List, DynaList, ButtonList, Date/Time/Numeric/Boolean search
- Toast notifications, draggable dialogs, double-click to open, session-lost detection, timeout handling
- Authentication: DB, DBCrypt, TextFile, DBServer, OSDB, Null; BCrypt + Google OTP (2FA)
- Access control: DB, Null
- Tools: CSV / Excel export, file download/upload, FlexCel, ReportBuilder, Debenu PDF (Enterprise)
- Deployment: Standalone, Desktop Embedded, Console, IIS (ISAPI), Apache (module)
- KIDEx visual IDE: RTTI property discovery, SVG icons, DB reverse engineering, project wizard, validators
- Examples: HelloKitto, TasKitto, KEmployee
- Supported on Delphi 10.4 → latest (Win64)

