-
Notifications
You must be signed in to change notification settings - Fork 194
Description
Resumed sessions create duplicate entries and forked tmux processes
Environment
- Agent Deck: v0.19.9
- Claude Code: v2.1.50
- OS: macOS (Darwin 25.3.0)
Description
When resuming a Claude Code session (claude --resume <id>), the SessionStart hook fires and registers a new session entry in agent-deck instead of recognizing it as a continuation of the existing session. This results in:
-
Duplicate entries in the SESSIONS panel — e.g., both
r-10fcdf97-72449andresume-10fcdf97appear, both pointing to the same Claude conversation ID (10fcdf97-3a7c-430d-a0f9-65a249874ab7). -
Two independent tmux processes — each running its own
claude --resumeagainst the same conversation. They share history up to the fork point but diverge afterward. They do not mirror each other. -
Stale session accumulation — repeated resume cycles pile up entries (observed 7 stale entries from a single conversation).
Steps to Reproduce
- Launch a Claude session via agent-deck
- Detach or exit the session
- Resume the session (
claude --resume <session-id>or via agent-deck) - Observe two entries in the SESSIONS panel for the same conversation ID
- Both tmux panes are live but independent — typing in one does not appear in the other
Expected Behavior
Resuming a session should either:
- Reattach to the existing tmux session/entry rather than creating a new one, OR
- Replace the old entry with the resumed one, OR
- Deduplicate on
claude-session-idso only one entry per conversation exists
Actual Behavior
SessionStart hook runs agent-deck hook-handler which creates a brand new session entry every time, with no dedup check against existing sessions sharing the same Claude conversation ID.
Workaround
Manually remove stale entries after resume:
agent-deck rm <stale-session-id>Screenshot
Two sessions for the same conversation ID, diverged context:
