From 68e4bc0b4ac2e840038f49589e862cb37a9494eb Mon Sep 17 00:00:00 2001 From: Shubham Naik Date: Tue, 3 Mar 2026 12:57:09 -0800 Subject: [PATCH] feat: pass version in letta remote (#1226) --- src/tests/websocket/listen-register.test.ts | 7 ++++++- src/websocket/listen-register.ts | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/tests/websocket/listen-register.test.ts b/src/tests/websocket/listen-register.test.ts index 22982e9..f95484f 100644 --- a/src/tests/websocket/listen-register.test.ts +++ b/src/tests/websocket/listen-register.test.ts @@ -47,9 +47,14 @@ describe("registerWithCloud", () => { "letta-code", ); const body = JSON.parse(init.body as string); - expect(body).toEqual({ + expect(body).toMatchObject({ deviceId: "device-123", connectionName: "test-machine", + metadata: { + lettaCodeVersion: expect.any(String), + os: expect.any(String), + nodeVersion: expect.any(String), + }, }); }); diff --git a/src/websocket/listen-register.ts b/src/websocket/listen-register.ts index 5b941ac..e997514 100644 --- a/src/websocket/listen-register.ts +++ b/src/websocket/listen-register.ts @@ -2,6 +2,7 @@ * Shared registration helper for letta remote / /remote command. * Owns the HTTP request contract and error handling; callers own UX strings and logging. */ +import { getVersion } from "../version.ts"; export interface RegisterResult { connectionId: string; @@ -34,6 +35,11 @@ export async function registerWithCloud( body: JSON.stringify({ deviceId: opts.deviceId, connectionName: opts.connectionName, + metadata: { + lettaCodeVersion: getVersion(), + os: process.platform, + nodeVersion: process.version, + }, }), });