fix: improve Hermes native API compatibility#2
Merged
Conversation
Normalize native Hermes health responses, expose native skills and toolsets in the chat UI, and suppress the generic Hermes proxy model when provider-specific models are discovered.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This improves Lynk's native Hermes API path so Hermes looks usable in the Android chat UI without requiring a compatibility shim or manual debugging.
Changes:
{ status: "ok" }and normalize them to the shape the Lynk status formatter expects (ok: true,mode: "api")./skillsand/toolsets./skills,/skill, and installed skill entries.Why
With native Hermes API mode, a non-technical user could see:
Gateway: not okeven when Hermes was healthyThat makes the Hermes integration look broken when the backend is actually alive. This PR tightens the adapter layer so native Hermes API behavior maps cleanly into Lynk's existing UI expectations.
Test Plan
Run from
pc/:npm run checknpm testnpm run buildAll passed locally.