Document asset cache roadmap
This commit is contained in:
@@ -23,6 +23,39 @@ installations even when they share an instance name. Lockfiles can stay keyed by
|
|||||||
Beat Saber version, but bootstrap state, generated plans, backups, and
|
Beat Saber version, but bootstrap state, generated plans, backups, and
|
||||||
`installed.json` need to stay target-specific.
|
`installed.json` need to stay target-specific.
|
||||||
|
|
||||||
|
Asset downloads are currently colocated with target-specific state under the
|
||||||
|
same state root. That is convenient for the first CLI slice, but it makes
|
||||||
|
dual-boot use awkward: pointing Linux at the Windows state root reuses the asset
|
||||||
|
downloads, but also reuses the Windows `installed.json`. A later state layout
|
||||||
|
should separate a reusable asset cache from per-install managed state, for
|
||||||
|
example:
|
||||||
|
|
||||||
|
```text
|
||||||
|
cache/
|
||||||
|
downloads/<beat-saber-version>/<plugin-id>/<asset>
|
||||||
|
|
||||||
|
instances/
|
||||||
|
<install-id>/
|
||||||
|
installed.json
|
||||||
|
bootstrap.json
|
||||||
|
plans/
|
||||||
|
backups/
|
||||||
|
```
|
||||||
|
|
||||||
|
There is no urgent need to migrate the layout before the rest of the helper
|
||||||
|
settles, but new code should avoid assuming that downloads and per-install
|
||||||
|
state must always live together.
|
||||||
|
|
||||||
|
The version lock should eventually include structured source URLs for every
|
||||||
|
asset so the helper can fetch missing downloads itself. The lock already pins
|
||||||
|
the selected repo, tag, asset name, and checksum; adding source fields would
|
||||||
|
make the fetch path explicit for both GitHub release assets and BeatMods CDN
|
||||||
|
fallbacks. Hashes should remain useful audit metadata and a warning signal, but
|
||||||
|
the UX needs a recovery path for replaced upstream assets: report the mismatch,
|
||||||
|
show the expected and actual hashes, and let the user intentionally refresh or
|
||||||
|
re-lock after inspection instead of treating every mismatch as an unrecoverable
|
||||||
|
dead end.
|
||||||
|
|
||||||
## Future: Nix-Orchestrated Plugin Sets
|
## Future: Nix-Orchestrated Plugin Sets
|
||||||
|
|
||||||
Once Beat Saber is running on Linux through Steam Proton, it may make sense to let Nix orchestrate the plugin payload itself.
|
Once Beat Saber is running on Linux through Steam Proton, it may make sense to let Nix orchestrate the plugin payload itself.
|
||||||
|
|||||||
Reference in New Issue
Block a user