Skip to content

feat: add client session tracking#198

Draft
dannykopping wants to merge 6 commits intomainfrom
dk/session-id-tracking
Draft

feat: add client session tracking#198
dannykopping wants to merge 6 commits intomainfrom
dk/session-id-tracking

Conversation

@dannykopping
Copy link
Collaborator

@dannykopping dannykopping commented Mar 2, 2026

Refactor client detection and add session tracking

This change extracts client detection logic into a dedicated module and introduces session tracking capabilities for AI bridge interceptions.

Closes #166
Required for coder/internal#1336

Changes

  • Extract client detection: Move guessClient function and client constants from bridge.go to new client.go file
  • Add Client type: Introduce Client type alias for better type safety and rename ClientClaude to ClientClaudeCode
  • Implement session tracking: Add guessSessionID function in session.go to extract session identifiers from requests
  • Update interception records: Add ClientSessionID field to InterceptionRecord and call session detection before creating interceptors
  • Add comprehensive tests: Include test coverage for both client detection and session ID extraction

The session detection supports:

  • Claude Code: Extracts session UUID from metadata.user_id field in JSON body
  • Codex: Reads session ID from session_id header
  • Mux: Uses X-Mux-Workspace-Id header as session identifier

Copy link
Collaborator Author

dannykopping commented Mar 2, 2026

@dannykopping dannykopping changed the title chore: refactoring client guessing functionality into separate file feat: Mar 2, 2026
@dannykopping dannykopping changed the title feat: feat: add client session tracking Mar 2, 2026
@dannykopping dannykopping changed the base branch from dk/tool-call-id-correlation to graphite-base/198 March 2, 2026 10:28
Signed-off-by: Danny Kopping <danny@coder.com>
Signed-off-by: Danny Kopping <danny@coder.com>
Signed-off-by: Danny Kopping <danny@coder.com>
Signed-off-by: Danny Kopping <danny@coder.com>
Signed-off-by: Danny Kopping <danny@coder.com>
Signed-off-by: Danny Kopping <danny@coder.com>
@dannykopping dannykopping force-pushed the dk/session-id-tracking branch from 3db08de to e86601f Compare March 4, 2026 08:58
@dannykopping dannykopping changed the base branch from graphite-base/198 to main March 4, 2026 08:58
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.

Record session ID

1 participant