fix(tui): keep /goal verdict out of compact status row#27971
Merged
Conversation
Goal judge messages were routed through setStatus before the goal branch, so the full verdict string shared one line with model/usage/cwd in StatusRule. Handle kind goal first: append transcript via sys, show a short status, then restore to ready after the normal delay. Adds Vitest coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
Contributor
🔎 Lint report:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes the TUI gateway event handling so /goal verdicts remain visible in the transcript without overflowing the compact status row.
Changes:
- Handles
status.updateevents withkind: "goal"before the generic status path. - Maps full goal verdict text to short status labels and restores idle status after a delay.
- Adds Vitest coverage for transcript output and goal status prefix mapping.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
ui-tui/src/app/createGatewayEventHandler.ts |
Special-cases goal status updates to emit transcript text while keeping the UI status short. |
ui-tui/src/__tests__/createGatewayEventHandler.test.ts |
Adds tests for goal verdict transcript behavior and compact status labels. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Lillard01
pushed a commit
to Lillard01/hermes-agent
that referenced
this pull request
May 21, 2026
…al-statusbar fix(tui): keep /goal verdict out of compact status row
gweeteve
pushed a commit
to gweeteve/hermes-agent
that referenced
this pull request
Jun 2, 2026
…al-statusbar fix(tui): keep /goal verdict out of compact status row
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.
What does this PR do?
When
/goalfinished, the gateway sentstatus.updatewithkind: "goal"and the full judge verdict astext. The handler appliedsetStatus(p.text)for every payload before branching on kind, so the status bar rendered that long sentence on the same row as model, context usage, and cwd — making it look like the verdict had “merged” with the status chrome.This change handles
kind === "goal"first: the full verdict still goes to the transcript viasys(), but the Nanostoresstatusbecomes a short label (✓ goal complete,↻ goal continuing,⏸ goal paused, orready) and restores to idle afterrestoreStatusAfter(6000).No server / Python changes — client-only.
Related Issue
N/A (no filed issue attached).
Fixes #(n/a — report was in chat)
Type of Change
Changes Made
ui-tui/src/app/createGatewayEventHandler.ts— processstatus.updatepayloads withkind: "goal"before the genericsetStatus(p.text)path; narrow idle status labels; reuse existingrestoreStatusAfter.ui-tui/src/__tests__/createGatewayEventHandler.test.ts— Vitest assertions for transcript vs. brief UI status and prefix mapping.How to Test
cd ui-tui && npm test -- --run src/__tests__/createGatewayEventHandler.test.ts.hermes --tui, set a/goal …, complete a turn; confirm the verdict appears as a system line while the bottom status row stays short (model / usage / path), without the long verdict string inline.Checklist
Code
fix(scope):,feat(scope):, etc.)pytest tests/ -qand all tests passDocumentation & Housekeeping
docs/, docstrings) — or N/Acli-config.yaml.exampleif I added/changed config keys — or N/ACONTRIBUTING.mdorAGENTS.mdif I changed architecture or workflows — or N/AFor New Skills
N/A.
Screenshots / Logs