mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
fix(lint): report malformed settings shapes without crashing (#146)
Valid JSON such as [] or {"permissions": []} caused lint_skills.py to raise AttributeError because it assumed both values were objects.
Validate the top-level settings value and permissions object before reading nested keys. Malformed settings now produce clear lint errors and exit 1 without a traceback.
Add subprocess regression tests covering invalid JSON, malformed root values, invalid permissions values, and non-list permissions.allow values.
This commit is contained in:
@@ -84,7 +84,14 @@ def check_settings() -> None:
|
||||
except (OSError, json.JSONDecodeError) as exc:
|
||||
errors.append(f".claude/settings.json: {exc}")
|
||||
return
|
||||
if not isinstance(data.get("permissions", {}).get("allow"), list):
|
||||
if not isinstance(data, dict):
|
||||
errors.append(".claude/settings.json: expected top-level JSON value to be an object")
|
||||
return
|
||||
permissions = data.get("permissions", {})
|
||||
if not isinstance(permissions, dict):
|
||||
errors.append(".claude/settings.json: expected permissions to be an object")
|
||||
return
|
||||
if not isinstance(permissions.get("allow"), list):
|
||||
errors.append(".claude/settings.json: expected permissions.allow to be a list")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user