2.0.3.0
Release Date: 2026-11-01
Highlights
- Added process recipe management and the Batch Analysis Workbench — process recipes can be configured from multiple event templates, the event list can be filtered by recipe, and the matching batch events can be added to the Batch Analysis Workbench for quick comparison of process parameters across multiple stages.
- Comprehensive AI upgrade — added expert mode and deep-thinking mode, the AI chat panel can quickly invoke expert assistants and preset skills, AI scheduled tasks can be configured and executed from the panel, and the security controls for AI agents have been substantially strengthened.
- Enhanced SCADA panels and visualization — added attribute value setting, the format painter, default configuration items, Schema definitions, event support on graphics elements, and hover display of element paths and current values.
Modules in This Release
AI and Agent Runtime, Data Ingestion and Attribute Management, Elements and Industrial Ontology, SCADA, Panels, and Dashboards, Real-Time Analytics and Events, Process Analytics and Models, System and Platform Administration
Features
- License Center heartbeat capability negotiation: clients advertising heartbeat.over_limit_code now receive code 6 with error details when quota is exceeded, while legacy clients keep the 0/3 behaviour; add N-1 compatibility e2e tests.
- Added attribute-parameter support in external-source SQL for tag attributes —
${attributes['...']}expressions are evaluated per element instance. - Downloadable Markdown/PDF reports for reportOutput skills and AI Function runs, including approved confirmation resumes.
- Added a standalone virtual table repair tool that restores virtual table data from filesystem metadata when the IDMP database is accidentally deleted.
- Added a format painter in the SCADA editor for quickly reusing element styles.
- Added a default configuration module to the SCADA editor, providing a standard baseline for drawing process graphics.
- Added process-recipe-based grouping in the event list, allowing filtering events by recipe, hierarchical grouping by event attributes, and Gantt-chart display of event duration.
- Supports editing the system introduction of the root element.
- AI chat supports scheduled tasks with natural-language creation and editing, execution history and notifications; results are published into the source conversation, with background authorization, pause/resume and failure recovery.
- Added Metric and Tag reference types for data references on attributes of template-derived elements, with child attribute and quality-bit support.
- Introduced event recipe management, allowing combinations of event attribute groups to be managed and applied to event analysis and display.
- Third-party data sources now support SQL Server, expanding external data connectivity.
- Added data-connection access control for users and user groups, restricting accessible TSDB instances and databases so data mapping and Explorer navigation follow the granted scope.
- Added keyword search to the Agentic AI skills list: case-insensitive fuzzy matching on skill name, display name, and description, with server-side filtering; keyword is preserved across scope and sort changes.
- Added filter and group capabilities to the attribute, panel, and analysis list pages, consistent with the event list.
- Graphics elements in the SCADA editor show the bound attribute path and current value on mouse hover.
- AI Chat adds expert mode so users can talk to domain experts with a bounded persona and skill set.
- Added per-user personalization for visual panel/dashboard settings — users can adjust appearance without entering edit mode, saved locally in the browser.
- Introduced a dedicated batch analysis panel with batch events at the core, supporting swimlane display of key parameters across process stages and multi-batch overlay/normalized comparison.
- Events can be marked as invalid, and AI-based or manual analysis can automatically exclude them.
- Analysis skills (Panel Insight, RCA, general-analysis, recommendations) now explicitly retrieve document knowledge-graph evidence (entities, relations, confidence), and degrade to previous behaviour when the graph is unavailable.
- AI content safety filtering: three-layer sensitive-word blocking (question, tool arguments, retrieved documents) with localized safety prompts; sensitive document snippets excluded from retrieval; configurable word list seeded with 4-category blocklist and preserving operator custom entries across upgrades.
- End-to-end trace propagation for the AI chat path, correlating the frontend, tda-server, ai-agent and backend callbacks with a single Trace ID.
- AI chat supports a configurable deep-thinking mode: connection-level capability probing with persisted profiles, a deep-thinking toggle in chat, streaming reasoning display, and automatic fallback to the primary model.
- AI MultiAgent collaboration protocol: the lead agent decomposes tasks and delegates to specialist sub-agents, passing full context (question, business data, resource IDs, execution constraints, output requirements) in the task message; per-agent tools, skills and delegation scope are configurable; results, errors, timeouts and cancellation are handled uniformly for a controllable, traceable workflow.
- Optional pre-execution confirmation for AI tool calls. A per-user toggle (off by default, auto-saved) enables a confirmation card with execute, edit allowed parameters, skip, and cancel actions; covers AI Chat, AI Functions, panel insights and event RCA. Confirmation state is persisted and refresh-safe without re-execution; custom MCP tools are classified by risk annotations; IM channels are not covered yet.
- Feishu channel AI chat now renders panel screenshots and clickable panel links instead of a resource-not-found error.
- Add grant descriptions to the CLS license detail and quota pages; also fix free-license import self-healing and naming conflicts, and harden CLS P2P identity binding.
- ELS sign-in now uses Feishu OAuth (QR/redirect) with database-backed accounts and a unified operation log; password login is removed, operation logs are restricted to an audit-viewer allowlist, and JWT sessions are capped at 8 hours.
- Add the Diagnosis model type for whole-curve scoring and anomaly ranking across multiple elements sharing the same metric; models can be deployed on TDgpt and invoked from IDMP, with a dataset_type selector in dataset creation.
- Publish OpenAI Codex plugin for IDMP.
- Added name search to the event template list page, making it easy to locate templates among many.
Improvements
- Improved the analysis workbench — restored default box-zoom behavior on trend charts and kept the top action bar visible in fullscreen mode across panels, dashboards, and analyses.
- Applied several UI refinements, including showing Path and Description on the panel list.
- Rebuilt the set-attribute-value dialog for graphics elements in the SCADA editor and added event support on elements.
- Applied multiple UX improvements — panel list shows Path/Description, unified icon placement in fullscreen views, and attribute filters/groups with quick actions on the attribute list.
- Improved the notification rule editor and viewer — added enable/disable controls, default-value fallbacks, and action buttons for disabled rules.
- Completed the JSON schema definitions and validation for chart configurations of panels and dashboards, with dedicated schemas for standard dashboards and KPI reports.
- Upgraded realtime-analysis interpretation to evidence-validated insight delivery: structured decision reports gated by deterministic provenance validation (saved definitions, timestamp-verified raw data, rule replay, anomaly screening); honest limited-mode fallback with registered evidence when validation fails.
- Optimized backend JSON reads to improve system processing performance.
- Merged the download-as-image and download-as-PDF actions on panels/dashboards into a single export menu with image as the default option.
- Improved event list filtering — fixed ineffective real-time analysis filters and switched to POST for large filter conditions to ensure stability.
- Improved panel graphics elements in the SCADA editor — scalable fonts, multi-swimlane display, and panel selection now includes child-element panels.
- Notification rules support message preview and test sending. Test sends verify the message pipeline without the rule minimum severity restriction and do not enter formal resend or non-repetition state.
- The element list can now display attributes from all element templates as a union, enabling direct comparison of same-named attributes across templates, with missing values shown as "-".
- Version control now supports undoing committed changes that have not yet been published.
- Version control user branch names changed from User plus a UUID to the user name.
- The 6-hour full reconcile no longer repeatedly sends ALTER COLUMN ref messages for ans_ virtual tables.
Bug Fixes
- Added MFA login enforcement and configurable session (JWT) expiration to user security settings.
- Claim LLM API keys dynamically from capability gateway instead of hardcoded built-in keys.
- Fixed count-window streams being created without the required where time-range clause, which caused high TSDB memory usage — the where clause is now added automatically for such streams.
- Fixed external SQL queries on tag attributes erroring when no rows are returned — the default value is now used, and an error is raised only when no default is configured.
- Fixed the missing update date on enumeration-type metric attributes by querying real-time values in type-specific branches.
- Fixed some float attribute values displaying as integers due to the type being taken from the first row in merged queries — decimal values now display correctly.
- Fixed child attributes not displaying values even though their referenced data points have data.
- Fixed changes to an attribute template's data reference type (e.g., to formula) not being synced to instantiated element attributes — template updates now propagate correctly.
- Fixed stream-compute notifications from external TSDB instances not reaching Docker-deployed IDMP — the bundled Nginx now forwards the /eventReceive WebSocket endpoint.
- Fix knowledge-graph extraction failures on large documents caused by the output token limit truncating the model reply; the extraction budget is derived from the remaining context with window bisection as a fallback.
- Fixed parent attributes with child attributes showing no values when a child formula failed validation — attribute validation rules have been improved.
- Fixed an error when deleting a panel whose underlying data no longer exists — deletion is now handled gracefully.
- Fixed the mismatch between the Dashboard time range selector and the actual time range shown on a Panel's X axis — the Panel now displays its actual query range as a badge.
- Fixed transaction errors when deleting element template attributes, caused by slow per-element reference checks — deletion now runs as an asynchronous batch with fallback error handling.
- TDgpt raises Keras to 3.15.0 on Python 3.11 and later, and to 3.12.3 on older Python, so loading model weights no longer discloses local files through HDF5 external storage. CVE-2026-1669, GHSA-3m4q-jmj6-r34q.
- Refactored the frontend IndexedDB data handling code, improving local cache read/write performance and code maintainability.
- Fixed active external data source connections (e.g., SQL Server) missing from the connection list despite working direct fetch — list results now agree with direct fetch.
- Fixed template-level analyses being unable to reference output columns of another template-level analysis — the virtual supertable now carries analysis output columns, so previously rejected analyses can be created.
- Fixed errors occurring when recalculating analysis history data.
- Clarified the scheduled-report notification channel dropdown, which silently filtered out newly added channels — a tooltip now explains the filter rule.
- Fixed a null-pointer error when creating streams for event analyses without input attributes (a null getConnId() produced a literal "null" database name) — stream creation now works.
- Fixed German-style (non-ISO) date entries being rejected while English-style dates were accepted — absolute times are now parsed via the system display template with normalized range text.
- Fixed unfiltered virtual-supertable full queries being retried repeatedly on timeout and inflating memory — heavy SQL verification now executes exactly once.
- Fixed SMTP test emails failing in mail routing when the template name is null — test emails now send successfully.
- Fixed data backup showing no progress for extended periods.
