From 0193e07d835ca02c19b8b653a2b163804285f5a8 Mon Sep 17 00:00:00 2001 From: Jon Saad-Falcon <41205309+jonsaadfalcon@users.noreply.github.com> Date: Sat, 28 Mar 2026 21:31:09 -0700 Subject: [PATCH] feat: jarvis doctor checks for security profile configuration Co-Authored-By: Claude Sonnet 4.6 --- src/openjarvis/cli/doctor_cmd.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/openjarvis/cli/doctor_cmd.py b/src/openjarvis/cli/doctor_cmd.py index dbfe2280..15a66f33 100644 --- a/src/openjarvis/cli/doctor_cmd.py +++ b/src/openjarvis/cli/doctor_cmd.py @@ -217,6 +217,32 @@ def _check_optional_deps() -> List[CheckResult]: return results +def _check_security_profile() -> CheckResult: + """Check if a security profile is configured.""" + try: + from openjarvis.core.config import load_config + + config = load_config() + if config.security.profile: + return CheckResult( + name="Security profile", + status="ok", + message=f"Profile '{config.security.profile}' active", + ) + return CheckResult( + name="Security profile", + status="warn", + message="No security profile set", + details="Recommended: add security.profile = 'personal' to config.toml", + ) + except Exception as exc: + return CheckResult( + name="Security profile", + status="fail", + message=f"Could not check: {exc}", + ) + + def _check_nodejs() -> CheckResult: """Check Node.js version for Node-backed integrations.""" node_path = shutil.which("node") @@ -275,6 +301,7 @@ def _run_all_checks() -> List[CheckResult]: checks.append(_check_default_model()) checks.extend(_check_optional_deps()) checks.append(_check_nodejs()) + checks.append(_check_security_profile()) return checks