fix: support large files in comparisons

Replace the 16 MiB comparison rejection with independent bounded per-side loading and frozen Working blobs. Bound diff computation, defer large inline highlighting, index source-row navigation, and expose actual load failures. Verified the real 52.3 MB parser through repository/session APIs and terminal rendering with EOF/start navigation.
This commit is contained in:
2026-10-17 00:03:43 +02:00
parent adbd2c3f81
commit b9f29d258c
11 changed files with 986 additions and 199 deletions
+10 -2
View File
@@ -3976,13 +3976,21 @@ impl WheelPanels {
} else {
let content = diff_pane_panel(frame, diff, selected, panes, true, resolver);
frame.render_widget(
Paragraph::new(if diff.loading {
Paragraph::new(display_text(if diff.loading {
"Loading file…"
} else if let Some(error) = diff.error.as_deref() {
error
} else if selected.is_some() {
"File details unavailable · select the file to retry"
} else {
"No changed files"
}),
}))
.wrap(Wrap { trim: false })
.style(Style::default().fg(if diff.error.is_some() {
Color::Red
} else {
Color::Reset
})),
content,
);
}