Upgrade Ratatui to 0.30.2 (#35959)

## What changed

- Upgrade `ratatui`, `ratatui-macros`, `crossterm`, and `ansi-to-tui`, and adapt the TUI to their updated rendering, backend, color-conversion, and cell APIs.
- Use Ratatui's cell-width and continuation-cell metadata when mapping OSC 8 hyperlinks so links remain aligned across wrapped wide glyphs and halfwidth characters with dakuten.
- Preserve explicit hyperlinks in the sign-in success screen and empty MCP state without embedding escape sequences in the text passed to Ratatui.

## Testing

- Add regression coverage for hyperlink placement across wide glyphs and halfwidth dakuten, hyperlink preservation in onboarding and MCP output, and display-width handling.

GitOrigin-RevId: 8460873e5a266923acd0417bc46264845eab0134
This commit is contained in:
Charlie Marsh authored and copyberry committed 2026-07-29 13:53:15 +00:00
1 parent e1895710ad
commit 00cb5c465b
43 files changed
+1097 -303

No files matched your search

+2 -1
View File
@@ -1,5 +1,6 @@
use std::fmt;
use std::future::Future;
use std::io;
use std::io::IsTerminal;
use std::io::Result;
use std::io::Stdout;
@@ -589,7 +590,7 @@ struct PendingHistoryLines {
fn clear_for_viewport_change<B>(terminal: &mut CustomTerminal<B>, new_area: Rect) -> Result<()>
where
B: Backend + Write,
B: Backend<Error = io::Error> + Write,
{
let clear_position = if terminal.viewport_area.is_empty() {
new_area.as_position()