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:
@@ -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