Skip to content

[pull] dev from Flow-Launcher:dev#613

Merged
pull[bot] merged 23 commits into
onesounds:devfrom
Flow-Launcher:dev
Jun 10, 2026
Merged

[pull] dev from Flow-Launcher:dev#613
pull[bot] merged 23 commits into
onesounds:devfrom
Flow-Launcher:dev

Conversation

@pull

@pull pull Bot commented Jun 10, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Jack251970 and others added 23 commits February 26, 2026 16:33
Mark ActionKeywordRegistered as obsolete and always return false, reflecting support for multiple plugins per action keyword. Update IPublicAPI docs to clarify ActionKeywordAssigned is for legacy compatibility.
Expanded using directives for .NET collections and diagnostics.
Added ActionKeywordAssigned to PublicAPIInstance, using obsolete PluginManager.ActionKeywordRegistered with warning suppression.
Refactor non-global plugin storage to allow multiple plugins to share the same action keyword by using ConcurrentDictionary<string, List<PluginPair>>. Update all relevant methods to handle lists of plugins, ensure thread safety, and adjust the QueryBuilder logic accordingly. This change improves extensibility and flexibility in plugin management.
GetNonGlobalPlugins now returns a new dictionary with copied lists,
preventing external modification of the internal _nonGlobalPlugins
collection. This change improves encapsulation and safeguards
plugin manager state integrity.
Replaced direct _nonGlobalPlugins field access with the GetNonGlobalPlugins() method to improve encapsulation and ensure up-to-date plugin data is used when retrieving non-global plugins by action keyword. No other logic was changed.
Wrap kvp.Value access in a lock when copying to nonGlobalPlugins
to prevent race conditions and ensure thread safety during
concurrent access.
Prevent duplicate action keywords by checking for existence before adding. Remove all instances of an old action keyword instead of just the first. Ensures action keyword lists remain unique and consistent.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Previously, the code only excluded modified plugins from the valid plugin list. This update adds an additional check to also exclude plugins marked as disabled in their metadata, ensuring that disabled plugins are not considered valid or processed further.
After removing plugins, also remove dictionary entries if their
associated lists become empty. This prevents unused empty lists
from accumulating and keeps the plugin manager's state clean.
Refactored QueryBuilderTest.cs to use Dictionary<string, List<PluginPair>> for nonGlobalPlugins, updating test cases to use lists of PluginPair. Also replaced empty dictionary instantiation with shorthand [] where appropriate.
Extract plugin enabled check into a new CheckPlugin method, adding a lock for thread safety. Update the if statement to use this method instead of inline logic.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
ExclusivePluginQueryIgnoreDisabledTest now sets the ">" plugin's Disabled property to true in PluginMetadata. This verifies that QueryBuilder correctly ignores disabled exclusive plugins.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Refactored plugin lookup in ValidPluginsForQuery to use a new
TryGetNonGlobalPlugins method, which safely copies plugin lists
using a lock. This improves thread safety and performance
when accessing non-global plugins.
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
This makes it clearer what its actually checking
Support Assignment of One Action Keyword with Multiple Plugins
@pull pull Bot locked and limited conversation to collaborators Jun 10, 2026
@pull pull Bot added the ⤵️ pull label Jun 10, 2026
@pull pull Bot merged commit 5400502 into onesounds:dev Jun 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants