Make it easy to reference one session from another: copy session reference, @-mention sessions, clickable session chips
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 153
- PR merge metrics
- No merged PRs in 30d
Description
### Feature summary
Give sessions a first-class, copyable reference — session id, deep link, and human label — plus an `@`-mention picker in the composer, so pointing one session at another is a click instead of a description.
### What problem are you trying to solve?
Sessions already relate to each other. They spawn child sessions, they send cross-session messages, they get orchestrated in parallel, and they stack dependent PRs. But there is no cheap way to *name* a session.
The session id is not surfaced anywhere in the UI, so referring to another session means describing it in prose: "the session where I fixed the crawler issue in the other repo". That is ambiguous when two sessions touch the same area, and it forces the agent to go hunting — or to ask me to go hunting — instead of resolving a handle.
Concretely, things that should be trivial and are not:
- "Continue what that other session started" — I cannot hand over a pointer.
- "This session found the root cause; go read its plan" — no way to link it.
- "These three sessions are the same effort" — no way to relate them after the fact.
- Reporting a bug about a specific session — no id to include.
The pieces are clearly already there under the hood, since sessions can message each other by id. What is missing is exposing that id to the human.
### Proposed solution
**1. Copy session reference**
In the session context menu and the session header overflow menu, a **Copy session reference** submenu offering:
- **Session id** — the raw identifier, for tooling and bug reports.
- **Deep link** — e.g. `copilot://session/`, which focuses that session when opened.
- **Human label** — e.g. `session: SEO review (my-org/my-repo · fix-crawler)`, for pasting into a message or a PR description.
**2. Session id visible in details, with one-click copy**
The session details panel should just show the id with a copy button. Always retrievable, no menu digging.
**3. `@`-mention picker in the composer**
Typing `@session` (or `@` with a session section in the existing picker) offers a searchable list showing name, repository, branch, and last activity — so the right one is identifiable at a glance. Selecting it inserts a real reference, not plain text.
**4. Pasted references render as chips**
A pasted deep link or reference renders as a chip with the session name and repo, clickable to jump to that session. Same idea as `#123` becoming a linked issue reference on GitHub.
**5. Make references resolvable by the agent**
The important half: when a session reference is in the prompt, the agent should be able to act on it — read that session's summary, plan, and recent turns, and send it a message — without asking me for an id. That turns "look at what that session found" into a working instruction rather than a hint.
**6. Backlinks, ideally**
If session A references session B, showing that relationship on B ("referenced by: …") makes a multi-session effort navigable after the fact, which is where it is usually needed.
### Workflow impact
This helps anyone running more than one session at a time, which is the app's core pitch. It makes hand-offs between sessions concrete, makes multi-session efforts navigable instead of remembered, and makes bug reports about session behavior precise. It is also a small building block that several bigger asks quietly depend on — orchestration, stacked PRs, and any "related work" surface all need a way to name a session.
### Installation context
Desktop app, local and cloud sessions, across projects.
### Additional context
Related: #248 (feature-centric session trees) and #1035 (single session across multiple repositories). Both are about session *structure*; neither gives me a copyable reference to an existing session, which is the cheap primitive that would make those easier to build on.
Smallest useful first step: show the session id in session details with a copy button, and accept a pasted id in the composer as a resolvable reference. The `@`-mention picker and chips can follow.
Contributor guide
Research direction
The issue names the session details panel, session context and header menus, composer, picker, and pasted-reference rendering as entry points. Start by tracing how session ids are currently used for cross-session messages and how the details panel and composer represent sessions. Done should cover the stated smallest useful first step: showing an id with copy support and resolving a pasted id in the composer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github
- Domain
- desktop, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100