Change History
Changelog — KB Sync
All updates, improvements and fixes in each KB Sync Manager and Sync Engine version.
KBSync Changelog
All notable changes to KBSync — the GeneXus Knowledge Base synchronization tool.
1.2.72 — 2026-05-19
Sync Engine
v1.4.22 — 2026-05-19
- ✦Fixed: Procedure externalization no longer reports
Unchangedin the console when only the sibling.gxLayout(or, for WebPanel / Transaction / SDPanel, the sibling.gxForm) was modified but not the.gxSource. The engine now defers theUnchanged/Successdecision until after every sibling file has been processed, so the console line accurately reflects the overall write outcome. Available on GeneXus XEv3, 15, 16, 17 and 18
v1.4.21 — 2026-05-16
- ✦Fixed: Panel internalization now also preserves variable DataType on the way into the Knowledge Base — Image, Audio, Video, Blob, BlobFile, GUID, geographic types, Business Component (with and without module) and built-in runtime External Objects (HttpClient, HttpResponse, File, Directory, Properties, Property, XMLReader, ExcelDocument, etc.) now reach the SDK with their proper type set, so events code that references their methods parses correctly. Available on GeneXus XEv3, 15, 16, 17 and 18
- ✦Improved: import status file (
external-<user>-status.json) now carries the full list of SDK validation errors withsection,lineandcolumninstead of the bare"message": "Error"that used to be all that survivedValidationExceptionpropagation - ✦Fixed: when a single GeneXus object has both files pending in the same sync cycle (e.g. Panel's
.gxSourceand.gxForm), the status file no longer reports one as"imported"and the other as"error"— both entries now describe the same outcome - ✦Improved: SDPanel diagnostic XML files dropped in temp directory on import failure now carry the same
<ExportFile><KMW>...<Source>...<Objects>...</Objects></ExportFile>shell that GeneXus IDE accepts via Knowledge Manager → Import → File - ✦Improved: SDK-flow diagnostic lines (
DIAGNOSTIC:traces during SDPanel internalization) now go to the bridge log file only and no longer flood the console
v1.4.20 — 2026-05-15
- ✦Fixed: Panel externalization now preserves the DataType of variables typed as Image, Audio, Video, Blob, BlobFile, GUID, geographic types, External Object (with and without module) and Business Component (with and without module). Previously variables of those types were silently downgraded to Numeric(4,0), which then caused
Unknown functionandis ambiguouserrors on re-import. Available on GeneXus XEv3, 15, 16, 17 and 18 - ✦Fixed: Panel internalization no longer leaves the layout one level too deep inside the pattern instance XML, which previously caused control references in events / rules / conditions to fail with "Invalid attribute X" / "Unknown function X" errors during the SDK's final save. Available on GeneXus XEv3, 15, 16, 17 and 18
- ✦Added: when Panel internalization on GeneXus 17 / 18 fails because the SDK's parser rejects events / rules / conditions code during save, the engine now dumps a manual GeneXus XPZ-format XML file to the system temp directory (
kbbridge-xpz-<panel>-<timestamp>.xml) that can be imported through Knowledge Manager → Import → File for diagnosis - ✦Improved: when post-import save fails with a
ValidationExceptioncarrying the generic message "Error", the bridge now dumps every public property of the exception (and its inner exceptions, up to 6 levels deep) via reflection, including collection-typed properties
v1.4.19 — 2026-05-14
- ✦Changed: Panel internalization on GeneXus 17 and 18 now applies all sections (variables, form/layout, rules, conditions, events) atomically through a single SDK import call instead of five separate write-back rounds. The previous rounds invoked the parser against a still-incomplete panel, producing hundreds of false-positive errors and leaving the panel empty in the IDE. The engine now serializes the panel's envelope, splices the complete content of every section into the pattern's instance XML in one pass, and re-imports it through
BLServices.KnowledgeManager.ImportInObject. Available on GeneXus XEv3, 15, 16, 17 and 18
v1.4.18 — 2026-05-08
- ✦Added:
.gxFormfiles now carry adynamic="true|false"attribute on the root tag that marks whether the form was customized by the user (round-trip enabled) or auto-generated by GeneXus from a template or pattern (round-trip skipped). Files without the attribute fall back to a contextual decision: new objects always receive the form, existing objects with no pending change and a default form in the KB skip the import - ✦Added: PatternInstance internalization (
.PXWorkWith.gxPattern,.SDWorkWith.gxPattern,.WorkWith.gxPatternand any other registered pattern) is now also supported on the older GeneXus runtimes — GeneXus X, XEv1 and XEv2 — closing the previous gap where the engine could only export.gxPatternfiles on those versions. PatternInstance round-trip now works end-to-end across the entire supported version range - ✦Added: Procedures now externalize and internalize their visual print Layout (printable region with bands, labels, attributes, images, lines and rectangles) through a new
<ObjectName>.Procedure.gxLayoutfile paired alongside the existing.gxSource. Only emitted when the layout has been customized; reset to default deletes the obsolete.gxLayoutfrom disk on next sync. Round-trip works on every supported version of GeneXus - ✦Added:
.gxLayoutfiles carry adynamic="true|false"attribute on the root tag with the same semantics as.gxForm
Sync Manager v1.2.71
- ✦Fixed: Log viewer with auto-scroll no longer jumps to the top of the log on every refresh — the ScrollToEnd call now runs after the WPF binding has applied and the new content has been measured
1.2.64 — 2026-05-08
Sync Engine
v1.4.17 — 2026-05-07
- ✦Changed: PatternInstance round-trip (export and import of
.gxPatternfiles) is now schema-driven and works for any pattern registered in the GeneXus environment — not just the PXTools-shipped ones (PXWorkWith, SDWorkWith) that the previous hardcoded implementation supported. The engine reads the pattern's instance specification XML from the externalizedPatterns/<patternName>/folder to identify which attributes are References, instead of relying on a fixed list of XPaths and attribute names. Built-in patterns (Conversational, Dashboard, PXAudit, PXReportTemplate, PXOAV, etc.) and any third-party or custom pattern installed in the KB are now supported automatically - ✦Performance: pattern instance schemas are parsed lazily on first use and cached in memory for the duration of the sync engine process
- ✦Improved: multi-type references (
reference(WebPanel; SDPanel), etc.) are correctly resolved on import — the engine tries each candidate type in declaration order until one resolves the value to a KBObject - ✦Fixed: Panel internalization now persists the rules, events, conditions and form that the source file declares — both on creation and on subsequent edits. Earlier round-trips silently dropped every part-level change while reporting "Success" because the SDK's wrapper part required reflection-based access to the inner
PatternInstancePartand a different write-back path (PatternBasePart.ReadFrom) than was being used. Available on GeneXus 17 and 18 - ✦Fixed: Panel Variables are now also internalized — user-defined variables declared in the
#Variablessection of the.gxSourceare added or updated on the panel through the same pipeline used by Procedure / DataProvider / API / DataSelector / Transaction / WebPanel. Available on GeneXus XEv3, 15, 16, 17 and 18 - ✦Fixed: PatternInstance internalization (e.g.
.PXWorkWith.gxPattern,.SDWorkWith.gxPattern,.WorkWith.gxPatternand any other registered pattern) now actually persists the edits — the previous deserializer reportedSuccessbut silently dropped every change. Available on GeneXus XEv3, 15, 16, 17 and 18
v1.4.16 — 2026-05-05
- ✦Fixed: Panel internalization now also writes back the Variables section. Previously the deserializer populated a freshly-constructed VariablesPart that was never bound to the panel, so the parsed variables were dropped on the floor. Available on GeneXus 17 and 18
- ✦Fixed: Internalization no longer rejects edits to existing PatternInstance objects whose pattern is anything other than SDWorkWith — the by-name lookup now iterates every pattern registered in the GeneXus environment and matches the first one that has an instance with the qualified name. Available on every supported GeneXus version
- ✦Fixed: PatternInstance internalization no longer fails with
Source file not foundwhen the file's first line carries the SDK display name with a trailing pattern-type and[]metadata. The header parser now extracts only the simple object name from the second token and reads the pattern-type name from the third token - ✦Changed: PatternInstance exports now write the header line as
PatternInstance <SimpleName> <PatternType>deterministically, instead of relying on the SDK's inconsistentNameproperty - ✦Added: Table internalization now applies changes to the
#Indexessection of a Table.gxSourceback to the Knowledge Base. The rest of the Table (physical / logical / redundant attributes and table relations) remains read-only because GeneXus derives those from the underlying Transactions. The engine differentiates auto-generated indexes (I*, immutable composition) from user-defined indexes (U*, fully editable) and uses structural-signature matching to identify auto-generated indexes across renames - ✦Limitation: when a user-defined index is renamed and restructured in the same edit, the engine falls back to delete-and-create and the original
Descriptionis lost. Workaround: do the rename in one import and the restructure in the next - ✦Auto-recovery: if a
I*index block is accidentally removed from the.gxSource, the engine preserves the original index in the KB, emits a warning, and the next sync iteration re-exports the file with the auto-generated block restored
Sync Manager v1.2.62
- ✦Added: Automatic check for new Sync Manager versions — informs the user when an update is available with options to download, skip, or remind later
1.2.61 — 2026-04-30
Sync Engine
v1.4.15 — 2026-04-30
- ✦Fixed: Internalization of a brand-new Panel object no longer aborts with
Root element is missing— the engine read the panel's variables from an XML attribute that does not yet exist on a freshly created panel, throwingXmlExceptionand aborting the import. The variable reader now treats a missing or emptyvariablesattribute as "no variables", and the form reader is equally robust against an uninitialized layout. In addition, the panel is persisted once at the start of source deserialization so the underlying KMW pattern-part skeleton exists before rules, events, conditions and form are written into it — without this initial save, all four sections were silently dropped on creation, producing an empty panel even when the import reported success. Available on GeneXus 17 and 18
v1.4.14 — 2026-04-29
- ✦Fixed: Internalization of new Panel objects no longer fails with the generic error
Could not create object: Panel <name>— previously, importing a.Panel.gxSourcewhose object did not yet exist in the Knowledge Base produced a silent failure because Panel creation was not implemented in the object factory. Panels are now created on demand during import using the GeneXus generic object factory, so a fresh Panel can be internalized end-to-end without first creating it manually in the IDE. Supported on GeneXus XEv2, XEv3, 15, 16, 17 and 18 - ✦Added: Internalization now creates PatternInstance objects on demand for any pattern installed in the GeneXus environment — the pattern type is detected from the
.gxPatternfilename and resolved against the registered pattern definitions, so.<TypeName>.gxPatternfiles for any installed pattern can be imported end-to-end without first creating the instance manually in the IDE. Available on every supported GeneXus version - ✦Improved: Import error messages distinguish between three failure modes — the type is not registered in the Knowledge Base, the GeneXus factory rejected the create request, and unknown header type — so the diagnostic points to the actionable cause
v1.4.13 — 2026-04-28
- ✦Fixed: Pattern definitions and User Controls export no longer crashes with
UriFormatException: Invalid URI: The hostname could not be parsedwhen long path support is enabled in Sync Settings — the relative-path computation that previously relied onSystem.Uricould not parse paths prefixed with\\?\. The path is now computed by direct string comparison, which also makes the export robust against file or folder names containing characters that the URI parser handles specially (such as#) - ✦Fixed: Variable internalization no longer writes the
Collectionproperty explicitly asFalseon non-collection variables — the property is now only updated when its current value differs from what the source file declares. ForcingCollection = Falseon every import marked the property as user-defined (instead of leaving it at its default), causing spurious dirty state on variables that never were collections. Switching a variable from collection to non-collection (and vice versa) still works as expected - ✦Added: Sync iterations that produce a burst of exports now bracket the burst with
sync-batch-startandsync-batch-endmarkers in the exports JSON file, analogous to the existingbulk-export-start/bulk-export-endmarkers used for the very first export. The new markers fire on the first iteration after startup whenever there is at least one pending change (covering the case of resuming a sync that was paused for hours or days) and on any later iteration whose pending count reaches the newSyncBatchMarkerThresholdsetting (default 5). External tools that import file changes — for example, the KB Editor sync component — can pause their file-system watcher for the duration of each marked window to avoid mistaking KBBridge's own exports for external edits. Orphaned*-startmarkers from an interrupted run are auto-closed at startup, independently per marker family
v1.4.12 — 2026-04-26
- ✦Added: External User Controls are now exported to a new
User Controls/folder in the project — for each User Control installed in the GeneXus environment, the design-time files (.controlmanifests, properties XML, render XSL, toolbox icons, and images) are copied preserving the original folder structure. Vendor packs that group several controls under a single folder (e.g.DVelop/) are exported as a single tree retaining all.controlfiles at the root and their referenced asset subfolders. Runtime material (.js,.css,.dll, etc.) is excluded. Copies are idempotent — only files newer than the destination are overwritten
Sync Manager v1.2.58
- ✦Changed: About tab now shows the Sync Engine changelog by default instead of the Sync Manager changelog
1.2.57 — 2026-04-23
Sync Engine v1.4.11
- ✦Fixed: On GeneXus X, XEv1, XEv2 and XEv3, the sync JSON files (changes, status, exports) no longer grow exponentially on each write — previously, every read/modify/write cycle doubled the number of entries because the files were serialized with two arrays per list (one for the underlying field, one for the public property), and the deserializer appended both to the same list. A few write cycles sufficed to exhaust process memory
- ✦Fixed: Export notifications registry no longer causes
OutOfMemoryExceptionwhen the file grows to excessive sizes — if the file exceeds 10 MB or cannot be parsed, it is automatically quarantined as.corrupted-<timestamp>.bakand a fresh one is created. The periodic cleanup on startup and every register operation now cap the in-memory entry list to prevent unbounded growth between cleanups - ✦Fixed: A failure while writing the export notifications registry no longer terminates the sync process — the error is logged as a warning and the sync continues
- ✦Fixed: On GeneXus X, XEv1, XEv2 and XEv3, bulk export start/end markers in the export notifications registry are now written with the correct
changeTypevalue — previously they were always written as"modified", making it impossible for consumers of the registry to distinguish bulk export boundaries from per-object change notifications - ✦Fixed: On GeneXus X, XEv1, XEv2 and XEv3, import status messages are now written with the correct
typevalue (error,warning,info) — previously all message types were silently overwritten as"error"
1.2.56 — 2026-04-18
Sync Engine
v1.4.10 — 2026-04-18
- ✦Fixed: SDT root level
Collection/CollectionItemNameproperties are now applied during internalization — when the SDT itself is a collection these were ignored, because the property block of the root structure node was never read. Also reconciles sublevelCollection/CollectionItemNameon every re-import, not just on creation
v1.4.9 — 2026-04-17
- ✦Fixed: SDT sublevel internalization now correctly applies the
CollectionandCollectionItemNameproperties when the sublevel is created for the first time — previously, sublevels marked asCollection = Truein the.gxSourcewere created without the collection flag
1.2.54 — 2026-04-16
Sync Engine
v1.4.8 — 2026-04-16
- ✦Added: KBbridge Sync Engine now generates a
kb-config.jsonfile in the workspace root containing the GeneXus version of the KB — this file is consumed by VSCode extensions to filter properties and keywords by version - ✦Fixed: Source file parser no longer crashes with "Index was outside the bounds of the array" when parsing structures with certain blank line patterns — a missing parenthesis in 6 blank-line-skip loops caused array access beyond bounds
- ✦Fixed: Property internalization now correctly resolves ambiguous property names by matching against the object's actual properties — previously,
ExposeAsWebServiceon a DataProvider was incorrectly set as the Transaction variant (idISBCWEBSERVICEinstead ofidISWEBSERVICE), causing the property to be saved with the wrong value
v1.4.7 — 2026-04-15
- ✦Fixed: Module path deduction from qualified names no longer truncates module names that contain the object name as a substring — previously, objects like
Facturainside moduleeFacturawould cause the module to appear as@e, andSendMailinsidePXTools.SendMailswould produce a spurious@PXToolssmodule
v1.4.6 — 2026-04-13
- ✦Fixed: Domain paths in the exports registry file now use the correct single separator — previously, Domains inside modules were written with a double slash (e.g.
@Module//#Domains/) causing the sync engine to treat recently exported objects as external changes requiring internalization
1.2.53 — 2026-04-07
Sync Engine
v1.4.5 — 2026-04-07
- ✦Fixed: Variable internalization now correctly creates and types variables that did not previously exist in the Knowledge Base — domain-based, attribute-based, SDT, ExternalObject, BusinessComponent and simple-typed variables are all properly applied
- ✦Fixed: Business Component variables are now recognized on import via the
BusinessComponent:prefix, restoring the round-trip with the export change introduced in v1.4.4 - ✦Fixed: Bulk export no longer aborts when the Knowledge Base does not register one of the queried object types — unknown types are now silently skipped instead of throwing
- ✦Fixed: Variable serialization no longer fails when the variable does not expose the
idVarServiceExtName(Web Service External Name) property - ✦Fixed: Object export now reports a
Failline with the underlying error reason whenever an unhandled exception is raised by the GeneXus SDK during serialization
v1.4.4 — 2026-04-06
- ✦Fixed: Business Component variables (based on a Transaction or Transaction sublevel) are now exported with a
BusinessComponent:prefix followed by the Transaction name (and sublevel using dot notation) — previously they were serialized as the invalid raw type#GX_BUSCOMP/#GX_BUSCOMP_LEVEL
Sync Manager
v1.2.53 — 2026-04-07
- ✦Fixed: Suppressed StringTemplate noise (LayoutToHtml.stg) from console output when using GeneXus X Evo3
v1.2.52 — 2026-04-06
- ✦No additional changes (Engine binaries update only)
1.2.51 — 2026-04-04
Sync Engine v1.4.3
- ✦Added: Variable, Attribute and Domain properties beyond DataType are now serialized and deserialized — validation, picture, control info, appearance, behavior, virtual keyboard, and offline properties are preserved in the roundtrip
- ✦Fixed: ExternalName, ExternalNamespace and AllowNull properties excluded from Variable/Attribute/Domain serialization — these properties are not applicable in that context and share names with other object types
- ✦Fixed: Variable ExternalName (idVarServiceExtName) now serializes independently of DataType — previously was only exported when the variable had a non-default type
- ✦Fixed: Removed debug output during External Object export that printed property DataType details to console
Sync Manager v1.2.51
- ✦Added: Language selector in Trial Registration, Enter License Key, and Buy License forms (defaults to OS language)
- ✦Added: First-run experience — opens Trial Registration automatically with informational message
- ✦Fixed: Settings window no longer blocks license warning dialogs
- ✦Changed: Settings opens on License tab when no valid license is configured
- ✦Fixed: Tray menu now updates immediately when adding or removing Knowledge Bases (no restart needed)
- ✦Changed: GeneXus version dropdown now shows newest versions first
- ✦Changed: Buy License now opens the purchase page in the browser with pre-filled user data
- ✦Added: "Check License" button appears after Buy License or paid activation to manually retrieve license updates from the server
1.2.50 — 2026-04-03
Sync Engine v1.4.2
- ✦Fixed: Pattern instance XML export now removes GUID prefixes from attribute references, producing human-readable names in
.gxPatternfiles
Sync Manager v1.2.50
- ✦No additional changes (Engine binaries update only)
1.2.49 — 2026-04-02
Sync Engine
v1.4.1 — 2026-04-02
- ✦Fixed: Geography types (GeoPoint, GeoLine, GeoPolygon, Geography) now supported in GeneXus 15 and 16 (previously restricted to GX 17+)
- ✦Fixed: BlobFile data type now supported in GeneXus 16 (previously restricted to GX 17+)
- ✦Fixed: AverageLength property serialization/deserialization now works in GeneXus 15 and 16 (previously restricted to GX 17+)
v1.4.0 — 2026-04-01
- ✦Added: Multi-version GeneXus support — now compatible with GeneXus X, XEv1, XEv2, XEv3, 15, 16, 17 and 18
- ✦Added: Simplified PuntoExe.PXTools.dll (one per GeneXus version) abstracts all SDK differences — KBbridge.exe code is shared across versions
Sync Manager
v1.2.49 — 2026-04-02
- ✦No additional changes (Engine binaries update only)
v1.2.48 — 2026-04-01
- ✦Added: Support for all GeneXus versions (X, X Evo1/2/3, 15, 16, 17, 18) with dedicated binaries per version
- ✦Fixed: "Use same registration data" checkbox now disabled when no previous registration data exists
1.2.47 — 2026-03-30
Sync Engine v1.3.5
- ✦Fixed: Import of WebPanel/Transaction with form — source and form are now loaded together before validation, preventing false errors when source references form elements (e.g., grid events like
GridName.Load)
Sync Manager
v1.2.47 — 2026-03-30
- ✦Changed: Application renamed from "KBbridge Manager" to "KBbridge Sync Manager" across all UI, installer, and splash screen
- ✦Changed: About tab now uses a ComboBox to switch between Sync Manager and Sync Engine changelogs instead of showing both stacked
- ✦Fixed: "Buy License" and "Enter License Key" buttons now visible on fresh installations without a license
- ✦Changed: Uninstaller now asks whether to keep or delete configuration files (license, KB settings) instead of deleting them automatically
v1.2.46 — 2026-03-29
- ✦No additional changes (Engine binaries update only)
1.2.45 — 2026-03-27
Sync Engine
v1.3.4 — 2026-03-29
- ✦Fixed: ExternalObject methods without return value (DataType
None) no longer generateDataType = 'None'in.gxSourcefiles — void methods now omit the DataType property entirely
v1.3.3 — 2026-03-28
- ✦Improved: Combo property values now use pretty names in
.gxSourcefiles instead of GeneXus internal codes - ✦Improved: Reference properties now use typed references in config instead of hardcoded property names
- ✦Added:
IsMainproperty support for DataProvider objects
v1.3.2 — 2026-03-27
- ✦Added: Embedded assembly resolver via Startup class — preloads embedded DLLs before any code runs
- ✦Added: PXTools library compiled with unique assembly name to avoid conflicts
- ✦Fixed: ExternalObject item DataType was not appearing in
.gxSourcefiles
Sync Manager v1.2.45
- ✦Fixed: Clear button in log viewer now also truncates the log file on disk
1.2.44 — 2026-03-26
Sync Engine v1.3.1
- ✦Added: Embedded DLLs (Newtonsoft.Json, PXTools, BouncyCastle) — deployment reduced to KBBridge.exe + .config only
- ✦Added: Application icon for KBBridge.exe
- ✦Improved: Properties classified as known, ignored, or unknown with warning in log
- ✦Improved: Warning and info messages deferred when a progress line is in-progress
- ✦Added: Properties
ObjectVisibility,PrivateObject,IsMain,OnSessionTimeout,URLAccess,AUTO_REFRESH,OutputCollectionNameto properties config - ✦Added: ExternalObject platform and member properties with visibility rules
- ✦Added: Import support for
.gxFormentries with cross-deduplication of.gxSource/.gxForm
Sync Manager v1.2.44
- ✦Fixed: License validation now requires machine certificate — a license key without certificate (e.g. copied from another machine) is rejected
- ✦Fixed: License type (trial/annual/monthly) now saved from all activation flows (Trial, Enter License Key, refresh)
- ✦Added: License refresh errors are now logged to
license-refresh.logfor diagnostics - ✦Fixed: Installer messages now display in the selected language (Spanish, Portuguese)
1.2.43 — 2026-03-25
Sync Engine v1.3.0
- ✦Added: Table externalization support — tables exported to
.Table.gxSourcefiles in#Tablesdirectory - ✦Tables include:
#PhysicalAttributes,#LogicalAttributes(formulas),#RedundantAttributes,#Indexes,#ForeignTables,#SuperordinatedTables,#SubordinatedTables - ✦Sections use
[readonly]tag to indicate non-editable content - ✦Added: Bulk export signaling via
bulk-export-start/bulk-export-endentries - ✦Added: Auto-recovery of interrupted bulk exports
- ✦Fixed:
[dynamic]tag on empty sections preserved for child objects - ✦Fixed: Source file parser correctly ignores braces inside string literals and comments
- ✦Fixed: DataType serialization no longer concatenates domain reference with underlying type
- ✦Added: Initial export elapsed time shown in export summary
- ✦Added:
gx-properties-config.jsonshared configuration for all GeneXus object properties - ✦Fixed: Property deserialization converts values to correct types based on JSON config
Sync Manager v1.2.43
- ✦Fixed: License tab now shows "Enter License Key" and "Buy License" when trial expires, instead of "Register Trial"
- ✦Fixed: License type now correctly reflects upgraded licenses by using server-provided policy type
1.2.42 — 2026-03-24
Sync Engine v1.2.65
- ✦Fixed: Domain and Attribute deserialization now resets data-type properties before re-applying
- ✦Added:
AverageLengthproperty deserialization support for Domains and Attributes - ✦Fixed: KBBridge no longer crashes when internal config file is empty or corrupted
- ✦Fixed: SDT field
Collectionproperty was not applied during internalization for existing items - ✦Improved: Transaction
BusinessComponentproperty serialized with readable name
Sync Manager v1.2.42
- ✦No additional changes (Engine binaries update only)
1.2.41 — 2026-03-23
Sync Engine v1.2.64
- ✦Fixed: Variable serialization now prioritizes
Attribute:over Domain when both are set - ✦Fixed: Same priority fix applied to SDT field serialization
- ✦Fixed: Source file parser correctly handles braces attached to names
- ✦Improved:
[dynamic]tag no longer shown on empty sections or empty main content - ✦Fixed: KBBridge warnings preserved alongside GeneXus validation messages
Sync Manager v1.2.41
- ✦Updated: AI docs — corrected
!marker meaning (Description Attribute, not NOT NULL), documentedNullabletransaction attribute property - ✦Updated: AI docs — documented SDT field DataType examples and SDT collection level item references
1.2.40 — 2026-03-22
Sync Engine v1.2.63
- ✦Fixed: Enumerated domain import now correctly parses
EnumValuesproperty - ✦Fixed: Transaction import now sets Primary Key (
*) and Description Attribute (!) flags - ✦Added: Transaction attribute
Nullableproperty support in serialization and deserialization
Sync Manager v1.2.40
- ✦No additional changes (Engine binaries update only)
1.2.39 — 2026-03-21
Sync Engine v1.2.62
- ✦Added: Long path support (> 260 chars) for deeply nested child objects, configurable via
EnableLongPaths - ✦When disabled: objects with long paths are skipped with a separate count in the export summary
- ✦When enabled: uses Windows extended path API (
\\?\prefix) to support paths up to ~32K characters
Sync Manager v1.2.39
- ✦Added: "Enable long path support" preference in Sync Settings with informational dialog explaining Git and Windows configuration requirements
- ✦Fixed: Console text selection no longer causes scroll to jump to the top
1.2.38 — 2026-03-19
Sync Engine
v1.2.61 — 2026-03-19
- ✦Fixed: New SDT creation failed validation due to double save
- ✦Fixed: SDT internalization now removes items/levels no longer present in the source file
v1.2.60 — 2026-03-18
- ✦Improved: Version listing shows Description, Trunk/Branch/ChDefender flags, excludes Backup versions
- ✦Added: Support for GeneXus standard built-in types in variable and SDT field import
Sync Manager v1.2.38
- ✦Fixed: Console scroll position no longer drifts when AutoScroll is disabled
- ✦Changed: Console line buffer increased from 1,000 to 50,000 to support large KB externalization processes
- ✦Fixed: Manager now kills orphaned KBbridge.exe processes before starting a new one
- ✦Fixed: KBbridge.exe error messages now always appear in the console
- ✦Fixed: Installer now detects and kills both KBbridgeManager.exe and KBbridge.exe during upgrade
1.2.37 — 2026-03-18
Sync Engine v1.2.59
- ✦Added: SDT fields based on Attributes now serialize with
Attribute:prefix for consistency with variables - ✦Added: SDT field deserialization resolves Attribute-based types
Sync Manager v1.2.37
- ✦Fixed: Start from console now re-reads KB settings, so changes like unchecking "Stop after Force KB Export" take effect immediately
- ✦Fixed: Console window no longer freezes during high-frequency output bursts (throttled UI updates)