[FEATURE] Session search should report which surfaces it could not search
Preflight
Searched existing requests. The closest are:
- #89073 — one-click handoff between Cowork and Claude Code. Asks for the
handoff mechanism. This request is about what happens when the handoff
didn't occur, or occurred informally, and the Code session goes looking.
- #88640 — project memory reaching Local but not Cloud sessions. A memory
propagation bug, not a search/reporting gap.
- #90025 — multi-repository communication and persistent cross-session memory.
- #87686 — shared/exportable conversation history between desktop and Code.
Closed as not planned. This request is deliberately much narrower: no history
sharing, no data movement, just an honest signal.
Single request: yes.
Problem
Session search inside Claude Code cannot see Cowork sessions, and returns an
empty result rather than saying so. An empty result is indistinguishable from
"nothing like this was ever discussed." Both the user and the assistant then
reason from a false premise.
Concrete trace, today. A Cowork session designed a system and settled where it
should run. I opened Claude Code to build a component feeding it. I told Claude
"scan sessions, you'll see we decided X." Claude searched 60+ Claude Code
sessions plus the archive, got nothing, and concluded the context wasn't there.
It searched correctly. I remembered correctly. The result was still wrong,
because the tool answered a narrower question than the one asked and reported it
as if it were the whole answer. We spent several turns proving a negative before
I realised the conversation lived in Cowork and said so out loud.
The cost is not just wasted turns. It actively misleads: it looks like a memory
failure, so you go debugging memory instead of noticing a boundary.
Solution
When a session search returns no results — or few — say what wasn't searched:
No matching sessions found in Claude Code (62 searched).
Note: Cowork and claude.ai sessions are not covered by this search.
Better, if the count is cheap to obtain: 3 matching sessions on another surface. Even without titles or content, knowing they exist
(not searchable from here)
redirects the search instantly.
The principle: a tool that can only see part of the space should say which part,
rather than reporting a partial answer as a complete one.
Alternatives considered
- Rely on the user to remember which surface a conversation happened on. This is
what happens today, and it failed for me — I was confident it was searchable.
- Artifacts as the bridge. This genuinely works: Claude Code read a private
claude.ai artifact from its URL in the same session. But it only covers
published artifacts, and requires having decided in advance to publish the
design rather than leave it in chat.
- Full cross-surface search (#87686). Closed as not planned, and much bigger than
what's needed here.
Use case
Design in Cowork, build in Claude Code. That's a normal and I think common split.
Every handoff between them currently starts with the Code session blind, and with
no way to tell that it's blind.
Priority
Medium — a workaround exists once you know the boundary is there. The problem is
that nothing tells you it's there.
Category
Interactive mode / session management.
Environment
Claude Code (desktop app), Darwin 25.6.0, Opus 5. Cowork on claude.ai.