commit 977e9bb08f64439a798c1177ba2572587095c5d0
parent 8a85cf83fbd9ef21cc239bb92eb0150c82943f2b
Author: William Casarin <jb55@jb55.com>
Date: Wed, 28 Jan 2026 19:04:58 -0800
dave: move compaction status to chat area with spinner
Show the compaction status at the bottom of the chat messages with a
spinner animation, matching Claude Code's UX of showing status after
the user's message rather than in the input box.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat:
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/crates/notedeck_dave/src/ui/dave.rs b/crates/notedeck_dave/src/ui/dave.rs
@@ -295,6 +295,23 @@ impl<'a> DaveUi<'a> {
};
}
+ // Show status line at the bottom of chat when compacting
+ if self.is_compacting {
+ ui.horizontal(|ui| {
+ ui.add(egui::Spinner::new().size(14.0));
+ ui.label(
+ egui::RichText::new("compacting...")
+ .color(ui.visuals().weak_text_color())
+ .italics(),
+ );
+ ui.label(
+ egui::RichText::new("(press esc to interrupt)")
+ .color(ui.visuals().weak_text_color())
+ .small(),
+ );
+ });
+ }
+
response
}
@@ -740,14 +757,6 @@ impl<'a> DaveUi<'a> {
dave_response = DaveResponse::send();
}
- // Show compaction indicator when compacting
- if self.is_compacting {
- super::badge::StatusBadge::new("COMPACTING...")
- .variant(super::badge::BadgeVariant::Warning)
- .show(ui)
- .on_hover_text("Conversation is being compacted to save tokens");
- }
-
// Show plan mode indicator with optional keybind hint when Ctrl is held
let ctrl_held = ui.input(|i| i.modifiers.ctrl);
let mut badge =