Commit a4992cf
committed
feat(tui): remove redundant metadata from multiple places
The "Build · Model · Duration" metadata line displayed after every assistant response duplicates information already shown in the status line above the prompt. Removed the redundant mode, model, and duration display while keeping the "interrupted" indicator since it's specific to individual messages.
fix(tui): improve error message rendering on window resize
Error messages now stay visible and properly positioned on window resize by:
- Removing hard requirement for 4+ rows, adapting notification height to available space
- Positioning notifications at bottom if insufficient top space
- Adding bounds checking for buffer cell mutations to prevent out-of-bounds access
- Only rendering text rows that fit within the viewport
fix(tui): use width-aware truncation for error messages
Error messages were wrapping across multiple lines in the notification toast because truncation was based on character count, not display width. Unicode characters (like icons) take up more display cells than their character count. Changed to use `unicode_width` to calculate actual display width and truncate messages based on visual width rather than character count, ensuring they stay on a single line.
fix(tui): remove redundant model/provider from welcome and status line
Remove model, provider, and current working directory from the welcome-back section and the status line above the prompt input, as this information is already shown in the footer. Also, add padding to the footer (1 char on each side and 1 line bottom padding). Add leading space to status line and trailing space to shortcuts hint for better visual spacing.
fix(tui): reset error modal scroll offset when a new error notification arrives
Previously the scroll offset was only reset at dismiss time, so a new short error appearing after a scrolled-down long error would render mid-scroll, hiding the start of the message. The new push_notification() wrapper on App resets error_modal_scroll_offset to 0 whenever an Error-kind notification is pushed.
fix(tui): use actual notification duration for progress bar fill
The progress bar previously assumed all timed notifications last 5 seconds, causing the bar to fill only a fraction of its range for shorter notifications (e.g. a 2s notification would only reach 40% fill). Now pushed_at is stored on Notification and the bar fraction is computed from the real total duration.
fix(tui): minor render.rs cleanup
- Extract "thinking"/"thinking…" filter strings to STATUS_THINKING / STATUS_THINKING_ELLIPSIS constants used in both should_render_status_row and render_status_row
- Remove no-op area.width.min(area.width) in render_welcome_box
a1 parent 3474a0e commit a4992cf
4 files changed
Lines changed: 468 additions & 464 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2150 | 2150 | | |
2151 | 2151 | | |
2152 | 2152 | | |
2153 | | - | |
| 2153 | + | |
2154 | 2154 | | |
2155 | 2155 | | |
2156 | 2156 | | |
2157 | 2157 | | |
2158 | 2158 | | |
2159 | | - | |
| 2159 | + | |
2160 | 2160 | | |
2161 | 2161 | | |
2162 | 2162 | | |
2163 | 2163 | | |
2164 | 2164 | | |
2165 | 2165 | | |
2166 | | - | |
| 2166 | + | |
2167 | 2167 | | |
2168 | 2168 | | |
2169 | 2169 | | |
| |||
2569 | 2569 | | |
2570 | 2570 | | |
2571 | 2571 | | |
| 2572 | + | |
| 2573 | + | |
| 2574 | + | |
| 2575 | + | |
| 2576 | + | |
| 2577 | + | |
| 2578 | + | |
| 2579 | + | |
| 2580 | + | |
2572 | 2581 | | |
2573 | 2582 | | |
2574 | 2583 | | |
| |||
2608 | 2617 | | |
2609 | 2618 | | |
2610 | 2619 | | |
2611 | | - | |
| 2620 | + | |
2612 | 2621 | | |
2613 | 2622 | | |
2614 | 2623 | | |
2615 | 2624 | | |
2616 | 2625 | | |
2617 | 2626 | | |
2618 | | - | |
| 2627 | + | |
2619 | 2628 | | |
2620 | 2629 | | |
2621 | 2630 | | |
2622 | 2631 | | |
2623 | 2632 | | |
2624 | 2633 | | |
2625 | | - | |
| 2634 | + | |
2626 | 2635 | | |
2627 | 2636 | | |
2628 | 2637 | | |
| |||
3137 | 3146 | | |
3138 | 3147 | | |
3139 | 3148 | | |
3140 | | - | |
| 3149 | + | |
3141 | 3150 | | |
3142 | 3151 | | |
3143 | 3152 | | |
3144 | 3153 | | |
3145 | 3154 | | |
3146 | 3155 | | |
3147 | | - | |
| 3156 | + | |
3148 | 3157 | | |
3149 | 3158 | | |
3150 | 3159 | | |
| |||
3561 | 3570 | | |
3562 | 3571 | | |
3563 | 3572 | | |
3564 | | - | |
| 3573 | + | |
3565 | 3574 | | |
3566 | 3575 | | |
3567 | 3576 | | |
3568 | 3577 | | |
3569 | 3578 | | |
3570 | | - | |
| 3579 | + | |
3571 | 3580 | | |
3572 | 3581 | | |
3573 | 3582 | | |
| |||
3892 | 3901 | | |
3893 | 3902 | | |
3894 | 3903 | | |
3895 | | - | |
| 3904 | + | |
3896 | 3905 | | |
3897 | 3906 | | |
3898 | 3907 | | |
| |||
3911 | 3920 | | |
3912 | 3921 | | |
3913 | 3922 | | |
3914 | | - | |
| 3923 | + | |
3915 | 3924 | | |
3916 | 3925 | | |
3917 | 3926 | | |
| |||
3960 | 3969 | | |
3961 | 3970 | | |
3962 | 3971 | | |
3963 | | - | |
| 3972 | + | |
3964 | 3973 | | |
3965 | 3974 | | |
3966 | 3975 | | |
| |||
4031 | 4040 | | |
4032 | 4041 | | |
4033 | 4042 | | |
4034 | | - | |
| 4043 | + | |
4035 | 4044 | | |
4036 | 4045 | | |
4037 | 4046 | | |
| |||
4632 | 4641 | | |
4633 | 4642 | | |
4634 | 4643 | | |
4635 | | - | |
| 4644 | + | |
4636 | 4645 | | |
4637 | 4646 | | |
4638 | 4647 | | |
| |||
4702 | 4711 | | |
4703 | 4712 | | |
4704 | 4713 | | |
4705 | | - | |
| 4714 | + | |
4706 | 4715 | | |
4707 | 4716 | | |
4708 | 4717 | | |
| |||
4735 | 4744 | | |
4736 | 4745 | | |
4737 | 4746 | | |
4738 | | - | |
| 4747 | + | |
4739 | 4748 | | |
4740 | 4749 | | |
4741 | 4750 | | |
| |||
5380 | 5389 | | |
5381 | 5390 | | |
5382 | 5391 | | |
5383 | | - | |
| 5392 | + | |
5384 | 5393 | | |
5385 | 5394 | | |
5386 | 5395 | | |
5387 | 5396 | | |
5388 | 5397 | | |
5389 | | - | |
| 5398 | + | |
5390 | 5399 | | |
5391 | 5400 | | |
5392 | 5401 | | |
| |||
5465 | 5474 | | |
5466 | 5475 | | |
5467 | 5476 | | |
5468 | | - | |
| 5477 | + | |
5469 | 5478 | | |
5470 | 5479 | | |
5471 | 5480 | | |
| |||
5867 | 5876 | | |
5868 | 5877 | | |
5869 | 5878 | | |
5870 | | - | |
| 5879 | + | |
5871 | 5880 | | |
5872 | 5881 | | |
5873 | 5882 | | |
| |||
6049 | 6058 | | |
6050 | 6059 | | |
6051 | 6060 | | |
6052 | | - | |
| 6061 | + | |
6053 | 6062 | | |
6054 | 6063 | | |
6055 | 6064 | | |
| |||
6063 | 6072 | | |
6064 | 6073 | | |
6065 | 6074 | | |
6066 | | - | |
| 6075 | + | |
6067 | 6076 | | |
6068 | 6077 | | |
6069 | 6078 | | |
6070 | 6079 | | |
6071 | 6080 | | |
6072 | 6081 | | |
6073 | 6082 | | |
6074 | | - | |
| 6083 | + | |
6075 | 6084 | | |
6076 | 6085 | | |
6077 | 6086 | | |
| |||
6193 | 6202 | | |
6194 | 6203 | | |
6195 | 6204 | | |
6196 | | - | |
| 6205 | + | |
6197 | 6206 | | |
6198 | 6207 | | |
6199 | 6208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
189 | 189 | | |
190 | 190 | | |
191 | 191 | | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | | - | |
208 | | - | |
209 | 192 | | |
210 | 193 | | |
211 | 194 | | |
| |||
241 | 224 | | |
242 | 225 | | |
243 | 226 | | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
251 | 232 | | |
252 | | - | |
| 233 | + | |
253 | 234 | | |
254 | 235 | | |
255 | 236 | | |
256 | 237 | | |
257 | 238 | | |
258 | 239 | | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
| 240 | + | |
281 | 241 | | |
282 | 242 | | |
283 | | - | |
284 | | - | |
| 243 | + | |
| 244 | + | |
285 | 245 | | |
286 | 246 | | |
287 | 247 | | |
| |||
2679 | 2639 | | |
2680 | 2640 | | |
2681 | 2641 | | |
2682 | | - | |
2683 | | - | |
2684 | | - | |
0 commit comments