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
Phase 3 of the Scalable Approach for Adding New IDE Session Types RFC. The connection_type Postgres ENUM in connection_logs has the same fixed-set problem as the old session count columns: until it is gone, new IDE types are permanently recorded as vscode in the durable connection log.
Scope (RFC: "Migration plan (ENUM to TEXT)"):
Migration: add type_text TEXT, backfill type::text, swap columns, drop the connection_type enum; remove the two ::connection_type casts in connectionlogs.sql. connection_logs is durable and can be large on busy deployments, so measure the backfill on a realistic dataset before deciding whether it needs batching
Proto: add string type_str to Connection alongside the enum; new agents populate type_str with the normalized session type, the server prefers it and falls back to converting the enum (same pattern as Stats.session_counts in Normalize workspace agent session counts into a child table #27410)
ReportConnection passes the normalized string through instead of classifying; db2sdk conversion becomes a passthrough
Connection log UI filter groups by family via coderd/idemetadata; update connection-logs.md
Target: same release as #27410 (independent PRs). The client-side version gate (coder/vscode-coder#1044) points at the release containing this migration, so per-IDE names only start flowing once both the ephemeral and durable pipelines accept them; the gate is the safety net if this slips a release.
Done when
connection_logs.type is TEXT and the connection_type enum is dropped
Old agents (enum) and new agents (type_str) both log correctly
A non-builtin session type appears in the connection log and its UI filter under the right family
Phase 3 of the Scalable Approach for Adding New IDE Session Types RFC. The
connection_typePostgres ENUM inconnection_logshas the same fixed-set problem as the old session count columns: until it is gone, new IDE types are permanently recorded asvscodein the durable connection log.Scope (RFC: "Migration plan (ENUM to TEXT)"):
type_text TEXT, backfilltype::text, swap columns, drop theconnection_typeenum; remove the two::connection_typecasts inconnectionlogs.sql.connection_logsis durable and can be large on busy deployments, so measure the backfill on a realistic dataset before deciding whether it needs batchingstring type_strtoConnectionalongside the enum; new agents populatetype_strwith the normalized session type, the server prefers it and falls back to converting the enum (same pattern asStats.session_countsin Normalize workspace agent session counts into a child table #27410)ReportConnectionpasses the normalized string through instead of classifying;db2sdkconversion becomes a passthroughcoderd/idemetadata; updateconnection-logs.mdTarget: same release as #27410 (independent PRs). The client-side version gate (coder/vscode-coder#1044) points at the release containing this migration, so per-IDE names only start flowing once both the ephemeral and durable pipelines accept them; the gate is the safety net if this slips a release.
Done when
connection_logs.typeis TEXT and theconnection_typeenum is droppedtype_str) both log correctlyDepends on #27410.
🤖 Created by Coder Agents on behalf of @EhabY.