fix(cli): discover keyless local LM Studio in pickers - #74079
konsisumer wants to merge 1 commit into
Conversation
|
Thanks for the focused picker fix. The reported behavior is still present on current main: Problems
Suggested changes
Automated hermes-sweeper review. |
|
Rebased onto current main and relocated the LM Studio picker regression contracts to the current test layout. Verified keyless default-server discovery through picker inventory and that non-picker listings do not probe an unconfigured localhost endpoint. Local checks passed: the full |
e491e77 to
db3e25b
Compare
SummaryTwo PRs address #41370 through different code paths: #41419 generalized keyless credential resolution and setup for local/private endpoints, while #74079 fixes the remaining LM Studio picker-discovery gate when neither an API key nor a base-URL override is configured. Related pull requests
Suggested consolidationKeep #74079 open with the concrete salvage path identified by the maintainer-bot review: preserve its picker-only default LM Studio discovery and the paired regression contracts proving picker visibility without unsolicited non-picker probing. Leave #41419 closed as already implemented on main via commit ee066b7; the PRs overlap on #41370 but are not duplicates because #41419 covers credential resolution whereas #74079 addresses the still-distinct picker gate. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I41370(["issue #41370 (open)"])
P74079["PR #74079 (open)"]
P74079 -->|best fix| I41370
class I41370 open
class P74079 open
class P74079 best
class P74079 target
click I41370 "https://github.com/NousResearch/hermes-agent/issues/41370"
click P74079 "https://github.com/NousResearch/hermes-agent/pull/74079"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 2 pull requests and 1 issue in this complex. Diffs were read for 1 of 2 PRs (rest unavailable); Assessment working set: 16 kB of PR diffs, 5 kB of issue/PR text, 5 kB of discussion (5 comments), 5 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
|
Rebased onto current Local checks passed: 55 focused tests across the two affected modules, the bounded full |
db3e25b to
0b4e5ac
Compare
0b4e5ac to
077dbdb
Compare
|
Rebased onto current Local checks passed: both affected test modules, the bounded full |
|
Rebased onto current Local checks passed: the four added regression contracts; all 87 tests in the two affected modules (the final node was rerun independently); scoped Ruff; Windows footguns; and |
077dbdb to
2ef6afe
Compare
What changed and why
Per the thread's current-main reproduction, a default LM Studio server with authentication disabled was callable at runtime but hidden from picker surfaces until an unrelated
LM_API_KEYorLM_BASE_URLsignal was set. Interactive picker paths now probe the default loopback endpoint, treat a non-empty no-auth model response as a selectable local provider, and retain that explicitly marked discovery in the Desktop configured-provider view. Non-picker discovery still does not probe an unconfigured localhost server.Addressing maintainer feedback
How to test
LM_API_KEYandLM_BASE_URL, configure a different active provider, and run LM Studio's server athttp://127.0.0.1:1234with a loaded chat model and auth disabled.pytest tests/hermes_cli/test_model_switch_custom_providers.py tests/hermes_cli/test_inventory.py -q -x --timeout=60.What platforms tested on
Fixes #41370