Skip to content

feat(clients): surface machine name label in client registration and assistant clients list#29310

Merged
credence-the-bot[bot] merged 1 commit into
Credence/targeted-host-proxyfrom
targeted-host-proxy/pr-1-machine-name-label
May 3, 2026
Merged

feat(clients): surface machine name label in client registration and assistant clients list#29310
credence-the-bot[bot] merged 1 commit into
Credence/targeted-host-proxyfrom
targeted-host-proxy/pr-1-machine-name-label

Conversation

@credence-the-bot
Copy link
Copy Markdown
Contributor

@credence-the-bot credence-the-bot Bot commented May 3, 2026

Summary

  • Add machineName field to ClientEntry and client registration (via X-Vellum-Machine-Name SSE header)
  • Expose machineName in list_clients route response and assistant clients list LABEL column
  • macOS Swift client sends ProcessInfo.processInfo.hostName on SSE connect

Part of plan: targeted-host-proxy.md (PR 1 of 8)


Open in Devin Review

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 3 additional findings in Devin Review.

Open in Devin Review

request.setValue(sseAcceptHeader, forHTTPHeaderField: "Accept")
request.setValue(DeviceIdStore.getOrCreate(), forHTTPHeaderField: "X-Vellum-Client-Id")
request.setValue(clientInterfaceId, forHTTPHeaderField: "X-Vellum-Interface-Id")
request.setValue(ProcessInfo.processInfo.hostName, forHTTPHeaderField: "X-Vellum-Machine-Name")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Missing X-Vellum-Machine-Name header in streamPost and streamPostWithRetry

The X-Vellum-Machine-Name header was added to stream() at clients/shared/Network/GatewayHTTPClient.swift:491 but not to streamPost() (line 515-528) or streamPostWithRetry() (lines 549-591, including the retry path at lines 578-591). All three methods already consistently set X-Vellum-Client-Id and X-Vellum-Interface-Id as client identity headers. This inconsistency means that any server-side code reading the machine name header from POST streaming requests (current or future) will not receive it, while GET streaming requests will. While the current server-side code only reads the header in the SSE events endpoint (served by stream()), this breaks the established pattern of sending uniform client identity headers on all streaming methods.

Prompt for agents
The X-Vellum-Machine-Name header was added to the stream() method (GET streaming) but not to streamPost() or streamPostWithRetry() (POST streaming). All three methods already set X-Vellum-Client-Id and X-Vellum-Interface-Id as client identity headers, forming a consistent pattern.

To fix the inconsistency, add request.setValue(ProcessInfo.processInfo.hostName, forHTTPHeaderField: "X-Vellum-Machine-Name") to:

1. streamPost() at line ~520, after the X-Vellum-Interface-Id line
2. streamPostWithRetry() at line ~554, after the X-Vellum-Interface-Id line (initial request)
3. streamPostWithRetry() at line ~583, after the X-Vellum-Interface-Id line (retry request)
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@credence-the-bot credence-the-bot Bot merged commit 96576ed into Credence/targeted-host-proxy May 3, 2026
13 checks passed
@credence-the-bot credence-the-bot Bot deleted the targeted-host-proxy/pr-1-machine-name-label branch May 3, 2026 02:21
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.

0 participants