Skip to content

Serve integration widgets through the Plugin SDK - #1303

Merged
manuelmayer-dev merged 1 commit into
mainfrom
feature/built-in-integration-widgets-as-plugins-1295
Oct 11, 2026
Merged

manuelmayer-dev merged 1 commit into
mainfrom
feature/built-in-integration-widgets-as-plugins-1295

Conversation

@manuelmayer-dev

@manuelmayer-dev manuelmayer-dev commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Closes #1295

Summary

The AdGuard Home, Jellyfin, Twitch, YouTube, Steam and Weather details widgets now live in their integrations and reach the host only through the Plugin SDK, so each integration could become an out-of-process plugin. The SDK gains what they needed, additively and for plugins too, and Music Player album colours became a system integration.

Testing

Full solution build and test suites pass (only the Plugin CLI build test fails on this Mac because of the pinned SDK). On a disposable host the moved widgets render with their icons and presses are refused while the computer is locked; Twitch and YouTube were not run live (they need an account).

Plugin SDK / API compatibility

  • No public, non-obsolete SDK or plugin protocol contract was removed or changed
  • Contracts were only extended additively (new members with defaults, new optional fields, new message types)
  • Anything being retired carries [Obsolete] and [MacroDeckDeprecated], is in the deprecation registry, and still works
  • A plugin compiled against the previous SDK still loads and behaves identically (source and binary compatible)
  • The conformance suite passes and the sample plugin builds and runs unchanged
  • Any intentional break was explicitly agreed beforehand and is described below

Notes

Agreed behaviour changes, listed in the compatibility policy: plugin widget events are refused while the host is locked, and a weather plugin built against an older SDK declares no details action, so its stations get no default press. The UI resource quota rises to 1024 resources and 48 MiB per plugin. The conformance suite passes; the sample plugin was not run.

Checklist

  • Tests were added or updated where needed
  • The change was verified manually where appropriate
  • Documentation was updated if the change affects documented behaviour
  • I reviewed and understand every submitted change

@manuelmayer-dev manuelmayer-dev added feature New feature or request area:host Host: Domain, Application, Infrastructure area:widgets Built-in widgets and the widget editor area:integrations Built-in integrations and their actions area:sdk Public plugin SDK, analyzers, hosting, testing area:protocol Plugin HTTP and WebSocket protocol area:ui-model Shared UI model contracts area:runtime Shared UI runtime consumed by both clients area:localization Translations and localization catalogs area:docs The published developer documentation site compat:plugin-api Affects a public plugin-facing contract; needs a compatibility review compat:protocol Needs a new protocol major with the previous version still served labels Oct 11, 2026
@manuelmayer-dev
manuelmayer-dev merged commit 0d7574a into main Oct 11, 2026
17 checks passed
@manuelmayer-dev
manuelmayer-dev deleted the feature/built-in-integration-widgets-as-plugins-1295 branch October 11, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs The published developer documentation site area:host Host: Domain, Application, Infrastructure area:integrations Built-in integrations and their actions area:localization Translations and localization catalogs area:protocol Plugin HTTP and WebSocket protocol area:runtime Shared UI runtime consumed by both clients area:sdk Public plugin SDK, analyzers, hosting, testing area:ui-model Shared UI model contracts area:widgets Built-in widgets and the widget editor compat:plugin-api Affects a public plugin-facing contract; needs a compatibility review compat:protocol Needs a new protocol major with the previous version still served feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[SDK] Move integration widgets into their integrations

1 participant