Summary
Archiving a session has no inverse exposed to either the assistant or the user, leaving archived sessions effectively orphaned.
Two related gaps:
- MCP gap:
mcp__ccd_session_mgmt__archive_session exists, but there is no unarchive_session. The assistant can put a session into the archived state but cannot take it out.
- Desktop UI gap: the macOS desktop app's sidebar (Chat / Cowork / Code panels) has no Archived view, filter, or per-project toggle. Archived sessions are not visible anywhere in the sidebar I can find. "More" doesn't surface them either.
Repro
- In the desktop app, archive a session (e.g. via auto-archive on PR merge, or by asking the assistant to archive).
- Try to find it again from the sidebar — no Archived filter or section.
- Ask the assistant to restore it. It can
list_sessions({include_archived: true}) and search_session_transcripts to find the session ID, but there is no tool to flip isArchived back to false.
mcp__ccd_session_mgmt__send_message also rejects archived sessions with "Session ... is archived; unarchive it first." — pointing at an action that has no exposed path.
Workaround discovered
Editing the session JSON file directly (e.g. ~/.claude/.../local_<id>.json) and flipping isArchived: true → false restores the session. Quitting and reopening Claude Desktop refreshes the index. This works but is undocumented and requires file editing.
Suggested fixes
- Add
mcp__ccd_session_mgmt__unarchive_session(session_id) symmetric with archive_session.
- Add an Archived view (or per-project filter) in the desktop sidebar with a restore action.
- Until then: when
send_message / archive_session errors mention "unarchive," link or document the exact path.
Environment
- Claude Code desktop app (Mac), Opus 4.7
- macOS Darwin 25.5.0
Summary
Archiving a session has no inverse exposed to either the assistant or the user, leaving archived sessions effectively orphaned.
Two related gaps:
mcp__ccd_session_mgmt__archive_sessionexists, but there is nounarchive_session. The assistant can put a session into the archived state but cannot take it out.Repro
list_sessions({include_archived: true})andsearch_session_transcriptsto find the session ID, but there is no tool to flipisArchivedback tofalse.mcp__ccd_session_mgmt__send_messagealso rejects archived sessions with "Session ... is archived; unarchive it first." — pointing at an action that has no exposed path.Workaround discovered
Editing the session JSON file directly (e.g.
~/.claude/.../local_<id>.json) and flippingisArchived: true→falserestores the session. Quitting and reopening Claude Desktop refreshes the index. This works but is undocumented and requires file editing.Suggested fixes
mcp__ccd_session_mgmt__unarchive_session(session_id)symmetric witharchive_session.send_message/archive_sessionerrors mention "unarchive," link or document the exact path.Environment