Skip to content

fix: preserve session across MCP reconnects#44

Merged
yepzdk merged 1 commit into
mainfrom
feature/issue-43-fix-session-reconnect
Apr 22, 2026
Merged

fix: preserve session across MCP reconnects#44
yepzdk merged 1 commit into
mainfrom
feature/issue-43-fix-session-reconnect

Conversation

@yepzdk
Copy link
Copy Markdown
Collaborator

@yepzdk yepzdk commented Apr 22, 2026

Summary

  • Derive session IDs deterministically from project directory (SHA-256 hash) instead of crypto.randomUUID(), so reconnecting via /mcp reuses the same session ID and preserves WebSocket connections + pending feedback
  • Add process ID guard on /unregister-session to prevent race conditions when old and new MCP processes overlap
  • Add feedback migration on /register-session when a new session shares the same projectDir as an existing one (safety net for edge cases)
  • Browser extension now validates cached session IDs on page navigation and auto-refreshes stale sessions via validateOrRefreshSession()

Closes #43

Test plan

  • All 51 tests pass (6 new: deriveSessionId validity/determinism/uniqueness/format, feedback migration, processId guard)
  • Manual: start session, submit feedback, run /mcp, verify get_pending_feedback returns prior feedback
  • Manual: verify extension stays connected after /mcp reconnect
  • Manual: verify get_connection_status shows correct client count after reconnect

🤖 Generated with Claude Code

…n IDs

Session IDs are now derived deterministically from the project directory
(SHA-256 hash) instead of using crypto.randomUUID(). This ensures that
reconnecting the same project via /mcp reuses the same session ID,
preserving WebSocket connections and pending feedback.

Additional safeguards:
- Process ID guard prevents stale processes from unregistering active sessions
- Feedback migration transfers data when sessions share the same projectDir
- Browser extension validates cached sessions and auto-refreshes stale ones

Closes #43

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@yepzdk yepzdk merged commit 855a644 into main Apr 22, 2026
1 check passed
@yepzdk yepzdk deleted the feature/issue-43-fix-session-reconnect branch April 22, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Browser extension loses connection and feedback after MCP reconnect (/mcp)

1 participant