Skip to content

Releases

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 15:32
acda988

3.1.0 (2026-11-13)

Features

  • mobile-control: switch back to Teams from the UC Engine's Mobile Control frame (69c3e05)

v3.1.0-feature-uc-engine-auto-screen-share.1

Choose a tag to compare

3.1.0-feature-uc-engine-auto-screen-share.1 (2026-11-10)

Features

  • mobile-control: autoScreenShareFormat for the UC Engine setting, and the evidence on its value format (09e0740)
  • mobile-control: set the Teams Rooms auto screen share setting from the UC Engine controller (c5d0508)
  • mobile-control: switch back to Teams from the UC Engine's Mobile Control frame (69c3e05)

v3.1.0-feature-uc-engine-return-to-teams.1

Choose a tag to compare

3.1.0-feature-uc-engine-return-to-teams.1 (2026-11-09)

Features

  • mobile-control: switch back to Teams from the UC Engine's Mobile Control frame (69c3e05)

v3.0.1-fix-1551-set-manual-mode-noop.1

Pre-release

Choose a tag to compare

3.0.1-fix-1551-set-manual-mode-noop.1 (2026-11-09)

Bug Fixes

  • make SetManualMode a no-op when already in Manual Mode (f72127d), closes #1551

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 06 Nov 23:10
a488915

3.0.0 (2026-11-06)

