Skip to content

Embed chat input within transcript column#45

Closed
vinhnx wants to merge 1 commit intocodex/migrate-vtcode-project-to-ratatui-qicncafrom
codex/remove-fixed-chat-input-and-background-view
Closed

Embed chat input within transcript column#45
vinhnx wants to merge 1 commit intocodex/migrate-vtcode-project-to-ratatui-qicncafrom
codex/remove-fixed-chat-input-and-background-view

Conversation

@vinhnx
Copy link
Copy Markdown
Owner

@vinhnx vinhnx commented Sep 21, 2025

Summary

  • embed the chat input row inside the transcript column so it participates in the message list instead of staying fixed at the bottom
  • drop the background view styling so the session uses the default terminal background

Testing

  • cargo fmt
  • cargo test

https://chatgpt.com/codex/tasks/task_e_68d004e2470083239d33dd6f75d19835

@vinhnx vinhnx changed the base branch from main to codex/migrate-vtcode-project-to-ratatui-qicnca September 21, 2025 14:08
@vinhnx vinhnx closed this Sep 21, 2025
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 suggestions.

Reply with @codex fix comments to fix any unresolved comments.

About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you open a pull request for review, mark a draft as ready, or comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex fix this CI failure" or "@codex address that feedback".

Comment on lines 425 to 452
overflow: Overflow::Hidden,
) {
#(transcript_rows)
}
View(flex_direction: FlexDirection::Column, gap: 1u16) {
View(
flex_direction: FlexDirection::Row,
align_items: AlignItems::Center,
gap: 1u16,
) {
Text(
content: prompt_prefix_value.clone(),
color: prompt_style_value.color.or(theme_value.secondary),
weight: prompt_style_value.weight,
italic: prompt_style_value.italic,
wrap: TextWrap::NoWrap,
)
TextInput(
has_focus: true,
value: input_value_string.clone(),
on_change: move |value| {
let mut handle = input_value_state;
handle.set(value);
},
color: theme_value.foreground,
)
View(flex_direction: FlexDirection::Column, gap: 1u16) {
View(
flex_direction: FlexDirection::Row,
align_items: AlignItems::Center,
gap: 1u16,
) {
Text(
content: prompt_prefix_value.clone(),
color: prompt_style_value.color.or(theme_value.secondary),
weight: prompt_style_value.weight,
italic: prompt_style_value.italic,
wrap: TextWrap::NoWrap,
)
TextInput(
has_focus: true,
value: input_value_string.clone(),
on_change: move |value| {
let mut handle = input_value_state;
handle.set(value);
},
color: theme_value.foreground,
)
}
#(placeholder_element.into_iter())
}
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] Preserve input visibility when transcript overflows

The text input is now rendered inside the same View that holds the transcript and still has overflow: Hidden with a fixed height. Once enough transcript rows are present to fill that container, the input View is pushed beyond the bottom and hidden along with the overflow content, so the user can no longer see or interact with the prompt field until they manually scroll to the very bottom. Before this change the input sat outside the scrollable region and remained visible regardless of scroll position. This regression makes sending new messages impossible in long sessions.

Useful? React with 👍 / 👎.

@vinhnx vinhnx deleted the codex/remove-fixed-chat-input-and-background-view branch September 28, 2025 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant