fix(limrun): attribute API-key traffic with the SDK userAgent option

Merged
TH
13h ago
+111-151

Summary

Upgrade @limrun/api to 0.64.1 and use its new userAgent client option (limrun-inc/typescript-sdk#546) in place of the per-request User-Agent override on instance creation. Requests made with the Limrun API key now start their User-Agent with agent-device-cli/<version>, ahead of the SDK's own Limrun/JS <sdk-version>. This covers creating, listing, and deleting instances, uploading assets, and connect verification.

  • limrunUserAgent(clientVersion) in client-options.ts builds the value for both API-key clients: the runtime and connect verification.
  • client-options.test.ts drives the real SDK through a fetch stub and asserts the prefix reaches the wire. The old allocation test duplicated the cleanup coverage in limrun-runtime.test.ts, so it is removed.
  • Docs updated in website/docs/docs/limrun.md.
  • chore(gates) adds a minimumReleaseAgeExclude entry for @limrun/api@0.64.1, published today.

13 files.

Validation

Head 1cd2ce113: pnpm check:affected --run, all runnable checks passed. Fresh-context review found one issue (the test no longer covered attribution), which is now fixed.

Wire check: the real runtime and SDK sent to a local HTTP server:

base 35c21b618 (SDK 0.60.0)head 1cd2ce113 (SDK 0.64.1)
POST /v1/ios_instancesagent-device-cli/<v>agent-device-cli/<v> Limrun/JS 0.64.1
DELETE /v1/ios_instances/<id>Limrun/JS 0.60.0agent-device-cli/<v> Limrun/JS 0.64.1
GET /v1/ios_instances (connect)Limrun/JS 0.60.0agent-device-cli/<v> Limrun/JS 0.64.1

Not live-verified: we have no confirmation yet that Limrun receives the header. The local CLI (0.21.11) and T3's bundled daemon (0.21.12) both predate attribution, which likely explains why Limrun hasn't seen it so far.

🤖 Generated with Claude Code