Skip to content

Commit f382246

Browse files
committed
Report real surface and version in registry user-agent
1 parent a479d23 commit f382246

5 files changed

Lines changed: 16 additions & 9 deletions

File tree

.changeset/config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"@executor-js/plugin-openapi",
1919
"@executor-js/plugin-example",
2020
"@executor-js/plugin-desktop-settings",
21-
"@executor-js/desktop"
21+
"@executor-js/desktop",
22+
"@executor-js/local"
2223
]
2324
],
2425
"linked": [],
@@ -29,7 +30,6 @@
2930
"onlyUpdatePeerDependentsWhenOutOfRange": true
3031
},
3132
"ignore": [
32-
"@executor-js/local",
3333
"@executor-js/host-mcp",
3434
"@executor-js/ir",
3535
"@executor-js/runtime-deno-subprocess",

.changeset/tidy-donkeys-repeat.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"executor": patch
3+
"@executor-js/local": patch
4+
---
5+
6+
Report the real product surface and version in the integrations.sh registry user-agent. The daemon previously sent `local` with a version frozen at 1.4.4; it now reports `cli` or `desktop` (matching analytics surfaces) and `@executor-js/local` is versioned with the release train.

apps/local/src/installation.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@ const resolveChannel = (version: string): InstallationChannel => {
1515
return "stable";
1616
};
1717

18-
// The desktop main process sets `EXECUTOR_CLIENT=desktop` when it spawns the
19-
// sidecar so PostHog can slice desktop installs from headless apps/local
20-
// (CLI `executor web`, `daemon run --foreground`, etc.).
18+
// The surface is cli|desktop — never a "local" catch-all: the desktop main
19+
// process marks its sidecar via EXECUTOR_CLIENT=desktop; everything else
20+
// hosting apps/local (`executor web`, `daemon run --foreground`, stdio MCP)
21+
// is the CLI. Mirrors resolveSurface in ./analytics.ts.
2122
const resolveClient = (): SurfaceClient =>
22-
process.env.EXECUTOR_CLIENT === "desktop" ? "desktop" : "local";
23+
process.env.EXECUTOR_CLIENT === "desktop" ? "desktop" : "cli";
2324

2425
export const CHANNEL: InstallationChannel = resolveChannel(LOCAL_VERSION);
2526
export const VERSION: string = LOCAL_VERSION;

packages/core/integrations-registry/src/registry.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ describe("buildUserAgent", () => {
4949
expect(buildUserAgent({ channel: "stable", version: "1.2.3", client: "cli" })).toBe(
5050
"executor/stable/1.2.3/cli",
5151
);
52-
expect(buildUserAgent({ channel: "beta", version: "1.2.3-beta.0", client: "local" })).toBe(
53-
"executor/beta/1.2.3-beta.0/local",
52+
expect(buildUserAgent({ channel: "beta", version: "1.2.3-beta.0", client: "desktop" })).toBe(
53+
"executor/beta/1.2.3-beta.0/desktop",
5454
);
5555
});
5656

packages/core/integrations-registry/src/registry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { NodeFileSystem } from "@effect/platform-node";
1111
// ---------------------------------------------------------------------------
1212

1313
export type InstallationChannel = "stable" | "beta" | "dev";
14-
export type SurfaceClient = "cli" | "local" | "desktop";
14+
export type SurfaceClient = "cli" | "desktop";
1515

1616
export const DEFAULT_INTEGRATIONS_URL = "https://integrations.sh/api.json";
1717

0 commit comments

Comments
 (0)