Description
In serve/web mode, when the AI uses the question tool with multiple-choice options that include a "Type your own answer" field, entering a large amount of text causes the textarea to grow without bound. This pushes the Submit/Next/Dismiss buttons outside the visible area, making them inaccessible.
Steps to reproduce
- Run opencode in serve mode (
opencode serve)
- Open the web UI
- Trigger a question with options (e.g. ask the model to use the question tool)
- Click "Type your own answer"
- Paste or type a large block of text (several lines)
Expected behavior
The textarea should stop growing after a reasonable height and scroll internally. The footer with Submit/Next/Dismiss buttons should always remain visible.
Actual behavior
The textarea expands to fit all content with no height limit, pushing the footer buttons out of the viewport.
as in the pic below, can't find the submit button
Root cause
resizeInput() in session-question-dock.tsx sets el.style.height = el.scrollHeight with no upper bound
question-custom-input CSS uses overflow: hidden, so content expands the element instead of scrolling internally
- No
max-height is set on the textarea
Environment
Description
In serve/web mode, when the AI uses the
questiontool with multiple-choice options that include a "Type your own answer" field, entering a large amount of text causes the textarea to grow without bound. This pushes the Submit/Next/Dismiss buttons outside the visible area, making them inaccessible.Steps to reproduce
opencode serve)Expected behavior
The textarea should stop growing after a reasonable height and scroll internally. The footer with Submit/Next/Dismiss buttons should always remain visible.
Actual behavior
The textarea expands to fit all content with no height limit, pushing the footer buttons out of the viewport.
as in the pic below, can't find the submit button
Root cause
resizeInput()insession-question-dock.tsxsetsel.style.height = el.scrollHeightwith no upper boundquestion-custom-inputCSS usesoverflow: hidden, so content expands the element instead of scrolling internallymax-heightis set on the textareaEnvironment