Client-side follow-up from the Scalable Approach for Adding New IDE Session Types RFC (lower priority than coder/vscode-coder#1044 since JetBrains IDEs are one vendor rather than many forks).
The plugin hardcodes --usage-app=jetbrains and CODER_SSH_SESSION_TYPE=JetBrains (CoderCLIManager.kt), and server-side process detection cannot tell PyCharm from GoLand, so every JetBrains IDE buckets under jetbrains.
Once the server accepts arbitrary app names (coder/coder#27410 → coder/coder#27412):
- Derive the product from the JetBrains platform API (e.g.
ApplicationInfo/ApplicationNamesInfo product name) and send it through both mechanisms, e.g. goland, pycharm, rustrover; the server normalizes whatever is sent (lowercase, - → _)
- Same version-gating pattern as the VS Code extension: send a specific name only when the connected deployment is new enough, otherwise keep
jetbrains
- Server-side family grouping keeps all of these under the JetBrains family in metric labels and legacy aggregates, so existing dashboards do not fragment
Done when
🤖 Created by Coder Agents on behalf of @EhabY.
Client-side follow-up from the Scalable Approach for Adding New IDE Session Types RFC (lower priority than coder/vscode-coder#1044 since JetBrains IDEs are one vendor rather than many forks).
The plugin hardcodes
--usage-app=jetbrainsandCODER_SSH_SESSION_TYPE=JetBrains(CoderCLIManager.kt), and server-side process detection cannot tell PyCharm from GoLand, so every JetBrains IDE buckets underjetbrains.Once the server accepts arbitrary app names (coder/coder#27410 → coder/coder#27412):
ApplicationInfo/ApplicationNamesInfoproduct name) and send it through both mechanisms, e.g.goland,pycharm,rustrover; the server normalizes whatever is sent (lowercase,-→_)jetbrainsDone when
jetbrains🤖 Created by Coder Agents on behalf of @EhabY.