Beckhoff ADS client import is documented as an external-system workflow:
the VS Code ADS panel and /setup/ads runtime-host wizard derive the runtime
identity, plan routes, run the ADS Doctor, and import TwinCAT symbols into
ads.toml plus cached symbol snapshots. The generated ST globals and
_quality siblings compile offline; [runtime.ads] loads that config at
runtime, starts ADS workers when built with ads-wire, and applies values at
scan boundaries so the generated globals appear on normal runtime product
surfaces.
Beckhoff ADS server support exposes selected truST runtime globals as ADS
symbols when built with ads-server. [runtime.ads_server] is fail-closed by
default, requires explicit listen identity, plain-ADS acknowledgement,
source-pinned clients, and opt-in write-back; loopback, pyads, and real
TwinCAT validation are tracked as separate proof levels.
Runtime release archives include trust-dev as the developer/workbench CLI.
trust-dev agent serve now owns the external agent JSON-RPC server and
trust-dev commit, trust-dev docs, and trust-dev test own the project
commit, ST API documentation, and ST test workflows, while the matching
trust-runtime commands remain deprecated forwarding aliases during the
product/workbench CLI split. Those aliases will not be removed before
2026-10-05, and removal requires a separate behavior-change release note.
MQTT I/O now has explicit TLS/mTLS configuration: tls = true requires a CA
trust file, optional client certificate/key files enable mTLS, mqtts:// and
ssl:// broker schemes imply TLS, and remote plaintext MQTT remains gated by
allow_insecure_remote = true.
Dependency hygiene now has project cargo deny policy, explicit
advisory/allowlist metadata, workspace-scoped cargo machete cleanup,
a Rust 1.95 MSRV baseline, patched time 0.3.47, ratatui 0.30, tracked
Cargo.lock, Rust 1.95is_multiple_of cleanup for runtime modulo checks,
and full-map doctor reporting for the remaining policy-managed transitive
advisories.
OSCAT OOP reset behavior, converter parity, API naming, dependency
alias, and comparison examples were hardened after external review.
OSCAT OOP example validation keeps all catalog/layout/pattern checks in the
default Rust suite, while the full 98-project runtime CLI execution sweep is
an explicit ignored gate for release or targeted OSCAT validation.
HIR default-initializer analysis now rejects non-repeat call expressions used
as array defaults and validates repeated array defaults against the element
type.
Parser recovery for malformed aggregate/positional initializers now uses
bounded declaration-aware helpers and mutation-checked recovery tests so bad
initializers do not consume following declarations.
The OSCAT OOP test fixture now covers reset, multi-scan parity,
invalid-limit rejection, FIFO ordering, and version lookup through classic
OSCAT.
OSCAT OOP now includes the v1.0 component surface for additional
controllers, filters, generators, memory, logic, measuring, calendar/RTC,
selected device-driver, and building-control objects, plus 49 classic/OOP
comparison pairs: 27 hand-written process-first industrial pattern scenarios,
20 compact component-composition showcases, and 2 compact pattern showcases
covering state machines, alarm handling, historian/logging records,
communication boundaries, and named OOP patterns.
PLCopen Motion now has an object-oriented companion package with itfAxis,
command objects, Structured Text unit tests, and five runnable OOP motion
examples.
OSCAT now has an object-oriented Components companion package with
Structured Text parity tests, public docs, and 20 classic/components
comparison scenarios.
The public docs now define the default truST Structured Text naming standard
for new APIs, variables, constants, examples, and inherited-symbol
exceptions.