Skip to content

Conversation

@nimrodkor
Copy link
Contributor

@nimrodkor nimrodkor commented Jan 5, 2026

Generated description

Below is a concise technical summary of the changes proposed in this PR:
Integrate the ink-scroll-view component into ChatDisplay.tsx to manage chat message rendering, preventing UI flicker by providing a dedicated scrollable area for messages. Enhance user interaction by enabling keyboard-controlled scrolling and improving the ChatInput component to allow tab character insertion when no tool calls are active.

TopicDetails
Implement Chat Scrolling Integrate the ink-scroll-view component into ChatDisplay.tsx to provide a scrollable area for chat messages, preventing UI flicker and enabling keyboard-driven navigation with auto-scrolling for new messages.
Modified files (3)
  • src/pages/chat/ChatDisplay.tsx
  • package.json
  • package-lock.json
Latest Contributors(2)
UserCommitDate
internal-baz-ci-app[bot]chore-main-release-0.3...December 28, 2025
ofir@baz.cofeat-stop-agent-after-...December 23, 2025
Enhance Chat Input Modify the ChatInput component to insert a tab character when the tab key is pressed and no tool calls are active, improving text input functionality.
Modified files (1)
  • src/pages/chat/ChatInput.tsx
Latest Contributors(2)
UserCommitDate
ofir@baz.cofeat-stop-agent-after-...December 23, 2025
nimrod@baz.cofix-Correct-verdict-va...December 15, 2025
This pull request is reviewed by Baz. Review like a pro on (Baz).

Comment on lines 275 to +277
}
},
{ isActive: isLoading || hasPendingToolCalls },
{ isActive: !disabled && !isLoading && !hasPendingToolCalls },
Copy link
Contributor

Choose a reason for hiding this comment

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

Is the isActive guard intentional? While isLoading is true the handler never runs, so ESC/onInterrupt can no longer stop a streaming response.

Suggested change
}
},
{ isActive: isLoading || hasPendingToolCalls },
{ isActive: !disabled && !isLoading && !hasPendingToolCalls },
}
},
{ isActive: !disabled && !hasPendingToolCalls },

Finding type: Logical Bugs

Comment on lines +187 to +192
const scrollToBottom = useCallback(() => {
if (scrollViewRef.current) {
setTimeout(() => {
scrollViewRef.current?.scrollToBottom();
}, 0);
}

Choose a reason for hiding this comment

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

scrollViewRef.current?.scrollToBottom() is invoked during initialization, but ink-scroll-view 0.3.5 only exposes scrollTo/scrollBy/remeasure/getViewportHeight on its ScrollViewRef (there is no scrollToBottom method per the official docs). That will raise "scrollToBottom is not a function" at runtime when this path executes.

Suggested change
const scrollToBottom = useCallback(() => {
if (scrollViewRef.current) {
setTimeout(() => {
scrollViewRef.current?.scrollToBottom();
}, 0);
}
const scrollToBottom = useCallback(() => {
if (scrollViewRef.current) {
setTimeout(() => {
scrollViewRef.current?.scrollTo(Number.MAX_SAFE_INTEGER);
}, 0);
}

Finding type: Type Inconsistency

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.

2 participants