mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 10:48:20 +00:00
fix(cli): make the UI listener switch reachable from config (#1558)
`ui_enabled` governs a loopback HTTP listener on 127.0.0.1:9749, and the only way to turn it off was hand-editing ~/.cache/codebase-memory-mcp/config.json. The key was absent from CONFIG_KEYS, so `config list` could not show it and `config set` rejected it outright. A reporter spent two debugging sessions finding the switch, and described the surface as looking impossible to turn off. A network surface a user cannot discover how to disable is not acceptable whatever its default, and "documented in the source" is not discoverable. ui_enabled and ui_port now appear in `config list`, and get/set/reset work on them. They live in a separate file (cbm_ui_config_load/save) rather than the key-value store the other keys use, so this routes rather than merely listing them — set validates (true/false; a port in 1..65535) and reports that the daemon must restart for the change to take effect. The test asserts DISCOVERABILITY rather than the current values: both keys must be present in the table that `config list` and `config set` walk, because a key missing there is a key the user can neither find nor change. Reported by @PsyTech-Rob. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
This commit is contained in:
1 parent
9fbcd726fd
commit
811ecd3f2c
3 files changed
+125
-3
No files matched your search
@@ -207,6 +207,10 @@ const char *cbm_cli_clients_token_for_testing(size_t index);
|
||||
* not recognisably foreign. Detection must be positive evidence — see the
|
||||
* implementation comment. */
|
||||
const char *cbm_cli_external_manager_name_for_testing(const char *self_path);
|
||||
/* #1558: expose the config-key table so a test can prove a key is discoverable
|
||||
* (`config list`/`set` both walk it). */
|
||||
size_t cbm_cli_config_key_count_for_testing(void);
|
||||
const char *cbm_cli_config_key_at_for_testing(size_t index);
|
||||
#endif
|
||||
|
||||
#ifdef CBM_CLI_ENABLE_TEST_API
|
||||
@@ -410,6 +414,10 @@ int cbm_config_delete(cbm_config_t *cfg, const char *key);
|
||||
#define CBM_CONFIG_AUTO_INDEX_LIMIT "auto_index_limit"
|
||||
#define CBM_CONFIG_AUTO_WATCH "auto_watch"
|
||||
#define CBM_CONFIG_UI_LANG "ui-lang"
|
||||
/* #1558: the graph UI's loopback listener. Stored in the UI config file rather
|
||||
* than the key-value store, but surfaced through `config` so it is findable. */
|
||||
#define CBM_CONFIG_UI_ENABLED "ui_enabled"
|
||||
#define CBM_CONFIG_UI_PORT "ui_port"
|
||||
|
||||
/* ── Binary activation safety ─────────────────────────────────── */
|
||||
|
||||
|
||||
Reference in new issue
Block a user