From 1ace9b4dc4b472e812cb276868eace6423e40fed Mon Sep 17 00:00:00 2001 From: "zhiheng.liu" Date: Tue, 14 Apr 2026 01:19:46 +0800 Subject: [PATCH] fix: memory_setup.py - write non-secret env vars, check all fields in status Critical bug fixes only (no redundant changes): 1. **Write non-secret fields to .env** - Add non-secret fields with env_var to env_writes so they get saved to .env 2. **Status checks all fields** - Check all fields with env_var (both secret and non-secret), not just secrets Fixes: - OPENVIKING_ENDPOINT and similar non-secret env vars now get written to .env - hermes memory status now shows ALL missing required fields --- hermes_cli/memory_setup.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/hermes_cli/memory_setup.py b/hermes_cli/memory_setup.py index 1aa431367..e6a61316a 100644 --- a/hermes_cli/memory_setup.py +++ b/hermes_cli/memory_setup.py @@ -324,6 +324,9 @@ def cmd_setup(args) -> None: val = _prompt(desc, default=str(effective_default) if effective_default else None) if val: provider_config[key] = val + # Also write to .env if this field has an env_var + if env_var and env_var not in env_writes: + env_writes[env_var] = val # Write activation key to config.yaml config["memory"]["provider"] = name @@ -409,12 +412,13 @@ def cmd_status(args) -> None: else: print(f" Status: not available ✗") schema = p.get_config_schema() if hasattr(p, "get_config_schema") else [] - secrets = [f for f in schema if f.get("secret")] - if secrets: + # Check all fields that have env_var (both secret and non-secret) + required_fields = [f for f in schema if f.get("env_var")] + if required_fields: print(f" Missing:") - for s in secrets: - env_var = s.get("env_var", "") - url = s.get("url", "") + for f in required_fields: + env_var = f.get("env_var", "") + url = f.get("url", "") is_set = bool(os.environ.get(env_var)) mark = "✓" if is_set else "✗" line = f" {mark} {env_var}"