Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Report the actual IDE (Cursor, Devin Desktop, ...) for session tracking

Fermée
#1,044 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

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

Feature vs-code

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.uriScheme as the app name. It is already a unique, stable, machine-readable ID per editor, so there is no appName mapping table to keep in sync as forks rename or localize. NormalizeAppName folds - → _ server-side, so vscode-insiders arrives as the existing registry key vscode_insiders.
  • No exceptions: report the scheme verbatim, never rewrite it. Devin Desktop registers devin natively ("urlProtocol": "devin", with "oldUrlProtocol": "windsurf" kept only so inbound windsurf:// links still open), and oldUrlProtocol is not exposed through the extension API — so env.uriScheme already returns the post-rebrand name with no help from us. Pre-rename Windsurf builds report windsurf, 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 vscode if the scheme is empty. An editor missing from codersdk/appname.go still reports its own scheme and shows under the unknown family 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 SSH SetEnv (agent magic env → session counts + connection log)
  • Version gate: one new FeatureSet flag evaluated on two instances, the existing CLI-binary-version instance and a second built from the already-fetched /api/v2/buildinfo version. Send a non-vscode name only when both pass; otherwise fall back to vscode. Coder ≤ 2.37.x returns HTTP 400 for an unknown app_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 vscode against 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

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de coder/vscode-coder

Toutes les issues de coder/vscode-coder

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.