Per-chat actions (context menu) in the sidebar `CHATS` list — Pin, Rename, Archive, Delete
- Lenguaje dominante
- Rust
- Estrellas
- 54.2k
- Forks
- 6.2k
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 262
Descripción
**Summary**
Add a hover-activated **three-dots (⋯) context menu** to each session in the sidebar `CHATS` list, exposing quick per-chat actions **without** having to navigate to the separate `Session History` view. At minimum: **Rename, Pin, Archive, Delete**.
## Problem / Motivation
Today, session management actions are split across two surfaces, which is friction for a common, high-frequency task:
- **Sidebar `CHATS` list** (the ~10 most recent sessions): supports inline **rename via double-click**, but has **no delete, no pin, no archive**.
- **`Session History` view**: has hover **✏️ rename** and **🗑️ delete** on session cards — but reaching it is a detour from where I actually live day-to-day (the sidebar).
Two concrete gaps:
1. **No quick delete/manage from the sidebar** — I have to leave my current context and open `Session History` to clean up.
2. **No "Archive" concept anywhere in goose** — the only way to declutter the sidebar is *permanent* deletion. There's no non-destructive "hide this from the list but keep the record" option.
## Proposed Solution
On hover of a sidebar `CHATS` item, show a **⋯ menu** (and ideally an inline **pin** affordance). Menu items:
- **Pin / Star** — keep important chats at the top of the list, unaffected by recency.
- **Rename** — (already possible via double-click; include here for discoverability).
- **Archive** — remove from the active sidebar list **without deleting** the underlying session record. Add an **"Archived"** view/filter to browse and **restore** archived chats.
- **Delete** — existing permanent delete, surfaced in-context (with the current confirmation modal).
### Why "Archive" specifically
Delete is permanent and irreversible (it removes the local session record, and also from the CLI). Many chats aren't worth keeping in the active list but are also not worth destroying. Archive gives a safe middle ground and is the main net-new capability being requested here.
## Prior Art (other agent harnesses)
This pattern is well-established and sets user expectations:
- **Anthropic / Claude**: hover a chat → **⋯** menu with **Star, Rename, Add to project, Delete**.
- **OpenAI / ChatGPT**: hover a chat → inline **pin** icon + **⋯** menu with **Share, Rename, Archive, Delete** (and an "Archived chats" management view).
Bringing equivalent per-chat controls into the goose sidebar would close a visible UX gap versus these tools.
## Alternatives Considered
- **Keep actions only in `Session History`** — works, but adds navigation friction for a frequent task and still provides no archive.
- **Sidebar-only delete (no archive)** — helps, but doesn't solve the "declutter without losing" need.
## Additional Context
- Related (but distinct): #8140 — *Make sidebar session list limit configurable*. That addresses the **length** of the list; this request addresses **per-item actions** and adds **archive/pin**. They complement each other.
- Rename and delete already exist (rename: sidebar double-click + Session History hover-edit; delete: Session History hover-trash), so the primary net-new asks are **Archive** and **Pin**, plus **surfacing all actions in the sidebar context menu**.
- Platform: goose Desktop.
## Acceptance Criteria (suggested)
- [ ] Hovering a sidebar `CHATS` item reveals a ⋯ menu (keyboard-accessible).
- [ ] Menu includes Pin, Rename, Archive, Delete.
- [ ] Pinned chats stay at the top regardless of recency.
- [ ] Archiving hides a chat from the active list but preserves the record; an Archived view allows restore.
- [ ] Delete retains the existing confirmation + permanence semantics.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.