feat(memory): Graphnosis provider UI, MCP install, and onboarding#856
feat(memory): Graphnosis provider UI, MCP install, and onboarding#856nehloo wants to merge 4 commits into
Conversation
Add English copy and download links for the Graphnosis memory provider, a Capabilities → MCP Servers "Install Graphnosis MCP" card that registers the stdio server directly (npx @graphnosis/mcp-relay) via addMcpServer, and a Welcome onboarding card pointing to graphnosis.com. The memory provider itself ships as the standalone hermes-graphnosis plugin (github.com/nehloo-interactive/hermes-graphnosis); Hermes Desktop discovers it automatically since it runs Hermes Agent underneath. No dependency on any in-tree hermes-agent change.
|
Supersedes #763. That PR used an earlier approach — a hermes-agent catalog-preset install ( This PR rebuilds the same UI on current |
Greptile SummaryThis PR adds optional Graphnosis integration to Hermes Desktop. The main changes are:
Confidence Score: 5/5This looks safe to merge.
|
| Filename | Overview |
|---|---|
| src/main/installer.ts | Adds Graphnosis metadata to local memory-provider discovery. |
| src/main/ssh-remote.ts | Adds matching Graphnosis metadata to remote memory-provider discovery. |
| src/renderer/src/screens/Tools/Tools.tsx | Adds the Graphnosis MCP installation and download actions. |
| src/renderer/src/screens/Memory/MemoryProviders.tsx | Adds the Graphnosis download URL to provider cards. |
| src/renderer/src/screens/Welcome/Welcome.tsx | Adds the Graphnosis onboarding card and download action. |
Reviews (4): Last reviewed commit: "style(welcome): restyle the Graphnosis c..." | Re-trigger Greptile
Local (installer.ts) and remote (ssh-remote.ts) memory-provider discovery
fell back to the bare provider name for anything absent from KNOWN_PROVIDERS,
so the Memory screen rendered t("graphnosis") — a literal "graphnosis" —
instead of the memory.providers.graphnosis description. Add the entry so the
description key resolves. (Flagged by review.)
Adds patches/memory-provider-known-map.patch (installer.ts + ssh-remote.ts):
without it, local/remote memory-provider discovery falls back to the bare
provider name, so the Memory screen renders t("graphnosis") instead of the
memory.providers.graphnosis description. Mirrors fathah/hermes-desktop#856
follow-up commit 847ed5b. (Flagged by automated review on the PR.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The stdio relay read process.argv[2] raw — path was required and never
expanded. Some MCP hosts spawn stdio servers without a shell and don't
interpolate ${HOME}; notably on Windows HOME is usually unset, so
${HOME}/.graphnosis/mcp.sock reached the relay as a literal, unusable path.
Now the socket-path arg is optional (defaults to ~/.graphnosis/mcp.sock), and
a provided path has a leading ~ and ${HOME}/$HOME expanded via os.homedir()
(cross-platform). Fixes the Windows gap flagged on fathah/hermes-desktop#856 —
consumers can keep passing ${HOME}/... or omit the arg entirely. README
updated; @graphnosis/mcp-relay bumped 1.0.2 -> 1.0.3.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolves the conflict in src/renderer/src/screens/Welcome/Welcome.tsx. Upstream's "Redesign Entry Screens" replaced the main welcome screen with the new <OnboardHero> layout, removing the anchor this branch had used to place the Graphnosis pairing card. Git landed the conflict in the if (error) block instead, where the same installSizeHint line still existed. Resolution: - error screen: take upstream verbatim (drops the misplaced card and the installSizeHint paragraph upstream removed there) - main screen: re-place the Graphnosis card inside OnboardHero, between onboard-cta-row and onboard-divider — the semantic equivalent of its previous position - keep the existing .welcome-graphnosis-* classes (merged cleanly in main.css); restyling to the onboard-* system is a follow-up design call Verified: typecheck (node + web) clean, vitest 1850 passed / 3 skipped across 172 files, eslint clean on the resolved file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The pairing card still carried its pre-redesign .welcome-graphnosis-* styling, which used theme CSS vars and a 12px-radius flat surface — visibly out of place next to upstream's new glass hero. - add .onboard-graphnosis / -title / -body to the onboard block, matching the system's literal dark palette (#c3c8d8 / #8b91a5), 16px radius, glass surface with backdrop blur, and 420px max-width so it lines up with .onboard-divider - swap the CTA to .onboard-btn.onboard-btn-glass, tightened one step to 10px/20px/14px so it reads as secondary to the connect-row buttons - drop the now-unused .welcome-graphnosis-* rules Verified in a static harness of the settled hero (tailwind-compiled main.css, data-phase="done"): card aligns with the divider and matches the glass buttons. typecheck clean, vitest 1850 passed / 3 skipped, eslint clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Summary
Adds optional UI surfaces for connecting Graphnosis — local, encrypted, on-device memory — to Hermes Desktop:
graphnosisprovideraddMcpServer(npx -y @graphnosis/mcp-relay ${HOME}/.graphnosis/mcp.sock)No coupling to hermes-agent
The memory provider ships as a standalone plugin (nehloo-interactive/hermes-graphnosis), which Hermes Desktop discovers automatically since it runs Hermes Agent underneath. No dependency on any in-tree hermes-agent change — the MCP install writes the server config directly rather than calling a catalog preset.
Test plan
🤖 Generated with Claude Code