Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: coder/vscode-coder
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: df3d773
Choose a base ref
...
head repository: coder/vscode-coder
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: ea7f9bd
Choose a head ref
  • 10 commits
  • 12 files changed
  • 1 contributor

Commits on Mar 19, 2026

  1. feat: move Coder Chat to secondary sidebar with agents experiment gate

    - Move the coderChat view container from the bottom panel to the
      secondarySidebar contribution point (requires VS Code >= 1.106).
    - Add coder.agentsEnabled context key, set by fetching
      /api/v2/experiments after login. The chat view is only visible
      when the agents experiment is enabled on the deployment.
    - Bump engines.vscode from ^1.95.0 to ^1.106.0.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    fa41c1c View commit details
    Browse the repository at this point in the history
  2. fix: resolve CI lint and integration test failures

    - Cast getAxiosInstance mock return to AxiosInstance to satisfy
      TypeScript strict type checking.
    - Bump CI integration test matrix from VS Code 1.95.0 to 1.106.0
      to match the new engines.vscode minimum.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    72ec13d View commit details
    Browse the repository at this point in the history
  3. fix: prettier formatting and vscode-test config for 1.106.0

    - Apply prettier formatting to deploymentManager.ts and testHelpers.ts.
    - Update .vscode-test.mjs minimum version from 1.95.0 to 1.106.0 to
      match the CI matrix and engines.vscode requirement.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    39bc4dd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3448126 View commit details
    Browse the repository at this point in the history
  5. fix: clear pending chat ID when open flow is abandoned

    If commands.open() returns without actually opening a window (e.g.
    the user cancels a workspace, agent, or folder prompt), clear the
    pending chat ID from memento so it does not leak into a future,
    unrelated reload.
    
    - commands.open() and openWorkspace() now return boolean indicating
      whether a window was actually opened.
    - handleOpen() clears the pending chat ID when open() returns false.
    - Add clearPendingChatId() to MementoManager.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    743ffa8 View commit details
    Browse the repository at this point in the history
  6. fix: retry auth token delivery to chat iframe with backoff

    When the chat iframe sends coder:vscode-ready, the session token
    may not be available yet if deployment setup is still in progress
    after a reload. Previously, handleMessage silently returned, leaving
    the iframe stuck on 'Authenticating...' forever with no recovery.
    
    Now sendAuthToken retries up to 5 times with exponential backoff
    (500ms, 1s, 2s, 4s, 8s). If the token is still unavailable after
    all retries, a coder:auth-error message is sent to the webview,
    which shows the error and a Retry button so the user can try again
    after signing in.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    0e30e41 View commit details
    Browse the repository at this point in the history
  7. fix: address review feedback

    - Trim verbose JSDoc on mementoManager chat ID methods.
    - Wrap commands.open() in try/finally so the pending chat ID is
      cleared even if it throws.
    - Track auth retry timer ID and clear it on dispose.
    - Use textContent instead of innerHTML in webview error handler.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    5c995d2 View commit details
    Browse the repository at this point in the history
  8. feat: use local reverse proxy for chat iframe authentication

    Replace the postMessage token handshake with a local reverse proxy
    that injects the Coder-Session-Token header into every HTTP and
    WebSocket request transparently.
    
    The iframe loads from http://127.0.0.1:PORT/SECRET/agents/{id}/embed
    instead of directly from the Coder server. This solves WebSocket
    auth failures in VS Code webviews where Electron's cookie
    partitioning prevents Set-Cookie from being sent on WS upgrades.
    
    A random 32-char hex secret in the URL path prevents other local
    processes from exploiting the proxy. The proxy binds to 127.0.0.1
    only and shuts down when the chat panel is disposed.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    c1ef3cb View commit details
    Browse the repository at this point in the history
  9. fix: use asExternalUri to tunnel proxy port for Remote SSH

    The proxy runs on the remote machine but the webview renders
    locally. vscode.env.asExternalUri handles SSH port forwarding
    so the local webview iframe can reach the remote proxy.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    1d02092 View commit details
    Browse the repository at this point in the history
  10. fix: ensure chat view is revealed after deep link reload

    When openChat is called before VS Code resolves the webview view,
    use the focus command to programmatically reveal it. Also set
    coder.agentsEnabled before revealing so the when-clause allows
    the view to appear.
    ThomasK33 committed Mar 19, 2026
    Configuration menu
    Copy the full SHA
    ea7f9bd View commit details
    Browse the repository at this point in the history
Loading