Commit graph

686 commits

Author SHA1 Message Date
Jack251970
80b7775412 Return results when query is empty for program 2025-07-04 10:50:50 +08:00
Jeremy Wu
b440aaab37
New Crowdin updates (#3730) 2025-07-03 15:01:52 +03:00
Jack251970
c4cbf941cf Add directory null check 2025-06-23 13:13:45 +08:00
Jack251970
107da050a5 Fix build issue 2025-06-23 13:02:04 +08:00
Jack251970
68fc103d7f Use trick to get the cache directory path 2025-06-23 12:45:31 +08:00
Jack251970
b6b45d495a Improve code quality 2025-06-15 01:24:07 +08:00
Jack Ye
7fd3a4a427
Merge branch 'dev' into administrator_mode 2025-06-13 23:47:37 +08:00
Jeremy Wu
a77c80f7c1
New Crowdin updates (#3615) 2025-06-13 15:37:36 +03:00
Jack251970
898dbb8402 Use new api for uwp package opening 2025-06-13 13:30:51 +08:00
Jack251970
3ed8af8c6c Use new api for program plugin 2025-06-13 13:22:27 +08:00
Jack251970
a775323108 Improve uac dialog api function 2025-06-12 16:07:09 +08:00
Jack251970
21e8d92aa2 Add show uac dialog api function 2025-06-12 15:30:25 +08:00
Jack251970
433e0fd0e1 Improve uac dialog path 2025-06-12 15:18:14 +08:00
Jack251970
fb4735fbc0 Fix program deelevate open issue 2025-06-11 20:02:54 +08:00
Jack251970
fc53efd6a6 Use new api function to open application 2025-06-11 16:04:17 +08:00
Jack Ye
2c1f1617cd
Merge branch 'dev' into administrator_mode 2025-06-10 19:42:41 +08:00
Jack251970
08c8b8c09f Do not show UI when shortcuts cannot be resolved 2025-06-05 19:15:26 +08:00
Jack Ye
ca6f077e63
Merge branch 'dev' into administrator_mode 2025-06-03 14:38:56 +08:00
Jeremy Wu
db97288282
New Crowdin updates (#3574) 2025-06-03 06:52:56 +03:00
Jack251970
91f7a4fd55 Remove useless semicolon 2025-05-22 22:17:10 +08:00
Jack Ye
0edd626cfb
Remove useless semicolon
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-22 22:13:46 +08:00
Jack251970
484f91c52d Improve UAC dialog 2025-05-22 20:26:41 +08:00
Jack251970
10d379f350 Support running application under non-admin mode & Show UAC dialogs when running admin mode when application is under admin mode 2025-05-22 19:54:42 +08:00
Jeremy Wu
2b9529d2f9 set all of plugins' version to default 1.0.0 2025-05-20 09:06:11 +00:00
Jeremy Wu
8aed36e2ef
New Crowdin updates (#3531) 2025-05-18 11:26:45 +03:00
Jack Ye
54c949b3ca
Merge pull request #3539 from Flow-Launcher/program_plugin_delete_logic
Improve Program plugin delete button logic
2025-05-14 14:40:08 +08:00
Jack251970
8325963047 Fix size changed width issue 2025-05-14 14:23:35 +08:00
Jack251970
da77085508 Fix logic & Improve code quality 2025-05-14 11:37:55 +08:00
Jack251970
204d1d285a Improve string keys 2025-05-13 13:04:26 +08:00
Jack251970
a099935169 Fix message 2025-05-13 13:03:04 +08:00
Jack251970
284729afb5 Improve message noticification 2025-05-13 13:01:24 +08:00
Jack251970
e0ac6d5fee Improve Program plugin delete button logic 2025-05-13 12:49:35 +08:00
Jeremy Wu
1775c0fd26
New Crowdin updates (#3430) 2025-05-11 13:27:09 +03:00
Jack251970
d867875cde Format xaml styles 2025-04-24 19:46:02 +08:00
DB p
f9a201a33c "disable from displaying" to "Hide" 2025-04-20 10:12:31 +09:00
Jack251970
1d16b30b64 Suppress async void 2025-04-15 13:22:22 +08:00
Jack251970
3f57f944f6 Remove useless debug 2025-04-13 17:52:42 +08:00
Jack251970
4f246460c3 Fix build issue 2025-04-09 16:46:13 +08:00
Jack Ye
ab34e83c5e
Merge branch 'dev' into 250320BookmarkFavicon 2025-04-09 16:41:28 +08:00
Jeremy Wu
c7303611a2
Merge pull request #3429 from Jack251970/stopwatch_api
New API Function from Stopwatch & Improve Program Plugin
2025-04-09 18:39:42 +10:00
Jack Ye
f5de5d70db
Fix log message issue
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-09 13:08:28 +08:00
Jack251970
826bc42536 Improve code quality 2025-04-09 12:44:26 +08:00
Jack251970
9c07989edf Improve code quality 2025-04-09 12:14:07 +08:00
Jack251970
24d43ed84b Use api functions in Program plugin 2025-04-08 21:46:02 +08:00
Jeremy Wu
9bc27a4ecd
New Crowdin updates (#3348) 2025-04-08 21:41:15 +08:00
Jack251970
482e37316a Remove useless releases 2025-04-08 19:46:40 +08:00
Jack251970
d7ca36e60a Change variable name 2025-04-08 19:44:30 +08:00
Jack251970
2ff09cf9b0 Improve code quality 2025-04-08 19:41:02 +08:00
Jack251970
4c4a6c0e22 Add log handler for indexing 2025-04-08 19:27:53 +08:00
Jack251970
68268026de Improve performance 2025-04-08 19:21:03 +08:00
Jack251970
c11ee2f9e7 Improve code quality & comments & Fix lock issue 2025-04-08 17:20:57 +08:00
Jack251970
734c5bb67d Fix lock release issue 2025-04-08 16:59:27 +08:00
Jack251970
7da2884e84 Add locks for win32s & uwps 2025-04-08 16:29:03 +08:00
Jack Ye
8cd81b74f9
Merge branch 'dev' into binary_storage_api 2025-04-04 16:41:08 +08:00
Jack251970
44ba60cdfc Move ValidateDirectory functions to FileFolders for plugin usage 2025-04-02 20:17:32 +08:00
Jack251970
0496d6c04a Use api functions for Program plugin 2025-04-01 14:21:29 +08:00
Jack Ye
c87b731efd
Merge branch 'dev' into plugin_settings_cache_path 2025-03-21 07:31:12 +08:00
Jack251970
13fcdc60fa Fix typo 'seperator' 2025-03-20 18:11:53 +08:00
Jack Ye
1baf1751f2
Merge branch 'dev' into settings_panel 2025-03-16 20:04:22 +08:00
Jack Ye
c690e591ff
Merge branch 'dev' into plugin_settings_cache_path 2025-03-16 19:42:58 +08:00
Jeremy Wu
ecebf17ea2
New Crowdin updates (#3186)
New translations
2025-03-14 11:08:08 +02:00
Jack251970
62677bc40e Fix program plugin settings panel top bottom margin issue 2025-03-01 22:08:08 +08:00
Jack251970
330a11a843 Adjust margin & Make title vertically center in program plugin 2025-02-28 21:57:27 +08:00
Jack251970
ac956bccef Redesgin settings panel for program plugin 2025-02-27 20:51:16 +08:00
Hongtao Zhang
865c865942 update to .net 9 2025-02-26 22:37:41 +08:00
Jack251970
fe86e23dea Add exception handles 2025-02-24 16:11:49 +08:00
Jack251970
a0c2a42e17 Let Program plugin use plugin cache path 2025-02-24 15:15:26 +08:00
Jeremy Wu
4b03aa477c
Merge pull request #3240 from Jack251970/back_query_results_before_change_query
Fix ChangeQuery & ReQuery Work Issue When Results Are Not From Query Results
2025-02-23 10:13:11 +11:00
Jack251970
aee585620a Remove back to query result and call this function in ChangeQuery & ReQuery 2025-02-22 19:32:08 +08:00
Jack251970
79bcf8be18 Use system environment for Windows app path 2025-02-21 09:32:58 +08:00
Jack251970
097633e9e0 Fix typos 2025-02-21 09:29:43 +08:00
Jack251970
7ccfbcae7f Add hide dulplicated windows apps into settings panel 2025-02-20 23:15:12 +08:00
Jack251970
ccf8d876ae Add support for hiding dulplicated windows apps 2025-02-20 14:59:16 +08:00
Jeremy Wu
735cc14821
Merge pull request #3203 from Jack251970/context_menu_back_to_query
Improve context menu item action response & Fix origin query null exception
2025-02-18 21:57:32 +11:00
Jeremy
99323161b7 Merge branch 'dev' into merge_back_1.19.5 2025-01-27 17:29:50 +11:00
Jeremy
b9890a9756 bump plugin versions 2025-01-27 16:48:43 +11:00
Jeremy
f9518c073d New Crowdin updates (#3062)
* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations resources.resx (Portuguese)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

---------

Co-authored-by: Kevin Zhang <45326534+taooceros@users.noreply.github.com>
2025-01-27 16:39:07 +11:00
Jack251970
1562c88ea7 Improve context menu item action response 2025-01-26 20:07:40 +08:00
Jeremy Wu
0c7dc07c74
fix typo 2025-01-26 09:34:07 +11:00
Jack251970
71dad9f356 Add support for more uninstaller prefixs 2025-01-24 18:35:11 +08:00
Jack251970
fec553c87c Improve uninstaller check function 2025-01-24 12:11:48 +08:00
Kevin Zhang
fd3576d52c
Merge pull request #3122 from Jack251970/dev3
Replace DllImport and flags with CSWin32 & Remove useless DllImport and flags & Fix right Win key click issue
2024-12-27 16:06:44 -08:00
Jack251970
02a45661c4 Add consistent error handling for GetArguments 2024-12-26 13:04:15 +08:00
Hongtao Zhang
0153f71083 use stackalloc if possible and fix some incorrect use of safehandle 2024-12-25 11:20:09 -06:00
Jeremy Wu
e7e825e930
New Crowdin updates (#3062)
* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations resources.resx (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations resources.resx (Portuguese)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations resources.resx (Hebrew)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Hebrew)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Arabic)
[ci skip]

* New translations en.xaml (Czech)
[ci skip]

* New translations en.xaml (Danish)
[ci skip]

* New translations en.xaml (German)
[ci skip]

* New translations en.xaml (Italian)
[ci skip]

* New translations en.xaml (Japanese)
[ci skip]

* New translations en.xaml (Korean)
[ci skip]

* New translations en.xaml (Dutch)
[ci skip]

* New translations en.xaml (Polish)
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

* New translations en.xaml (Russian)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (Turkish)
[ci skip]

* New translations en.xaml (Ukrainian)
[ci skip]

* New translations en.xaml (Chinese Simplified)
[ci skip]

* New translations en.xaml (Chinese Traditional)
[ci skip]

* New translations en.xaml (Vietnamese)
[ci skip]

* New translations en.xaml (Portuguese, Brazilian)
[ci skip]

* New translations en.xaml (Norwegian Bokmal)
[ci skip]

* New translations en.xaml (Serbian (Latin))
[ci skip]

* New translations en.xaml (Spanish, Latin America)
[ci skip]

* New translations en.xaml (Slovak)
[ci skip]

* New translations en.xaml (French)
[ci skip]

* New translations en.xaml (Spanish (Modern))
[ci skip]

* New translations en.xaml (Portuguese)
[ci skip]

---------

Co-authored-by: Kevin Zhang <45326534+taooceros@users.noreply.github.com>
2024-12-25 18:41:40 +02:00
Jack251970
a899ff83e5 Improve code quality 2024-12-14 11:46:09 +08:00
Jack251970
a088f91541 Add comments for string truncation 2024-12-14 11:17:29 +08:00
Jack251970
313f86b648 Replace DllImport & flags with CSWin32 2024-12-10 15:09:06 +08:00
Jeremy Wu
ce6b4d90bd
Merge pull request #3093 from Jack251970/dev4
Replace original MessageBox with MessageBoxEx & Improve MessageBoxEx display style & Add new public api for using MessageBoxEx
2024-12-08 10:44:08 +11:00
Jack251970
534a1117aa Use public api to call ShowMsgBox functions & remove useless Core project import 2024-11-27 12:21:34 +08:00
Jack251970
897fd7aaba Replace Flow.Launcher.Core.MessageBoxType & MessageBoxImage with System.Windows.MessageBoxButton & MessageBoxImage
Remove useless warning file
2024-11-26 21:31:13 +08:00
dependabot[bot]
f3c21d5842
Bump Microsoft.Extensions.Caching.Memory from 8.0.1 to 9.0.0
Bumps [Microsoft.Extensions.Caching.Memory](https://github.com/dotnet/runtime) from 8.0.1 to 9.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](https://github.com/dotnet/runtime/compare/v8.0.1...v9.0.0)

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.Caching.Memory
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 22:59:12 +00:00
Jack251970
b30cc4fc38 Replace System.Windows.MessageBox with MessageBoxEx 2024-11-25 10:38:43 +08:00
Jack251970
9cb464df05 Add debug log for exception. 2024-11-24 09:21:27 +08:00
Jack251970
4e3fd84f06 Remove useless comment 2024-11-23 21:32:42 +08:00
Jack251970
6e4f6e2abf Fix System.OperationCanceledException Issue (#3091) 2024-11-22 11:20:12 +08:00
Jeremy Wu
1bbc104182 version bump plugins 2024-11-05 07:30:53 +00:00
Jeremy Wu
ecfbf32128
New Crowdin updates (#3034) 2024-11-05 05:31:06 +02:00
Jeremy Wu
9811cc3962
New Crowdin updates (#3029) 2024-10-16 07:22:28 +03:00
Jeremy Wu
58bf75d5cf
bump plugin versions 2024-10-16 13:37:48 +11:00