Bug Fixes

  • [EWP-8320] tighten secure secrets provider limits and failure handling (5d1eb4d)
  • add error handling when saving debug settings (426ef4a)
  • address review on the routing graph messenger (b26bed6)
  • adjust installation steps for prerequisites based on environment detection (7bd3ccd)
  • apply appdebugfilter, Debug level fixes, guard missing versiports (2ef8d92)
  • avoid enumeration issues by copying current source keys and handling nulls (32311dd)
  • core-ssh: re-check program-stopping flag under the connect lock and serialise Disconnect with Connect (5b6cef0)
  • core-ssh: stop reconnect loop during stopprog and handle null inner exception on connect (e425b05), closes #1469 #1468
  • core: bridge, join map, IO and comm fixes (a2d1655)
  • core: close reconnect/disconnect races in GenericUdpClient and tie cleanup to the failed socket (4993cd2)
  • correct device key reference in LevelControl property (830e207)
  • correct malformed error message (695ab00)
  • correct PhoneHookState (digital 72) feedback description (dff50ea)
  • Correct typo in LevelControlListItem class name (cd89cf1)
  • correct UserInterfaces type and initialize TouchpanelWrapperApp in VersionData constructor (4403e91)
  • Correctly retrieve package ID from assembly metadata for version checks (af7411f)
  • culture-independent appdebugfilter keys; skip server queue without serverUrl (ea454dd)
  • deps: update SSH.NET to 2026.0.0 to resolve vulnerabilities (734b426)
  • devjson: make escape expansion opt-in and enable it only for console input (396d78a)
  • devjson: unescape \r \n \t \ and \xHH in string and byte[] parameters (205875e)
  • disambiguate DirectorySelectRow (101) and feedback (104) descriptions (72c948e)
  • do not require state these devices cannot report (8721b85)
  • Downgrade setup-dotnet action version to v5 for compatibility (e818c9c)
  • emit named routing slots under both inputSlots/outputSlots and inputs/outputs keys (23ffa73)
  • ensure midpoint-to-sink map is built after tie lines are loaded in ControlSystem (1c891a0)
  • feedback update for current lighting scene (cb7970b)
  • find the shared SSL certificate in the room's user folder on Virtual Control (de9a292)
  • format constructor for IDeviceInfoProviderMessenger for improved readability (be545bb)
  • guard against empty Version in configured-but-not-loaded package passthrough (4a366a5)
  • guard CecPortController against null StreamCec, add ScreenLift automation opt-outs, ignore null message fields (7d32eac), closes #1448
  • guard the deferred CEC subscription with a lock (1e0cab6)
  • handle null routes in ExecuteRoutes to prevent silent failures (f6187d5)
  • improve port forwarding logic and error handling in RoutingFeedback session (a18f780)
  • keep console help text within the 79-byte Crestron limit (406488c)
  • keep route descriptors when routing feedback can't rebuild them (09baf13), closes #1496
  • keep stream poll requests out of the request log (2c44d8b)
  • keep the pluginissues console help under Crestron's 79-byte limit (8335e16)
  • let GenericQueue and StringResponseProcessor run off a processor (66e9fd1), closes #1553
  • log exceptions as an Error entry plus a Verbose stack trace (778d60d)
  • log when a COM port was already registered (318038b)
  • logging: make appdebug levels consistent and fix appdebugfilter parsing (9996272)
  • make RouteDescriptorCollection thread-safe (0ee16d5)
  • make the recording capabilities independent rather than derived (f8692f7)
  • mc: answer codec preset and camera status before the codec connects (ab4eb88), closes #1501
  • mc: cap per-client transmit queues and stop leaking a raced queue (f800126)
  • mc: include every in-tree status reply in an aggregated batch (6bea780)
  • mc: never broadcast a tech PIN validation result (943dd31)
  • mc: per-client queues check the socket state instead of pinging (56f9e0f)
  • mc: post each codec camera selection once (4333d68)
  • mobile-control: address review on the UC Engine controller (372ff57)
  • mobile-control: allow a config without serverUrl (bc0f010)
  • mobile-control: force panels to re-download the app (26ce99d)
  • mobile-control: make secure direct server actually start on 4-Series (fea0e40)
  • mobile-control: serve correct MIME types for app static assets (b7b4b56)
  • null-safe CodecInfo access in AudioCodecBaseMessenger (1a5db87)
  • per-hold locking and fresh heartbeat timers in PressAndHoldHandler ([d94305c](d94305cb0de5...
Read more

v3.0.0-rc.26

v3.0.0-rc.26 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 22:43
1b74216

3.0.0-rc.26 (2026-11-06)

Bug Fixes

  • let GenericQueue and StringResponseProcessor run off a processor (66e9fd1), closes #1553

Features

  • support adding devices and loading config off a processor (0d4b5a6)

v3.0.0-rc.25

v3.0.0-rc.25 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 16:31

3.0.0-rc.25 (2026-11-06)

v3.0.0-rc.24

v3.0.0-rc.24 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Nov 15:13
715eba7

3.0.0-rc.24 (2026-11-06)

Bug Fixes

  • keep console help text within the 79-byte Crestron limit (406488c)
  • make RouteDescriptorCollection thread-safe (0ee16d5)

v3.0.0-fix-1553-queues-off-processor.1

Pre-release

Choose a tag to compare

3.0.0-fix-1553-queues-off-processor.1 (2026-11-06)

Bug Fixes

  • add error handling when saving debug settings (426ef4a)
  • address review on the routing graph messenger (b26bed6)
  • adjust installation steps for prerequisites based on environment detection (7bd3ccd)
  • apply appdebugfilter, Debug level fixes, guard missing versiports (2ef8d92)
  • avoid enumeration issues by copying current source keys and handling nulls (32311dd)
  • core-ssh: re-check program-stopping flag under the connect lock and serialise Disconnect with Connect (5b6cef0)
  • core-ssh: stop reconnect loop during stopprog and handle null inner exception on connect (e425b05), closes #1469 #1468
  • core: bridge, join map, IO and comm fixes (a2d1655)
  • core: close reconnect/disconnect races in GenericUdpClient and tie cleanup to the failed socket (4993cd2)
  • correct device key reference in LevelControl property (830e207)
  • correct malformed error message (695ab00)
  • correct PhoneHookState (digital 72) feedback description (dff50ea)
  • Correct typo in LevelControlListItem class name (cd89cf1)
  • correct UserInterfaces type and initialize TouchpanelWrapperApp in VersionData constructor (4403e91)
  • Correctly retrieve package ID from assembly metadata for version checks (af7411f)
  • culture-independent appdebugfilter keys; skip server queue without serverUrl (ea454dd)
  • deps: update SSH.NET to 2026.0.0 to resolve vulnerabilities (734b426)
  • devjson: make escape expansion opt-in and enable it only for console input (396d78a)
  • devjson: unescape \r \n \t \ and \xHH in string and byte[] parameters (205875e)
  • disambiguate DirectorySelectRow (101) and feedback (104) descriptions (72c948e)
  • do not require state these devices cannot report (8721b85)
  • Downgrade setup-dotnet action version to v5 for compatibility (e818c9c)
  • emit named routing slots under both inputSlots/outputSlots and inputs/outputs keys (23ffa73)
  • ensure midpoint-to-sink map is built after tie lines are loaded in ControlSystem (1c891a0)
  • feedback update for current lighting scene (cb7970b)
  • find the shared SSL certificate in the room's user folder on Virtual Control (de9a292)
  • format constructor for IDeviceInfoProviderMessenger for improved readability (be545bb)
  • guard against empty Version in configured-but-not-loaded package passthrough (4a366a5)
  • guard CecPortController against null StreamCec, add ScreenLift automation opt-outs, ignore null message fields (7d32eac), closes #1448
  • guard the deferred CEC subscription with a lock (1e0cab6)
  • handle null routes in ExecuteRoutes to prevent silent failures (f6187d5)
  • improve port forwarding logic and error handling in RoutingFeedback session (a18f780)
  • keep console help text within the 79-byte Crestron limit (406488c)
  • keep route descriptors when routing feedback can't rebuild them (09baf13), closes #1496
  • keep stream poll requests out of the request log (2c44d8b)
  • keep the pluginissues console help under Crestron's 79-byte limit (8335e16)
  • let GenericQueue and StringResponseProcessor run off a processor (66e9fd1), closes #1553
  • log exceptions as an Error entry plus a Verbose stack trace (778d60d)
  • log when a COM port was already registered (318038b)
  • logging: make appdebug levels consistent and fix appdebugfilter parsing (9996272)
  • make RouteDescriptorCollection thread-safe (0ee16d5)
  • make the recording capabilities independent rather than derived (f8692f7)
  • mc: answer codec preset and camera status before the codec connects (ab4eb88), closes #1501
  • mc: cap per-client transmit queues and stop leaking a raced queue (f800126)
  • mc: include every in-tree status reply in an aggregated batch (6bea780)
  • mc: never broadcast a tech PIN validation result (943dd31)
  • mc: per-client queues check the socket state instead of pinging (56f9e0f)
  • mc: post each codec camera selection once (4333d68)
  • mobile-control: address review on the UC Engine controller (372ff57)
  • mobile-control: allow a config without serverUrl (bc0f010)
  • mobile-control: force panels to re-download the app (26ce99d)
  • mobile-control: make secure direct server actually start on 4-Series (fea0e40)
  • mobile-control: serve correct MIME types for app static assets (b7b4b56)
  • null-safe CodecInfo access in AudioCodecBaseMessenger (1a5db87)
  • per-hold locking and fresh heartbeat timers in PressAndHoldHandler (d94305c)
  • plugins: identify duplicate assemblies by their real name and don't proces...
Read more

v3.0.0-feature-EWP-8320-secure-storage-secrets.5

Choose a tag to compare

3.0.0-feature-EWP-8320-secure-storage-secrets.5 (2026-11-06)

Features

  • [EWP-8320] refuse a secure write that would take the Data Store past 95% (fcf856e)