{"repo":"NousResearch/hermes-agent","public_id":"116950","display_label":"Python file-read credential detection severity fix","summary":"These issues and PRs concern a gap where Python open() and Path.read_text() calls on credential files were not being detected at critical severity in the plugin admission scanner, unlike equivalent shell and JavaScript patterns. The work addresses aligning Python detection severity with other language equivalents.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":117577,"merged_at":"2026-09-20T23:21:38+00:00"},"resolution":{"state":"resolved","by":"pr-117577"},"freshness":{"state":"verified","last_verified_at":"2026-09-20T23:21:38+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":116950,"pr_number":117577,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-20T23:21:38+00:00"}],"members":[{"kind":"issue","number":116950,"title":"Plugin admission scanner: Python open() of credential files lands medium, not critical (gap vs shell/JS equivalents)","url":null,"state":"closed"},{"kind":"pr","number":117028,"title":"fix(skills): Python open()/Path.read_text() on credential files lands critical","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"54718306e3","number":0},{"kind":"pr","value":"#117577","number":117577}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":117577,"title":"fix(skills): Python open()/read_text() of credential files lands critical in plugin admission (#116950, salvage #117028)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_skills_guard.py","tools/skills_guard.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}