Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#1,044 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 2 天内回复

@EhabY 已经在做这个了。

开始于 2026年7月23日。

评估

这个 Issue 还没有评估数据。

描述

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.

主要语言
TypeScript
星标
131
派生
48
平均合并
1 天 23 小时
30 天内合并 PR
16

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

coder/vscode-coder 的其他 Issue

查看 coder/vscode-coder 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。