-
Notifications
You must be signed in to change notification settings - Fork 961
Reckless UI features #8630
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Reckless UI features #8630
Conversation
f8b783e to
71a569a
Compare
b2ccfc0 to
7ab612f
Compare
This doesn't change the argparse behavior with --help/-h, but it does correct the output in this one case where we must manually call it.
This is needed when installation is managed by an application that may not have access to the filesystem to clean up manually.
'Reckless listinstalled' will now list all plugins installed and managed by reckless. Changelog-Added: reckless: `listinstalled` command lists plugins installed by reckless.
Keep state on the clone and subdirectories so that subsequent access doesn't try fetching again.
…stall reckless listavailable sorts through the available sources to find plugins for which we have installers. Changelog-Added: reckless gained the 'listavailable' command to list available plugins from reckless' sources.
Requested by @ShahanaFarooqui while accessing reckless via rpc in order to find out where the plugins are installed and enabled.
Allows listconfig, listinstalled, and listavailable to be called via rpc. Also allow processing non-array result in listconfig output.
7ab612f to
0fec93b
Compare
|
Rebased and updated reckless rpc to handle single argument reckless commands (the new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @endothermicdev, thanks for the PR! I am excited to start integrating reckless with these cool new options into the UI soon. In the meantime, here are the results from my testing of reckless.
1. install "backup" Crashes Lightning Node
After running lightning-cli reckless install "backup", it installs the backup plugin but crashes without any error log:
2025-11-14T05:35:08.692Z DEBUG plugin-recklessrpc: calling: reckless -v --json -l /home/.lightning --network regtest install backup (null)
Restart keeps repeatedly crashing the CLN node:
2025-11-14T05:36:51.578Z DEBUG plugin-manager: started(798730) /home/.lightning/reckless/backup/backup.py
2025-11-14T05:36:51.752Z INFO plugin-backup.py: Could not find backup.lock in the lightning-dir
2025-11-14T05:36:52.757Z INFO plugin-backup.py: Killing process lightningd (798649)
2. install 1ff0ee6 "clnrod" Ignored the Requested Commit
The plugin installed, but the requested commit 1ff0ee6 was not honored.
3. Installing From GitHub URLs Fails
Reckless is unable to detect the plugin from the provided URL.
Examples:
lightning-cli reckless install "https://github.com/nettijoe96/c-lightning-graphql"
lightning-cli reckless install "https://github.com/nettijoe96/c-lightning-graphql/tree/12888f124bbdf9ffe1fbbd3d7cf0286c66184e8e"
4. listinstalled Reckless Plugin Vs RPC Output
The RPC returns only a string array of plugin names, while the standalone reckless plugin returns full metadata (enabled, entrypoint, installed commit, etc.).It would be useful for the RPC to return the richer JSON structure.
5. Improve listavailable Output Format
Currently it returns a simple text array of plugins. But I would suggest switching to JSON objects so manifest metadata can be also added once available (eg. description, entrypoint, default commit, last updated, language, etc.).
6. Should .remote_sources Be Deleted After listavailable?
7. Plugin Search Priority Is Unclear
Proposed priority:
- Installed plugins (enabled/disabled)
- Source URL
- .remote_sources directory
Step to reproduce:
- Install "summary" plugin
- Call
listavailablewhich will create.remote_sourcesdirectory - Call
search "summary"will list it from.remote_sources - Manually delete
.remote_sources - Call
search "summary", this time it will list it from the source urlhttps://github.com/lightningd/plugins
8. uninstall "<plugin>" Leaves disable-plugin in Config
The plugin directory is removed, but an entry remains in bitcoin-reckless.conf as disable-plugin=<plugin>, unsure if this is intentional. Though RPC still shows correct enabled/disabled state.
9. Invalid or Missing Subcommands Crash the Process
It should return a structured error instead of crashing.
Example failing commands: search, add, remove, source, source "xyz", update, update "summary"
$ lightning-cli reckless source
{
"code": -3,
"message": "the reckless process has crashed"
}
10. reckless help Output Is Not Formatted
11. reckless --version Returns CLN Version
It should return the reckless plugin version instead.
12. Missing Commands in Document Synopsis
The following commands are missing from the documentation synopsis:
search
update
help
listconfig
listavailable
listinstalled
13. Missing Documentation Descriptions
Descriptions are missing for these commands:
listavailable
listinstalled
listconfig
14. Clear Old Reckless Configurations
[UPDATE]: After reconsideration, this feels like a low-priority UI feature. Users should explicitly choose to clear one plugin at a time. A factory-reset-style option may be premature for the UI.
Please note that I haven’t reviewed the code yet. To save time and effort, I’ll begin the code review once these commands have matured and are working as expected.
Important
25.12 FREEZE October 27th: Non-bugfix PRs not ready by this date will wait for 26.03.
RC1 is scheduled on November 10th
The final release is scheduled for December 1st.
Checklist
Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:
Addresses several issues raised in #8439. Still working on a few of them.