Conversation
1. Removed a lot of unnecessary borders around elements. 2. Added line numbers for the input in issue conversation 3. Added a `BodyPreview` component that shows a preview of the issue body in the TUI list widget. test(ui): update tests chore: fix lints feat(style): migrate over issue_create fix(style): remove old style borders for new ones in textarea previews fix: fix bugs
…ersation fix: render placeholder in create issue mode for convo preview
test(markdown): add UI tests for fixed list rendering
Greptile SummaryThis is a release PR bumping
|
| Filename | Overview |
|---|---|
| src/ui/components/issue_convo_preview.rs | New component providing a mini preview panel showing either the issue body or a list of nearby issues. Contains a misleading "fullscreen mode" message shown in CreateIssue screen, and a block_template that is only partially reused. |
| src/ui/components/issue_conversation.rs | Significant UI restyle (borders removed/simplified), checklist markdown bug-fix via new ListPrefix struct, and public exposure of render_markdown / MarkdownRender for the new preview component. Logic is sound. |
| src/ui/components/issue_list.rs | Refactored list-item building into public helpers (build_issue_list_item, build_issue_list_lines), added sliding-window preview logic (build_details_preview_issue_ids), and wired up the new IssueListPreviewUpdated action. No issues found. |
| src/ui/components/issue_detail.rs | Removed "Type" field (Issue/Pull Request distinction) and changed from rounded full-border block to a LEFT |
| src/ui/layout.rs | Added mini_convo_preview area to the layout struct, changed main split from 70/30 to 66/34, and introduced Spacing::Overlap(1) to allow borders to merge cleanly between panels. |
| src/ui/mod.rs | Registers the new IssueConvoPreview component (index 6) and adds two new Action variants (ChangeIssueBodyPreview, IssueListPreviewUpdated). Clean integration. |
| tests/markdown_checklists.rs | New integration tests covering the checklist rendering fix: ASCII checkbox prefixes, wrapped continuations, and mixed checked/unchecked lists. Well structured. |
| benches/ui_hotspots.rs | Switches from criterion::black_box (deprecated) to std::hint::black_box as the canonical opaque-use hint. Correct change. |
| src/ui/components/status_bar.rs | Minor typo fix: added missing closing > to the quit keybind display string (q/<C-q>/<C-c>). |
Sequence Diagram
sequenceDiagram
participant IL as IssueList
participant IP as IssueConvoPreview
participant IC as IssueConversation
participant ID as IssueDetail
IL->>IL: User selects issue (Enter)
IL->>IP: Action::ChangeIssueBodyPreview(body)
IL->>ID: Action::SelectedIssuePreview(seed)
IL->>IP: Action::IssueListPreviewUpdated(issue_ids, selected_number)
IL->>IC: Action::EnterIssueDetails(seed)
Note over IP: screen == List → show body preview
Note over IP: screen == Details → show nearby issues list
IP->>IP: User presses Enter on nearby issue
IP->>IL: Action::SelectedIssue(number, labels)
IP->>ID: Action::SelectedIssuePreview(seed)
IP->>IP: Action::IssueListPreviewUpdated(issue_ids, selected_number)
IP->>IC: Action::EnterIssueDetails(seed)
Comments Outside Diff (2)
-
src/ui/components/issue_convo_preview.rs, line 575-576 (link)Misleading error message for CreateIssue screen
The string
"No preview available in fullscreen mode"is displayed whenself.screen == MainScreen::CreateIssue, but the message incorrectly references "fullscreen mode". Fullscreen mode is a separate variant (MainScreen::DetailsFullscreen). A user creating an issue would see this text and be confused about why it says "fullscreen". -
src/ui/components/issue_convo_preview.rs, line 589-612 (link)block_templatepartially unusedblock_templateis constructed at line 590 but only used in the empty-body branch (viablock_template.title(...).merge_borders(...)). When a body is present, a completely differentBlockis constructed from scratch (lines 607–612), making theblock_templatevariable misleadingly named and partially dead. Consider either building the full block fromblock_templatein both branches, or inlining the block at the call site for the no-body case to make the intent explicit.
Last reviewed commit: "chore: release"
| - test fix(benches): make benches use `std::hint::black_box` | ||
| ## [0.3.4] - 2026-03-08 |
There was a problem hiding this comment.
Missing blank line between changelog sections
The new 0.3.5 section ends without a blank line before the ## [0.3.4] heading. Keep-a-Changelog format requires a blank line between ## entries for proper rendering on GitHub/crates.io.
| - test fix(benches): make benches use `std::hint::black_box` | |
| ## [0.3.4] - 2026-03-08 | |
| - test fix(benches): make benches use `std::hint::black_box` | |
| ## [0.3.4] - 2026-03-08 |
🤖 New release
ratatui-toaster: 0.1.1 -> 0.1.2 (✓ API compatible changes)gitv-tui: 0.3.4 -> 0.3.5 (✓ API compatible changes)Changelog
ratatui-toastergitv-tuiThis PR was generated with release-plz.