{"repo":"NousResearch/hermes-agent","public_id":"125954","display_label":"LSP untrusted repo interpreter/SDK execution security fix","summary":"A bug was identified where editing files in a cloned repository could cause the LSP to run that repository's own Python interpreter, TypeScript SDK, or plugins without user approval. The cluster covers the bug report and two related fix attempts addressing untrusted workspace execution boundaries.","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":126239,"merged_at":"2026-09-28T21:58:48+00:00"},"resolution":{"state":"resolved","by":"pr-126239"},"freshness":{"state":"verified","last_verified_at":"2026-09-28T21:58:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":1.0},"fix_edges":[{"issue_number":125954,"pr_number":126239,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-28T21:58:48+00:00"}],"members":[{"kind":"issue","number":125954,"title":"[Bug]: editing a file in a cloned repository runs that repository's own Python interpreter through the LSP (no approval, on by default)","url":null,"state":"closed"},{"kind":"pr","number":125955,"title":"fix(lsp): never run a cloned repository's own interpreter or TypeScript SDK in an untrusted workspace","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"1f3b384906","number":0},{"kind":"commit","value":"482e5a1e54","number":0},{"kind":"pr","value":"#126239","number":126239}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":126239,"title":"fix(lsp): never run a cloned repo's own interpreter, SDK or plugins; trust the session's workspace (salvage #125955)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/lsp/cli.py","agent/lsp/eventlog.py","agent/lsp/manager.py","agent/lsp/servers.py","agent/lsp/workspace.py","cli-config.yaml.example","hermes_cli/config_defaults.py","tests/agent/lsp/test_custom_servers.py","tests/agent/lsp/test_install_and_lint_fixes.py","tests/agent/lsp/test_manager_locking.py","tests/agent/lsp/test_python_discovery.py","tests/agent/lsp/test_root_policy.py","tests/agent/lsp/test_shell_linter_lsp_skip.py","tests/agent/lsp/test_workspace_trust.py","tests/pm/test_node_resolution.py","tools/file_operations_lint.py","website/docs/user-guide/features/lsp.md","website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/features/lsp.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}