Skip to content

Let plugins offer optional settings without blocking the integration - #1088

Merged
manuelmayer-dev merged 1 commit into
mainfrom
feature/optional-integration-settings-1022
Sep 29, 2026
Merged

manuelmayer-dev merged 1 commit into
mainfrom
feature/optional-integration-settings-1022

Conversation

@manuelmayer-dev

@manuelmayer-dev manuelmayer-dev commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

Closes #1022

Summary

Plugins can return false from IConfigFlowProvider.RequiresConfiguration, so a config flow that only holds optional settings no longer disables the integration or marks it as needing setup. The flag travels in the config-flow describe payload, and the setup flows guide documents the zero-entry state.

Testing

Release build and full test suites pass, with new host, protocol, SDK, plugin contract and desktop UI tests, including old-plugin payloads without the field. Verified against a disposable host with a scratch plugin: without an entry it runs and its actions are Ready, saving and removing the settings reinitializes it, and the detail page shows Ready.

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

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:sdk Public plugin SDK, analyzers, hosting, testing area:protocol Plugin HTTP and WebSocket protocol area:desktop-ui The Angular desktop UI 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 Sep 29, 2026
@manuelmayer-dev
manuelmayer-dev merged commit 44b4af2 into main Sep 29, 2026
17 checks passed
@manuelmayer-dev
manuelmayer-dev deleted the feature/optional-integration-settings-1022 branch September 29, 2026 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:desktop-ui The Angular desktop UI area:docs The published developer documentation site area:host Host: Domain, Application, Infrastructure 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 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] Optional integration settings that do not block the integration

1 participant