Add quick actions to sessions
Rename, AI retitle, pin and archive, reached from the "..." button on every session row and in the chat header. Sessions carry one lifecycle state (normal, pinned, archived) rather than independent flags, so the sidebar groups them without an unrepresentable pinned-and-archived case. The AI retitle runs as a one-shot against the transient KV cache through a new CheckpointTarget::OneShot, leaving no session or checkpoint behind while still reporting as local work in the metrics. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cc9e09ff1d
commit
35087580d5
12 files changed
+687
-45
No files matched your search
+12
-8
@@ -31,14 +31,18 @@ impl App {
|
||||
let project = &item.project;
|
||||
let active_title = self.active_session_title(item);
|
||||
let selected_title = active_title.unwrap_or(project.name.as_str());
|
||||
let header = row![
|
||||
icon(ICON_FOLDER, 19),
|
||||
text(selected_title).size(18),
|
||||
icon(ICON_MORE, 18),
|
||||
Space::with_width(Length::Fill),
|
||||
]
|
||||
.spacing(10)
|
||||
.align_y(Alignment::Center);
|
||||
let mut header = row![icon(ICON_FOLDER, 19), text(selected_title).size(18)];
|
||||
if let Some(session) = self.selected_session(item) {
|
||||
header = header.push(
|
||||
button(icon(ICON_MORE, 18))
|
||||
.on_press(Message::OpenSessionMenu(session.id))
|
||||
.style(button::text),
|
||||
);
|
||||
}
|
||||
let header = header
|
||||
.push(Space::with_width(Length::Fill))
|
||||
.spacing(10)
|
||||
.align_y(Alignment::Center);
|
||||
|
||||
let body: Element<'_, Message> = if let Some(title) = active_title {
|
||||
let mut messages = column![].spacing(12);
|
||||
|
||||
Reference in new issue
Block a user