Skip to content

fix(dashboard): check entry-exports.js for hermes-ink staleness - #22039

Closed
lordbink wants to merge 1 commit into
NousResearch:mainfrom
lordbink:fix/dashboard-tui-ink-bundle-stale-check
Closed

fix(dashboard): check entry-exports.js for hermes-ink staleness#22039
lordbink wants to merge 1 commit into
NousResearch:mainfrom
lordbink:fix/dashboard-tui-ink-bundle-stale-check

Conversation

@lordbink

@lordbink lordbink commented May 8, 2026

Copy link
Copy Markdown

Problem

The dashboard chat tab (enabled via hermes dashboard --tui) renders but input is completely dead — keystrokes have no effect.

Root cause: _hermes_ink_bundle_stale() in hermes_cli/main.py checks for packages/hermes-ink/dist/ink-bundle.js, but the hermes-ink build script (esbuild src/entry-exports.ts ... --outdir=dist) produces entry-exports.js, not ink-bundle.js.

Because ink-bundle.js never exists, the staleness check always returns True, which causes _find_bundled_tui() to return None on every call. The /api/pty WebSocket endpoint then immediately rejects connections with "TUI build did not produce dist/entry.js", disconnecting before the xterm terminal in the browser can establish input.

Fix

Check for entry-exports.js first (what the build actually produces), with ink-bundle.js as a fallback for any older builds that may have used the previous filename.

Verification

After this fix, the /api/pty WebSocket connects successfully, the PTY spawns hermes --tui, and the chat tab is fully interactive.

_hermes_ink_bundle_stale() was checking for packages/hermes-ink/dist/ink-bundle.js,
but the hermes-ink build script (esbuild src/entry-exports.ts) produces
entry-exports.js instead. Since ink-bundle.js never exists, the staleness
check always returned True, causing _find_bundled_tui() to return None on
every call — even after a successful build.

Result: the dashboard Chat tab's /api/pty WebSocket endpoint immediately
failed with 'TUI build did not produce dist/entry.js', leaving the xterm
input dead.

Fix: check entry-exports.js first, fall back to ink-bundle.js for any
older builds that may still produce it.
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/tui Terminal UI (ui-tui/ + tui_gateway/) duplicate This issue or pull request already exists labels May 11, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Duplicate of #20951 — same ink-bundle.jsentry-exports.js filename fix in _hermes_ink_bundle_stale(). Also overlaps with #20686 (superset with auto-resume).

@lordbink lordbink closed this May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/tui Terminal UI (ui-tui/ + tui_gateway/) duplicate This issue or pull request already exists P2 Medium — degraded but workaround exists type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants