Skip to content

Fix/skin streaming status theme#3470

Closed
e-shizz wants to merge 4 commits intoNousResearch:mainfrom
e-shizz:fix/skin-streaming-status-theme
Closed

Fix/skin streaming status theme#3470
e-shizz wants to merge 4 commits intoNousResearch:mainfrom
e-shizz:fix/skin-streaming-status-theme

Conversation

@e-shizz
Copy link
Copy Markdown

@e-shizz e-shizz commented Mar 28, 2026

What does this PR do?

Fixes theme inconsistency across CLI surfaces that were still using hardcoded default skin colors.

This PR makes active skin colors apply consistently to:

  • streamed response box borders
  • status summary line (model · tools · toolsets · provider)
  • compact banner path
  • fallback banner art when a skin does not define custom banner_logo/banner_hero
  • mini tool progress lines in quiet mode

This approach keeps existing readability defaults (no transparency/background policy changes) and focuses only on consistency.

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • cli.py
    • use active skin response_border for streaming response box borders (instead of hardcoded gold)
    • make compact banner rendering skin-aware
    • make _show_status() colors skin-aware for model/tools/toolsets/provider line
  • hermes_cli/banner.py
    • add fallback-art tinting so legacy default banner art is recolored to active skin when a skin lacks custom art
  • agent/display.py
    • add skin-aware ANSI coloring for mini tool progress lines (prefix + duration token)
  • tests/hermes_cli/test_skin_engine.py
    • update/add assertions for skin-aware tool message output
  • tests/hermes_cli/test_banner.py
    • add test coverage for fallback banner tint helper

How to Test

  1. Run targeted tests:
    pytest -o addopts='' tests/hermes_cli/test_skin_engine.py tests/hermes_cli/test_status.py tests/hermes_cli/test_status_model_provider.py -q
  2. Start Hermes and switch skins (/skin default, /skin mono, /skin slate, /skin ares).
  3. Verify:
    • streamed response border follows active skin
    • compact/full banner follow active skin
    • status summary line follows active skin
    • mini tool progress lines are skin-aware

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass
    • Ran full suite in fresh env; remaining failures appear unrelated to this PR.
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform:
    • Fedora 43 Cloud x86_64 (fresh full-suite env)
    • Fedora 44 KDE x86_64 (manual visual validation)

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — or N/A (N/A)
  • I've updated cli-config.yaml.example if I added/changed config keys — or N/A (N/A)
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — or N/A (N/A)
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — or N/A
  • I've updated tool descriptions/schemas if I changed tool behavior — or N/A (N/A)

Screenshots / Logs

@e-shizz e-shizz closed this by deleting the head repository Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant