Commit Graph

13651 Commits

Author SHA1 Message Date
Nick Vigilante 7ebef0b6e0 docs: Update the architecture diagrams (#25816)
Fixes DOCS-266

<!--

If you have used AI to produce some or all of this PR, please ensure you
have read our [AI Contribution
guidelines](https://coder.com/docs/about/contributing/AI_CONTRIBUTING)
before submitting.

-->

(cherry picked from commit 05b8fb69b5)
2026-06-02 16:15:44 +00:00
Seth Shelnutt 443bc1a338 fix: upgrade golang.org/x/net to v0.55.0 (5 html CVEs) (#25772)
Upgrades `golang.org/x/net` from v0.53.0 to v0.55.0 on `release/2.32` to
address 5 CVEs in `x/net/html`:

| CVE | Severity | Description |
| --- | --- | --- |
| CVE-2026-25680 | Low | DoS via cubic complexity in HTML tree
construction |
| CVE-2026-25681 | Low | Incorrect handling of character references in
DOCTYPE (XSS) |
| CVE-2026-27136 | Low | Incorrect handling of namespaced elements in
foreign content (XSS) |
| CVE-2026-42502 | Low | Incorrect handling of HTML elements in foreign
content (XSS) |
| CVE-2026-42506 | Low | Failure to reject ASCII-only Punycode-encoded
labels (privilege escalation) |

Transitive dependency bumps:
- `golang.org/x/crypto` v0.50.0 -> v0.51.0
- `golang.org/x/sys` v0.43.0 -> v0.45.0
- `golang.org/x/term` v0.42.0 -> v0.43.0
- `golang.org/x/text` v0.36.0 -> v0.37.0

Fixes [ENT-92](https://linear.app/codercom/issue/ENT-92)
Supersedes [ENT-28](https://linear.app/codercom/issue/ENT-28)

> Generated with [Coder Agents](https://coder.com) by @Shelnutt2
v2.32.5
2026-05-30 15:34:28 -04:00
github-actions[bot] 3fe6edd83f docs: fix broken references and add users oidc-claims to manifest (#25706) (#25733)
Backport of https://github.com/coder/coder/pull/25706

Original PR: #25706 — docs: fix broken references and add users
oidc-claims to manifest
Merge commit: ecaf5e022b
Requested by: @nickvigilante

Co-authored-by: Nick Vigilante <nickvigilante@users.noreply.github.com>
2026-05-30 15:17:36 -04:00
Seth Shelnutt 0610ae7a0c fix: bump github.com/go-git/go-git/v5 from 5.19.0 to 5.19.1 (#25776)
Cherry-pick of go-git v5.19.1 bump to `release/2.32` to fix
CVE-2026-45570 and CVE-2026-45571.

Original PR: https://github.com/coder/coder/pull/25494

## CVEs fixed

| CVE | GHSA | Severity | Description |
|-----|------|----------|-------------|
| CVE-2026-45570 |
[GHSA-m7cr-m3pv-hgrp](https://github.com/go-git/go-git/security/advisories/GHSA-m7cr-m3pv-hgrp)
| Low | Improper single-quote escaping in SSH transport |
| CVE-2026-45571 |
[GHSA-crhj-59gh-8x96](https://github.com/go-git/go-git/security/advisories/GHSA-crhj-59gh-8x96)
| Medium | Crafted repositories may modify main and submodule .git
directories |

## Changes

- `go.mod`: `go-git/go-git/v5` v5.19.0 -> v5.19.1
- `go.sum`: updated checksums

Linear: ENT-91

> [!NOTE]
> This PR was generated by [Coder Agents](https://coder.com) on behalf
of @Shelnutt2.
2026-05-30 15:14:53 -04:00
Seth Shelnutt ad37de53c4 fix: upgrade golang.org/x/crypto to v0.52.0 (12 ssh CVEs) (#25780)
Upgrades `golang.org/x/crypto` from v0.50.0 to v0.52.0 on `release/2.32`
to address 12 CVEs in `x/crypto/ssh` and `x/crypto/ssh/agent`.

Linear: [ENT-90](https://linear.app/codercom/issue/ENT-90)

## Changes

- `golang.org/x/crypto` v0.50.0 -> v0.52.0
- `golang.org/x/net` v0.53.0 -> v0.54.0
- `golang.org/x/sys` v0.43.0 -> v0.45.0
- `golang.org/x/term` v0.42.0 -> v0.43.0
- `golang.org/x/text` v0.36.0 -> v0.37.0

<details><summary>CVEs addressed</summary>

| CVE | Package | Severity |
|---|---|---|
| CVE-2026-39827 | x/crypto/ssh | Low |
| CVE-2026-39828 | x/crypto/ssh | Low |
| CVE-2026-39829 | x/crypto/ssh | Low |
| CVE-2026-39830 | x/crypto/ssh | Low |
| CVE-2026-39831 | x/crypto/ssh | Low |
| CVE-2026-39834 | x/crypto/ssh | Low |
| CVE-2026-39835 | x/crypto/ssh | Low |
| CVE-2026-46595 | x/crypto/ssh | Low |
| CVE-2026-46597 | x/crypto/ssh | Low |
| CVE-2026-39832 | x/crypto/ssh/agent | Low |
| CVE-2026-39833 | x/crypto/ssh/agent | Low |
| CVE-2026-46598 | x/crypto/ssh/agent | Low |

</details>

> Generated by Coder Agents on behalf of @Shelnutt2
2026-05-30 15:14:05 -04:00
Rowan Smith 9614d55400 fix: do not clobber dynamic parameters (backport #24645 to 2.32) (#25827)
Backport of https://github.com/coder/coder/pull/24645 to `release/2.32`.

Once a user has touched a field, it is better to leave it alone and
display explicit validation errors over silently overwriting their
inputs. Same for auto-filled values (whether from query parameters or a
previous build).

Original PR: #24645 — fix: do not clobber dynamic parameters
Merge commit: d958d89b6f

Closes #23418

<details>
<summary>Cherry-pick conflict resolution</summary>

Two conflicts resolved:

1. **`site/src/testHelpers/websockets.ts`**: File was empty on
release/2.32. Took the incoming version with the new
`mockDynamicParameterWebSocket` helper.

2.
**`site/src/pages/CreateWorkspacePage/CreateWorkspacePage.jest.tsx`**:
File is `.jest.tsx` on the release branch (`.test.tsx` on main). Applied
the incoming content (refactored websocket mocking, modernized test
calls) to the existing `.jest.tsx` filename.

</details>

> [!NOTE]
> Generated with [Coder Agents](https://coder.com) by @rowansmithau

---------

Co-authored-by: Asher <ash@coder.com>
Co-authored-by: Garrett Delfosse <delfossegarrett@gmail.com>
2026-05-29 19:44:44 -04:00
github-actions[bot] e4defea43c fix(coderd/externalauth): detect rate-limit 403 and narrow isFailedRefresh (#24334) (#25504)
Backport of https://github.com/coder/coder/pull/24334

Original PR: #24334 — fix(coderd/externalauth): detect rate-limit 403
and narrow isFailedRefresh
Merge commit: 1926b7e658
Requested by: @f0ssel

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
v2.32.4
2026-05-19 16:43:47 -04:00
github-actions[bot] 26e1515899 fix(coderd/externalauth): detect concurrent refresh race to prevent cache poisoning (#24228) (#25508)
Backport of https://github.com/coder/coder/pull/24228

Original PR: #24228 — fix(coderd/externalauth): detect concurrent
refresh race to prevent cache poisoning
Merge commit: da6e708bd2
Requested by: @f0ssel

Co-authored-by: Jason Barnett <J@sonBarnett.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Garrett Delfosse <garrett@coder.com>
2026-05-19 16:43:26 -04:00
Rowan Smith 17aed0a3ef fix: update tailscale fork to fix TSMP/ICMP callback leak (backport 2.32) (#25473)
Backport of #25469 to `release/2.32`.

Updates `github.com/coder/tailscale` to
[`v1.1.1-0.20260519043957-6f014ff9434f`](https://github.com/coder/tailscale/commit/6f014ff9434f8c7c4b5b0b0450cbaf2e8b4a52af)
to include the fix from
[coder/tailscale#122](https://github.com/coder/tailscale/pull/122),
which ports the upstream
[tailscale/tailscale#18113](https://github.com/tailscale/tailscale/pull/18113)
fix for TSMP/ICMP callback leaks.

Fixes #25380

> Generated with [Coder Agents](https://coder.com) by @rowansmithau
2026-05-19 16:37:41 -04:00
Seth Shelnutt fcd45a93fb fix(scripts/ironbank): build Terraform from source with Go 1.25.9+ (#25259)
## Summary

Fixes the bundled Terraform binary in IronBank images being compiled
with an older Go toolchain that exposes 9 CVEs (1 Critical, 5 High, 3
Medium) fixed in Go 1.25.9.

## Problem

No upstream Terraform release is yet compiled with Go 1.25.9+:
- Terraform 1.14.5 (used by provisioner): compiled with **Go 1.25.6**
- Terraform 1.15.2 (latest stable): compiled with **Go 1.25.8**
- The previous IronBank manifest referenced Terraform 1.3.7, compiled
with Go ~1.19

## Fix

The IronBank build script now compiles Terraform **from source** using
the same Go toolchain as Coder (>= 1.25.9), ensuring all CVEs in the Go
stdlib are addressed.

### Changes

**`scripts/ironbank/build_ironbank.sh`**:
- Builds Terraform 1.14.5 from source instead of downloading a
precompiled binary
- Adds `go`, `zip`, and `git` as build dependencies
- Reads `TERRAFORM_VERSION` from `hardening_manifest.yaml`

**`scripts/ironbank/hardening_manifest.yaml`**:
- Updated all versions to match release/2.32 (was severely outdated):
  - Coder: 0.15.3 -> 2.32.1
  - Terraform: 1.3.7 -> 1.14.5 (built from source)
  - Provider: 0.6.10 -> 2.15.0
- Replaced precompiled Terraform binary URL with source tarball
reference
- Added `TERRAFORM_VERSION` build arg for the build script

<details>
<summary>Decision log</summary>

- **Why build from source?** Neither the latest Terraform 1.14.5 (Go
1.25.6) nor 1.15.2 (Go 1.25.8) is compiled with Go 1.25.9+. Building
from source with our Go toolchain is the only way to address the CVEs
without waiting for an upstream release.
- **Why not bump to Terraform 1.15.x?** The provisioner on release/2.32
has `maxTerraformVersion = 1.14.9`. Bumping to 1.15.x would require
provisioner changes, which is risky on a release branch.
- **Why update the entire manifest?** The manifest was pinned to Coder
0.15.3, Terraform 1.3.7, and provider 0.6.10, all severely outdated and
inconsistent with the release/2.32 branch.

</details>

> Generated by Coder Agents. [Issue
ENT-23](https://linear.app/codercom/issue/ENT-23)
v2.32.3
2026-05-18 13:03:02 -04:00
Cian Johnston f6beb9d4f5 fix(coderd/taskname): parse task name JSON with trailing text (#25005) (#25300)
Anthropic task name responses can include valid JSON followed by a
closing fence or extra text, which made `json.Unmarshal` fail with
trailing-character errors and forced fallback naming.

This updates task name JSON extraction to accept the first JSON value
after optional fences and adds regression coverage for fenced and bare
JSON with trailing content.

(cherry picked from commit 87d580d3fe)

<!--

If you have used AI to produce some or all of this PR, please ensure you
have read our [AI Contribution
guidelines](https://coder.com/docs/about/contributing/AI_CONTRIBUTING)
before submitting.

-->

Co-authored-by: Max Schwenk <maschwenk@gmail.com>
2026-05-18 13:02:26 -04:00
github-actions[bot] f56e3a84fc docs: Fix the display of the tab block in External Workspaces (#25341) (#25343)
Backport of https://github.com/coder/coder/pull/25341

Original PR: #25341 — docs: Fix the display of the tab block in External
Workspaces
Merge commit: 507ece3bc4
Requested by: @nickvigilante

Co-authored-by: Nick Vigilante <nickvigilante@users.noreply.github.com>
2026-05-18 13:02:13 -04:00
Atif Ali 882689a888 fix(cli): show sync wait dependencies (#25369)
## Summary
Backports #25089 to `release/2.32` so `coder exp sync want` and `coder
exp sync start` print the dependency units involved in startup
coordination instead of generic success messages.

## Validation
- `git diff --check origin/release/2.32..HEAD`
- `go test ./cli -run TestSyncCommands -count=1`

> [!NOTE]
> `make test RUN=TestSyncCommands` hit an unrelated `codersdk/toolsdk`
filtered-test failure because that package expects all tools to be
tested. The affected CLI test passed with the package-scoped command
above.

> 🤖 This PR was created with the help of Coder Agents, and needs a human
review. 🧑💻

Co-authored-by: Max Schwenk <maschwenk@gmail.com>
2026-05-18 08:55:10 -04:00
github-actions[bot] f7596ad24d fix(coderd/azureidentity): add Azure IMDS G2 chain certificates (#25243) (#25348)
Backport of https://github.com/coder/coder/pull/25243

Original PR: #25243 — fix(coderd/azureidentity): add Azure IMDS G2 chain
certificates
Merge commit: 49c6191bbe
Requested by: @geokat

Co-authored-by: George K <george@coder.com>
2026-05-14 13:00:52 -07:00
github-actions[bot] a1c976b638 docs: update screenshot to point to generic URL (#25314) (#25319)
Backport of https://github.com/coder/coder/pull/25314

Original PR: #25314 — docs: update screenshot to point to generic URL
Merge commit: 7aaa8485db
Requested by: @nickvigilante

Co-authored-by: Nick Vigilante <nickvigilante@users.noreply.github.com>
2026-05-13 17:23:55 -04:00
Jakub Domeracki 5f343bc337 fix(coderd): backport frame-ancestors CSP fixes to 2.32 (#24474, #24529) (#24806)
Cherry-pick backport of #24474 and #24529 to `release/2.32`.

- #24474: fix(coderd): add frame-ancestors CSP directive to prevent
clickjacking
- #24529: fix(coderd): omit frame-ancestors CSP for embed routes

Both commits cherry-picked cleanly with no conflicts.

> Generated by Coder Agents
v2.32.2
2026-05-13 15:16:48 -04:00
Spike Curtis d6e9344e03 fix: verify PKCS7 signature on Azure instance identity tokens (backport 2.32) (#25303)
The Azure instance-identity authentication endpoint parsed the PKCS7
envelope and verified the certificate chain, but never verified the
PKCS7 signature itself. An attacker could forge a PKCS7 envelope with a
legitimate, publicly obtainable Azure certificate and arbitrary vmId
content to obtain any agent auth token.

Add verifyPKCS7Signature(), a custom PKCS7 signature verification that
handles Azure non-standard use of sha256WithRSAEncryption (OID
1.2.840.113549.1.1.11) as the DigestAlgorithm. The upstream
go.mozilla.org/pkcs7 library Verify() rejects this combination.

The verification checks:
1. Content digest matches the signed message-digest attribute
2. Signature over the authenticated attributes is valid

Tests added:
- TestValidate_TamperedContent: forges a PKCS7 with modified vmId,
confirms rejection
- TestValidate_UntrustedCertWithValidSignature: valid PKCS7 signature
with untrusted cert chain, confirms rejection

Co-authored-by: Jakub Domeracki <jakub@coder.com>
2026-05-13 13:45:52 -04:00
Jakub Domeracki 25219f30b1 fix(coderd): harden Azure identity certificate fetch (cherry-pick v2.32) (#25277)
Cherry-pick of
https://github.com/coder/coder/commit/57b11d405f17492aa789d4b9ff33366f961a37f8
to `release/2.32`.

Backport of #25274.

> [!NOTE]
> This PR was created by Coder Agents on behalf of a human.
2026-05-13 17:34:55 +02:00
Seth Shelnutt d944b92a99 fix(scripts/ironbank): update base image to UBI9 and remove urllib3 (CVE-2026-44431) (#25249)
## Summary

Update the IronBank Dockerfile to use UBI9 (9.6) instead of UBI8 (8.7)
and explicitly remove `python3-urllib3` to address CVE-2026-44431.

### Changes
- **Dockerfile**: Upgrade base image from `ubi8-minimal:8.7` to
`ubi9-minimal:9.6`
- **Dockerfile**: Add `microdnf remove python3-urllib3` step after
package install
- **build_ironbank.sh**: Update local build args to match the new UBI9
base image

### Context
urllib3 1.26.5 is bundled in the UBI base image. Coder is a Go binary
and does not invoke Python at runtime, so this library is unused. The
removal step is a belt-and-suspenders safeguard in case UBI9 still ships
the package.

Fixes: ENT-52

> [!NOTE]
> This PR was generated by [Coder
Agents](https://coder.com/docs/agents).
2026-05-13 10:39:09 -04:00
Seth Shelnutt 315e800cb2 fix: upgrade Go toolchain from 1.25.9 to 1.25.10 (#25228)
Go 1.25.10 (released 2026-05-07) includes 11 security fixes for CVEs
affecting the go command, pack tool, html/template, net, net/http,
net/http/httputil, net/mail, and syscall packages.

Fixes IronBank v2.32.x Go stdlib CVE exposure by upgrading from Go
1.25.9 to 1.25.10.

Reference: https://groups.google.com/g/golang-dev/c/h6eZjndBMqQ

### Changed files
- `go.mod`: `go 1.25.9` to `go 1.25.10`
- `dogfood/coder/Dockerfile`: `GO_VERSION` and `GO_CHECKSUM`
- `.github/actions/setup-go/action.yaml`: default version

> Generated by Coder Agents
2026-05-13 07:55:14 -04:00
Seth Shelnutt da939aa4b2 fix(site): move pagination test from vitest to storybook story (cherry-pick #24165) (#25238)
Cherry-pick of #24165 to `release/2.32`.

Moves the flaky pagination query key test from vitest to a Storybook
story. The test timed out in CI because `renderWithAuth` boots 12+ MSW
round-trips before the page mounts. The story uses decorators to
pre-seed the query cache, skipping the MSW waterfall entirely.

> 🤖 Generated by Coder Agent

Co-authored-by: Danielle Maywood <danielle@themaywoods.com>
2026-05-12 19:56:44 -04:00
Seth Shelnutt bbe028604a fix: bump github.com/go-git/go-git/v5 from 5.18.0 to 5.19.0 (#25240)
Cherry-pick of go-git v5.19.0 bump to `release/2.32` to fix
CVE-2026-45022 (improper object parsing).

Original PR: https://github.com/coder/coder/pull/25124

Ref:
https://github.com/go-git/go-git/security/advisories/GHSA-389r-gv7p-r3rp

Supersedes #25226 (rebased on top of #25224).

> [!NOTE]
> This PR was authored by Coder Agents.

<details><summary>Context</summary>

The cherry-pick of the original commit (`c1c3b978`) had merge conflicts
in `go.mod`/`go.sum` due to dependency drift between `main` and
`release/2.32`. Instead, the bump was applied directly via `go get
github.com/go-git/go-git/v5@v5.19.0` followed by `go mod tidy`,
producing equivalent results.

Linear: ENT-24

</details>
2026-05-12 19:56:19 -04:00
Seth Shelnutt be2cd7aef8 fix: cherry-pick OTel SDK v1.43.0 for CVE-2026-39883 (v2.32.x) (#25227)
Cherry-pick of #24078 (commit 0552b927b2)
to `release/2.32`.

Bumps OpenTelemetry Go SDK from v1.42.0 to v1.43.0 to fix CVE-2026-39883
(PATH hijacking on BSD/Solaris via bare `kenv` command in
`go.opentelemetry.io/otel/sdk`).

Refs
https://github.com/open-telemetry/opentelemetry-go/security/advisories/GHSA-hfvc-g4fc-pqhx

<details>
<summary>Version changes</summary>

| Package | Before | After |
|---------|--------|-------|
| `go.opentelemetry.io/otel` | v1.42.0 | v1.43.0 |
| `go.opentelemetry.io/otel/sdk` | v1.42.0 | v1.43.0 |
| `go.opentelemetry.io/otel/trace` | v1.42.0 | v1.43.0 |
| `go.opentelemetry.io/otel/metric` | v1.42.0 | v1.43.0 |
| `go.opentelemetry.io/otel/sdk/metric` | v1.42.0 | v1.43.0 |
| `go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp` |
v0.67.0 | v0.68.0 |

</details>

> 🤖 Generated by Coder Agents

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-12 19:03:24 -04:00
Seth Shelnutt a7e6c6ed3d fix(go.mod): bump gomarkdown to fix GHSA-77fj-vx54-gvh7 (v2.32) (#25225)
Cherry-pick of #24567 (commit 869168b) to `release/2.32`.

Bumps `github.com/gomarkdown/markdown` from
`v0.0.0-20240930133441-72d49d9543d8` to
`v0.0.0-20260411013819-759bbc3e3207` to fix an out-of-bounds read in
SmartypantsRenderer
([GHSA-77fj-vx54-gvh7](https://github.com/advisories/GHSA-77fj-vx54-gvh7)).

Refs https://linear.app/codercom/issue/ENT-29

> Generated by Coder Agents

Co-authored-by: Lukasz <CommanderK5@users.noreply.github.com>
2026-05-12 19:03:14 -04:00
Seth Shelnutt 561e42df11 fix: bump golang.org/x/net to v0.53.0 (CVE-2026-33814) (#25224)
Cherry-pick `golang.org/x/net` v0.53.0 bump to `release/2.32` to fix
HTTP/2 infinite loop DoS when processing SETTINGS frames with
`MAX_FRAME_SIZE=0`.

Original PR: #24259
Advisory: https://pkg.go.dev/vuln/GO-2026-4918
Fixes: https://linear.app/codercom/issue/ENT-28

<details><summary>Packages bumped</summary>

| Package | From | To |
|---------|------|-----|
| golang.org/x/net | v0.52.0 | v0.53.0 |
| golang.org/x/crypto | v0.49.0 | v0.50.0 |
| golang.org/x/sys | v0.42.0 | v0.43.0 |
| golang.org/x/term | v0.41.0 | v0.42.0 |
| golang.org/x/text | v0.35.0 | v0.36.0 |

</details>

> Generated by Coder Agents
2026-05-12 17:50:48 -04:00
github-actions[bot] 2466f0cb22 fix: bump hashicorp/hc-install to v0.9.4 (#24547) (#24576)
Backport of https://github.com/coder/coder/pull/24547

Original PR: #24547 — chore: bump hashicorp/hc-install to v0.9.4 and
drop coder fork replace
Merge commit: bd3ed18fb1
Requested by: @ethanndickson

Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
v2.32.1
2026-04-28 15:36:17 -04:00
Jakub Domeracki c9b5f12e9c fix!: terminal command confirmation dialog (cherry-pick to 2.32) (#24767)
Cherry-pick of #24650 and #24765 to release/2.32.

Adds a confirmation dialog before executing commands from the
`?command=` URL parameter in the terminal page. Canceling closes the
terminal window.

> 🤖 Generated by Coder Agents

---------

Co-authored-by: Seth Shelnutt <seth@coder.com>
2026-04-28 14:53:49 -04:00
github-actions[bot] 4d00bc63db fix(coderd/externalauth): save refreshed token before validation (#24332) (#24579)
Backport of https://github.com/coder/coder/pull/24332

Original PR: #24332 — fix(coderd/externalauth): save refreshed token
before validation
Merge commit: 2a1984f0e8
Requested by: @f0ssel

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2026-04-27 15:13:44 -04:00
github-actions[bot] 26373e5c67 fix(site): implement agent logs improvements (#24455) (#24733)
Cherry-pick of https://github.com/coder/coder/pull/24455

Original PR: #24455 — fix(site): implement agent logs improvements
Merge commit: 3466806a66
Requested by: @matifali

Co-authored-by: Jake Howell <jacob@coder.com>
2026-04-27 23:26:11 +05:00
github-actions[bot] 06f6b7920a fix: restore kebab menu flex (#24359) (#24734)
Cherry-pick of https://github.com/coder/coder/pull/24359

Original PR: #24359 — fix: restore kebab menu flex
Merge commit: 074ff79af7
Requested by: @matifali

Co-authored-by: Jake Howell <jacob@coder.com>
2026-04-27 23:25:35 +05:00
github-actions[bot] b40faa72ef fix: widen engines.node to include Node.js 24 LTS (#24419) (#24468)
Backport of https://github.com/coder/coder/pull/24419

Original PR: #24419 — fix: widen engines.node to include Node.js 24 LTS
Merge commit: 1f194dcdff
Requested by: @CommanderK5

Co-authored-by: Jakub Domeracki <jakub@coder.com>
2026-04-17 14:29:40 +02:00
Ethan 62191910f8 fix(coderd/x/chatd): hoist system prompt fetch out of chat creation transaction (#24369) (#24415)
Partial backport of #24369 to `release/2.32`.

Only the `CreateChat` fix in `coderd/x/chatd/chatd.go` applies here —
the second call site in `subagent.go`
(`createChildSubagentChatWithOptions`) doesn't exist on this branch
since the child-subagent-chat creation path was added after the branch
cut.

The fix hoists the `resolveDeploymentSystemPrompt` call out of the
`InTx` closure so the transaction doesn't hold one DB connection while
the helper tries to check out another via `p.db`. Under concurrent chat
creation load this pattern can cause pool starvation.

This is not urgent enough to warrant an immediate patch release — the
bug only manifests under high concurrent chat creation load. It should
be fine to ride along with the next scheduled 2.32.x patch.
2026-04-16 16:39:19 +10:00
github-actions[bot] 8d740ff6b7 fix: prevent 'See all templates' from overlapping template list in New Workspace dropdown (#24356) (#24386)
Backport of https://github.com/coder/coder/pull/24356

Original PR: #24356 — fix: prevent 'See all templates' from overlapping
template list in New Workspace dropdown
Merge commit: 517bb1f9f7
Requested by: @35C4n0r

Co-authored-by: 35C4n0r <70096901+35C4n0r@users.noreply.github.com>
2026-04-15 20:40:51 +05:30
Cian Johnston 34584e909b fix: update to our fork of charm.land/fantasy with appendCompact perf improvement (#24338)
Cherry-pick of #24142

Updates go.mod to reference our forks of the following dependencies:
* charmbracelet/anthropic-sdk-go =>
https://github.com/coder/anthropic-sdk-go/tree/coder_2_33
* charm.land/fantasy => https://github.com/coder/fantasy/tree/coder_2_33

(cherry picked from commit 27e5ff0a8e)
v2.32.0
2026-04-14 13:37:44 -04:00
Lukasz 2625056e71 fix: backport Go 1.25.9 and dependency fixes (#24330)
## Summary
- backport `go-getter` 1.8.6 and its indirect dependency updates to
`release/2.32`
- backport the Go toolchain bump to 1.25.9
- include the latest local backport commits on
`sec/release-2.32-security`

## Testing
- not run
2026-04-14 10:14:52 -04:00
Spike Curtis bd1568b0b7 fix: bump coder/tailscale to pick up RTM_MISS fix (cherry-pick #24187) (#24214)
## Cherry-pick of #24187 onto `release/2.32`

This cherry-picks commit ad2415ede7 to
bring the `coder/tailscale` bump (`e956a95`, [PR
#113](https://github.com/coder/tailscale/pull/113)) onto the
`release/2.32` branch.

### Context

On Darwin, `RTM_MISS` route-socket messages (fired on every failed route
lookup) were not filtered by `netmon`, causing each one to be treated as
a `LinkChange`. When netcheck sends STUN probes to an IPv6 address with
no route, this creates a self-sustaining feedback loop: `RTM_MISS` →
`LinkChange` → `ReSTUN` → netcheck → v6 STUN probe → `RTM_MISS` → …

The loop drives DERP home-region flapping at ~70× baseline, which at
fleet scale saturates PostgreSQL's `NOTIFY` lock and causes coordinator
health-check timeouts.

The upstream fix adds a single `if msg.Type == unix.RTM_MISS { return
true }` check to `skipRouteMessage`, which is safe because `RTM_MISS` is
a lookup-path signal, not a table-mutation signal.

This issue has been reported since users updated to macOS 26.4.

Relates to ENG-2394

> 🤖 Generated by Coder Agents

Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
2026-04-10 16:05:07 -04:00
github-actions[bot] eb2b1d3a8b fix: update directory for terraform-managed subagents (#24220) (#24242)
Cherry-pick of https://github.com/coder/coder/pull/24220

Original PR: #24220 — fix: update directory for terraform-managed
subagents
Merge commit: 3462c31f43
Requested by: @f0ssel

Co-authored-by: Garrett Delfosse <garrett@coder.com>
2026-04-10 11:30:19 -04:00
github-actions[bot] 9626fdacad fix(cli): retry dial timeouts in SSH connection setup (#24199) (#24229)
Cherry-pick of https://github.com/coder/coder/pull/24199

Original PR: #24199 — fix(cli): retry dial timeouts in SSH connection
setup
Merge commit: 1d0653cdab
Requested by: @f0ssel

Co-authored-by: Ehab Younes <ehab.alyounes@gmail.com>
2026-04-09 18:46:48 -04:00
Cian Johnston 52190f032d fix: revert auto-assign agents-access role enabled (#24170) (#24186)
This reverts commit d4a9c63e91 (#23968).

---------


(cherry picked from commit 7b0421d8c6)

<!--

If you have used AI to produce some or all of this PR, please ensure you
have read our [AI Contribution
guidelines](https://coder.com/docs/about/contributing/AI_CONTRIBUTING)
before submitting.

-->

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-09 12:49:34 -04:00
Cian Johnston 8d4148b198 chore: remove kyleosophy easter egg (#24174)
Remove the Kyleosophy alternative completion chimes easter egg (added in
#23891).

(cherry picked from commit d03a7c84da)
2026-04-09 10:39:34 -04:00
github-actions[bot] d3bdd5d153 feat: add httproute (#23501) (#24172)
Cherry-pick of https://github.com/coder/coder/pull/23501

Original PR: #23501 — feat: add httproute
Merge commit: e3a0dcd6fc

Signed-off-by: Carlo Field <carlo@swiss.dev>
Co-authored-by: Carlo Field <carlo@swiss.dev>
Co-authored-by: bpmct <bpmct@users.noreply.github.com>
Co-authored-by: Ben Potter <ben@coder.com>
2026-04-08 16:15:10 -04:00
github-actions[bot] 727ec00f7f chore: revert force deploying main (#23290) (#24072) (#24166)
Cherry-pick of https://github.com/coder/coder/pull/24072

Original PR: #24072 — chore: revert force deploying main (#23290)
Merge commit: 497f637f58

Co-authored-by: Cian Johnston <cian@coder.com>
2026-04-08 14:31:50 -04:00
github-actions[bot] 89a0ee3d1d feat: support disabling reverse/local port forwarding in agent SSH server (#24026) (#24164)
Cherry-pick of https://github.com/coder/coder/pull/24026

Original PR: #24026 — feat: support disabling reverse/local port
forwarding in agent SSH server
Merge commit: 7b7baea851

Co-authored-by: Garrett Delfosse <garrett@coder.com>
2026-04-08 14:13:09 -04:00
dependabot[bot] d87c5ef439 chore: bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.96.0 to 1.97.3 (#24136)
Bumps
[github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2)
from 1.96.0 to 1.97.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/90650dd22735ab68f6089ae5c39b6614286ae9ec"><code>90650dd</code></a>
Release 2026-03-26</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/dd88818bee7d632a8b9da6e2c78ef92e23c94c62"><code>dd88818</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/b662c50138bd393927871b46e84ee3483377f5be"><code>b662c50</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/500a9cb3522a0e71d798d7079ff5856b23c2cac1"><code>500a9cb</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/6221102f763bd65d7e403fa62c3a1e3d39e24dc6"><code>6221102</code></a>
fix stale skew and delayed skew healing (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3359">#3359</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/0a39373433a121800bc68efa743a7486eb07aa3f"><code>0a39373</code></a>
fix order of generated event header handlers (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3361">#3361</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/098f3898271e2eaaf8a92e38d1d928fb018805a6"><code>098f389</code></a>
Only generate resolveAccountID when it's required (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3360">#3360</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/6ebab66428e97db0ee252fea042d56b1313cb9f6"><code>6ebab66</code></a>
Release 2026-03-25</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/b2ec3beebb986a5e74e50d0c105119d84e1e934e"><code>b2ec3be</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/abc126f6b35bfe2f77e2505f6d04f8ceced971ee"><code>abc126f</code></a>
Update API model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.96.0...service/s3/v1.97.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go-v2/service/s3&package-manager=go_modules&previous-version=1.96.0&new-version=1.97.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/coder/coder/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 04:40:17 +00:00
dependabot[bot] ef3e17317c chore: bump github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream from 1.7.6 to 1.7.8 (#24134)
Bumps
[github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream](https://github.com/aws/aws-sdk-go-v2)
from 1.7.6 to 1.7.8.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/e3b97d2a02cd4e27c40224f05aa1a7deba24abe2"><code>e3b97d2</code></a>
Release 2023-10-12</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/863010ddb23c242c2a5d49d9f40094a6a49b5525"><code>863010d</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/6946ef8b9149fe75ac1b427ca2c7f57cdcb64549"><code>6946ef8</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/6d93ded4536184d38a664b4b75dadd36cbd79878"><code>6d93ded</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/bebc232e7f65b02d0b519d11e73cf925c38e716f"><code>bebc232</code></a>
fix: fail to load config if configured profile doesn't exist (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/2309">#2309</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/5de46742b7fb1b72d93d344ee81568800a707267"><code>5de4674</code></a>
fix DNS timeout error not retried (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/2300">#2300</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/e155bb72a2ec20ec61db50fc3d4568e373fa4b63"><code>e155bb7</code></a>
Release 2023-10-06</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/9d342ba33937c562d215f317a37dea121ee9763d"><code>9d342ba</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1df99141a143a38570d64a182ed972ce9e3dba65"><code>1df9914</code></a>
Update SDK's smithy-go dependency to v1.15.0</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/32ada3a191ac770b1b24164b667692183fc77ed9"><code>32ada3a</code></a>
Update API model</li>
<li>See full diff in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/m2/v1.7.6...service/m2/v1.7.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream&package-manager=go_modules&previous-version=1.7.6&new-version=1.7.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/coder/coder/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 03:14:12 +00:00
Kayla はな 1187b84c54 refactor(site): remove mui from icon components (#24117) 2026-04-07 17:32:05 -06:00
Jeremy Ruppel 45336bd9ce fix(site): use field value instead of controlled value in PasswordField (#24123)
`<PasswordField>`'s value should come from the field helpers, not from a
prop
2026-04-07 19:04:29 -04:00
Jeremy Ruppel 36cf7debce fix(site): add resize observer to session timeline expandable text (#24119)
I said I wouldn't but the illustrious @jakehwll added a ResizeObserver
recently so imma do that too.

This makes `<ExpandableText>` determine if it should be expandable or
not on resize
2026-04-07 19:04:05 -04:00
Ehab Younes 027c222e82 fix(cli): add dial timeout and keepalive for Coder Connect (#24015)
The default `net.Dialer` in the Coder Connect path had no timeout,
falling back to the OS TCP timeout when the tunnel was broken but DNS
still resolved. Add a 5s dial timeout and 30s TCP keepalive.

Fixes #24006
2026-04-08 01:11:28 +03:00
Ehab Younes d00f148b76 fix(cli): retry transient connection failures during SSH setup (#24010)
When `coder ssh` connects to a workspace after laptop wake, DNS or the
control plane may be briefly unavailable. Previously this caused an
immediate failure, which VS Code Remote SSH classified as permanent
("Reload Window").

Wrap each network step (workspace resolution, template version fetch,
agent connection info, Coder Connect dial, tailnet dial) with
`retryWithInterval` so transient errors (DNS, connection refused, 5xx)
are retried individually. Non-retryable errors (auth, 404) and context
cancellation stop immediately. Data transfer is never retried.
2026-04-08 00:59:10 +03:00