feat(common): persist configuration as TOML, migrate legacy config.ini

- save() writes <config>/config.toml (atomic temp+rename), flat keys
  at the top level and group/sub keys as [group] tables, values as
  native TOML int/float/bool/string (non-finite doubles degrade to
  strings and restore via the declared type)
- load() prefers config.toml; a legacy config.ini (C++ or pre-TOML
  Rust builds) is read once and immediately re-persisted as TOML; the
  INI file is left in place; a corrupt TOML is reported, never
  silently discarded
- cd.yml: drop a stale oakengine comment (the crate is retired)
This commit is contained in:
2026-08-20 22:28:58 +08:00
parent c5455c7521
commit 12ffce77db
4 changed files with 415 additions and 118 deletions
+1 -4
View File
@@ -77,10 +77,7 @@ jobs:
rsvg-convert -w 512 -h 512 Oak_Icon.svg -o icons/icon.png
file icons/icon.png
# Build the packaged binaries (default members: the app, oak-cli,
# oak-worker). oakengine is a workspace member but NOT a default
# member (M14 R4: pure cdylib for plugins/external consumers — no
# packaged binary links it), so it is not built here.
# Build the packaged binaries (default members: the app, oak-cli, oak-worker).
- name: Build (release)
run: cargo build --release --locked