Show version-locked plugins in menu

This commit is contained in:
pleb
2026-07-05 15:01:58 -07:00
parent 1858f76766
commit 53ad6e2c0d
10 changed files with 212 additions and 83 deletions
+10 -10
View File
@@ -6,10 +6,10 @@ The first implementation focuses on safe local workflows:
- discover BSManager instances
- scan existing `Plugins/` and `Libs/` files
- read checked-in registry and per-version lockfiles
- read the checked-in plugin catalog and per-version locks
- generate a machine-readable install plan from local release assets
- apply exactly that plan and record install state
- uninstall only files recorded in install state
- apply exactly that plan and record managed install state
- uninstall only files recorded in managed install state
Default BSManager instance root:
@@ -125,12 +125,12 @@ That is equivalent to `PYTHONPATH=src python -m plugin_helper menu` when run
from an interactive terminal.
The menu reads `plugin-helper.local.toml` when present, shows each discovered
Beat Saber install with its resolved state directory, and lets you toggle
managed plugins with arrow keys and Space. In the plugin table, use `d` to
disable all currently enabled managed plugins (except `bsipa`) and `e` to enable all
currently disabled managed plugins. With a single Beat Saber installation, the
menu opens the plugin table directly. Re-enabling a plugin auto-bootstraps BSIPA when
needed.
Beat Saber install with its resolved state directory, and lists plugins from
that instance's version lock. Managed install state decides whether each row is
currently checked or unchecked. In the plugin table, use `d` to disable all
currently enabled plugins (except `bsipa`) and `e` to enable all currently
unchecked plugins. With a single Beat Saber installation, the menu opens the
plugin table directly. Re-enabling a plugin auto-bootstraps BSIPA when needed.
The individual subcommands are mostly for automation and debugging. If you use
them, pass `--state-dir` directly only when you intentionally want to override
@@ -216,7 +216,7 @@ custom content or non-obvious user choices rather than pure cache data.
Windows or through Proton on Linux), and records every bootstrap-relevant
file under root `IPA.exe*`, `winhttp.dll`, `Libs/`, and `IPA/`, including
backups created during patching.
- If an instance lockfile includes `bsipa`, ordinary plugin plans require a
- If an instance version lock includes `bsipa`, ordinary plugin plans require a
recorded bootstrap state plus a `Logs/_latest.log` that shows BSIPA startup.
Use `bootstrap-check` before planning a batch when you want a quick gate.
- Use [`docs/SMOKETEST.md`](docs/SMOKETEST.md) after installing or removing a