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-02 23:48:44 +03:00
2026-06-29 16:33:12 +03:00
2026-07-03 08:39:35 +03:00
2026-06-21 00:18:35 +03:00
2026-06-29 21:16:38 +03:00
2026-06-29 18:48:45 +03:00
2026-06-16 00:52:36 +03:00
2026-06-16 00:52:36 +03:00
2026-06-18 02:30:27 +03:00
2026-06-16 00:36:58 +03:00
2026-06-16 00:06:43 +03:00
2026-06-29 08:56:39 +03:00
2026-06-28 02:23:25 +03:00
2026-06-16 00:02:05 +03:00
2026-06-22 14:05:31 +03:00
2026-06-22 14:05:31 +03:00
2026-06-20 02:43:26 +03:00
2026-06-29 21:16:38 +03:00
2026-06-16 00:00:36 +03:00
2026-06-19 23:58:34 +03:00
2026-06-19 23:58:34 +03:00
2026-06-16 00:00:36 +03:00
2026-06-16 00:00:36 +03:00
2026-06-16 00:00:36 +03:00
2026-06-16 00:00:36 +03:00
2026-07-03 00:52:49 +03:00