M57
efb8e528ef
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
2026-07-03 08:39:35 +03:00
..
2026-07-03 00:52:49 +03:00
2026-06-30 17:16:17 +03:00
2026-06-29 08:56:39 +03:00
2026-07-01 23:56:20 +03:00
2026-06-27 01:26:27 +03:00
2026-07-03 08:39:35 +03:00
2026-06-27 00:45:48 +03:00
2026-06-29 21:16:38 +03:00
2026-06-24 21:26:32 +03:00
2026-06-26 05:25:01 +03:00
2026-06-24 21:26:32 +03:00
2026-06-24 16:37:09 +03:00
2026-06-30 16:29:21 +03:00
2026-06-24 21:26:32 +03:00
2026-06-28 02:23:25 +03:00
2026-06-30 10:08:01 +03:00
2026-06-29 00:45:16 +03:00
2026-06-25 20:31:21 +03:00
2026-06-27 00:45:48 +03:00
2026-06-30 17:16:17 +03:00
2026-06-27 00:45:48 +03:00
2026-06-24 21:26:32 +03:00
2026-06-24 21:26:32 +03:00
2026-07-03 00:52:49 +03:00