Host: 256 feature flags, the onboarding mode (mode_get/mode_set, shell-only), and the one-time move of replaced plugin files to feature flags

- settings: MAX_FEATURES 64 -> 256 (an older app's whole-map backup still validates)
- modes: ModeState {mode, onboarded, existing} in modes.json; existing is decided natively on the first start
- plugins::migrate: PluginHost.superseded (file -> flag); enabled and as shipped -> flag on and the file goes; edited -> kept, flag left off; marker written last, every step repeatable; map_backup for imported enabled lists
- a superseded file is never written again by install_bundled
- create-waybetter: the host command list and PluginHost.superseded
This commit is contained in:
CRTkafa 2026-09-30 18:34:13 +07:00
parent 43fa215f3b
commit e38314f65c
9 changed files with 477 additions and 6 deletions

View file

@ -515,6 +515,7 @@ mod tests {
css_element_id: "wb-test-css",
example: None,
bundled: &[],
superseded: &[],
};
const THEME: &[u8] = br#"{"name":"Nord","author":"me","css":"a{}"}"#;