Report the actual IDE (Cursor, Devin Desktop, ...) for session tracking
Les mainteneurs répondent en général sous 2 jours
@EhabY y travaille déjà.
Depuis le 23/7/2026.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
The extension hardcodes vscode in both identification mechanisms, so Cursor, Devin Desktop and other forks are all recorded as VS Code. Server-side ingestion is unlocked (coder/coder#28338): app_name is a free-form string, normalized at ingestion.
Scope
- Use
vscode.env.uriSchemeas the app name. It is already a unique, stable, machine-readable ID per editor, so there is noappNamemapping table to keep in sync as forks rename or localize.NormalizeAppNamefolds-→_server-side, sovscode-insidersarrives as the existing registry keyvscode_insiders. - No exceptions: report the scheme verbatim, never rewrite it. Devin Desktop registers
devinnatively ("urlProtocol": "devin", with"oldUrlProtocol": "windsurf"kept only so inboundwindsurf://links still open), andoldUrlProtocolis not exposed through the extension API — soenv.uriSchemealready returns the post-rebrand name with no help from us. Pre-rename Windsurf builds reportwindsurf, which is an existing registry key in the VS Code family, and that tail shrinks as users upgrade. Comment the rule so a mapping table is not reintroduced later. - Fall back to
vscodeif the scheme is empty. An editor missing fromcodersdk/appname.gostill reports its own scheme and shows under theunknownfamily until it is added. - Send it through both mechanisms, which feed different pipelines:
--usage-app=<name>on the ProxyCommand (workspace usage API → session counts)CODER_SSH_SESSION_TYPE=<name>via SSHSetEnv(agent magic env → session counts + connection log)
- Version gate: one new
FeatureSetflag evaluated on two instances, the existing CLI-binary-version instance and a second built from the already-fetched/api/v2/buildinfoversion. Send a non-vscodename only when both pass; otherwise fall back tovscode. Coder ≤ 2.37.x returns HTTP 400 for an unknownapp_name, so the gate is load-bearing. - Release channels stay distinct (
vscode_insiders,devin_next,vscodium_insiders, ...). They are separate installs, the family already provides the rollup, and a split can be collapsed at read time while a collapse can never be split again.
Verified schemes
From product.json / urlProtocol — locally inspected where marked, otherwise from public source or first-party deep links:
| Editor | Scheme | Reported as | Confidence |
|---|---|---|---|
| VS Code | vscode |
vscode |
verified |
| VS Code Insiders | vscode-insiders |
vscode_insiders |
verified |
| Code - OSS | code-oss |
code_oss |
verified (microsoft/vscode product.json) |
| VSCodium | vscodium |
vscodium |
verified (prepare_vscode.sh) |
| VSCodium Insiders | vscodium-insiders |
vscodium_insiders |
verified (same) |
| Positron | positron |
positron |
verified (positron:// URI handlers) |
| Cursor | cursor |
cursor |
verified (local product.json) |
| Devin Desktop | devin |
devin |
verified (local product.json, oldUrlProtocol: windsurf) |
| Devin Desktop Next | devin-next |
devin_next |
verified (local product.json, oldUrlProtocol: windsurf-next) |
| Windsurf (pre-rename builds) | windsurf |
windsurf |
legacy urlProtocol, already a registry key |
| Antigravity | antigravity |
antigravity |
verified (local product.json) |
| Trae | trae |
trae |
strong (trae://file/...) |
| Trae CN | trae-cn |
trae_cn |
reported by third parties |
| Kiro | kiro |
kiro |
strong (kiro:// OAuth callback) |
vscode-exploration is a real Microsoft-internal scheme but is deliberately not handled: no external users, and an unknown row costs nothing.
Missing registry keys are tracked in coder/coder#29928: code_oss, vscodium_insiders, trae_cn, devin_next.
Gate release: 2.38
The first release containing coder/coder#28338 (merged after the 2.37 branch cut, so no 2.37.x patch carries it). Confirm the number at branch cut.
This supersedes waiting for coder/coder#27412 and coder/coder#27413: the undercount that blocked an earlier gate is gone now that per-app and per-family session minutes are stored (template_usage_stats_session_apps, migration 000596). Both are expected in 2.38; if either lags, the consequence is presentation-only and self-healing — the connection log records the family until #27412, and template insights show family totals until #27413's read path. Session counts, Prometheus and the deployment banner are per-app as of #27411.
Done when
- Cursor and Devin Desktop sessions appear under their own name on a 2.38+ deployment (session counts, deployment banner)
- The same build falls back to
vscodeagainst an older server or a stale custom CLI binary - An editor missing from the registry connects and reports its own URI scheme
Description updated by Coder Agents on behalf of @EhabY: uriScheme reported verbatim with no rewrites, schemes verified from local product.json, channels kept distinct.
- Langage dominant
- TypeScript
- Étoiles
- 132
- Forks
- 48
- Merge moyen
- 1 j 20 h
- PR mergées (30 j)
- 25
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de coder/vscode-coder
-
bug regression
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
coder/vscode-coder#1153 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
ReconnectingWebSocket drops messages the server sends right after the handshakePeut-être pris @EhabY l’a pris il y a 3 jours. Ouvertebug vs-code
Difficulté 3/5 1-2 jours Accessibilité débutants 72/100
coder/vscode-coder#1141 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Split commands.ts by topicPeut-être pris @EhabY l’a pris il y a 3 jours. OuverteImprovement tech-debt vs-code
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
coder/vscode-coder#1135 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Migrate CI setup to pnpm/setupPeut-être pris @EhabY l’a pris il y a 27 jours. Ouvertetech-debt
coder/vscode-coder#1119 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Design the VS Code Workspaces panelPeut-être à nouveau libre @chrifro l’a pris il y a 30 jours, et aucune pull request n’est ouverte. Ouverte
coder/vscode-coder#1113 · 3 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de coder/vscode-coder
Issues similaires
-
area:ui effort:S enhancement priority:P2
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
QuantumNous/new-api#7839 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue maintenance
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
dark-princezz/stellar-hooks#1010 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
interledger/rhyza#352 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour