feat(tui): wire entity cache for near-instant detail view reopens (bd-3rjw)

- Add get_mut() and clear() methods to EntityCache<V>
- Add CachedIssuePayload / CachedMrPayload types to state
- Wire cache check in navigate_to for instant cache hits
- Populate cache on IssueDetailLoaded / MrDetailLoaded
- Update cache on DiscussionsLoaded
- Add 6 new entity_cache tests (get_mut, clear)
This commit is contained in:
teernisse
2026-02-19 00:25:04 -05:00
parent 026b3f0754
commit 04ea1f7673
13 changed files with 575 additions and 34 deletions

View File

@@ -371,7 +371,11 @@ fn render_mr_list(
// Inline discussion snippets (rendered beneath MRs when toggled on).
if state.show_discussions && !result.discussions.is_empty() {
let visible_mrs = result.merge_requests.len().saturating_sub(offset).min(height);
let visible_mrs = result
.merge_requests
.len()
.saturating_sub(offset)
.min(height);
let disc_start_y = start_y + visible_mrs as u16;
let remaining = height.saturating_sub(visible_mrs);
render_discussions(frame, result, x, disc_start_y, max_x, remaining, bp);