FEAT-061 - Strong Preference Schema Validation¶
Summary¶
The preference contract now has a generated strong schema on top of the raw INI inventory. It splits same-name keys by section, records REST bindings, records Preferences UI source bindings, and fails Python tests on schema drift or duplicate concrete storage keys.
Outcome¶
- Added
preference-schema.v1.jsonwith 595 schema entries and 800 UI bindings. - Split same-name storage keys such as
PortandBindAddrby section so duplicate storage ownership can be checked. - Added source parsers for preference dialogs,
resource.h,emule.rc, REST mutable preference metadata, andPPg*.cpppreference touches. - Added Python tests that fail when schema generation drifts, concrete storage keys duplicate, REST fields drift, UI bindings point to missing resources, or direct UI binding ownership duplicates.
- Kept runtime behavior, persisted keys, defaults, and REST field names unchanged.
Validation¶
python -m emule_workspace test python --workspace-root ..\.. -qpassed with 428 tests.
Implementation Commits¶
- Build tests:
71645e2(FEAT-061 add strong preference schema validation) - Tooling: recorded by the commit that adds this item.