You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Client half of the Scalable Approach for Adding New IDE Session Types RFC; supersedes #696, closed as a duplicate of this issue. The extension hardcodes vscode in both identification mechanisms, so Cursor, Windsurf, and other forks are all recorded as VS Code. The server side (coder/coder#27410 → coder/coder#27412) accepts arbitrary app names; this issue makes the extension send the real one.
Scope (RFC: "Client-side changes" and "Rollout order and version gating"):
Add a getIdeType() util mapping vscode.env.appName to an app name: Visual Studio Code → vscode, Visual Studio Code - Insiders → vscode_insiders, Cursor → cursor, Windsurf → windsurf, plus positron, vscodium, ...; unknown editors send the raw app name and the server normalizes it (lowercase, - → _, 64-rune cap)
Use it in both mechanisms, which feed different pipelines:
--usage-app=<type> on the ProxyCommand (workspace usage API → session counts)
Version gate: one new FeatureSet flag evaluated on two instances, the existing CLI-binary-version instance and a second one built from the already-fetched /api/v2/buildinfo version; send a non-vscode name only when both pass, otherwise fall back to vscode (no regression against old servers, old agents, or stale custom binaries)
The gate targets the coder/coder release containing both the connection_logs ENUM → TEXT migration (Migrate connection_logs.type from ENUM to TEXT coder#27412) and the template_usage_stats JSONB merge (Merge template_usage_stats *_mins into app_usage_mins JSONB coder#27413). Until 642, the phase-1 rollup drops non-canonical app names from template_usage_stats entirely (they are not even bucketed by family), so flipping the gate earlier would silently undercount those users' IDE minutes and agent-side usage in template insights. Gating on both closes that window without an interim schema workaround
Client half of the Scalable Approach for Adding New IDE Session Types RFC; supersedes #696, closed as a duplicate of this issue. The extension hardcodes
vscodein both identification mechanisms, so Cursor, Windsurf, and other forks are all recorded as VS Code. The server side (coder/coder#27410 → coder/coder#27412) accepts arbitrary app names; this issue makes the extension send the real one.Scope (RFC: "Client-side changes" and "Rollout order and version gating"):
getIdeType()util mappingvscode.env.appNameto an app name:Visual Studio Code→vscode,Visual Studio Code - Insiders→vscode_insiders,Cursor→cursor,Windsurf→windsurf, pluspositron,vscodium, ...; unknown editors send the raw app name and the server normalizes it (lowercase,-→_, 64-rune cap)--usage-app=<type>on the ProxyCommand (workspace usage API → session counts)CODER_SSH_SESSION_TYPE=<type>via SSHSetEnv(agent magic env → session counts + connection log)FeatureSetflag evaluated on two instances, the existing CLI-binary-version instance and a second one built from the already-fetched/api/v2/buildinfoversion; send a non-vscodename only when both pass, otherwise fall back tovscode(no regression against old servers, old agents, or stale custom binaries)connection_logsENUM → TEXT migration (Migrate connection_logs.type from ENUM to TEXT coder#27412) and thetemplate_usage_statsJSONB merge (Merge template_usage_stats *_mins into app_usage_mins JSONB coder#27413). Until 642, the phase-1 rollup drops non-canonical app names fromtemplate_usage_statsentirely (they are not even bucketed by family), so flipping the gate earlier would silently undercount those users' IDE minutes and agent-side usage in template insights. Gating on both closes that window without an interim schema workaroundvscode.env.appNamethe same wayDone when
vscodeagainst an older server or CLI binary🤖 Created by Coder Agents on behalf of @EhabY.