Skip to content

feat(tui): UI improvements for messages, tool calls, text entry, etc#8156

Merged
alexhancock merged 1 commit intomainfrom
alexhancock/tui-ui-fixes
Mar 27, 2026
Merged

feat(tui): UI improvements for messages, tool calls, text entry, etc#8156
alexhancock merged 1 commit intomainfrom
alexhancock/tui-ui-fixes

Conversation

@alexhancock
Copy link
Copy Markdown
Collaborator

@alexhancock alexhancock commented Mar 27, 2026

Make the UI nicer for splash screen, message spacing, tool calls, text entry. Things now use the full width, and spacing is nicer across the board.

Before

Screenshot 2026-03-27 at 1 24 45 PM

After

Screenshot 2026-03-27 at 1 24 18 PM

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 22fefe2eed

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

);
}

const showInputBar = !pendingPermission && !initialPrompt && !isViewingHistory;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Prevent pre-ready input from entering a stuck queue

The new showInputBar condition renders the input while the app is still initializing, so handleSubmit can run in the startup loading state and enqueue messages. At startup there is no in-flight sendPrompt call to trigger processQueue, so that queued message will not be sent until the user submits another prompt, and then it is sent out of order (new prompt first, queued prompt second). This only occurs when the user types before readiness, but it causes lost/incorrectly ordered first requests in that common path.

Useful? React with 👍 / 👎.

@alexhancock alexhancock added this pull request to the merge queue Mar 27, 2026
Copy link
Copy Markdown
Collaborator

@DOsinga DOsinga left a comment

Choose a reason for hiding this comment

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

This is a nice cleanup — good simplification, net deletion of 105 lines, and idiomatic use of Ink's border primitives.

One issue to address in a follow-up: the input bar is now rendered during the splash/loading state, so users can submit messages before the client is ready. These get queued via handleSubmit, but nothing calls processQueue after initialization completes — the queue only drains when sendPrompt finishes a prompt. The fix is small: after setStatus("ready") in the initialization useEffect, add an else if (queueRef.current.length > 0) { processQueue(); } branch and add processQueue to the dependency array.

(Couldn't push the fix directly since the branch is already in the merge queue.)

Merged via the queue into main with commit 7368f74 Mar 27, 2026
21 checks passed
@alexhancock alexhancock deleted the alexhancock/tui-ui-fixes branch March 27, 2026 19:58
michaelneale added a commit that referenced this pull request Mar 30, 2026
* origin/main: (63 commits)
  remove name from blog post (#8157)
  fix: use `overflow: clip` to not disrupt sticky ToC (#8158)
  chore(deps): bump path-to-regexp from 0.1.12 to 0.1.13 in /documentation (#8161)
  chore(deps): bump node-forge from 1.3.2 to 1.4.0 in /documentation (#8145)
  refactor: goose-acp-server -> goose binary for TUI (#8155)
  fix "View as Markdown" feature not working (#8160)
  feat(tui): UI improvements for messages, tool calls, text entry, etc (#8156)
  feat(desktop): add i18n infrastructure with react-intl (#8105)
  fix(tui): ordering of messages (#8144)
  fix: extension command with quotes in  cli (#8150)
  chore(aaif): Use Azure Artifact Signing for Windows (#8116)
  chore(aaif): Switch macOS code signing (#8076)
  Remove unused tool call json in logs (#8147)
  feat(tui): tab expand tool calls cleanly (#8136)
  fix: replace panics with user-friendly errors in CLI session builder (#7901)
  fix: read GOOSE_CONTEXT_LIMIT from config.yaml, not just env vars (#7900)
  fix: deliver truncation notice as separate content block (#7899)
  fix: use platform-appropriate commands in developer extension instructions (#7898)
  fix: replace any with proper SVG types in icon components (#7873)
  chore: remove debug console.log statements, stale comments, and dead code (#8142)
  ...
hydrosquall pushed a commit to hydrosquall/goose that referenced this pull request Mar 31, 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.

3 participants