hermes-agent-features/hermes_cli
briandevans 71c6dd0dcf fix(cli): add 'lsp' to _BUILTIN_SUBCOMMANDS so plugin discovery is skipped
`lsp` is registered as a top-level subparser in `main()` (lines 9539-9545)
via `agent.lsp.cli.register_subparser`, so it shows up in `hermes --help`
output alongside the other built-ins. The `_BUILTIN_SUBCOMMANDS` set used
by `_plugin_cli_discovery_needed` to short-circuit the ~500-650ms plugin
import pass did not list it, so every `hermes lsp ...` invocation paid
the full discovery cost despite being a fully-built-in command.

This is also caught by the parity guard added in #22120:
`tests/hermes_cli/test_startup_plugin_gating.py::test_builtin_set_covers_every_registered_subcommand`
has been failing on clean origin/main with:

    AssertionError: _BUILTIN_SUBCOMMANDS is missing these live
    subcommands: ['lsp']. Add them to hermes_cli/main.py::_BUILTIN_SUBCOMMANDS
    so plugin discovery can be skipped when the user targets them.

Fix: add `"lsp"` to the frozenset (alphabetical position between `logs`
and `mcp`). The accompanying `test_builtin_set_has_no_phantom_entries`
guard still passes because `lsp` is genuinely live — registered via the
guarded `try/except Exception` in main() since #24168.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 06:46:23 -07:00
..
__init__.py
_parser.py
_subprocess_compat.py
auth_commands.py
auth.py feat(providers): rename Alibaba Cloud to Qwen Cloud, reorder picker (#24835) 2026-05-12 22:43:41 -07:00
azure_detect.py
backup.py
banner.py
browser_connect.py
callbacks.py
checkpoints.py
claw.py
cli_output.py
clipboard.py
codex_models.py
colors.py
commands.py
completion.py
config.py fix(cache): kill long-lived prefix layout — system prompt is now byte-static within a session (#24778) 2026-05-12 20:46:04 -07:00
copilot_auth.py
cron.py
curator.py
curses_ui.py
debug.py
default_soul.py
dingtalk_auth.py
doctor.py fix(doctor): skip /models health check for providers that don't support it 2026-05-12 17:12:25 -07:00
dump.py
env_loader.py
fallback_cmd.py
gateway_windows.py
gateway.py
goals.py feat(nous): unified client=hermes-client-v<version> tag on every Portal request (#24779) 2026-05-12 20:49:20 -07:00
hooks.py
kanban_db.py
kanban_diagnostics.py
kanban_specify.py feat(nous): unified client=hermes-client-v<version> tag on every Portal request (#24779) 2026-05-12 20:49:20 -07:00
kanban.py
logs.py
main.py fix(cli): add 'lsp' to _BUILTIN_SUBCOMMANDS so plugin discovery is skipped 2026-05-13 06:46:23 -07:00
mcp_config.py
memory_setup.py
model_catalog.py
model_normalize.py
model_switch.py
models.py feat(providers): rename Alibaba Cloud to Qwen Cloud, reorder picker (#24835) 2026-05-12 22:43:41 -07:00
nous_subscription.py
oneshot.py
pairing.py
platforms.py
plugins_cmd.py
plugins.py
profile_distribution.py
profiles.py
providers.py
pt_input_extras.py
pty_bridge.py
relaunch.py
runtime_provider.py
security_advisories.py
setup.py
skills_config.py
skills_hub.py
skin_engine.py
slack_cli.py
status.py
stdio.py
timeouts.py
tips.py
tools_config.py
uninstall.py
vercel_auth.py
voice.py
web_server.py
webhook.py