Skip to content

fix: harden honcho memory and dashboard terminal#24270

Open
florianaebi wants to merge 1 commit into
NousResearch:mainfrom
florianaebi:fix/honcho-memory-dashboard-terminal
Open

fix: harden honcho memory and dashboard terminal#24270
florianaebi wants to merge 1 commit into
NousResearch:mainfrom
florianaebi:fix/honcho-memory-dashboard-terminal

Conversation

@florianaebi

Copy link
Copy Markdown

Summary

  • cap first-turn Honcho dialectic prefetch timeout and skip greeting-only prompts
  • coerce structured/multimodal turn content before Honcho memory sanitization
  • align dashboard/TUI branding with configured theme names
  • improve dashboard terminal theme/font fallback, disable WebGL glyph atlas path, and remove unused WebGL addon dependency

Test Plan

  • pytest tests/agent/test_memory_provider.py tests/honcho_plugin/test_session.py -q
  • python -m ruff check plugins/memory/honcho/init.py tests/agent/test_memory_provider.py tests/honcho_plugin/test_session.py
  • npm run build (web)
  • npx eslint src/pages/ChatPage.tsx (web)
  • npm run type-check (ui-tui)
  • npx eslint src/components/branding.tsx (ui-tui)

Note: direct push to NousResearch/hermes-agent:main was denied for florianaebi, so this branch was pushed to the fork.

@florianaebi florianaebi requested a review from a team May 12, 2026 08:56
@alt-glitch alt-glitch added type/bug Something isn't working comp/plugins Plugin system and bundled plugins comp/tui Terminal UI (ui-tui/ + tui_gateway/) P3 Low — cosmetic, nice to have labels May 12, 2026
@austinpickett austinpickett requested a review from Copilot May 19, 2026 12:09

@austinpickett austinpickett left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix merge conflicts and use .github/PULL_REQUEST_TEMPLATE.md

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens Honcho memory prefetch/sync behavior and improves the dashboard’s embedded terminal experience by making theming/font rendering more robust while removing the WebGL xterm path.

Changes:

  • Cap first-turn Honcho dialectic prefetch wait time and expand “trivial prompt” detection (including greetings) to skip unnecessary prefetch.
  • Coerce structured/multimodal turn content to text before Honcho memory sanitization to avoid background-thread failures.
  • Align branding/theme behavior across dashboard + TUI; improve dashboard xterm font fallbacks and remove the unused WebGL addon dependency.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
web/src/pages/ChatPage.tsx Switch terminal theming to derive from dashboard theme, expand font fallbacks for glyph coverage, and disable WebGL addon usage.
web/package.json Remove @xterm/addon-webgl dependency.
web/package-lock.json Remove @xterm/addon-webgl lockfile entries.
ui-tui/src/components/branding.tsx Use theme-provided brand name instead of hard-coded strings.
plugins/memory/honcho/init.py Add first-turn timeout cap helper, broaden trivial prompt regex, and coerce non-string content before sanitization.
tests/honcho_plugin/test_session.py Add tests for first-turn timeout cap and greeting trivial-prompt behavior.
tests/agent/test_memory_provider.py Add regression test for coercing structured content before sanitization.
Files not reviewed (1)
  • web/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 1175 to +1181
msg_limit = self._config.message_max_chars if self._config else 25000
clean_user_content = sanitize_context(user_content or "").strip()
clean_assistant_content = sanitize_context(assistant_content or "").strip()
clean_user_content = sanitize_context(
self._coerce_content_for_memory(user_content)
).strip()
clean_assistant_content = sanitize_context(
self._coerce_content_for_memory(assistant_content)
).strip()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins comp/tui Terminal UI (ui-tui/ + tui_gateway/) P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants