删除过时的 PLANS.md (#6198)

This commit is contained in:
Glavo authored and GitHub committed 2026-06-19 18:44:48 +08:00
1 parent e9a9efd0cc
commit d35d1fc81e
1 file changed
-57
-57
View File
@@ -1,57 +0,0 @@
# Settings Migration Notes
## Storage Layout
- `.hmcl/config/launcher-settings.json`: workspace launcher settings.
- `.hmcl/state/launcher-state.json`: workspace UI/runtime state.
- `.hmcl/config/authlib-injector-servers.json`: workspace authlib-injector server list.
- `.hmcl/cache/authlib-injector-server-metadata.json`: workspace authlib-injector server metadata cache.
- `.hmcl/config/game-directories.json`: workspace game directory profiles in the `directories` list.
- `HMCL_USER_HOME/config/user-game-directories.json`: shared game directory profiles in the `directories` list.
- `.hmcl/config/game-settings.json`: workspace `GameSettings.Preset` entries.
- `.hmcl/config/accounts.json`: workspace portable account metadata in the `accounts` list.
- `HMCL_USER_HOME/config/user-accounts.json`: shared account metadata in the `accounts` list.
- `.hmcl/private/account-private-data.json`: protected workspace account private data.
- `HMCL_USER_HOME/private/user-account-private-data.json`: protected shared account private data.
- `versions/<id>/.hmcl/config/instance-game-settings.json`: instance-specific game settings.
- `HMCL_USER_HOME/state/*.migration-receipt.json` and `.hmcl/state/*.migration-receipt.json`: migration receipts.
## Migration Scope
- Only configuration formats used by `upstream/main` need migration support.
- File formats introduced by this branch are still unstable and do not need compatibility with earlier revisions of this branch.
- Do not add schema versions, migration paths, or compatibility shims only for intermediate file shapes produced by this branch.
- Legacy config files are read as migration inputs and must not be rewritten.
- Detached settings files should be created and saved only through the new storage model.
- Do not encode `upstream/main` wording in production code, comments, logs, schemas, or tests; keep that local baseline note in this file only.
## Migration Rules
- Legacy `hmcl.json` and `.hmcl.json` are read as workspace migration inputs.
- Legacy `accounts` fields in the workspace config are extracted into `accounts.json` and `account-private-data.json`.
- Legacy shared `accounts.json` is used only as a migration input when `user-accounts.json` does not exist.
- Legacy `authlibInjectorServers` and `addedLittleSkin` fields are extracted into `authlib-injector-servers.json`.
- Legacy profile data from `configurations` is converted into `game-directories.json`.
- Legacy profile global settings are converted into `GameSettings.Preset` entries.
- Legacy per-instance `hmclversion.cfg` files are converted into `GameSettings.Instance` data.
## Schema Policy
- Detached settings files use `$schema` with `https://schemas.glavo.site/hmcl/<id>/<version>`.
- Schema documents are stored in `docs/schemas/<id>/<version>.json` as the source files for the `/hmcl/` URL space.
- Schema versions are written as `major.minor.patch`; `major.minor` may be accepted as patch `0` when reading.
- Unsupported major versions are rejected.
- Newer minor versions may be read but must not be overwritten.
- Patch-compatible files may be saved while preserving the original schema string and unknown serialized members.
## Settings Semantics
- Instance settings resolve effective values from their selected parent preset.
- Inheritable fields preserve explicit overrides and default to parent values when not overridden.
## Verification Focus
- Loading an old config should create detached files without losing selected account, selected directory, or selected instance state.
- Editing accounts should update `accounts.json` and `account-private-data.json`, not `launcher-settings.json`.
- Existing shared `accounts.json` should migrate to `user-accounts.json` and `user-account-private-data.json`.
- Launch, export, install, and settings UI flows should read effective `GameSettings` values.