{"repo":"NousResearch/hermes-agent","public_id":"82010","display_label":"Empty toolset allowlist fails open instead of closed","summary":"A bug where explicitly configuring an empty toolset allowlist incorrectly grants access to all tools rather than none. Fixes are being applied to both the tools layer and the TUI/Desktop interface to enforce fail-closed behavior.","subsystem":"apps/desktop","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":134079,"merged_at":"2026-10-06T18:51:27+00:00"},"resolution":{"state":"resolved","by":"pr-134079"},"freshness":{"state":"verified","last_verified_at":"2026-10-06T18:51:27+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":82010,"pr_number":134079,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-10-06T18:51:27+00:00"}],"members":[{"kind":"issue","number":82010,"title":"[Bug]: Desktop/TUI cannot persist an explicit zero-tool state; empty toolsets fail open","url":null,"state":"closed"},{"kind":"pr","number":82093,"title":"fix(tui): fail closed for empty toolsets","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#94180","number":94180}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":134079,"title":"fix(tools): explicit empty toolset allowlist must fail closed, not open","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cron/jobs.py","cron/scheduler.py","hermes_cli/tools_config.py","tests/cron/test_cron_explicit_empty_toolsets.py","tests/tui_gateway/test_gui_surface_toolsets.py","tools/cronjob_tools.py","tui_gateway/server.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}