[5.0.8] - 2026-10-13
Note on the SIL Kit MSI installer
Up to and including SIL Kit 5.0.7, SilKit-X.Y.Z.msi installed per-user by default unless ALLUSERS=1 was set explicitly. That was not intended. Starting with SIL Kit 5.0.8, the MSI installs per-machine.
What this means when you upgrade
The 5.0.8 (or later) MSI can’t detect or remove an earlier per-user installation, so both will be on the system side by side.
Upgrading still works. The new installer:
disables
removesthe previousVectorSilKitRegistryservice and installs theSilKitRegistrysystem service of the new version,sets the
SilKit_InstallDirenvironment variable to the new installation, andupdates the CMake
find_packagelookup to find the new installation.
Uninstalling the old version is optional and only cleans up. To do it, open Settings > Apps > Installed apps (or Programs and Features) as the user who originally installed it and uninstall the old SIL Kit entry.
“Vector” branding removed
Up to 5.0.7 |
From 5.0.8 |
|
|---|---|---|
Installation folder |
|
|
Registry system service |
|
|
Service config file |
|
|
The old <ProgramData>\Vector SIL Kit folder is not removed. If you customized silkit-registry.yaml, copy it to the new location.
Added
Add Integration Test for Timestamp Behavior
Add Integration Test for Remote Logging
The documentation now explains the delineation between fast (trivial) and accurate (detailed, network simulator based) simulation, including notes for LIN.
The documentation now lists every third party dependency found in the source tree with its version and license on the Licenses page, followed by the full license text of each component that ships one.
Fixed
The SIL Kit Registry could hang on shutdown when a configured dashboard server accepted the connection but never answered. Dashboard requests now have connect, write and read deadlines, and an in-flight request is aborted after a grace period so that shutdown is always bounded.
A malformed or unexpected response from the dashboard service no longer terminates the registry’s dashboard worker thread; unknown fields in the response are now ignored.
The SIL Kit Registry could call into a destroyed dashboard instance while still serving traffic, because the dashboard was torn down before the registry that holds a pointer to it.
If the dashboard service did not support the bulk-update endpoint, the registry’s dashboard worker thread stopped while events kept accumulating in an unbounded queue. The capability probe has been removed; the worker now keeps draining the queue and reports the failing requests instead. This also removes one request during registry startup.
Dashboard events accumulated but not yet sent are now flushed when the registry shuts down, instead of being discarded.
Log messages from the dashboard instance and its worker thread carry the
Dashboardlog topic again; they were previously emitted without a topic and so escaped topic filtering.Fix ITest_AsyncSimTask (test failed when run repeatedly)
Fix the
TimeSyncServicewarning about an exceeded soft time limit, which showed a literal{}instead of the measured timeout in millisecondsThe third party license notices were incomplete. They now also cover components that are vendored inside another dependency, such as c4core inside the rapidyaml sources, and the components that ship inside the HTML documentation.
ThirdParty/LICENSES.rstis generated from a software bill of materials and is the file the documentation shows, so the two can no longer disagree.The SIL Kit Registry silently listened on local domain sockets only when its listen URI contained an invalid or unresolvable host. It now fails to start with a configuration error naming the host.
The SIL Kit Registry did not listen over TCP on bracketed IPv6 addresses, e.g.,
silkit://[::1]:8500, on platforms whose address parser rejects the brackets.Bracketed IPv6 addresses containing hexadecimal digits, e.g.,
tcp://[2001:db8::1]:8500, were passed to the system resolver, which rejects them. A participant configured to accept connections on such an address failed to join, and a peer advertising one was not connected to on it.ISilKitRegistry::GetLogger()returnednullptr, and the C APISilKit_Vendor_Vector_SilKitRegistry_GetLoggerreturned a pointer of the wrong internal type. Both now return the registry’s logger.A participant in the
RunningorPausedstate could miss the system-wide stop if its locally computed system state went directly toStoppedwithout passingStopping. The participant now also stops in that case.The PCAP trace sink did not actually take its lock when tracing Ethernet frames, and opening and closing the sink were unsynchronized, allowing a data race.
PCAP trace files had wrong packet timestamps. Their header announces nanosecond resolution, but the packet timestamps were written in microseconds. Packet timestamps are now written in nanoseconds.
Changed
third-party: the dashboard client no longer depends onoatpp, and theThirdParty/oatppsubmodule has been removed. The dashboard payloads are now built with the already-bundledrapidyaml, and the REST requests are issued over the already-bundled standaloneasio. The requests the dashboard service receives are unchanged apart from three cosmetic differences in the JSON encoding: a space follows each:separator, forward slashes are no longer escaped as\/, and non-ASCII characters are sent as UTF-8 rather than\uXXXXescapes. Control characters that cannot be escaped are replaced with U+FFFD.third-party: the SIL Kit build now definesASIO_NO_DEPRECATED, so that using an asio interface that upstream has deprecated is a build error rather than something that only surfaces when asio removes it. No SIL Kit source used one.Running a build without dashboard support (
SILKIT_BUILD_DASHBOARD=OFF) and passing--dashboard-urinow reports plainly that this build has no dashboard support, instead of printing an error about a failed dashboard instance creation.A
--dashboard-uriwhose scheme is nothttpis now rejected when the dashboard instance is created. The dashboard client only ever spoke plaintext HTTP, so anhttps://URI was previously accepted and silently downgraded.Changes to the SIL KIT MSI installer:
Default installation path changed from
<ProgramFilesFolder>\Vector SIL Kit <VERSION>to<ProgramFilesFolder>\SIL Kit <VERSION>Windows System Service Name changed from
VectorSilKitRegistrytoSilKitRegistrySIL Kit Registry System Service config file installation path changed from
<ProgramDataFolder>\Vector SIL Kit\silkit-registry.yamlto<ProgramDataFolder>\SIL Kit\silkit-registry.yamlNote that the
<ProgramDataFolder>\Vector SIL Kitis not removed by installingSilKit-5.0.8.msi.
PCAP replay now also reads PCAP files with microsecond resolution, e.g., as written by tcpdump or Wireshark. Previously only nanosecond resolution files were accepted.
TimeSyncServicenow throwsLogicError{"TimeSyncPolicy is not set"}ifCompleteSimulationStepis used beforeStartLifecyle.