Commit graph

30 commits

Author SHA1 Message Date
Jack251970
2e0db3b90f Add MinimumAppVersion support for plugins
Introduced MinimumAppVersion property to PluginMetadata, enabling plugins to specify required Flow Launcher version. Plugin installation now checks this requirement and prompts users if unsatisfied. Minimum app version logic moved to PluginManager and applied to manifest updates. Added localized strings for user prompts. Refactored SameOrLesserPluginVersionExists to accept PluginMetadata.
2026-02-27 18:30:29 +08:00
Jack251970
2adbc334a2 Improve semaphore lock handling and code robustness
Added `lockAcquired` flags in `PluginsManifest.cs` and `Main.cs`
to ensure semaphore locks are only released if successfully
acquired, preventing potential runtime errors. Updated `finally`
blocks to conditionally release locks based on these flags.

Removed redundant cancellation check in `EverythingAPI.cs` to
simplify code, assuming cancellation is handled elsewhere. These
changes enhance reliability and maintainability of the codebase.
2025-11-07 15:30:07 +08:00
Jack251970
88fd1e56d0 Handle OperationCanceledException gracefully
Added a `catch` block for `OperationCanceledException` in
`PluginsManifest.cs` to ignore canceled operations. Updated
`EverythingAPI.cs` to use cancellation tokens with `_semaphore.WaitAsync`
and handle cancellations by exiting the method cleanly with `yield break`.
2025-11-06 20:47:54 +08:00
Jack251970
0e366a6269 Use PublicApi.Instance instead of private one 2025-09-23 17:40:54 +08:00
Jeremy Wu
5d297c1f19
update to log info for plugin version requirement failure 2025-09-04 22:36:43 +10:00
Jeremy
80b0b6031e handle version parse fail and reorder last manifest fetch date 2025-09-04 21:49:16 +10:00
Jeremy
ffb7c25635 switch PluginsManifest download URL to be from main branch 2025-09-03 21:02:07 +10:00
Jeremy Wu
8392a025f3
fix typo 2025-09-02 22:46:37 +10:00
Jeremy
563ae0eeaf add manifest handling of plugin's MinimumAppVersion property 2025-09-02 22:11:08 +10:00
Jack251970
0682e9bed1 Improve code quality for public api 2025-07-20 11:38:44 +08:00
Jack251970
50130e4b00 Use class name instead 2025-04-13 17:59:39 +08:00
Jack251970
b9c0eb7b78 Code quality 2025-04-04 15:56:18 +08:00
Jack251970
e2d9148702 Move user plugin to plugin project 2025-04-04 15:52:57 +08:00
Jack251970
319f016ced Remove unnessary list refresh 2025-02-10 12:01:21 +08:00
Jack251970
d8f3280632 Fix unneccessary plugin result update 2025-02-10 11:54:09 +08:00
Jack251970
864402704d Fix an issue that user plugins cannot be updated when reupdating the plugins manifest 2025-02-09 21:54:02 +08:00
Jeremy
9dacfb145a Merge remote-tracking branch 'origin/dev' into jsonrpc_v2 2023-08-07 13:16:26 +10:00
Ioannis G
df149fae8a
increase plugin manifest fetch timeout to 2m 2023-07-08 13:41:52 +03:00
Ioannis G
2d6b476685
use Ctrl+R to fetch primary manifest source
from a `pm install` or `pm update` query

should help with #2048
2023-07-05 17:01:55 +03:00
Ioannis G
f03ac76494
throttle PluginsManifest.UpdateManifestAsync
avoid repeatedly fetching manifest data while the user is typing a `pm` query
2023-07-05 16:54:50 +03:00
Ioannis G
194dbabbde
add more manifest file fallback URLs 2023-07-05 00:01:13 +03:00
Ioannis G
f7b585803d
rework how we fetch plugins from manifest URLs
Introduces the concept of a store of community plugins, which is currently
limited to the official PluginsManifest repository.

Each store can support more than one manifest file URLs. When fetching, all
URLs are used until one of them succeeds. This fixes issues with geo-blocking
such as #2195

Plugin stores can be expanded in the future to be user-configurable, see #2178
2023-07-04 23:44:35 +03:00
Hongtao Zhang
32bbf1eaf0 Finally make JSONRPC Bidirection work 2023-06-25 00:43:21 +08:00
Hongtao Zhang
e9bf62ed08
Revert "Merge branch 'handle-icon-urls' of https://github.com/Flow-Launcher/Flow.Launcher into handle-icon-urls"
This reverts commit cae0b7be77, reversing
changes made to ba0aee14ba.
2022-10-30 14:23:04 -05:00
Ioannis G
a5b8b0dcb2
add Http.SendAsync, refactor PluginsManifest to use it 2022-01-11 16:07:25 +02:00
Ioannis G
4d0c57f52f
pull plugin manifest file from jsdelivr CDN 2022-01-11 15:14:11 +02:00
Ioannis G
35e043859c
pass CancellationToken to PluginsManifest.UpdateManifestAsync 2022-01-11 06:12:10 +02:00
Ioannis G
33fb0ddee6
refactor PluginsManifest to use conditional requests 2022-01-11 06:00:14 +02:00
Hongtao Zhang
5ae9ee46c0 Suppress Startup Manifest Download Error Notification 2021-12-19 11:37:38 -06:00
Kevin Zhang
3d06404614 Move PluginsManifest to Flow.Launcher.Core & Change PluginStore Binding to PluginsManifest 2021-10-10 16:46:54 -05:00