feat(#448): schema-driven config UI with category tabs, search, typed inputs
Closes #448 Replaced the raw YAML editor with a full schema-driven config management UI matching the dashboard's ConfigPage experience. ### New API endpoints (HermesApiService) - GET /api/config — load structured config - GET /api/config/schema — load schema with field types + categories - GET /api/config/defaults — load defaults for reset - PUT /api/config — save config (deep-merged on backend) ### Data models - ConfigSchemaResponse — wraps fields + category_order - SchemaField — type, description, category, options - ConfigUpdateRequest — config map + optional profile ### ConfigViewModel - Loads config + schema + defaults + path on init - Tracks pending changes as dot-path → JsonElement map - Builds nested JSON changeset for the save API - YAML mode toggle with raw YAML load/save - Per-category reset to defaults ### ConfigScreen - Category tabs with field-count badges - Search filtering across key, label, description, category - Typed inputs: boolean toggles, select dropdowns, number inputs - Modified highlighting with primaryContainer tint - YAML ↔ Form mode toggle - Sticky save indicator with pending-change count
This commit is contained in:
5 files changed
+962
-89
No files matched your search
@@ -336,7 +336,8 @@
|
||||
<string name="config_screen_title">Configuration</string>
|
||||
<string name="config_placeholder_yaml">YAML Config...</string>
|
||||
<string name="config_action_reset">Reset</string>
|
||||
<string name="config_action_save">Save Config</string>
|
||||
<string name="config_action_save">Save</string>
|
||||
<string name="config_action_save_yaml">Save YAML</string>
|
||||
|
||||
<!-- Profiles Screen -->
|
||||
<string name="profiles_empty_title">No profiles available</string>
|
||||
|
||||
Reference in new issue
Block a user