Release notes¶
Here you can find the release notes for Kanzi Monitor.
1.6.1¶
Maintenance release for Kanzi 3.6.
Compatible with Kanzi 3.6.3 through 3.6.21. Statically linked builds are supported across the whole range; the dynamically linked (DLL) plugin requires Kanzi 3.6.4 or newer. See Kanzi Monitor 1.6.1.
New features¶
Extended Kanzi version compatibility¶
Kanzi Monitor now builds against Kanzi 3.6.3 through 3.6.21, verified in CI across the range. Kanzi Monitor 1.6.0 was verified against Kanzi 3.6.21 only (KZMON-426).
Fixed plugin build failures on Kanzi 3.6.4 and 3.6.5, and compiler warnings on Kanzi 3.6.3 through 3.6.6 (KZMON-467, KZMON-470).
Linux Wayland platform support¶
Kanzi Monitor adds a Linux Wayland (embedded aarch64) build target,
linux_wayland_aarch64(SCons, EGL/OpenGL ES). See Integrating Kanzi Monitor from source code (KZMON-367).
QNX 7.1 platform support¶
Kanzi Monitor adds a QNX 7.1 (Screen, aarch64, C++/LLVM) build target,
qnx710_screen_aarch64_cxx(SCons). See Integrating Kanzi Monitor from source code (KZMON-368).
Overlay controls in the Monitor Web UI and MCP server¶
The Monitor Web UI Screen tab adds an Overlay Controls section for driving the on-screen overlays without the raw console: PerformanceInfo level, Monitor UI visibility, BasicUI screen selection, and font scale.
The MCP server adds
get_ui_visibility,get_basicui_screens,set_basicui_screen,get_font_scale, andset_font_scale, and extendstoggle_uiwith an optionalnode_treeparameter (KZMON-488).
SuspendWhenIdle control in the Monitor Web UI and MCP server¶
The Monitor Web UI Performance tab adds a SuspendWhenIdle status indicator and toggle, and the MCP server adds
get_idle_suspendandset_idle_suspend. On Kanzi 3.6 the reported state is the last state set through Kanzi Monitor — see Known issues (KZMON-489).
Cubemap and texture-type resource inspection¶
overwatch.resourceinfo(with the MCPget_resource_infotool) now reports each texture’s type, face count, slice count, and cubemap flag.The Monitor Web UI Resource Viewer shows the texture type and per-face cubemap previews, and
overwatch.texturepreview(with the MCPget_texture_previewtool) accepts afaceargument to preview an individual cubemap face. See Using the Overwatch service (KZMON-490).
View in Perfetto from the Monitor Web UI¶
The Monitor Web UI Trace tab adds a View in Perfetto action that opens a captured or fetched trace directly in the Perfetto UI (KZMON-491).
Composition targets in the example application¶
The
monitor_examplescene now demonstrates all three composition-target constructs — aCompositionTargetRenderPass, a render-target texture, and a Viewport 2D with Force Composition — so the Overwatch render-pass tools have real composition targets to inspect out of the box. See Using the Overwatch service (KZMON-413).
Changes¶
Default image orientation for previews¶
Image previews now match the screen orientation by default in the Monitor Web UI and the MCP image tools (
take_screenshot,get_texture_preview,get_render_pass_preview). In the Web UI, the Flip vertical checkbox toggles the raw orientation. The rawoverwatch.*command output is unchanged. See Migration guides (KZMON-404).
Minimized Android debug builds by default¶
Android debug builds of the plugin now minimize debugging information by default when building from source (the delivered prebuilt binaries were already minimized); pass
-PminimizeDebug=falseto restore full debug symbols. See Integrating Kanzi Monitor from source code (KZMON-492).
Notable fixes¶
Fixed node-property JSON being rejected by the Monitor Web UI when a property held a non-finite float (for example an infinite layout value); non-finite floats are now serialized as
nullin Overwatch JSON output (KZMON-493).Fixed the misspelled trace configuration key
WritingOnFrameDurationTreshold; the correctedWritingOnFrameDurationThresholdis now documented, and the old spelling is kept as a deprecated alias (KZMON-494).Fixed profiling traces being rejected by the Perfetto trace viewer (
trace_sorter_negative_timestamp_dropped) on some platforms and uptimes; Kanzi Monitor now emits session-relative timestamps, so every trace starts at 0 and loads correctly. See Migration guides (KZMON-495).Fixed the Monitor Web UI “Connected” status indicator staying green after the Kanzi application exits; it now reflects the live bridge-to-Monitor link state (KZMON-437).
Fixed RemoteConsole failing to rebind its TCP port after the previous application instance exited, which had broken reconnect from the Monitor Web UI, RemoteConsoleClient, and MCP server (KZMON-437).
Fixed the prebuilt Windows tool binaries (
monitor-web-ui.exe,RemoteConsoleClient,SerialConsoleClient) being flagged by Windows Defender / SmartScreen; they are now Authenticode code-signed with the Rightware certificate (KZMON-496).Fixed the
monitor_exampleapplication failing to link in the static (non-_DLL) Visual Studio configurations; the static application build now links thekzmonitorstatic library (KZMON-471).Fixed the
quitandappquitcommands falsely reportingexecuted successfullyon Android, where the platform owns the process lifecycle and they cannot terminate the application; they now take no action on Android and report that they are not supported (KZMON-498).The Monitor Web UI screenshot-timeout message now suggests enabling Allow preview to update if not in focus when capturing in Kanzi Studio Preview, where the render stage otherwise never completes (KZMON-497).
1.6.0¶
First release of Kanzi Monitor for Kanzi 3.6. Compatible with Kanzi 3.6.x (verified against Kanzi 3.6.21). A source-only distribution package is available for building the plugin from source against any supported Kanzi 3.6.x version.
Kanzi Monitor 1.6.0 backports the Monitor 1.9 feature set to the Kanzi 3.6 engine generation. A few features that depend on Kanzi 3.10+ engine APIs behave differently on Kanzi 3.6 (see Differences from Monitor 1.9).
Features¶
Command Processor Service¶
Local console for interactive command-line access over stdin/stdout.
Remote console for command access over TCP sockets.
Serial console for command access over serial ports (UART). Supports Windows COM ports and POSIX serial devices.
Built-in commands for application control, scene graph inspection, and diagnostics, including build-configuration reporting (
kzinfo).Support for custom application-defined commands.
The example application demonstrates a custom
glyphcachestresscommand that cycles mixed Latin and CJK text through the scene’sTextBlocknodes to provoke glyph cache flushes (glyphcachestress stoprestores the original text). It complements the Overwatch font glyph-cache tools.
Trace Service¶
Profiling data collection with configurable sample buffers and collection intervals.
JSON trace export compatible with the Perfetto trace viewer.
Automatic trace output on exit or on a timer.
UI Service¶
On-screen overlay with a default screen and a colored-overlay screen (plus the Log service’s log screen); register custom screens through the API.
Configurable font scaling for high-DPI devices.
Touch input support.
Log Service¶
In-memory log buffer with on-screen presentation and a runtime-configurable size.
Console access to log entries.
KanziLog trace pipeline diagnostics for troubleshooting missing log entries.
Performance Service¶
Runtime performance statistics and counters with the PerformanceInfo profiling category.
Float-valued metrics (FPS, frame time, animation time) and integer counts in the trace output.
Performance metric watchers that trigger commands when thresholds are crossed.
Overwatch Service¶
JSON-based remote introspection of the scene graph, resources, data sources, and performance.
Scene graph browsing with configurable depth limiting.
Property value querying and modification for any node in the scene graph (locally-set values; binding-source info is not available on Kanzi 3.6).
Loaded-resource listing with CPU/GPU memory usage, and per-resource metadata lookup.
Texture preview with CPU-side data or GPU readback.
Framebuffer (render-target) listing, render-pass tree inspection, and composition-target preview.
Screenshot capture of the application framebuffer, driven by the application’s per-frame hook.
Real-time performance metrics including FPS, frame times, and render statistics.
DataSource inspection including
DataObjectListnodes with item data.Log entry access, runtime log-buffer configuration, and trace profiling control.
Graphics backend information including GPU vendor, renderer, and extension list.
Graphics API call logging control, with optional per-draw state dump and frame-count limiting.
Font glyph cache inspection: list the glyph caches in use with their atlas size, memory, and sharing text nodes; preview each atlas texture; and set the glyph cache texture size for newly created caches.
Service status reporting including the build configuration (Debug / Profiling / Release).
Tools¶
Monitor Web UI — browser-based GUI for remote inspection and debugging of Kanzi applications. Connects over TCP or serial and offers live scene graph browsing, property editing, performance monitoring, data source inspection, and trace capture. Run through the Python WebSocket bridge (
bridge.py).MCP Server — Model Context Protocol server that enables AI assistants such as Claude Code and Claude Desktop to inspect and control a running Kanzi application. Connects over TCP or serial and exposes the available Overwatch commands as structured tools.
RemoteConsoleClient — command-line TCP client for the remote console. Included as source.
SerialConsoleClient — command-line serial client for the serial console. Included as source.
Platform support¶
Windows (Visual Studio,
vs2015toolset)Android (NDK, native
.soper ABI; native C++ App Framework on Kanzi 3.6)Linux (
linux_x11_glx_cpp11, SCons)
Some platforms that Monitor 1.9.1 supports — QNX, Linux Wayland, and others — are not yet available in Kanzi Monitor 1.6.0. See Known issues.
Differences from Monitor 1.9¶
Kanzi Monitor 1.9 targets Kanzi 3.9. Kanzi Monitor 1.6.0 backports its feature set to Kanzi 3.6, including the resource-enumeration, texture-preview, framebuffer, render-pass, and screenshot commands. Some 1.9 features depend on Kanzi 3.10+ engine APIs, or on MainLoopScheduler which Kanzi 3.6 does not provide, and therefore behave differently on Kanzi 3.6:
Resource enumeration is loaded-only.
overwatch.allresourcesandoverwatch.resourceinfoare available, but Kanzi 3.6 can enumerate only the loaded resources (there is noResourceManager::getAllResources()), sooverwatch.allresourcesreturns the same set asoverwatch.resources. Runtime-internal composition textures that are not registered resources — a Viewport 2D with Force Composition, or an auto-generated composition target — do not appear in the listing and cannot be addressed byoverwatch.texturepreview; an auto composition target is still previewable throughoverwatch.renderpasspreview.Screenshot capture is driven by the application.
overwatch.screenshotis available, but with noMainLoopSchedulerthe capture runs in the application’s per-frame post-render hook. The application must forward that hook to the Overwatch service (see Getting started with Kanzi Monitor); the bundledmonitor_exampledoes this.Main-loop frame commands are provided differently. The 1.9
perfinfo(main-loop last frame duration),quit(MainLoopScheduler::quit()), andfpslimit(MainLoopScheduler::setFrameRateLimit()) rely onMainLoopScheduler. On Kanzi 3.6, useperfinfo2orappfpsinfofor frame timing,appquitto quit the application, and — for frame-rate limiting — the application-tierfpslimitcommand shown inmonitor_example.Node property reporting is metaclass-based.
overwatch.propsand theget_node_propertiesMCP tool report a node’s locally-set property values, but Kanzi 3.6 does not expose the per-instance property-storage iteration (beginPropertyStorage) that 1.9 uses. Monitor instead walks the node’s metaclass property types — base classes and concept mixins (such as theTextproperty on a text block). Two consequences: a locally-set property not declared in any of the node’s metaclasses (a purely dynamic or attached property) is not listed, and binding-source information is not reported (thegetBindingRuntime*APIs were added in Kanzi 3.9, so the Web UI binding indicators stay inactive). See Known issues.The example application no longer uses Dear ImGui. Monitor 1.9’s example vendored Dear ImGui for an on-screen control UI. Kanzi Monitor 1.6.0 does not use or bundle Dear ImGui; the example relies on the built-in BasicUI overlay instead (see Using the UI service).
Enhancements over 1.9.1¶
Kanzi Monitor 1.6.0 also improves on the 1.9.1 baseline:
Offline documentation in every platform package. The rendered HTML documentation is bundled under
doc/in each platform package (Windows, Android, Linux). Monitor 1.9.1 bundles the offline documentation only in its Windows package.Sub-microsecond precision in captured traces. Trace event timestamps and durations are emitted as fractional microseconds, so sub-microsecond scopes keep their real duration instead of being truncated to zero (which made them render as zero-width, instant-looking events in the trace viewer). Monitor 1.9.1 writes integer-microsecond durations.