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 Unchanged in 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 the Unchanged / Success decision 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 with section, line and column instead of the bare "message": "Error" that used to be all that survived ValidationException propagation
  • Fixed: when a single GeneXus object has both files pending in the same sync cycle (e.g. Panel's .gxSource and .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 function and is ambiguous errors 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 ValidationException carrying 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: .gxForm files now carry a dynamic="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.gxPattern and 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 .gxPattern files 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.gxLayout file paired alongside the existing .gxSource. Only emitted when the layout has been customized; reset to default deletes the obsolete .gxLayout from disk on next sync. Round-trip works on every supported version of GeneXus
  • Added: .gxLayout files carry a dynamic="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 .gxPattern files) 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 externalized Patterns/<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 PatternInstancePart and 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 #Variables section of the .gxSource are 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.gxPattern and any other registered pattern) now actually persists the edits — the previous deserializer reported Success but 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 found when 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 inconsistent Name property
  • Added: Table internalization now applies changes to the #Indexes section of a Table .gxSource back 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 Description is 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, throwing XmlException and aborting the import. The variable reader now treats a missing or empty variables attribute 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.gxSource whose 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 .gxPattern filename and resolved against the registered pattern definitions, so .<TypeName>.gxPattern files 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 parsed when long path support is enabled in Sync Settings — the relative-path computation that previously relied on System.Uri could 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 Collection property explicitly as False on non-collection variables — the property is now only updated when its current value differs from what the source file declares. Forcing Collection = False on 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-start and sync-batch-end markers in the exports JSON file, analogous to the existing bulk-export-start/bulk-export-end markers 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 new SyncBatchMarkerThreshold setting (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 *-start markers 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 (.control manifests, 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 .control files 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 OutOfMemoryException when the file grows to excessive sizes — if the file exceeds 10 MB or cannot be parsed, it is automatically quarantined as .corrupted-<timestamp>.bak and 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 changeType value — 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 type value (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 / CollectionItemName properties 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 sublevel Collection / CollectionItemName on every re-import, not just on creation

v1.4.9 — 2026-04-17

  • Fixed: SDT sublevel internalization now correctly applies the Collection and CollectionItemName properties when the sublevel is created for the first time — previously, sublevels marked as Collection = True in the .gxSource were 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.json file 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, ExposeAsWebService on a DataProvider was incorrectly set as the Transaction variant (idISBCWEBSERVICE instead of idISWEBSERVICE), 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 Factura inside module eFactura would cause the module to appear as @e, and SendMail inside PXTools.SendMails would produce a spurious @PXToolss module

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 Fail line 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 .gxPattern files

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 generate DataType = 'None' in .gxSource files — void methods now omit the DataType property entirely

v1.3.3 — 2026-03-28

  • Improved: Combo property values now use pretty names in .gxSource files instead of GeneXus internal codes
  • Improved: Reference properties now use typed references in config instead of hardcoded property names
  • Added: IsMain property 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 .gxSource files

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, OutputCollectionName to properties config
  • Added: ExternalObject platform and member properties with visibility rules
  • Added: Import support for .gxForm entries 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.log for 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.gxSource files in #Tables directory
  • 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-end entries
  • 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.json shared 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: AverageLength property deserialization support for Domains and Attributes
  • Fixed: KBBridge no longer crashes when internal config file is empty or corrupted
  • Fixed: SDT field Collection property was not applied during internalization for existing items
  • Improved: Transaction BusinessComponent property 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), documented Nullable transaction 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 EnumValues property
  • Fixed: Transaction import now sets Primary Key (*) and Description Attribute (!) flags
  • Added: Transaction attribute Nullable property 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)