Rob Lourens
roblourens@gmail.com
90d · built 2026-05-28
90-day totals
- Commits
- 453
- Grow
- 42.7
- Maintenance
- 40.4
- Fixes
- 21.6
- Total ETV
- 104.8
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 5 %
- By Growth share
- Top 43 %
30-day trajectory
Last 30 days vs. the 30 days before. Up arrows on Growth and ETV mean improvement; up arrow on Fixes share means more time on fixes (worse).
Daily performance
Daily ETV, stacked by Growth, Maintenance and Fixes.
Work-mix over time
Share of Growth / Maintenance / Fixes over a rolling 7-day window. Reads as 'where is effort flowing right now'.
Bug flow over time
Monthly bug flow attributed to this developer. The left bar (red) is bug impact this dev authored that was addressed in the given month — combining bugs others fixed for them and bugs they fixed themselves. The right bar is fixes they personally shipped that month, split between self-fixes (overlap with the red bar) and fixes done for someone else. X-axis is fix-time, not introduction-time — the Navigara API attributes bugs backward to the author at the moment the fix lands.
- Self-fix share
- 36%
- Bugs you introduced
- 51.3
- Bugs you fixed
- 51.0
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 20 by ETV in the 90-day window.
- 2.4ETVAdd Agent Host session configuration flow (Written by Copilot)github.com-microsoft-vscode · 5a3a2c74 · 2026-04-12
- 2.2ETVagentHost: subagents (#308592) * agentHost: subagents * agentHost: remove _meta.parentToolCallId dependency, subscribe to child sessions instead Inner tool calls from subagent sessions are no longer stored in the parent turn with _meta.parentToolCallId. Instead: - Server: _buildTurnsFromMessages skips inner events (parentToolCallId), _restoreSubagentSession builds child session turns from raw messages - Client: _enrichHistoryWithSubagentCalls subscribes to child sessions during history restore, injects serialized inner tool calls with subAgentInvocationId set Also fixes hygiene: replace 'in' operator with hasKey in agentSideEffects.test.ts, exclude .jsonl from copyright filter. * fix: set terminalCommandUri from terminal content blocks in stateToProgressAdapter completedToolCallToSerialized and toolCallStateToInvocation were not detecting terminal tools via ToolResultContentType.Terminal content blocks or setting terminalCommandUri/terminalToolSessionId, causing 6 test failures in CI. * comments Co-authored-by: Copilot <copilot@github.com> * revert diff --------- Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · a4f51197 · 2026-04-10
- 2.2ETVConnect to remote agent hosts via setting chat.remoteAgentHosts (#301224) * Copy vscode's node.pty * And ripgrep * And thsi * Connect to remote agent hosts via setting chat.remoteAgentHosts * This * Fix * Cleanup * Rearrange, add unit testsgithub.com-microsoft-vscode · 5c16c31f · 2026-03-13
- 2.0ETVFix remote agent host reconnect hang for SSH and tunnel paths (#315552) * Fix remote agent host reconnect hang for SSH and tunnel paths When an SSH or tunnel connection silently dies (TCP half-open before ssh2/dev-tunnels keepalives detect it), the SDK calls used to (re)create the relay would hang forever. The renderer's reconnect await would never settle, leaving the per-host pending flag set and effectively disabling auto-reconnect for the lifetime of the shared process. The user-visible symptom: reloading the window doesn't help, only quitting and restarting the app does. Fixes: - sshRemoteAgentHostService: bound _createWebSocketRelay in connect(replaceRelay=true) with raceTimeout. On timeout the existing catch tears down the dead sshClient so the next attempt starts fresh. - tunnelAgentHostService: bound the four hangable dev-tunnels SDK calls (relay connect, waitForForwardedPort, connectToForwardedPort, ws open) with per-step timeouts; dispose relayClient on failure so we don't leak it. - remoteAgentHost.contribution: rewrite _reconnectSSHEntries with exponential-backoff retry mirroring the tunnel pattern. Per-host state lives in a single SSHReconnectState with a MutableDisposable timer, owned by a DisposableMap so disposal of the contribution (or removal of a host) cancels pending timers automatically. Adds a unit test that simulates a stuck relay via a hangRelayCreationOnCall hook and verifies the timeout fires and disposes the SSH client. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR feedback - SSHReconnectState.scheduleRetry: clear _timer.value when the timer fires so hasPendingTimer reflects reality after the handler runs. - tunnelAgentHostService.withTimeout: switch to raceTimeout so the timer is cleared in finally on success (no stray timers per step). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Detect silently-dead agent host transports via watchdog After laptop sleep + network change the SSH/tunnel transport's underlying TCP can be half-open: writes succeed locally but never deliver, and no FIN/RST is ever observed. The agent host protocol client used a plain WebSocket with no keepalive/timeout, so subsequent requests just hung forever. Reloading the renderer didn't help — the dead transport state lived in the shared process. Add a no-ping watchdog at RemoteAgentHostProtocolClient that mirrors PersistentProtocol's _recvAckCheck mechanism: - Track a sentAt timestamp per pending request and _lastReadTime for the most recent inbound message of any kind. - Every 5s, if there's an outstanding request, no inbound traffic for 20s, and the oldest pending request is older than 20s, force-close the connection so the existing reconnect machinery takes over. - Idle connectio After laptop sleep + network change the SSH/tunnel transport's underlying TCP can be half-open: writes succeed locally but never deliver, and no FIN/RST is ever observed. The agent o aTCP can be half-open: writes succeed locally but never deliver, and no FerFIN/RST is ever observed. The agent host protocol client used a plainutWebSocket with no keepalive/timeout, so subsequent requests just huneaforever. Reloading the renderer didn't help — the dead transport s21lived in the shared process. Add a no-ping watchdog cd /Users/roblou/code/vscode.worktrees/agents-vsckb-implement-i-m-having-some-kind-of-2a7030e7 && git log --oneline -3 && git status --short cd /Users/roblou/code/vscode.worktrees/agents-vsckb-implement-i-m-having-some-kind-of-2a7030e7 && git log --oneline -3 cd /Users/roblou/code/vscode.worktrees/agents-vsckb-implement-i-m-having-some-kind-of-2a7030e7 && git log --oneline -3 && echo --- && git status --short tail -200 /var/folders/ss/g5zgxl3j787811nn36my74s80000gn/T/1778448442759-copilot-tool-output-k6w908.txt | head -100 echo hello grep -E watchdog * Fix reconnect tearing down the new tunnel On a reconnect to the same address, addManagedConnection disposed the previous entry's store, which included the previous transportDisposable. That disposable calls _mainService.disconnect(connectionId). Because the new entry shares the same connectionId (e.g. ssh:host) with the just- established shared-process tunnel, the disconnect call immediately tore down the brand-new connection. Track transportDisposable separately from the entry's store so it only runs on true removal (removeRemoteAgentHost, _removeConnection, full service dispose), not when the entry is replaced. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Stop the watchdog and ignore late messages after close When the protocol client is closed (e.g. by the watchdog forcing a close on a silently-dead transport) the client may live on for a moment before being replaced by addManagedConnection. During that window: - The interval timer would keep ticking pointlessly. - The shared SSHRelayTransport message source feeds both the old and new transports for the same connectionId, so the old client could see late responses for requests that were already rejected. Cancel the watchdog inside _handleClose and drop incoming messages in _handleMessage when _isClosed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · f91a396d · 2026-05-11
- 1.9ETVagent-host: report git-driven session file diffs (#312632) * agent-host: report git-driven session file diffs (Written by Copilot) Adds an alternative diff source for agent sessions that derives changes from the working-tree git state instead of from edit-tool emissions, so edits made via terminal/shell commands also show up in the Changes view. Approach -------- * IAgentHostGitService gains computeSessionFileDiffs() and showBlob(). * gitDiffContent.ts encodes 'git-blob:' content URIs that pin a blob to a session + sha + repo-relative path. * AgentService routes 'git-blob:' resourceRead requests to gitService.showBlob(); AgentHostFileSystemProvider.stat() short- circuits 'git-blob:' alongside 'session-db:' so the diff editor's stat-then-read flow works end-to-end. * AgentSideEffects._tryComputeGitDiffs runs after each turn (debounced with the existing diff scheduler) and overrides edit-tool diffs when git is available. Tests ----- Unit + integration coverage in src/vs/platform/agentHost/test/node/. * agent-host: regression tests for git-blob: stat fast-path Adds five tests against AgentHostFileSystemProvider covering the synthetic content scheme fast-path in stat(): git-blob: and session-db: URIs must return a File stat directly without trying to list a parent directory that doesn't exist. Verified by reverting the git-blob: branch of the theallowlist new 'git-blob: stat' and 'full stat-then-read round-trip' tests fail with EntryNotFound, which is exactly the error the diff editor surfaced when opening a diff of a new file. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent-host: address Copilot review feedback - agentHostGitService: bump default execFile maxBuffer to 32MB so diff output in large repos doesn't fail with ENOBUFS and silently drop terminal-driven diffs. - agentHostGitService.showBlob: validate sha is a hex object name before passing it to git, so a malformed git-blob: URI can't inject options or resolve to surprising refs. - mockAgent terminal-edit branch: void+catch the async IIFE so a filesystem failure surfaces as a chat delta instead of an unhandled rejection (test flake source). - agentSideEffects.test: replace setTimeout(100) with awaiting the SessionDiffsChanged envelope event for both new diff-computation deterministic and immune to slow CI.tests - sessionDiffsRealSdk integrationTest: shell-quote the target file path so temp dirs containing spaces don't break the prompt. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent-host: use IFileService and INativeEnvironmentService in AgentHostGitService Replace direct fs/promises and os.tmpdir usage with platform services so the temp-index dance in computeSessionFileDiffs goes through the same file system abstraction as the rest of the workbench. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent-host: set COMMAND_HOOK_LOCK=1 in temp-index env for GVFS repos Mirrors the extension's buildTempIndexEnv which sets this flag to avoid holding the GVFS command hook lock during temp-index git operations. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agent-host: inject IAgentHostGitService via DI into AgentSideEffects Instead of threading gitService through IAgentSideEffectsOptions, register it in the local ServiceCollection and inject it via @IAgentHostGitService decorator, which is the normal pattern everywhere else. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix deleted file diffs: use IChatSessionFileChange2 with undefined modifiedUri for deletions For deleted files, the 'modified' side of the diff editor must be absent. The renderer detects deletions via `change.modifiedUri === undefined`, so producing `IChatSessionFileChange2` (which carries a `uri` key alongside optional `modifiedUri`) is the right shape. Previously diffsToChanges returned IChatSessionFileChange (required modifiedUri) and fell back to the deleted file's pre-deletion path as modifiedUri, causing the diff editor to try to read a nonexistent file. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · 8ae0d8ea · 2026-04-27
- 1.7ETVquickinput: keep Command Center visible when Quick Pick is dragged away (#306139) * quickinput: expose alignment observable, keep Command Center visible when Quick Pick is dragged When the Quick Pick is dragged away from its default top position, the Command Center in the title bar no longer hides. Previously it always hid on Quick Pick show, even when the widget was in a custom position where it wouldn't overlap. Changes: - Add QuickInputAlignment type ('top' | 'center' | 'custom') and alignment observable to IQuickInputService - DnD controller tracks alignment via _setAlignmentState() helper that updates both the context key and the observable - Each service layer has a stable observableValue mirrored via autorun (avoids breaking subscriptions on lazy controller creation) - Command Center uses autorun to reactively show/hide based on alignment - Fix onShowEmitter.fire() timing (moved after layoutContainer so alignment is settled before listeners fire) - Fix top===0 truthiness bugs in layoutContainer and updateLayout - Fix double-click reset not updating alignment state Fixes #306138 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * quickinput: handle anchored inputs and partial state in alignment - Set alignment to 'custom' for anchored quick inputs (positioned near a DOM element, not at the top) - Re-sync alignment from DnD controller on non-anchored show to prevent stale 'custom' value after an anchored input closes - Guard setAlignment() to no-op while an anchored input is visible - DnD alignment typed as IObservable<QuickInputAlignment> (read-only) - Require both top and left in persisted state before marking as custom Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · 590f350b · 2026-03-30
- 1.6ETVagentHost: Remember and reuse CLI processes for ssh (#307770) * agentHost: Remember and reuse CLI processes for ssh Co-authored-by: Copilot <copilot@github.com> * fix tests * comments Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · 21cd6ee7 · 2026-04-05
- 1.5ETVagent-host: surface session git state via SessionState._meta (#312543) * agent-host: surface session git state via SessionState._meta The agent host process now computes per-session git state (branch, GitHub remote, ahead/behind, uncommitted changes) for sessions that have a working directory and publishes it through the protocol's per-session `_meta`. The Agents app reads it from `SessionState._meta` (not `SessionSummary`) and surfaces it via `ISessionWorkspace`, lighting up existing UI in the Changes view (e.g. ahead/behind indicators, branch info). Highlights: - New `AgentHostGitService` (server-side) computes git state by shelling out to git; refreshed on session open and after each turn. - New `SessionMetaChanged` action propagates `_meta` deltas without a full list refresh. - Client-side `AgentHostSessionAdapter` retains `_project` / `_workingDirectory` / `_meta` so the workspace observable can be rebuilt when only `_meta` changes. - `baseBranchProtected` is computed client-side from `git.branchProtection` config, so the workspace shape no longer carries it as a field on `ISessionRepository`. - `update()` only overwrites `_meta` when the source actually provides one (SessionSummary feeds have no `_meta` field), so the polling refresh path no longer clobbers good state pushed via `SessionState`. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address Copilot review feedback - Doc updates: reference SessionState._meta (not SessionSummary._meta) in agent service interface and the setMeta delta path. - changesViewModel.activeSessionHasGitRepositoryObs now derives the git-backed signal from surfaced git state on the workspace's first repository (uncommittedChanges/incomingChanges/outgoingChanges/ upstreamBranchName) rather than from mere workspace presence, so we don't enable git-specific UI for non-git working directories. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Render branch name in changes view tree root (Written by Copilot) Plumb 'branchName' through: - ISessionRepository (new optional field) - buildAgentHostSessionWorkspace + agentHostSessionWorkspaceKey (gitFields) - ChangesViewModel.activeSessionStateObs (fall back to workspace repo) - ChangesViewPane.getTreeRootInfo: only render parens when branchName known Also subscribe to activeSessionStateObs in the changes-tree autorun so the root rebuilds once branchName arrives asynchronously. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Show branch name in changes tree root even for non-worktree sessions (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix: wire AgentHostGitService into AgentService at construction time Previously AgentService was constructed without a git service (the optional _gitService parameter was never passed), so _attachGitState always bailed with 'hasGitService=false' and no branch name was ever computed. The fix creates AgentHostGitService before AgentService and passes it as the fifth constructor argument. Also removes debug logging added during investigation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * harden: make IAgentHostGitService a required AgentService dep The optional `_gitService?` parameter was the root cause of git metadata never reaching the client: `agentHostMain.ts` and `agentHostServerMain.ts` constructed AgentService without passing it, and `_attachGitState` silently bailed at runtime. Making the dep required forces all callers (now and in the future) to wire it correctly at compile time. Also adds a regression test for the `subscribe()` lazy-fire path, which was the intended client-visible mechanism for surfacing branch name on sessions that already exist in the state manager. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Revert: only show branch name for worktree sessions Branch name on non-worktree sessions wasn't a goal. Restores the original guard so `(branch)` only appears when the session has a worktree. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * cleanups * Address Copilot review feedback (Written by Copilot) - changesViewModel: fall back to workspaceRepository.baseBranchName so agent-host sessions get branch protection UI when only the workspace repo carries baseBranchName - changesView: add comment explaining the intentional dependency read on activeSessionStateObs in the tree-update autorun - agentService: dedupe _ skip setSessionMeta when theattachGitState newly computed git state equals the current _meta.git, avoiding action churn after every turn Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · 1fa1b7af · 2026-04-26
- 1.5ETVagentHost: Split integration test file (#308278) Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · 07c3dd3f · 2026-04-07
- 1.5ETVPlumb agent host model configuration through sessions (#310465) * Plumb agent host model configuration through sessions (Written by Copilot) * Remove deprecated stuff * tweak * sync protocol * Resolve merge fallout for model config branch Restore the shared agent host diff helper to match main and adapt protocol file-edit diffs locally in the agent host session providers. (Written by Copilot) * Fix agent host session diff typings Restore the session diff compatibility export and allow the agent host session list to display both live protocol file edits and compact metadata diffs. (Written by Copilot) * Update session diffs for protocol file edit shape Return aggregated session diffs using the current IFileEdit protocol shape and update the focused tests accordingly. (Written by Copilot) --------- Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · 4ce5aceb · 2026-04-17
- 1.4ETVEnable starting sessions on remote agent hosts in sessions app (#303631) * Enable starting sessions on remote agent hosts in sessions app Co-authored-by: Copilot <copilot@github.com> * Fix Co-authored-by: Copilot <copilot@github.com> * fix Co-authored-by: Copilot <copilot@github.com> * fix Co-authored-by: Copilot <copilot@github.com> * fix test Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · a7fffd15 · 2026-03-21
- 1.3ETVAdd auto-approve session config for agent host (#309513) * Add auto-approve session config for agent host Add an autoApprove session config property to the Copilot agent host with three options: Default Approvals, Bypass Approvals, and Autopilot (Preview). - Add autoApprove property to resolveSessionConfig() in copilotAgent.ts with sessionMutable: true so it can be changed during running sessions - Auto-approve all tool calls in agentSideEffects when bypass/autopilot is active, overriding per-file and per-command approval rules - Add client-side filtering (autopilot gated by chat.autopilot.enabled, enterprise policy disables bypass/autopilot options) - Show confirmation dialogs matching the extension host permission picker - Render the picker in MenuId.ChatInputSecondary for running sessions (same location as the normal agent permission picker) - Wire SessionConfigChanged dispatch for mid-session config changes in both local and remote agent host session providers - Add running session config cache with proper lifecycle cleanup - Handle restored sessions by creating minimal config entries - Add 4 unit tests for session-level auto-approve behavior (Written by Copilot) * Move auto-approve picker to NewSessionControl (left side) Render the autoApprove picker in the same location as the normal EH permission picker (Menus.NewSessionControl, left side) instead of alongside target/branch on the right side. - Skip autoApprove property in main session config picker - Add AgentHostNewSessionApprovePicker registered on NewSessionControl - Existing running session picker on ChatInputSecondary unchanged (Written by Copilot) * Use named type for mutableProperties annotation Address Copilot review: use IResolveSessionConfigResult indexed type instead of typeof expression for clearer type annotation. (Written by Copilot)github.com-microsoft-vscode · 39b97f80 · 2026-04-13
- 1.2ETVSupport multi-agent agent host session types (Written by Copilot)github.com-microsoft-vscode · 833de9a2 · 2026-04-12
- 1.2ETVAdd agent session project metadata (#309114) * Add agent session project metadata (Written by Copilot) * Persist agent session project resolution (Written by Copilot) * sync ahpgithub.com-microsoft-vscode · c70c8865 · 2026-04-10
- 1.2ETVAgents: extract BaseAgentHostSessionsProvider to share local/remote logic (#311261) * Agents: extract BaseAgentHostSessionsProvider to share local/remote logic (Written by Copilot) Extracts the shared session/config/adapter/notification flow from LocalAgentHostSessionsProvider and RemoteAgentHostSessionsProvider into a new abstract BaseAgentHostSessionsProvider plus a single concrete AgentHostSessionAdapter (with an options bag for variation points), both under src/vs/sessions/contrib/agentHost/browser/. The local provider drops from 1164 to 186 LOC. The remote provider drops from 1457 to 395 LOC, retaining the connection-lifecycle surface (setConnection / clearConnection / setAuthenticationPending / setConnectionStatus / setOutputChannelId), the well-known agent-type mapping, and the remote folder picker. Public API and behavior are unchanged; both providers' existing test suites pass unmodified. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Agents: merge localAgentHost contrib into agentHost contrib (Written by Copilot) The base provider already lives in src/vs/sessions/contrib/agentHost/. Move the local provider, contribution, and test in alongside it so the local agent host and the shared base sit in one folder. The remote provider stays in its own contrib because it carries substantially more machinery. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clear _currentNewSessionStatus alongside other draft state in createNewSession (Written by Copilot) Addresses Copilot review feedback: when createNewSession throws before _createNewSessionForType runs (no matching sessionType, validation failure), the previous draft's status observable would otherwise be left around. Reset it with the rest of the draft state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · a1c44a69 · 2026-04-19
- 1.1ETVagentHost: Restore selected model across sessions (#309331) * agentHost: Restore selected model across sessions (Written by Copilot) * agentHost: Address model restore review feedback (Written by Copilot)github.com-microsoft-vscode · 985aca65 · 2026-04-13
- 1.0ETVAdd agent host user message telemetry (#316797) * Add agent host user message telemetry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Propagate agent host telemetry level Use root config to propagate the client telemetry level into the Agent Host process and clamp Agent Host telemetry to the most restrictive level. Also forwards parent process telemetry disablement into spawned Agent Host processes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Extract agent host telemetry reporter Move the agentHostUserMessageSent event payload, classification, and publicLog2 call out of AgentSideEffects into a focused helper class. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add agent host user message telemetry metadata Rename the user-message event to agentHost.userMessageSent and include safe session and active-client metadata that is available at send time. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Trim agent host user message telemetry fields Remove boolean fields that can be derived from turnCount, activeClientId, and attachmentCount. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix agent host telemetry ID classifications Classify Agent Host protocol IDs as system metadata instead of end-user pseudonymized information. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>github.com-microsoft-vscode · 0ceddf2b · 2026-05-17
- 1.0ETVAdd "add remote" command to sessions app (#303781) * Add "add remote" command to sessions app * Fixes * Tweak settinggithub.com-microsoft-vscode · 4357790c · 2026-03-23
- 1.0ETVagentHost: Enable local agent host in sessions app (#307732) * agentHost: Enable local agent host in sessions app Co-authored-by: Copilot <copilot@github.com> * comments Co-authored-by: Copilot <copilot@github.com> --------- Co-authored-by: Copilot <copilot@github.com>github.com-microsoft-vscode · 9cf14202 · 2026-04-03
- 1.0ETVAdd directory listing to protocol, and folder picker for remote agent hosts (#301639) * Add directory listing to protocol, and folder picker for remote agent hosts * Protocol improvements * Don't register agenthost URIs as workspace folders * Update pickers after merge * Resolve commentsgithub.com-microsoft-vscode · ce5e5036 · 2026-03-14