Skip to content

release: v0.4.3#18

Merged
code-crusher merged 1 commit into
mainfrom
release/v0.4.3
Jul 13, 2026
Merged

release: v0.4.3#18
code-crusher merged 1 commit into
mainfrom
release/v0.4.3

Conversation

@code-crusher

Copy link
Copy Markdown
Member

Release v0.4.3

Changed

  • Diff background colors are now 50% transparent. Added/removed line backgrounds in the diff view are alpha-blended against the terminal background (#1a1a1a), producing a muted green (#2C5E40) and muted red (#7E3045).
  • Viewport layout adapts to the real input box height. The input box now reports its rendered height to the parent viewport (including multiline prompt wrapping, slash-command popups, and file-completion popups), so the bottom controls stack never overlaps the live response.
  • Streaming output is truncated to the viewport tail. Only lines fitting the available height are rendered during streaming. The complete response is committed to the transcript on completion.
  • Diff line-height estimates in the virtualized transcript now account for the number/type gutter.
  • Task list height measurement uses proper word-wrap calculations.
  • Reasoning row height estimates account for the gutter.
  • Result preview and completion text use correct line widths.

Fixed

  • Resumed sessions now restore reasoning and tool history. Persist the exact visible transcript, including thinking durations, tool summaries, result previews, errors, and diffs. Older sessions reconstruct tool calls, results, and edit fragments from their stored model messages when possible.
  • @-file autocomplete now shows files created during the session. File list is re-scanned each time the @ popup opens instead of being computed once on mount.

Release flow

Once this PR is merged into main, tag the merge commit with v0.4.3 to trigger the npm publish workflow.

@matterai-app

matterai-app Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Summary By MatterAI MatterAI logo

🔄 What Changed

This PR marks the release of v0.4.3, introducing significant improvements to the TUI layout engine. Key changes include dynamic height reporting from the InputBox to the main App component, allowing the UI to adjust fluidly when autocomplete popups or multiline inputs are active. Additionally, streaming text rendering is now optimized using a "tail" approach to prevent performance degradation during long response generation.

🔍 Impact of the Change

  • UI Stability: Prevents the input area from overlapping the conversation transcript by accurately calculating the bottom stack height.
  • Performance: Reduces rendering overhead during streaming by only processing the visible tail of the incoming text.
  • UX: Better handling of complex row types (reasoning, diffs, tool outputs) in the terminal viewport.

📁 Total Files Changed

Click to Expand
File ChangeLog
package.json Version Bump to v0.4.3.
src/ui/App.tsx Layout Engine update to support dynamic input heights and optimized streaming display.
src/ui/components/InputBox.tsx Height Reporting implemented via useLayoutEffect to notify parent of rendered size.

🧪 Test Added/Recommended

Recommended

  • Unit Tests: Add tests for tailForHeight and estimateRowLines to validate height calculations across various terminal widths.
  • Integration Tests: Verify that onHeightChange triggers correctly when autocomplete menus (slash commands/files) toggle.

🔒 Security Vulnerabilities

No security vulnerabilities detected. 🛡️

@matterai-app

matterai-app Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

✅ Reviewed the changes: Clean release PR with well-structured TUI layout improvements — dynamic input box height reporting, streaming text tail optimization, and more accurate row height estimation. No issues found in the new code.

@code-crusher code-crusher merged commit df7f335 into main Jul 13, 2026
1 check passed
@code-crusher code-crusher deleted the release/v0.4.3 branch July 13, 2026 07:46
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.

1 participant