Ben Barclay
871900df63
feat(config): route every user config.yaml read and write through a ConfigBackend seam
...
Add hermes_cli/config_backend.py (config-config design §4.1, D10/D11): a
ConfigBackend protocol, the FileBackend (today's behaviour), selection by
HERMES_CONFIG_BACKEND only (default file; 'remote' and unknown values fail
closed with ConfigBackendUnavailable), and path-level helpers
(read_config_doc, read_config_doc_readonly, config_version, config_exists,
write_config_key, write_config_document, supports_file_tooling).
Migrate every direct reader/stat/exists/bypass writer of a user config.yaml
to the helpers (config.py loaders + caches, config_effective, env_loader,
gateway, TUI, CLI watchers, cron, tools, profiles, logging, time). File
tooling (config edit, backups, xAI migration rewrite, raw dashboard editor)
checks supports_file_tooling() first; migrations skip write-back without it.
Add scripts/check_config_yaml_readers.py (CI lint next to the writers gate)
that rejects a direct read of a config path outside the backend.
2026-10-25 18:54:09 -07:00
..
2026-10-17 04:23:04 -07:00
2026-10-09 17:34:38 +02:00
2026-10-09 17:34:38 +02:00
2026-10-10 15:20:13 +02:00
2026-10-10 15:20:13 +02:00
2026-10-23 01:41:24 -07:00
2026-10-25 05:45:51 -07:00
2026-10-10 15:20:13 +02:00
2026-10-08 17:22:54 +02:00
2026-10-09 17:34:38 +02:00
2026-10-22 13:50:10 -07:00
2026-10-08 19:54:07 +02:00
2026-10-18 18:47:43 -07:00
2026-10-08 17:22:54 +02:00
2026-10-25 03:01:26 -07:00
2026-10-07 10:57:32 -07:00
2026-10-14 00:29:11 +05:30
2026-10-25 03:01:26 -07:00
2026-10-07 00:07:02 -05:00
2026-10-07 18:15:29 +05:30
2026-10-21 23:05:11 -04:00
2026-10-12 19:19:55 +05:30
2026-10-12 19:19:55 +05:30
2026-10-10 19:22:07 -07:00
2026-10-16 14:21:39 -07:00
2026-10-10 19:22:07 -07:00
2026-10-10 19:22:07 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-09 17:34:38 +02:00
2026-10-18 18:47:43 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-25 17:50:59 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-24 19:56:21 -07:00
2026-10-07 13:20:42 +05:30
2026-10-08 17:22:54 +02:00
2026-10-16 15:21:07 -04:00
2026-10-05 23:33:41 -07:00
2026-10-08 17:22:54 +02:00
2026-10-16 15:21:07 -04:00
2026-10-08 12:09:24 -07:00
2026-10-16 14:18:50 -07:00
2026-10-15 16:26:05 +05:30
2026-10-17 07:23:06 -07:00
2026-10-09 17:34:38 +02:00
2026-10-24 19:56:21 -07:00
2026-10-08 19:28:23 +02:00
2026-10-20 12:54:49 -04:00
2026-10-20 21:04:30 -04:00
2026-10-20 21:04:30 -04:00
2026-10-08 17:22:54 +02:00
2026-10-23 01:41:24 -07:00
2026-10-23 01:41:24 -07:00
2026-10-21 23:05:11 -04:00
2026-10-10 19:22:07 -07:00
2026-10-17 04:25:00 -07:00
2026-10-25 09:39:38 -04:00
2026-10-16 15:21:07 -04:00
2026-10-25 09:39:38 -04:00
2026-10-25 17:50:59 -07:00
2026-10-11 20:10:06 -07:00
2026-10-10 19:22:07 -07:00
2026-10-08 17:22:54 +02:00
2026-10-25 06:18:48 -07:00
2026-10-11 21:41:22 -07:00
2026-10-15 15:15:31 +05:30
2026-10-17 07:23:06 -07:00
2026-10-08 17:22:54 +02:00
2026-10-18 02:31:09 -07:00
2026-10-20 18:08:50 +05:30
2026-10-25 11:35:06 -04:00
2026-10-08 17:22:54 +02:00
2026-10-24 17:31:52 -07:00
2026-10-07 10:57:33 -07:00
2026-10-16 14:18:50 -07:00
2026-10-24 18:45:02 -07:00
2026-10-20 18:08:50 +05:30
2026-10-24 18:45:02 -07:00
2026-10-09 14:25:07 -07:00
2026-10-09 17:34:38 +02:00
2026-10-25 05:10:15 -07:00
2026-10-08 17:22:54 +02:00
2026-10-16 07:26:28 -07:00
2026-10-10 04:27:27 -07:00
2026-10-16 15:21:07 -04:00
2026-10-20 15:08:00 +05:30
2026-10-10 20:18:10 +05:30
2026-10-18 19:44:32 -04:00
2026-10-18 19:44:32 -04:00
2026-10-25 06:18:48 -07:00
2026-10-10 17:47:35 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-21 23:05:11 -04:00
2026-10-09 17:34:38 +02:00
2026-10-10 17:59:08 -07:00
2026-10-17 13:29:00 -04:00
2026-10-17 07:23:06 -07:00
2026-10-08 17:22:54 +02:00
2026-10-22 14:34:55 -07:00
2026-10-09 17:34:36 +02:00
2026-10-24 17:11:13 -07:00
2026-10-17 13:29:00 -04:00
2026-10-09 17:34:38 +02:00
2026-10-23 00:37:14 -07:00
2026-10-25 11:34:11 -04:00
2026-10-22 14:48:49 -07:00
2026-10-23 00:37:14 -07:00
2026-10-25 16:39:44 -07:00
2026-10-08 17:22:54 +02:00
2026-10-21 23:07:58 -04:00
2026-10-24 11:47:35 -07:00
2026-10-09 17:34:36 +02:00
2026-10-09 17:34:38 +02:00
2026-10-11 21:41:22 -07:00
2026-10-25 03:22:37 -07:00
2026-10-13 12:44:39 -07:00
2026-10-25 17:50:59 -07:00
2026-10-08 17:22:54 +02:00
2026-10-25 06:18:48 -07:00
2026-10-08 19:54:07 +02:00
2026-10-08 19:54:07 +02:00
2026-10-16 14:21:39 -07:00
2026-10-20 12:30:50 -07:00
2026-10-16 14:36:03 -07:00
2026-10-08 19:54:07 +02:00
2026-10-08 17:22:54 +02:00
2026-10-17 13:28:18 -04:00
2026-10-14 20:47:20 -04:00
2026-10-19 00:03:16 -07:00
2026-10-09 17:34:38 +02:00
2026-10-08 17:22:54 +02:00
2026-10-08 12:09:24 -07:00
2026-10-23 01:41:24 -07:00
2026-10-09 17:34:36 +02:00
2026-10-09 17:34:36 +02:00
2026-10-25 03:00:43 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-16 15:21:07 -04:00
2026-10-25 19:25:17 -04:00
2026-10-08 17:22:54 +02:00
2026-10-17 13:28:18 -04:00
2026-10-17 13:28:18 -04:00
2026-10-19 19:15:44 +05:30
2026-10-19 19:15:44 +05:30
2026-10-17 13:28:18 -04:00
2026-10-21 15:46:19 +05:30
2026-10-15 00:10:16 +05:30
2026-10-18 19:44:32 -04:00
2026-10-25 18:54:09 -07:00
2026-10-15 22:25:22 +02:00
2026-10-16 15:21:07 -04:00
2026-10-20 18:08:50 +05:30
2026-10-16 15:21:07 -04:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-14 00:06:58 +05:30
2026-10-08 17:22:54 +02:00
2026-10-13 22:08:20 +05:30
2026-10-14 00:06:58 +05:30
2026-10-14 00:06:58 +05:30
2026-10-14 00:06:58 +05:30
2026-10-22 13:43:01 +05:30
2026-10-14 00:06:58 +05:30
2026-10-22 11:22:12 -07:00
2026-10-24 17:31:52 -07:00
2026-10-08 17:22:54 +02:00
2026-10-09 10:24:04 -07:00
2026-10-09 17:34:38 +02:00
2026-10-07 03:46:20 -07:00
2026-10-22 14:34:55 -07:00
2026-10-22 13:50:10 -07:00
2026-10-14 00:06:58 +05:30
2026-10-09 17:31:52 +02:00
2026-10-09 17:34:38 +02:00
2026-10-08 17:22:54 +02:00
2026-10-17 13:29:00 -04:00
2026-10-18 22:47:12 -04:00
2026-10-25 17:50:36 -07:00
2026-10-09 17:34:38 +02:00
2026-10-06 12:31:21 -07:00
2026-10-17 04:23:13 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-20 22:18:49 -04:00
2026-10-10 19:22:07 -07:00
2026-10-13 12:04:33 -07:00
2026-10-25 06:18:48 -07:00
2026-10-06 13:01:39 +05:30
2026-10-14 12:42:16 -04:00
2026-10-25 03:22:32 -07:00
2026-10-10 04:27:27 -07:00
2026-10-09 17:34:38 +02:00
2026-10-10 04:27:27 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-09 17:34:38 +02:00
2026-10-08 17:22:54 +02:00
2026-10-16 15:21:07 -04:00
2026-10-10 19:22:07 -07:00
2026-10-20 03:22:11 -07:00
2026-10-18 19:44:32 -04:00
2026-10-08 19:08:58 -07:00
2026-10-23 00:37:14 -07:00
2026-10-08 19:08:59 -07:00
2026-10-20 08:42:13 -07:00
2026-10-15 22:25:22 +02:00
2026-10-16 17:49:54 -04:00
2026-10-18 03:27:59 -07:00
2026-10-25 11:34:11 -04:00
2026-10-18 03:24:34 -07:00
2026-10-24 19:56:21 -07:00
2026-10-24 19:56:21 -07:00
2026-10-24 19:56:21 -07:00
2026-10-15 21:01:31 +02:00
2026-10-24 04:01:10 -07:00
2026-10-09 18:18:41 -07:00
2026-10-25 18:54:09 -07:00
2026-10-24 17:11:13 -07:00
2026-10-16 15:21:07 -04:00
2026-10-18 06:04:35 +05:30
2026-10-25 06:18:48 -07:00
2026-10-08 19:54:07 +02:00
2026-10-12 13:11:06 -07:00
2026-10-08 12:09:24 -07:00
2026-10-08 17:22:54 +02:00
2026-10-24 17:31:52 -07:00
2026-10-17 04:23:31 -07:00
2026-10-22 05:26:10 -07:00
2026-10-22 05:26:10 -07:00
2026-10-08 19:54:07 +02:00
2026-10-09 17:34:38 +02:00
2026-10-09 17:34:38 +02:00
2026-10-14 14:09:29 -07:00
2026-10-21 15:46:19 +05:30
2026-10-22 12:49:48 -07:00
2026-10-20 04:41:58 -07:00
2026-10-22 12:49:48 -07:00
2026-10-10 15:20:13 +02:00
2026-10-08 21:29:48 +02:00
2026-10-08 17:22:54 +02:00
2026-10-09 17:34:38 +02:00
2026-10-08 17:22:54 +02:00
2026-10-21 23:26:20 -07:00
2026-10-20 21:04:30 -04:00
2026-10-24 19:56:21 -07:00
2026-10-08 17:22:54 +02:00
2026-10-10 06:49:02 -07:00
2026-10-23 00:37:14 -07:00
2026-10-25 06:18:48 -07:00
2026-10-08 17:22:54 +02:00
2026-10-14 20:47:20 -04:00
2026-10-08 21:29:48 +02:00
2026-10-24 11:47:35 -07:00
2026-10-25 06:18:48 -07:00
2026-10-25 06:18:48 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-10 04:27:27 -07:00
2026-10-10 04:27:27 -07:00
2026-10-08 17:22:54 +02:00
2026-10-10 19:22:07 -07:00
2026-10-22 13:50:10 -07:00
2026-10-16 14:21:39 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00
2026-10-07 06:41:07 +05:30
2026-10-14 00:29:11 +05:30
2026-10-25 06:18:48 -07:00
2026-10-08 19:54:07 +02:00
2026-10-25 06:18:48 -07:00
2026-10-08 17:22:54 +02:00
2026-10-25 06:18:48 -07:00
2026-10-13 12:44:39 -07:00
2026-10-08 17:22:54 +02:00
2026-10-21 23:05:11 -04:00
2026-10-13 12:04:33 -07:00
2026-10-25 05:32:43 -07:00
2026-10-25 05:45:51 -07:00
2026-10-09 17:34:38 +02:00
2026-10-25 05:45:51 -07:00
2026-10-24 18:48:01 -07:00
2026-10-24 18:48:01 -07:00
2026-10-17 07:23:06 -07:00
2026-10-08 17:22:54 +02:00
2026-10-08 21:29:48 +02:00
2026-10-23 21:27:08 +02:00
2026-10-08 17:22:54 +02:00
2026-10-08 17:22:54 +02:00