fix: add diagnostic warnings for pkill_processes validation failures

Per CodeRabbit feedback, add logger.warning calls when pkill_processes
validation fails in both load_org_config and load_project_commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cabana8471
2026-01-27 07:00:16 +01:00
parent 1d67fff9e0
commit 06c0bf4fd3

View File

@@ -544,15 +544,18 @@ def load_org_config() -> Optional[dict]:
if "pkill_processes" in config: if "pkill_processes" in config:
processes = config["pkill_processes"] processes = config["pkill_processes"]
if not isinstance(processes, list): if not isinstance(processes, list):
logger.warning(f"Org config at {config_path}: 'pkill_processes' must be a list")
return None return None
# Normalize and validate each process name against safe pattern # Normalize and validate each process name against safe pattern
normalized = [] normalized = []
for proc in processes: for i, proc in enumerate(processes):
if not isinstance(proc, str): if not isinstance(proc, str):
logger.warning(f"Org config at {config_path}: pkill_processes[{i}] must be a string")
return None return None
proc = proc.strip() proc = proc.strip()
# Block empty strings and regex metacharacters # Block empty strings and regex metacharacters
if not proc or not VALID_PROCESS_NAME_PATTERN.fullmatch(proc): if not proc or not VALID_PROCESS_NAME_PATTERN.fullmatch(proc):
logger.warning(f"Org config at {config_path}: pkill_processes[{i}] has invalid value '{proc}'")
return None return None
normalized.append(proc) normalized.append(proc)
config["pkill_processes"] = normalized config["pkill_processes"] = normalized
@@ -626,15 +629,18 @@ def load_project_commands(project_dir: Path) -> Optional[dict]:
if "pkill_processes" in config: if "pkill_processes" in config:
processes = config["pkill_processes"] processes = config["pkill_processes"]
if not isinstance(processes, list): if not isinstance(processes, list):
logger.warning(f"Project config at {config_path}: 'pkill_processes' must be a list")
return None return None
# Normalize and validate each process name against safe pattern # Normalize and validate each process name against safe pattern
normalized = [] normalized = []
for proc in processes: for i, proc in enumerate(processes):
if not isinstance(proc, str): if not isinstance(proc, str):
logger.warning(f"Project config at {config_path}: pkill_processes[{i}] must be a string")
return None return None
proc = proc.strip() proc = proc.strip()
# Block empty strings and regex metacharacters # Block empty strings and regex metacharacters
if not proc or not VALID_PROCESS_NAME_PATTERN.fullmatch(proc): if not proc or not VALID_PROCESS_NAME_PATTERN.fullmatch(proc):
logger.warning(f"Project config at {config_path}: pkill_processes[{i}] has invalid value '{proc}'")
return None return None
normalized.append(proc) normalized.append(proc)
config["pkill_processes"] = normalized config["pkill_processes"] = normalized