Compare commits

...

2188 Commits

Author SHA1 Message Date
Danny Kopping 0c25da5399 chore: minor fixes
Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-22 20:23:15 +02:00
Danny Kopping 3155d11c3a chore: no replace
Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-22 20:23:14 +02:00
Danny Kopping 1df18d433d chore: add race protection
Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-22 20:22:48 +02:00
Danny Kopping 34fedfc4eb chore: add route for enabling/disabling logging, CLI command
Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-22 20:22:48 +02:00
Danny Kopping aca10a2e97 chore: request logging
Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-22 20:22:46 +02:00
Marcin Tojek 5f97ad0988 chore: move discord button to menu (#20425)
Related: https://github.com/coder/coder/pull/20339
2025-10-22 17:42:20 +00:00
Paweł Banaszewski 48f77d0c01 chore: bump coder/aibridge to v0.1.4 (#20424)
Solves https://github.com/coder/aibridge/issues/19
+ https://github.com/coder/aibridge/pull/34
and https://github.com/coder/aibridge/pull/21
2025-10-22 19:36:01 +02:00
Jiachen Jiang da31a4bed9 docs: edit Boundary documentation to reflect current functionality (#20403) 2025-10-22 11:32:15 -05:00
Cian Johnston 9730c86f17 chore(compose.yaml): allow overriding CODER_REPO (#20419)
Allows running a vendored version of Coder in our `compose.yaml` as
follows:

```
CODER_REPO=my.repo.tld/mycoder/coder CODER_VERSION=my-tag docker compose up
```

Also allows running the current "dogfood" version of Coder as follows:

```
CODER_REPO=ghcr.io/coder/coder-preview CODER_VERSION=dogfood docker compose up
```
2025-10-22 17:15:12 +01:00
Cian Johnston 5ecab7b5f0 chore(cli): add single CRUD-style test for tasks (#20385)
Adds a single CRUD-style test for tasks CLI using a single `coderdtest` instance.
2025-10-22 16:02:21 +01:00
Atif Ali df3b1bb6c7 revert: "chore(dogfood) remove extra ENV variable for claude code auth" (#20413) 2025-10-22 19:57:46 +05:00
Marcin Tojek caeca1097b chore: refactor license validation (#20411) 2025-10-22 16:12:36 +02:00
Atif Ali 823b14aa34 docs: add base URLs and authentication section to AI Bridge (#20404)
Co-authored-by: Danny Kopping <danny@coder.com>
2025-10-22 13:55:54 +00:00
Marcin Tojek f2a410566c feat: add support buttons (#20339)
Fixes: https://github.com/coder/coder/issues/16804
2025-10-22 15:35:16 +02:00
Bruno Quaresma aa689cbb39 feat: add terminal in the task page (#20396)
**Demo:**

<img width="1624" height="967" alt="Screenshot 2025-10-21 at 10 45 24"
src="https://github.com/user-attachments/assets/b0ae724f-055a-4b13-b2a6-f11f4432de9b"
/>

Closes https://github.com/coder/internal/issues/1077
2025-10-22 10:16:53 -03:00
Kacper Sawicki 1230cacf78 feat(scaletest): extend notifications runner with smtp support (#20222)
This PR extends the scaletest notification runner with SMTP support.

If the `--smtp-api-url` flag is provided, the runner will also watch for SMTP notifications using the specified URL.

#### Changes
- Added a new watcher to retrieve emails sent to the runner user  
- Tracked WebSocket and SMTP latencies separately  
- Updated metrics to include `notification_id` and `notification_type` labels  

#### CLI Flags
- `--smtp-api-url`: Address of the SMTP mock HTTP API used to retrieve email notifications  

#### Metrics
- `notification_delivery_latency_seconds` now includes:
  - `notification_id`
  - `notification_type` (`websocket` or `smtp`)
2025-10-22 12:09:35 +02:00
Kacper Sawicki 7bbeef4999 feat(cli): add mock SMTP server for testing scaletest notifications (#20221)
This PR adds a fake SMTP server for scale testing. It collects emails sent during tests, which you can then check using the HTTP API.

#### Changes
- Added mock SMTP server  
- Added `coder scaletest smtp` CLI command  
- Implemented HTTP API endpoints to retrieve messages by email  
- Added auto-purge to prevent memory issues  

#### HTTP API Endpoints
- `GET /messages?email=<email>` – Get messages sent to an email address  
- `POST /purge` – Clear all messages from memory  

The HTTP API parses raw email messages to extract the **date**, **subject**, and **notification ID**.

Notification IDs are sent in emails like this:
```html
<p>
  <a href="http://127.0.0.1:3000/settings/notifications?disabled=4e19c0ac-94e1-4532-9515-d1801aa283b2"
     style="color: #2563eb; text-decoration: none;">
    Stop receiving emails like this
  </a>
</p>
```

#### CLI
```bash
coder scaletest smtp --host localhost --port 33199 --api-port 8080 --purge-at-count 1000
```

**Flags:**
- `--host`: Host for the mock SMTP and API server (default: localhost)  
- `--port`: Port for the mock SMTP server (random if not specified)  
- `--api-port`: Port for the HTTP API server (random if not specified)  
- `--purge-at-count`: Max number of messages before auto-purging (default: 100000)
2025-10-22 11:14:49 +02:00
Mathias Fredriksson f64ac8f5f7 chore(scripts/rules.go): ignore db imports in _test.go files (#20406)
This change allows us to stop adding the following for every invokation:

```
//nolint:gocritic // This is in a test package and does not end up in the build
```
2025-10-22 12:10:06 +03:00
Dean Sheather 69c2c40512 chore: add user details to aibridge interception list endpoint (#20397)
- Adds FK from `aibridge_interceptions.initiator_id` to `users.id`
- This is enforced by deleting any rows that don't have any users. Since
this is an experimental feature AND coder never deletes user rows I
think this is acceptable.
- Adds `name` as a property on `codersdk.MinimalUser`
- This matches the `visible_users` view in the database. I'm unsure why
`name` wasn't already included given that `username` is.
- Adds a new `initiator` field to `codersdk.AIBridgeInterception` which
contains `codersdk.MinimalUser` (ID, username, name, avatar URL)
- Removes `initiator_id` from `codersdk.AIBridgeInterception`
    - Should be fine since we're still in early access
2025-10-22 16:18:31 +11:00
Zach 9da60a9dc5 chore: migrate from tenv linter to usetesting linter (#20401)
The tenv linter is deprecated in favor of usetesting which offers a
superset of lint checks. This message is seen when running `make lint`

```
[nix-shell:~/src/coder]$ make lint
<snip>
WARN The linter 'tenv' is deprecated (since v1.64.0) due to: Duplicate feature in another linter. Replaced by usetesting.
<snip>
```


This change swaps out the deprecated tenv linter for the usetesting linter,
and configures it for linting parity.


https://github.com/coder/coder/issues/20398
2025-10-21 15:10:47 -06:00
Zach e73f9d356b fix: retry embedded postgres port allocation (#20371)
Sometimes tests would fail because the port embedded postgres tries to
use is already in use. This is because there's no way to tell postgres
to use an ephemeral port in tests. This change adds retries to starting
embedded postgres when the port is not explicitly defined (e.g. tests) which
should rid of, or at least significantly reduce, these flakes.

https://github.com/coder/internal/issues/658
2025-10-21 12:52:17 -06:00
Bruno Quaresma 87ce021035 fix: centralize warning message in static error (#20389)
- Centralize warning message in static error
- Change a few typography styles to match coder/coder

**Before:**

<img width="1624" height="967" alt="Screenshot 2025-10-20 at 14 35 56"
src="https://github.com/user-attachments/assets/5f0b36cb-47f5-4c34-9a08-41f356bcc860"
/>

**After:**

<img width="1624" height="967" alt="Screenshot 2025-10-20 at 14 35 48"
src="https://github.com/user-attachments/assets/aa3fe961-3d12-4288-9e65-2736ec856dfc"
/>

Fixes https://github.com/coder/coder/issues/20369
2025-10-21 14:39:17 -03:00
Steven Masley 86f0f39863 chore: make authz recorder opt in (#20310)
The authz recorder is causing a lot of memory to be allocated, and is a
memory leak for websocket connections.

This change makes it opt-in on a per request basis (ontop of `isDev`).
To get the authz headers, use `Copy as cURL` on chrome and append the
header `x-authz-checks=true`.
2025-10-21 14:15:37 +00:00
dependabot[bot] 650dc860bd chore: bump github.com/gohugoio/hugo from 0.150.0 to 0.151.2 (#20382)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.150.0 to 0.151.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.151.2</h2>
<h2>What's Changed</h2>
<ul>
<li>parser/pageparser: Add a testcase for nested shortcodes of the same
name 989454a52 <a href="https://github.com/bep"><code>@​bep</code></a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/14054">#14054</a></li>
<li>parser/pageparser: Fix shortcode nesting regression 1e91e4652 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/14054">#14054</a></li>
</ul>
<h2>v0.151.1</h2>
<p>This release is mostly motivated by some upstream security fixes:</p>
<ul>
<li>Upgrade from Go 1.25.1 to Go 1.25.3 which comes with <a
href="https://github.com/golang/go/issues?q=milestone%3AGo1.25.2%20label%3ASecurity">10
security fixes</a>.</li>
<li>Go's <code>net/html</code> package also has one <a
href="https://github.com/golang/net/commit/59706cdaa8f95502fdec64b67b4c61d6ca58727d">security
patch</a></li>
</ul>
<p>I, <a href="https://github.com/bep"><code>@​bep</code></a>, have
inspected the above issues, and none of them seem to be relevant for
Hugo, but we understand that many want to have a clean security
report.</p>
<h2>Bug fixes</h2>
<ul>
<li>tpl: Fix strings/truncate CJK handling 88aea5668 <a
href="https://github.com/oishikazuo"><code>@​oishikazuo</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/14039">#14039</a></li>
<li>parser/pagerparser: Fix closing shortcode error handling when
repeated a133393ed <a
href="https://github.com/bep"><code>@​bep</code></a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>Upgrade Go to 1.25.3 e2fb0b0e8 <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>create/skeletons: Wrap section and home lists with section tags
29cf87444 <a
href="https://github.com/imomaliev"><code>@​imomaliev</code></a></li>
<li>markup/goldmark: Align blockquote default output with Goldmark
1b4dd436d <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/14046">#14046</a></li>
<li>parser/pageparser: Store shortcode names as unique.Handle[string] to
save memory allocations 4414ef73f <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>testscripts: Make test assertion less specific 9197debbf <a
href="https://github.com/bep"><code>@​bep</code></a></li>
</ul>
<h2>Dependency Updates</h2>
<ul>
<li>build(deps): bump github.com/gohugoio/hashstructure from 0.5.0 to
0.6.0 f4c11571b <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump golang.org/x/image from 0.30.0 to 0.32.0 54075acc2
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump github.com/evanw/esbuild from 0.25.10 to 0.25.11
8b52303e3 <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump golang.org/x/tools from 0.37.0 to 0.38.0 3d45d30a4
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump golang.org/x/mod from 0.28.0 to 0.29.0 095157cd6
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
</ul>
<h2>v0.151.0</h2>
<p>Some notable new features in Hugo v0.151.0 are:</p>
<ul>
<li>New <a
href="https://gohugo.io/functions/transform/htmltomarkdown/">transform.HTMLToMarkdown</a>
template function. One possible use case would be to provide <a
href="https://llmstxt.org/">LLM friendly content</a>.</li>
<li>Hugo now reports OSC 9;4 progress when building; progress
bars/indicators are supported by terminals such as <a
href="https://ghostty.org/docs/install/release-notes/1-2-0#graphical-progress-bars">Ghostty</a>
on Macos and Linux, Windows terminal.</li>
<li>Several new <a
href="https://gohugo.io/configuration/markup/#footnote">config
options</a> for Markdown foot notes.</li>
</ul>
<h2>Note</h2>
<ul>
<li>transform/livereloadinject: Skip livereload.js injection if no tags
found (note) 7fd6762c1 <a
href="https://github.com/AndrewChubatiuk"><code>@​AndrewChubatiuk</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/a3574f6f70c9b272e3de53cf976018ee3ff16fd1"><code>a3574f6</code></a>
releaser: Bump versions for release of 0.151.2</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/989454a52d2646e75313ad311da94e6ad7d5f55a"><code>989454a</code></a>
parser/pageparser: Add a testcase for nested shortcodes of the same
name</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/1e91e46520e980a15a46beeb6d5ae846e17a9144"><code>1e91e46</code></a>
parser/pageparser: Fix shortcode nesting regression</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/8a57d0f15fd8d39cbc5df4da5bf6a5baab109e1c"><code>8a57d0f</code></a>
testscripts: Add and improve commands tests for static mounts</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/b76c50ac184e408f1200da72bcd3794856922b0a"><code>b76c50a</code></a>
releaser: Prepare repository for 0.152.0-DEV</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/1cdd17882c28a9f23278d38ef03b403954cfb1e5"><code>1cdd178</code></a>
releaser: Bump versions for release of 0.151.1</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/e2fb0b0e80193c3e3f31f1cfa931c321ffee1d55"><code>e2fb0b0</code></a>
Upgrade Go to 1.25.3</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/88aea56683ec1e469e97c0771c0c01a15010c7c2"><code>88aea56</code></a>
tpl: Fix strings/truncate CJK handling</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/f4c11571bb0b1d5b5cb3d7b66a4fdca808f71cb8"><code>f4c1157</code></a>
build(deps): bump github.com/gohugoio/hashstructure from 0.5.0 to
0.6.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/54075acc29f9f504878e237df5851ee3269e8ca9"><code>54075ac</code></a>
build(deps): bump golang.org/x/image from 0.30.0 to 0.32.0</li>
<li>Additional commits viewable in <a
href="https://github.com/gohugoio/hugo/compare/v0.150.0...v0.151.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.150.0&new-version=0.151.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 12:08:33 +00:00
dependabot[bot] c2dcf9348a chore: bump the x group across 1 directory with 6 updates (#20395)
Bumps the x group with 4 updates in the / directory:
[golang.org/x/crypto](https://github.com/golang/crypto),
[golang.org/x/net](https://github.com/golang/net),
[golang.org/x/oauth2](https://github.com/golang/oauth2) and
[golang.org/x/tools](https://github.com/golang/tools).

Updates `golang.org/x/crypto` from 0.42.0 to 0.43.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/crypto/commit/627cb894b6b2021e34c4ad4af4c0a963127491e4"><code>627cb89</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/crypto/commit/dca4914afe94ebd485672b06b9a120e18b452533"><code>dca4914</code></a>
acme: fix autocert TestHTTPHandlerDefaultFallback</li>
<li><a
href="https://github.com/golang/crypto/commit/1336e21bd6f39d1ab82ca6412693849c2d120e1d"><code>1336e21</code></a>
x509roots/fallback: update bundle</li>
<li><a
href="https://github.com/golang/crypto/commit/2beaa59a3c994e5d01b6d58dc348dcd6d814ef26"><code>2beaa59</code></a>
ssh: add VerifiedPublicKeyCallback</li>
<li><a
href="https://github.com/golang/crypto/commit/66c3d8ce714c31eb5a8adb6c931b4e29f5bebcf5"><code>66c3d8c</code></a>
ssh: add support for FIPS mode</li>
<li><a
href="https://github.com/golang/crypto/commit/ddb4e80c6ad38c8a94001924a6ff8424f5cae369"><code>ddb4e80</code></a>
ssh: remove custom contains, use slices.Contains</li>
<li><a
href="https://github.com/golang/crypto/commit/f4d47b0db5875e61dd52acdb63be800177ab48bb"><code>f4d47b0</code></a>
ssh: return clearer error when signature algorithm is used as key
format</li>
<li><a
href="https://github.com/golang/crypto/commit/96dc232fbd7928e9c23da42e770c8b79a2348d86"><code>96dc232</code></a>
x509roots/fallback/bundle: add bundle package to export root certs</li>
<li><a
href="https://github.com/golang/crypto/commit/8c9ba318361080ea198c7461b6db621022d0a88e"><code>8c9ba31</code></a>
all: freeze and deprecate more packages</li>
<li><a
href="https://github.com/golang/crypto/commit/559e062ce8bfd6a39925294620b50906ca2a6f95"><code>559e062</code></a>
ssh/agent: return an error for unexpected message types</li>
<li>See full diff in <a
href="https://github.com/golang/crypto/compare/v0.42.0...v0.43.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/net` from 0.45.0 to 0.46.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/2002a064a49010d8b881673c73f04e0b741e7c32"><code>2002a06</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/net/compare/v0.45.0...v0.46.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/oauth2` from 0.31.0 to 0.32.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/oauth2/commit/792c8776358f0c8689d84eef0d0c966937d560fb"><code>792c877</code></a>
oauth2: use strings.Builder instead of bytes.Buffer</li>
<li>See full diff in <a
href="https://github.com/golang/oauth2/compare/v0.31.0...v0.32.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/term` from 0.35.0 to 0.36.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/term/commit/3a0828a6667fd19fb680702513ff01f7afe76772"><code>3a0828a</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/term/compare/v0.35.0...v0.36.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/text` from 0.29.0 to 0.30.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/c6abd0305e90ada9293824462268d0ec20d02e5e"><code>c6abd03</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/text/commit/42f038dad6d204bacd83c23ca0f312d8866039ce"><code>42f038d</code></a>
x/text: fix nil dereference in gotext extract</li>
<li><a
href="https://github.com/golang/text/commit/a42f0e2da638996f313ef6dbbe3a4435533fbd97"><code>a42f0e2</code></a>
all: use built-in max/min to simplify the code</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.29.0...v0.30.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.37.0 to 0.38.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/a22b5e8a9b8d2234e1e960ec2473e4011f012a6b"><code>a22b5e8</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/4bbcc9fd127ab0b2b4269a698e979a41b59af5e6"><code>4bbcc9f</code></a>
all: use reflect.TypeFor instead of reflect.TypeOf when we have known
the type</li>
<li><a
href="https://github.com/golang/tools/commit/122c93afe11828e293bd624e3336c4b65dc33bd2"><code>122c93a</code></a>
internal/refactor: AddImport: remove unnecessary result</li>
<li><a
href="https://github.com/golang/tools/commit/76aace8abc696a6fb2c70cda65ebaf415c7ff4ad"><code>76aace8</code></a>
internal/analysisinternal: rationalize</li>
<li><a
href="https://github.com/golang/tools/commit/8cf2d63f232bdbbb191d19cb87cce87d5865e582"><code>8cf2d63</code></a>
gopls/internal/golang: add condition for enabling package move</li>
<li><a
href="https://github.com/golang/tools/commit/1f054fd59ccbdd283a18ab05c2fa61acec2a1148"><code>1f054fd</code></a>
x/tools: downgrade token.FileSet parameters to token.File</li>
<li><a
href="https://github.com/golang/tools/commit/44e71e5c407511a1d884d7179a1872476915f5eb"><code>44e71e5</code></a>
go/analysis/passes/printf: check anonymous functions too</li>
<li><a
href="https://github.com/golang/tools/commit/9095e9b831fff42b9aede2f024756cb4889bde17"><code>9095e9b</code></a>
internal/analysisinternal: extract DeleteVar</li>
<li><a
href="https://github.com/golang/tools/commit/62a1b26b1af98d6e3646141ccfdb6a94669271e0"><code>62a1b26</code></a>
internal/analysisinternal: IsChildOf(Cursor, edge.Kind) bool</li>
<li><a
href="https://github.com/golang/tools/commit/d32fb5053d825eb2082c24a38bd98e20bb4cd302"><code>d32fb50</code></a>
internal/analysisinternal: export EnclosingFile</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.37.0...v0.38.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 11:54:31 +00:00
Dean Sheather ea261a1f7c chore: add offset-based pagination support to aibridge list endpoint (#20393)
Necessary for the frontend to be able to paginate easily. Cursor
pagination is good for fetching all events, but doesn't play very well
when a pagination component gets involved.

Adds support for `?offset=x` to the existing endpoint. The cursor-based
pagination (`?after_id=x`) is still supported. The two pagination modes
are mutually exclusive, and are documented as such. If both are
supplied, the request will be rejected.

Also adds a `total` property to the response that contains the full
count of items matching the filter. We already have indices in place so
I don't think this will impact performance (or we can revisit it before
GA).
2025-10-21 11:50:00 +00:00
Danielle Maywood 01ff28db11 chore: update to terraform-provider-coder v2.12.0 (#20386)
Update the `terraform-provider-coder` to v2.12.0
2025-10-21 12:35:28 +01:00
Spike Curtis 77e8d2b887 feat: add configurable timeouts to exp scaletest dynamic-parameters (#20355)
Adds timeout configuration to `exp scaletest dynamic-parameters`

closes: https://github.com/coder/internal/issues/912
2025-10-21 08:58:04 +04:00
Spike Curtis ccf0b34872 docs: create WIP 10k scale doc (#20213)
Adds a new document for our ongoing efforts achieving 10k user scale. The content is caveated as work in progress, but represents what we have tested so far.

closes: https://github.com/coder/internal/issues/1025
2025-10-21 08:48:21 +04:00
Dean Sheather 0652b18ebc feat: mount pprof and metrics to /api/v2/debug for admins (#20353)
Adds the following debug routes for people with the `debug_info:read`
permission:
- `/api/v2/debug/pprof` for `net/http/pprof`
    - `/`
    - `/cmdline`
    - `/profile`
    - `/symbol`
    - `/trace`
    - `/*`
- `/api/v2/debug/metrics` for Prometheus metrics
2025-10-21 03:13:11 +00:00
Callum Styan 5a18cf4c86 fix: remove unintentionally added print in test code (#20391)
accidentally added in https://github.com/coder/coder/pull/19786

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-10-20 18:51:15 -07:00
dependabot[bot] 6a3bf6ff53 chore: bump vite from 7.1.7 to 7.1.11 in /site (#20392)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 7.1.7 to 7.1.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v7.1.11</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.11/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v7.1.10</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.10/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v7.1.9</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.9/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v7.1.8</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.8/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.10...v7.1.11">7.1.11</a>
(2025-10-20)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>dev:</strong> trim trailing slash before
<code>server.fs.deny</code> check (<a
href="https://redirect.github.com/vitejs/vite/issues/20968">#20968</a>)
(<a
href="https://github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed">f479cc5</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20966">#20966</a>)
(<a
href="https://github.com/vitejs/vite/commit/6fb41a260bda443685e719ea4765d3faca3db944">6fb41a2</a>)</li>
</ul>
<h3>Code Refactoring</h3>
<ul>
<li>use subpath imports for types module reference (<a
href="https://redirect.github.com/vitejs/vite/issues/20921">#20921</a>)
(<a
href="https://github.com/vitejs/vite/commit/d0094af639d9ebbb51d4e00910b74f23eb8fe131">d0094af</a>)</li>
</ul>
<h3>Build System</h3>
<ul>
<li>remove cjs reference in files field (<a
href="https://redirect.github.com/vitejs/vite/issues/20945">#20945</a>)
(<a
href="https://github.com/vitejs/vite/commit/ef411cee2696af3ba791879fdae9aad165f178b2">ef411ce</a>)</li>
<li>remove hash from built filenames (<a
href="https://redirect.github.com/vitejs/vite/issues/20946">#20946</a>)
(<a
href="https://github.com/vitejs/vite/commit/a81730754d655d1371ce0f4354af1c84e12f9f2d">a817307</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.9...v7.1.10">7.1.10</a>
(2025-10-14)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>css:</strong> avoid duplicate style for server rendered
stylesheet link and client inline style during dev (<a
href="https://redirect.github.com/vitejs/vite/issues/20767">#20767</a>)
(<a
href="https://github.com/vitejs/vite/commit/3a92bc79b306a01b8aaf37f80b2239eaf6e488e7">3a92bc7</a>)</li>
<li><strong>css:</strong> respect emitAssets when cssCodeSplit=false (<a
href="https://redirect.github.com/vitejs/vite/issues/20883">#20883</a>)
(<a
href="https://github.com/vitejs/vite/commit/d3e7eeefa91e1992f47694d16fe4dbe708c4d80e">d3e7eee</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://github.com/vitejs/vite/commit/879de86935a31b4e47ab907ddd859366518ce268">879de86</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20894">#20894</a>)
(<a
href="https://github.com/vitejs/vite/commit/3213f90ff0d8f274bcec65f40aac6dfcff1ac244">3213f90</a>)</li>
<li><strong>dev:</strong> allow aliases starting with <code>//</code>
(<a
href="https://redirect.github.com/vitejs/vite/issues/20760">#20760</a>)
(<a
href="https://github.com/vitejs/vite/commit/b95fa2aa7564eda4c9f05ee7616a2dbada35e463">b95fa2a</a>)</li>
<li><strong>dev:</strong> remove timestamp query consistently (<a
href="https://redirect.github.com/vitejs/vite/issues/20887">#20887</a>)
(<a
href="https://github.com/vitejs/vite/commit/6537d15591619d7e1cfc1e50599bec16cd88340f">6537d15</a>)</li>
<li><strong>esbuild:</strong> inject esbuild helpers correctly for
esbuild 0.25.9+ (<a
href="https://redirect.github.com/vitejs/vite/issues/20906">#20906</a>)
(<a
href="https://github.com/vitejs/vite/commit/446eb386329ef682d614c77958a542f2dc222880">446eb38</a>)</li>
<li>normalize path before calling <code>fileToBuiltUrl</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/20898">#20898</a>)
(<a
href="https://github.com/vitejs/vite/commit/73b6d243e0398ee5d8d44c7d24162f4a0f4b1cf1">73b6d24</a>)</li>
<li>preserve original sourcemap file field when combining sourcemaps (<a
href="https://redirect.github.com/vitejs/vite/issues/20926">#20926</a>)
(<a
href="https://github.com/vitejs/vite/commit/c714776aa1dcc24299a81c1495cbcbb1b1ef1dd3">c714776</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>correct <code>WebSocket</code> spelling (<a
href="https://redirect.github.com/vitejs/vite/issues/20890">#20890</a>)
(<a
href="https://github.com/vitejs/vite/commit/29e98dc3efe35efbd978523367c05db7d2e7a278">29e98dc</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>deps:</strong> update rolldown-related dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20923">#20923</a>)
(<a
href="https://github.com/vitejs/vite/commit/a5e3b064fa7ca981cb6f15f8e88806b36a99b8bf">a5e3b06</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.8...v7.1.9">7.1.9</a>
(2025-10-03)<!-- raw HTML omitted --></h2>
<h3>Reverts</h3>
<ul>
<li><strong>server:</strong> drain stdin when not interactive (<a
href="https://redirect.github.com/vitejs/vite/issues/20885">#20885</a>)
(<a
href="https://github.com/vitejs/vite/commit/12d72b0538ef1540bfb0f1dd8a44b75deaa3464e">12d72b0</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.7...v7.1.8">7.1.8</a>
(2025-10-02)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>css:</strong> improve url escape characters handling (<a
href="https://redirect.github.com/vitejs/vite/issues/20847">#20847</a>)
(<a
href="https://github.com/vitejs/vite/commit/24a61a3f5404279e91f7ceebf7449a5e874f9d56">24a61a3</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20855">#20855</a>)
(<a
href="https://github.com/vitejs/vite/commit/788a183afce57de13f5656f0cf42cdf6fdc3ebaa">788a183</a>)</li>
<li><strong>deps:</strong> update artichokie to 0.4.2 (<a
href="https://redirect.github.com/vitejs/vite/issues/20864">#20864</a>)
(<a
href="https://github.com/vitejs/vite/commit/e670799e123dca78e1a63aeb06dbadade3d5ab51">e670799</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/8b69c9e32c3606ae375a1333cd38e91848d27781"><code>8b69c9e</code></a>
release: v7.1.11</li>
<li><a
href="https://github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed"><code>f479cc5</code></a>
fix(dev): trim trailing slash before <code>server.fs.deny</code> check
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20968">#20968</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/6fb41a260bda443685e719ea4765d3faca3db944"><code>6fb41a2</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20966">#20966</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/a81730754d655d1371ce0f4354af1c84e12f9f2d"><code>a817307</code></a>
build: remove hash from built filenames (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20946">#20946</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/ef411cee2696af3ba791879fdae9aad165f178b2"><code>ef411ce</code></a>
build: remove cjs reference in files field (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20945">#20945</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/d0094af639d9ebbb51d4e00910b74f23eb8fe131"><code>d0094af</code></a>
refactor: use subpath imports for types module reference (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20921">#20921</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/ed4a0dc9132dc8436760dbd04825e29a57946369"><code>ed4a0dc</code></a>
release: v7.1.10</li>
<li><a
href="https://github.com/vitejs/vite/commit/c714776aa1dcc24299a81c1495cbcbb1b1ef1dd3"><code>c714776</code></a>
fix: preserve original sourcemap file field when combining sourcemaps
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20926">#20926</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/446eb386329ef682d614c77958a542f2dc222880"><code>446eb38</code></a>
fix(esbuild): inject esbuild helpers correctly for esbuild 0.25.9+ (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20906">#20906</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/879de86935a31b4e47ab907ddd859366518ce268"><code>879de86</code></a>
fix(deps): update all non-major dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/v7.1.11/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=7.1.7&new-version=7.1.11)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-10-20 23:02:40 +00:00
Brett Kolodny b022ccefa7 feat: add new workspace:share action type (#20198)
Closes
[coder/internal#1012](https://github.com/coder/internal/issues/1012)
2025-10-20 18:28:10 -04:00
Michael Suchacz 66f1603f6a fix: replace ci-flake-bot app-id with slack's user id (#20379)
<!--

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.

-->
2025-10-20 21:53:23 +00:00
david-fraley 2e45236d31 docs: add warning around macOS install (#20253) 2025-10-20 16:49:06 +05:00
dependabot[bot] 0c2288d802 chore(examples/templates/tasks-docker): bump windsurf module (#20376)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/windsurf/coder&package-manager=terraform&previous-version=1.1.0&new-version=1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:43:10 +00:00
dependabot[bot] 712d036192 chore(examples/templates/tasks-docker): bump claude-code (#20378)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=3.0.0&new-version=3.1.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:41:54 +00:00
Susana Ferreira c1f8465de6 fix: add missing provisionerd metrics to docs (#20358)
## Description

Add missing provisionerd metrics to Prometheus documentation:
* `coderd_provisionerd_num_daemons`: The number of provisioner daemons.
* `coderd_provisionerd_workspace_build_timings_seconds`: The time taken
for a workspace to build.

Related to internal thread:
https://codercom.slack.com/archives/C07GRNNRW03/p1760642020583019
2025-10-20 11:33:45 +01:00
Spike Curtis 88851d248c feat: add tracing and prometheus options to exp scaletest dynamic-parameters (#20354)
Adds prometheus server and tracing to `coder exp scaletest dynamic-parameters`

part of https://github.com/coder/internal/issues/912
2025-10-20 13:26:17 +04:00
dependabot[bot] a13f29ff95 chore: bump coder/cursor/coder from 1.2.0 to 1.3.2 in /examples/templates/tasks-docker (#20377)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.2.0&new-version=1.3.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 00:33:04 +00:00
dependabot[bot] e92b4fe13d chore: bump coder/claude-code/coder from 3.1.0 to 3.1.1 in /dogfood/coder (#20375)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=3.1.0&new-version=3.1.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 00:26:54 +00:00
dependabot[bot] 784592a2dc chore: bump coder/git-clone/coder from 1.1.2 to 1.2.0 in /dogfood/coder (#20374)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/git-clone/coder&package-manager=terraform&previous-version=1.1.2&new-version=1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 00:26:39 +00:00
Thomas Kosiewski 251f787743 fix: normalize oauth2 scope parsing (#20359) 2025-10-19 13:20:48 +02:00
Michael Suchacz 1a766a271f fix: replace blink with ci-flake-bot agent (#20368) 2025-10-18 07:25:27 +02:00
Asher cbaa97cb78 feat: add copy on ctrl/command+shift+c and selection to web terminal (#20129)
Closes https://github.com/coder/coder/issues/20044
2025-10-17 14:18:50 -08:00
Callum Styan 141ef23c81 fix: introduce dedicated queries for workspaces and workspace agents metrics (#19786)
aid in differentiation between sources of calls to `GetWorkspaces` but introducing new queries for metrics specific use cases

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-10-17 13:40:10 -07:00
Benjamin Peinhardt b0a045cba0 chore: add tasks-docker first in starter templates list (#20169)
This PR:
- Adds the tasks-docker template to the embeded template examples
- Makes the tasks-docker template the leading template on the
starter-templates page
- Makes the tasks-docker template the leading template on the featured
templates list (in `EmptyTemplates`)

closes https://github.com/coder/coder/issues/19718



https://github.com/user-attachments/assets/c582d8c0-a32b-48c4-886b-93a052a965a5

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-17 13:09:50 -05:00
Cian Johnston f6526b789a feat(site): make TaskPrompt PromptTextarea read-only when submitting (#20363)
- Makes the text area of TaskPrompt read-only when submitting
- Adds a "scanning" animation to the textarea on submit.
2025-10-17 18:11:31 +01:00
Danielle Maywood cfbbcfc65a chore(dogfood): use pre-release terraform provider (#20365)
Set the terraform provider version to `2.12.0-pre0` so we can dogfood it
before releasing. This provider version contains an update to the
`coder_ai_task` resource in preparation for the upcoming 2.28 Coder
release.
2025-10-17 17:43:00 +01:00
Steven Masley aec3e9e5ab chore: include codersdk comments in typescript output (#20348)
Some comments are likely still omitted as guts does not cover all cases
right now. And some cases are omitted because the output format is
ambiguous on how best to format it.
2025-10-17 08:40:56 -05:00
Bruno Quaresma a6461ab7ff feat: improve template version select ux (#20347)
**Improvements:**
- Sort by creation date DESC
- Show which version is active
- Add tooltip

**Demo:**


https://github.com/user-attachments/assets/1030c8a6-870f-42f0-be97-87c9f3392d3f

Close https://github.com/coder/internal/issues/1057
2025-10-17 09:59:58 -03:00
Bruno Quaresma 838fbc18dc fix: improve options table reading (#20341)
From @chrifro 

- text-sm regular for the body text (24px line height)
- text-sm bold and white font for the headline

**Before:**

<img width="1624" height="967" alt="Screenshot 2025-10-16 at 10 08 19"
src="https://github.com/user-attachments/assets/b0ef6aef-57b6-43d0-921b-8028c58866f0"
/>


**After:**

<img width="1624" height="967" alt="Screenshot 2025-10-16 at 10 10 27"
src="https://github.com/user-attachments/assets/f39526f3-f0cc-4678-83b3-84bf4161b5be"
/>
2025-10-17 09:59:22 -03:00
Bruno Quaresma a833b7af9d fix: use AvatarData in OAuth2AppsSettings (#20342)
**Before:**
<img width="1624" height="967" alt="Screenshot 2025-10-16 at 10 16 19"
src="https://github.com/user-attachments/assets/7b3ebf4f-4096-41b6-b8f2-f1aa94a7ac87"
/>

**After:**
<img width="1624" height="967" alt="Screenshot 2025-10-16 at 10 16 26"
src="https://github.com/user-attachments/assets/a8d25ed4-1e40-4191-8d29-396121836443"
/>
2025-10-17 09:57:02 -03:00
Bruno Quaresma 09a41f3d1f fix: clear prompt after task creation (#20344)
Fix https://github.com/coder/coder/issues/20255
2025-10-17 09:56:07 -03:00
Bruno Quaresma 16a863eab6 chore: make chart styles consistent (#20343) 2025-10-17 09:52:49 -03:00
Cian Johnston 1a104751e4 chore(coderd): use WorkspaceAgentWaiter.WithContext in aitasks_test.go (#20360)
Fixes https://github.com/coder/internal/issues/1067

- Adds `WorkspaceAgentWaiter.WithContext()`
- Updates usage of `WorkspaceAgentWaiter` in `aitasks_test.go` with
context bumped to `testutil.WaitMedium`

Authored by Claude with manual review and updates.
2025-10-17 13:45:11 +01:00
Cian Johnston 9ee3a9174c chore(cli): add integration-style test for exp task logs and send (#20345)
Adds some coderd integration tests for `coder exp tasks (send|logs)`.
The actual agentapi interaction is faked out. I figure we don't want to
actually start a real agentapi instance here.

Authored by Claude with some manual cleanup.
2025-10-17 12:28:45 +01:00
Rafael Rodriguez e8f0e3e4c5 feat: add backoff to workspace agent polling (#20157)
## Summary

In this pull request we're adding a simple backoff to the workspace
agent polling. This backoff is being added to address seemingly random
cases of elevated number of calls that we've seen to the
`api/v2/workspaceagent/{agent_id}` endpoint.

For more information on the investigation, see:
https://github.com/coder/internal/issues/725

### Changes

- Updated the polling to use predefined progressive intervals for
polling instead of continuously polling every 500ms

### Testing

- Added a test for the function used to calculate the progressive
polling interval

Co-authored-by: Spike Curtis <spike@coder.com>
2025-10-17 10:42:26 +00:00
Danielle Maywood a1fa5c8c96 fix(site): disable task prompt submit button when prompt empty (#20357)
Disable the submit button by default in the task creation form, it is only enabled once the prompt field is non empty
2025-10-17 11:24:37 +01:00
Cian Johnston dc6e50d6b7 feat(coderd/telemetry): add telemetry for database Tasks (#20279)
Adds Tasks to telemetry snapshots

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-10-17 10:48:56 +01:00
Susana Ferreira 14e80022c9 fix(docs): fix 'prebuilds' system user typo (#20356)
## Description

Fix typo on documentation regarding system user `prebuilds`.
2025-10-17 10:34:55 +01:00
david-fraley f3d950d917 chore: update release calendar (#20351) 2025-10-17 01:11:38 +05:00
Atif Ali ef51e7d07a chore(docs): update numbered lists to be consistent (#20350) 2025-10-16 20:11:18 +00:00
blink-so[bot] 5119db3cd2 feat: underline links in announcement banner for better visibility (#20166)
## Overview

Links in announcement banners are now underlined to make them visually
distinguishable without requiring users to hover over them.

Context:
[Slack](https://codercom.slack.com/archives/C0989BZU23T/p1759503061267819)

## Changes

- Added `text-decoration: underline` to links in the announcement banner
component

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: blink-so[bot] <157993532+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Michael Smith <michaelsmith@coder.com>
2025-10-16 15:24:45 -04:00
Zach 9f3b2cddb1 fix(dogfood): revert unpin of containerd.io and pin docker-ce (#20349)
Previously we unpinned the containerd.io package since the dogfood
template image build was failing due to docker-ce requiring a newer
version of containerd.io. The build was fixed, but some dogfood machines
experienced docker-in-docker problems again because their OS version
didn't have the fixed containerd.io packages available.

This PR first reverts the unpinning of the containerd.io package, and
pins the docker-ce major version for compatibility with the
containerd.io package version we have pinned. Newer versions of
docker-ce have a higher min version of containerd.io. While the
underlying issue that caused us to pin containerd.io is fixed in newer
versions, we can't yet remove the pin because some machines running
dogfood are not yet updated to a version of Linux that have a version of
the fixed package (e.g. ubuntu 20.04).
2025-10-16 13:04:23 -06:00
Steven Masley a53a5682d5 chore: update coder/guts to v1.6.0 (#20346)
- Removes redudant generic type parameters
- Removes unexported values from generted output
2025-10-16 12:07:17 -05:00
Atif Ali 038e23b82c chore(dogfood): remove extra ENV variable for claude code auth (#20337) 2025-10-16 11:20:36 +00:00
Susana Ferreira 104aa19014 chore(docs): improve prebuild provsioners section (#20321)
## Description

Follow-up from: https://github.com/coder/coder/pull/20305 to include a
note about `coder_workspace_tags` being cumulative and a new step to
validate the status of the prebuild provisioners.
Fix steps formatting.
2025-10-16 11:22:48 +01:00
Cian Johnston 0faee8e913 feat(coderd): notify on task completion/failure (#20327)
Adds notifications on task transitions to completed or failure state.

Authored by Claude, I reviewed it and it appears to be legit.
2025-10-16 10:21:08 +01:00
Susana Ferreira 3fa438f80e chore(dogfood): add prebuild coder_workspace_tags (#20308)
## Description

Add a `coder_workspace_tags` data block to the Write Coder on Coder
template that conditionally includes the tag `is_prebuild=true` when the
provisioner job is a prebuild (workspace_build) job.

Related internal [PR](https://github.com/coder/dogfood/pull/201) updated
the dogfood deployment with a dedicated pool of provisioner daemons
configured with this tag.
As a result, prebuild-related jobs are now routed exclusively to this
pool, preventing them from competing with user-initiated workspace jobs.

This has been successfully tested internally in dogfood with template
`ssncf-prebuilds-coder`
2025-10-16 10:08:34 +01:00
Cian Johnston 275602ce61 ci: include coder-provisioner-tagged-prebuilds in deploy.yaml (#20320)
Add reconciliation and rollout for coder-provisioner-tagged-prebuilds
deployment

<!--

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.

-->
2025-10-16 09:42:25 +01:00
Dean Sheather 5887867e9b chore: rework wsproxy mesh tests to avoid flakes (#20296)
- Attempts pings twice per replicasync callback in wsproxy
- Reworks the test setup code to be more lenient and retry proxy
registration on failure

Closes coder/internal#957
2025-10-16 18:39:06 +11:00
Asher 41de4ad91a feat: add task send and logs MCP tools (#20230)
Closes https://github.com/coder/internal/issues/776
2025-10-15 13:21:20 -08:00
Danielle Maywood 9bef5de30d chore: upgrade coder/clistat to v1.1.1 (#20322)
coder/clistat v1.1.1 contains a bug fix
2025-10-15 20:23:29 +01:00
yyefimov 1c8ee5cb88 fix(coderd): support string type for oidc response's expires_in json property (#20152)
Some versions of Azure AD return expires_in property as string. Use
json.Number to accept either integer or string and then convert to
int64.
Helpful links:

https://learn.microsoft.com/en-us/answers/questions/2337020/azure-ad-token-endpoint-returns-expires-in-as-stri

https://feedback.azure.com/d365community/idea/7772fd95-26e6-ec11-a81b-0022484ee92d
2025-10-15 17:37:37 +00:00
Bruno Quaresma 91d4f8b59b fix: use the selected version to check external auth (#20316)
Fixes https://github.com/coder/coder/issues/20315
2025-10-15 14:24:40 -03:00
Bruno Quaresma 6b990bda52 fix: minor visual fixes in the tasks table (#20317)
- Fix table size for failure and empty states
- Add skeleton for the "Delete" action in the table row

Fixes https://github.com/coder/coder/issues/20281
2025-10-15 14:23:49 -03:00
Bruno Quaresma df738abccd chore: remove MUI icons (#20318) 2025-10-15 14:22:31 -03:00
Susana Ferreira cc4127405b chore(dogfood): update claude-code module (#20191)
## Description

Update `claude_code` module `system_prompt` variable in template "Write
Coder on Coder". Claude-code module now incorporates Coder's inner
system prompt for proper integration with task reporting.

Related to PRs:
* https://github.com/coder/coder/pull/20053
* https://github.com/coder/registry/pull/443 and
https://github.com/coder/registry/pull/461

---------

Co-authored-by: Atif Ali <atif@coder.com>
2025-10-15 18:22:12 +01:00
Mathias Fredriksson 82945cfb16 fix(coderd/database): add missing columns to tasks with status (#20311)
Updates coder/internal#976
2025-10-15 16:34:33 +00:00
Mathias Fredriksson 408b09a1f2 feat(coderd): add audit resource for tasks (#20301)
Updates coder/internal#976
2025-10-15 16:13:59 +00:00
Zach 03d285db26 fix(dogfood): fix dogfood template image build (#20312)
Previously the dogfood action was failing because the image for the
dogfood template pulls a version of docker-ce that depended on a version
of containerd.io greater than the pinned version. The pinned version was
a workaround for an old sysbox issue (see #15723).

Example action I kicked off main recently that failed:
https://github.com/coder/coder/actions/runs/18507966953
```
4.879 The following packages have unmet dependencies:
4.955  docker-ce : Depends: containerd.io (>= 1.7.27) but 1.7.23-1 is to be installed
4.963 E: Unable to correct problems, you have held broken packages.
```
2025-10-15 10:01:34 -06:00
Cian Johnston ade3fce0f6 fix(coderd): prevent task working notification for first app status (#20313)
Disclaimer: Claude did all of this, reviewed and committed by me.

I find the "task is working" notification straight after creation to be
unnecessary.
Added logic to skip the notification if the first app status is
"working".
2025-10-15 16:41:16 +01:00
Dean Sheather 6c99d5eca2 fix: avoid connection logging crashes in agent (#20307)
- Ignore errors when reporting a connection from the server, just log
them instead
- Translate connection log IP `localhost` to `127.0.0.1` on both the
server and the agent

Note that the temporary fix for converting invalid IPs to localhost is
not required in main since the database no longer forbids NULL for the
IP column since https://github.com/coder/coder/pull/19788

Relates to #20194
2025-10-16 01:56:43 +11:00
Susana Ferreira 09e2daf282 chore(docs): add external provisioner configuration for prebuilds (#20305)
## Description

Update the Prebuilds troubleshooting page to include a new section,
“Preventing prebuild queue contention (recommended)”, outlining a
best-practice configuration to prevent prebuild jobs from overwhelming
the provisioner queue.

This setup introduces a dedicated prebuild provisioner pool and has been
successfully tested internally in dogfood:
https://github.com/coder/dogfood/pull/201

Closes: https://github.com/coder/coder/issues/20241
2025-10-15 15:34:21 +01:00
Bruno Quaresma 9861931df1 fix: select the correct version when template changes (#20293)
Fix https://github.com/coder/internal/issues/1062
2025-10-15 10:04:17 -03:00
Bruno Quaresma 24dddd56c5 fix: keep button in loading state after start request is made (#20294)
After requesting a workspace start, it may take a while to become ready.
Show a loading state in the meantime.
	
Fixes  https://github.com/coder/coder/issues/20233
2025-10-15 10:03:34 -03:00
Spike Curtis 05b037bdea fix: avoid deadlock race writing to a disconnected mapper (#20303)
fixes https://github.com/coder/internal/issues/1045

Fixes a race condition in our PG Coordinator when a peer disconnects. We issue database queries to find the peer mappings (node structures for each peer connected via a tunnel), and then send these to the "mapper" that generates diffs and eventually writes the update to the websocket.

Before this change we erroneously used the querier's context for this update, which has the same lifetime as the coordinator itself. If the peer has disconnected, the mapper might not be reading from its channel, and this causes a deadlock in a querier worker. This also prevents us from doing any more work on the peer.

I also added some more debug logging that would have been helpful when tracking this down.
2025-10-15 15:56:07 +04:00
Jaayden Halko 3699ff6b48 refactor: migrate TermsOfServiceLink from MUI to shadcn/ui (#20260)
## Summary

Migrate the `TermsOfServiceLink` component from MUI to shadcn/ui

## Changes

- **Replaced** `@mui/material/Link` with the custom `Link` component
from `components/Link/Link` (shadcn/ui)
- **Migrated** Emotion `css` prop to Tailwind utility classes
- **Preserved** external link icon functionality (automatically provided
by shadcn Link component)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-15 12:16:18 +01:00
Rowan Smith e0b1536075 chore: clarify autostop behaviour for existing workspaces (#20295)
[We have tests to ensure this
behaviour](https://github.com/coder/coder/blob/152103bf788dc5a4c06586302a255a212e0fe77d/coderd/workspaces_test.go#L2957-L3004),
but it is not clearly documented. This PR adds a note clarifying
autostop must be enabled on the template prior to a workspace being
created for it to apply to the workspace, i.e. it is not re-read if a
workspace is restarted / stopped and started. This behaviour was raised
by a customer.

https://coder.com/docs/user-guides/workspace-scheduling#autostop
2025-10-15 08:46:27 +05:00
Marcin Tojek 8ac54534f4 feat: skip deprecated:false in templates search bar (#20274)
Fixes: https://github.com/coder/coder/issues/19746
2025-10-14 20:58:13 +02:00
Bruno Quaresma 3dd3859ebf chore: add task feedback dialog component (#20252)
Related to https://github.com/coder/coder/issues/20214

This PR aims to add only the FE component for capturing user feedback
from tasks. Once the BE work is completed (in a separate PR), this
component will be triggered after a task is deleted.

The goal is to develop this feature in parallel.

**Screenshot:**
<img width="1206" height="727" alt="Screenshot 2025-10-09 at 14 31 53"
src="https://github.com/user-attachments/assets/1f92026c-8f05-4535-bbd6-85c4b107c037"
/>
2025-10-14 13:47:02 -03:00
Cian Johnston 9f229370e7 feat(coderd/database): add ListTasks query (#20282)
Relates to https://github.com/coder/internal/issues/981

Adds a `ListTasks` query that allows filtering by OwnerID and OrganizationID.
2025-10-14 17:33:30 +01:00
Sas Swart 06db58771f docs: add troubleshooting steps for prebuilt workspaces (#20231)
This PR adds troubleshooting steps to guide Coder operators when they
suspect that prebuilds might have overwhelmed their deployments.

Closes https://github.com/coder/coder/issues/19490

---------

Co-authored-by: Susana Ferreira <susana@coder.com>
2025-10-14 13:20:43 +02:00
Cian Johnston 9c6be5bfe7 ci(.github/workflows/traiage.yaml): explicitly fetch comments in gh cli invocation (#20288)
Closes https://github.com/coder/internal/issues/1053

Updated the `gh` command to fetch issue description with explicit JSON
fields and formatting.

Validated with manual workflow run:
https://github.com/coder/coder/actions/runs/18492815891/job/52690197479

Agent picked up additional instruction from comments:
https://github.com/coder/coder/compare/cian/traiage-gh-20085-18492815891

<img width="1339" height="406" alt="Screenshot 2025-10-14 at 11 02 36"
src="https://github.com/user-attachments/assets/c3daf103-3d88-4f11-b5ee-d3596912aaa8"
/>
2025-10-14 11:25:18 +01:00
Paweł Banaszewski 152103bf78 fix: add default value for RevokeURL property in external auth config for GitHub (#20272)
This PR adds setting default value of `RevokeURL` property of external
auth config for GitHub.
2025-10-14 09:28:10 +02:00
Danielle Maywood 9158e46bda chore: upgrade coder/clistat to v1.1.0 (#20280)
Upgrades coder/clistat to v1.1.0. This version contains a significant
refactor to the cgroupv2 implementation that improves how we calculate
memory and cpu limits.
2025-10-13 15:11:34 +01:00
dependabot[bot] 5c8176b7ff chore: bump google.golang.org/api from 0.251.0 to 0.252.0 (#20266)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.251.0 to 0.252.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.252.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.251.0...v0.252.0">0.252.0</a>
(2025-10-07)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3326">#3326</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c9925454087ae745d966061b1e5e091236a23b73">c992545</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3328">#3328</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b9b915b1d871407fd86912eaa5073dec1dd28cd0">b9b915b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3330">#3330</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fcb7723a725ee8eb73e0fb511c1d5b33c25ebd50">fcb7723</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3331">#3331</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a67f44d16fb8ee506127e2d411b84e708d4fa4df">a67f44d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3332">#3332</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b9890fcd362e2b7fe6f2ec4b37257408d5f09edb">b9890fc</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3334">#3334</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/163216d91d6e20831b2cda5400aee0e587cfec18">163216d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3336">#3336</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c4dd78944ebf9f04258ccea6800f57a7cdd8dae">2c4dd78</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.251.0...v0.252.0">0.252.0</a>
(2025-10-07)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3326">#3326</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c9925454087ae745d966061b1e5e091236a23b73">c992545</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3328">#3328</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b9b915b1d871407fd86912eaa5073dec1dd28cd0">b9b915b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3330">#3330</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fcb7723a725ee8eb73e0fb511c1d5b33c25ebd50">fcb7723</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3331">#3331</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a67f44d16fb8ee506127e2d411b84e708d4fa4df">a67f44d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3332">#3332</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b9890fcd362e2b7fe6f2ec4b37257408d5f09edb">b9890fc</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3334">#3334</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/163216d91d6e20831b2cda5400aee0e587cfec18">163216d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3336">#3336</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c4dd78944ebf9f04258ccea6800f57a7cdd8dae">2c4dd78</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/88c288c3544fb39b71e48e545d4284f8ffe0c6a1"><code>88c288c</code></a>
chore(main): release 0.252.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3327">#3327</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2c4dd78944ebf9f04258ccea6800f57a7cdd8dae"><code>2c4dd78</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3336">#3336</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ceff1a1fca588d5f1e24d6ca53b8888d0c9175b2"><code>ceff1a1</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3333">#3333</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/163216d91d6e20831b2cda5400aee0e587cfec18"><code>163216d</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3334">#3334</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/b9890fcd362e2b7fe6f2ec4b37257408d5f09edb"><code>b9890fc</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3332">#3332</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/a67f44d16fb8ee506127e2d411b84e708d4fa4df"><code>a67f44d</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3331">#3331</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/4312741a471f572fe1ee6c0d00c9311265fc3e14"><code>4312741</code></a>
chore: update CODEOWNERS, remove blunderbuss (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3329">#3329</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/fcb7723a725ee8eb73e0fb511c1d5b33c25ebd50"><code>fcb7723</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3330">#3330</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/b9b915b1d871407fd86912eaa5073dec1dd28cd0"><code>b9b915b</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3328">#3328</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/c9925454087ae745d966061b1e5e091236a23b73"><code>c992545</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3326">#3326</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.251.0...v0.252.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.251.0&new-version=0.252.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 13:30:16 +00:00
dependabot[bot] 3d779c2093 chore: bump google.golang.org/grpc from 1.75.1 to 1.76.0 (#20277)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.75.1 to 1.76.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.76.0</h2>
<h1>Dependencies</h1>
<ul>
<li>Minimum supported Go version is now 1.24 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8509">#8509</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/kevinGC"><code>@​kevinGC</code></a></li>
</ul>
</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>client: Return status <code>INTERNAL</code> when a server sends zero
response messages for a unary or client-streaming RPC. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8523">#8523</a>)</li>
<li>client: Fail RPCs with status <code>INTERNAL</code> instead of
<code>UNKNOWN</code> upon receiving http headers with status 1xx and
<code>END_STREAM</code> flag set. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8518">#8518</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/vinothkumarr227"><code>@​vinothkumarr227</code></a></li>
</ul>
</li>
<li>pick_first: Fix race condition that could cause pick_first to get
stuck in <code>IDLE</code> state on backend address change. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8615">#8615</a>)</li>
</ul>
<h1>New Features</h1>
<ul>
<li>credentials: Add <code>credentials/jwt</code> package providing
file-based JWT PerRPCCredentials (A97). (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8431">#8431</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/dimpavloff"><code>@​dimpavloff</code></a></li>
</ul>
</li>
</ul>
<h1>Performance Improvements</h1>
<ul>
<li>client: Improve HTTP/2 header size estimate to reduce
re-allocations. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8547">#8547</a>)</li>
<li>encoding/proto: Avoid redundant message size calculation when
marshaling. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8569">#8569</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/rs-unity"><code>@​rs-unity</code></a></li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/d96c2ef4f3339142d20a47797d8a5a4fae948607"><code>d96c2ef</code></a>
Change version to 1.76.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8584">#8584</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/79c553c64de01994d8b9dc0dcac6ed765ac7de50"><code>79c553c</code></a>
Cherry pick <a
href="https://redirect.github.com/grpc/grpc-go/issues/8610">#8610</a>,
<a href="https://redirect.github.com/grpc/grpc-go/issues/8615">#8615</a>
to v1.76.x (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8621">#8621</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/0513350812453ffc1fe7fd329817a16fb40a8cfe"><code>0513350</code></a>
client: minor improvements to log messages (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8564">#8564</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/ebaf486eab0fdf28996baf269064f83224538150"><code>ebaf486</code></a>
credentials: implement file-based JWT Call Credentials (part 1 for A97)
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8431">#8431</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/ca78c904b12dd41257291d6b9ba3309a18f0b277"><code>ca78c90</code></a>
xds/resolver_test: fix flaky test
ResolverBadServiceUpdate_NACKedWithoutCache...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/83bead40c01c8c5b8407e4573203ab34dec76c78"><code>83bead4</code></a>
internal/buffer: set closed flag when closing channel in the Load method
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8575">#8575</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/0f45079e3826e866ff0d2034a8732c0a482e3170"><code>0f45079</code></a>
encoding/proto: enable use cached size option (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8569">#8569</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/8420f3ff9ce4617369e054cedb51fda6d45c3340"><code>8420f3f</code></a>
transport: avoid slice reallocation during header creation (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8547">#8547</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b36320ef9aa22c1b3eedd607fec388fc61cc6583"><code>b36320e</code></a>
Revert &quot;stats/opentelemetry: record retry attempts from
clientStream (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8342">#8342</a>)&quot;...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/c1222501e9eeb118d6f0df19fa9387fcb6e5a6a1"><code>c122250</code></a>
stats/opentelemetry: record retry attempts from clientStream (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8342">#8342</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.75.1...v1.76.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.75.1&new-version=1.76.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 13:14:01 +00:00
dependabot[bot] a10ca93c42 chore: bump alpine from 3.22.1 to 3.22.2 in /scripts (#20278)
Bumps alpine from 3.22.1 to 3.22.2.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=alpine&package-manager=docker&previous-version=3.22.1&new-version=3.22.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 13:12:57 +00:00
dependabot[bot] 4a373ee6af chore: bump github.com/valyala/fasthttp from 1.66.0 to 1.67.0 (#20273)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.66.0 to 1.67.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.67.0</h2>
<p>Special thanks to the following security researchers who reported the
issues fixed in this release:</p>
<ul>
<li><a href="https://github.com/zer0yu"><code>@​zer0yu</code></a> (Enze
Wang)</li>
<li><a href="https://github.com/P3ngu1nW"><code>@​P3ngu1nW</code></a>
(Jingcheng Yang)</li>
<li><a href="https://github.com/9vvert"><code>@​9vvert</code></a> (Zehui
Miao)</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>Add DNS cache management methods for TCPDialer by <a
href="https://github.com/aabishkaryal"><code>@​aabishkaryal</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2072">valyala/fasthttp#2072</a></li>
<li>Fix username:password@ validation in urls by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2080">valyala/fasthttp#2080</a></li>
<li>Validate IPv6 addresses in urls by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2079">valyala/fasthttp#2079</a></li>
<li>Validate schemes by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2078">valyala/fasthttp#2078</a></li>
<li>Reject invalid hosts with multiple port delimiters by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2077">valyala/fasthttp#2077</a></li>
<li>Reject backslash absolute URIs and cache parse errors by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2075">valyala/fasthttp#2075</a></li>
<li>Reject bad ipv6 hostnames by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2076">valyala/fasthttp#2076</a></li>
<li>Reimplement flushing support for fasthttpadaptor by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2081">valyala/fasthttp#2081</a></li>
<li>chore(deps): bump securego/gosec from 2.22.8 to 2.22.9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2073">valyala/fasthttp#2073</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/aabishkaryal"><code>@​aabishkaryal</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2072">valyala/fasthttp#2072</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.66.0...v1.67.0">https://github.com/valyala/fasthttp/compare/v1.66.0...v1.67.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/b26ff4866918a81247d8ce1cbfe07c7da63b2940"><code>b26ff48</code></a>
chore(deps): bump golang.org/x/net from 0.44.0 to 0.45.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2084">#2084</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/19624506292b2f05ed08774d1f6c814340efb409"><code>1962450</code></a>
Fix copyTrailer</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/2272d532e154f55d6a9cfe316109d2be850a6331"><code>2272d53</code></a>
Reimplement flushing support for fasthttpadaptor (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2081">#2081</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/a17ec74999fe7a1f9a46d09d644584e73e97f908"><code>a17ec74</code></a>
Reject bad ipv6 hostnames (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2076">#2076</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/f18eb9ef0c366b9ac212e41f4bce3378b215dbf2"><code>f18eb9e</code></a>
Reject backslash absolute URIs and cache parse errors (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2075">#2075</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/bed90bcf091dc56b3098fb57cbbc1ca931d5ea34"><code>bed90bc</code></a>
Reject invalid hosts with multiple port delimiters (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2077">#2077</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/d3fc68239107eb85a36b3baf0b9ca873cdf9b95f"><code>d3fc682</code></a>
Validate schemes (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2078">#2078</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/af41f54adbd2b47323ae0b1caf76e79cb3c2e824"><code>af41f54</code></a>
Validate IPv6 addresses in urls (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2079">#2079</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/75dcdb8bba3eac0eb091a68a5b401cf9755be0df"><code>75dcdb8</code></a>
Fix username:password@ validation in urls (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2080">#2080</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/ede09fad738b7c16784e37064f49f89c960ecbb0"><code>ede09fa</code></a>
Limit FuzzTestHeaderScanner body size</li>
<li>Additional commits viewable in <a
href="https://github.com/valyala/fasthttp/compare/v1.66.0...v1.67.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.66.0&new-version=1.67.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 12:16:05 +00:00
Paweł Banaszewski 847058c56c fix: set default values for RevokeURL property in external auth configs (#20270)
This PR adds logic that sets default values for `RevokeURL` in external
auth configs.
2025-10-13 14:04:08 +02:00
dependabot[bot] 5ab72cce63 chore: bump github.com/gofrs/flock from 0.12.1 to 0.13.0 (#20269)
Bumps [github.com/gofrs/flock](https://github.com/gofrs/flock) from
0.12.1 to 0.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gofrs/flock/releases">github.com/gofrs/flock's
releases</a>.</em></p>
<blockquote>
<h2>v0.13.0</h2>
<h2>What's Changed</h2>
<p>Minimum Go version 1.24</p>
<ul>
<li>feat: add Stat method by <a
href="https://github.com/ferhatelmas"><code>@​ferhatelmas</code></a> in
<a
href="https://redirect.github.com/gofrs/flock/pull/127">gofrs/flock#127</a></li>
<li>chore(deps): bump golang.org/x/sys from 0.22.0 to 0.37.0</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gofrs/flock/compare/v0.12.1...v0.13.0">https://github.com/gofrs/flock/compare/v0.12.1...v0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gofrs/flock/commit/bfec60bb026171031050af631b6dec974f14e9fa"><code>bfec60b</code></a>
chore(deps): bump golang.org/x/sys from 0.36.0 to 0.37.0 in the gomod
group (...</li>
<li><a
href="https://github.com/gofrs/flock/commit/7094284415ad11369be4662a7c12be25963b4ea5"><code>7094284</code></a>
chore: update linter</li>
<li><a
href="https://github.com/gofrs/flock/commit/8111aec69ca1501f26bb5198ed02673e87806e65"><code>8111aec</code></a>
feat: add Stat method (<a
href="https://redirect.github.com/gofrs/flock/issues/127">#127</a>)</li>
<li><a
href="https://github.com/gofrs/flock/commit/6f0f0ed4e14d546b238ae500710aba38b924e135"><code>6f0f0ed</code></a>
chore(deps): bump the github-actions group with 4 updates (<a
href="https://redirect.github.com/gofrs/flock/issues/126">#126</a>)</li>
<li><a
href="https://github.com/gofrs/flock/commit/fe44231e563ec57fda028bc2484140fb1f24a6d1"><code>fe44231</code></a>
chore(deps): bump golang.org/x/sys from 0.35.0 to 0.36.0 in the gomod
group (...</li>
<li><a
href="https://github.com/gofrs/flock/commit/f74f0fb0332646c6b3730bfe9cce6fc0badc52c6"><code>f74f0fb</code></a>
chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.1 in
the go...</li>
<li><a
href="https://github.com/gofrs/flock/commit/c1f6d161c8e3b29a4d612e34ff17b37d00d4cd2f"><code>c1f6d16</code></a>
chore(deps): bump golang.org/x/sys from 0.34.0 to 0.35.0 in the gomod
group (...</li>
<li><a
href="https://github.com/gofrs/flock/commit/c542c57ff5f6af1d62b6864144170b612731796a"><code>c542c57</code></a>
chore(deps): bump github/codeql-action from 3.29.2 to 3.29.5 in the
github-ac...</li>
<li><a
href="https://github.com/gofrs/flock/commit/425570ba9b698b04bb9506c4906f137fb34ac7e0"><code>425570b</code></a>
chore(deps): bump golang.org/x/sys from 0.33.0 to 0.34.0 in the gomod
group (...</li>
<li><a
href="https://github.com/gofrs/flock/commit/12753ea298e1aeb97f0881ff3fc07eabcb2b86e5"><code>12753ea</code></a>
chore(deps): bump github/codeql-action from 3.28.18 to 3.29.2 in the
github-a...</li>
<li>Additional commits viewable in <a
href="https://github.com/gofrs/flock/compare/v0.12.1...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gofrs/flock&package-manager=go_modules&previous-version=0.12.1&new-version=0.13.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 12:02:14 +00:00
dependabot[bot] fb86841071 chore: bump github.com/brianvoe/gofakeit/v7 from 7.7.1 to 7.8.0 (#20265)
Bumps
[github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit)
from 7.7.1 to 7.8.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/6af983166ac57e4b39f11c665273d6e61339637d"><code>6af9831</code></a>
emoji - cleanup, organization and new function additions</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/1399ba0ab2177c19f83432e20a619c26be517a35"><code>1399ba0</code></a>
generate - improve generate performance</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/3840eaf8c61407e57a8e14382c0e81dfbde15402"><code>3840eaf</code></a>
internet - added url safe slug</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/1332b941476e911422b8647d8d6b331de703513f"><code>1332b94</code></a>
airline - added airline functions</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/ae44694fb1f7b11f8687ec0b292961e462ceb847"><code>ae44694</code></a>
readme - updated to reflect text updates</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/e5a4d526a4e615eaa77b8361ceae4d0ba7ce71b1"><code>e5a4d52</code></a>
lorem ipsum - simplified usage and directly use sentence gen</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/3890a67dc9728b7f8a0c0e390eab8e91e455eec1"><code>3890a67</code></a>
sentence - updated usage across repo</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/ab13d69433d91d6521002017f30ee1c5b17893a0"><code>ab13d69</code></a>
hipster - updated to uppercase first character</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/7b7ddf7db30dcdd4c562fdcb1c59049b29bb6641"><code>7b7ddf7</code></a>
hipster - updated to uppercase first character</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/5e08f261402527fdba32e9f74187809cb3a5987b"><code>5e08f26</code></a>
template - update test usage</li>
<li>Additional commits viewable in <a
href="https://github.com/brianvoe/gofakeit/compare/v7.7.1...v7.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/brianvoe/gofakeit/v7&package-manager=go_modules&previous-version=7.7.1&new-version=7.8.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 11:57:31 +00:00
dependabot[bot] 51b0767429 chore: bump rust from 1219c0b to e4ae8ab in /dogfood/coder (#20267)
Bumps rust from `1219c0b` to `e4ae8ab`.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust&package-manager=docker&previous-version=slim&new-version=slim)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 11:54:09 +00:00
Mathias Fredriksson a8f87c2625 feat(coderd): implement task to app linking (#20237)
This change adds workspace build/agent/app linking to tasks and wires it
into `wsbuilder` and `provisionerdserver`.

Closes coder/internal#948
Closes coder/coder#20212
Closes coder/coder#19773
2025-10-13 12:57:06 +03:00
Mathias Fredriksson 5dc57da6b4 fix(coderd/database): ensure task name uniqueness (#20236)
This change ensures task names are unique per user the same way we do
for workspaces. This ensures we don't create tasks that are impossible
to start due to another task being named the same creating a workspace
name conflict.

Updates coder/internal#948
Supersedes coder/coder#20212
2025-10-13 12:42:38 +03:00
Mathias Fredriksson 952c69f412 feat(coderd/database): add task status and status view (#20235)
This change updates the `task_workspace_apps` table structure for
improved linking to workspace builds and adds queries to manage tasks
and a view to expose task status.

Updates coder/internal#948
Supersedes coder/coder#20212
Supersedes coder/coder#19773
2025-10-13 12:25:58 +03:00
Mathias Fredriksson 299a54a99b feat(coderd): add tasks rbac object (#20234)
This change adds RBAC for tasks.

Updates coder/internal#948
Supersedes coder/coder#20212
2025-10-13 12:02:22 +03:00
dependabot[bot] d9f95f2285 chore: bump coder/git-clone/coder from 1.1.1 to 1.1.2 in /dogfood/coder (#20264)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/git-clone/coder&package-manager=terraform&previous-version=1.1.1&new-version=1.1.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 00:31:27 +00:00
dependabot[bot] dd85d1fdd8 chore: bump coder/claude-code/coder from 3.0.1 to 3.1.0 in /dogfood/coder (#20263)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=3.0.1&new-version=3.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 00:31:19 +00:00
Spike Curtis 2ded9d6a73 test: remove external compilation of db cleaner entirely (#20240)
fixes https://github.com/coder/internal/issues/1026

Thru a (perhaps too-) clever hack of `init()` functions, I've managed to remove the need to separately compile the cleaner binary. This should fix the flakes we are seeing were the binary compilation takes 10s of seconds on macOS.  The cleaner is encorporated directly into the test binary and we self-exec as the subprocess.
2025-10-10 10:02:03 +04:00
ケイラ 97cb19eeb5 chore: replace nexus-repository icon with an actual svg (#20251) 2025-10-09 13:55:55 -06:00
ケイラ caeff49aba chore: refactor roles to support multiple permission sets scoped by org id (#20186)
In preparation for adding the "member" permission level, which will also
be grouped by org ID, do a bit of a refactor to make room for it and the
existing "org" level to live in the same `map`
2025-10-09 11:08:34 -06:00
Hugo Dutka 6213b30f10 fix: replace http.DefaultClient in telemetry with dedicated client (#20247)
Replaces a call to the http default client in telemetry.go. Looks like
it was missed in https://github.com/coder/coder/pull/20128.

Related to https://github.com/coder/internal/issues/1020 and
https://github.com/coder/internal/issues/645.
2025-10-09 18:35:09 +02:00
Danielle Maywood 5d66f1f027 fix(provisioner): use sidebar app id instead of app id (#20246)
In a previous PR we set SidebarApp.Id equal to the appID instead of the
sidebarAppID.
2025-10-09 16:41:40 +01:00
Bruno Quaresma 8f2394c256 chore: replace MUI tables (#20201)
I tried to break this work into smaller pieces, but since there are a
lot of dependent components, I decided to handle it in one larger chunk
and rely on Storybook to catch any bugs.

That said, let me know if you’d prefer a different approach!
2025-10-09 10:09:37 -03:00
Thomas Kosiewski ed90ecf00e feat: add allow_list to resource-scoped API tokens (#19964)
# Add API key allow_list for resource-scoped tokens

This PR adds support for API key allow lists, enabling tokens to be scoped to specific resources. The implementation:

1. Adds a new `allow_list` field to the `CreateTokenRequest` struct, allowing clients to specify resource-specific scopes when creating API tokens
2. Implements `APIAllowListTarget` type to represent resource targets in the format `<type>:<id>` with support for wildcards
3. Adds validation and normalization logic for allow lists to handle wildcards and deduplication
4. Integrates with RBAC by creating an `APIKeyEffectiveScope` that merges API key scopes with allow list restrictions
5. Updates API documentation and TypeScript types to reflect the new functionality

This feature enables creating tokens that are limited to specific resources (like workspaces or templates) by ID, making it possible to create more granular API tokens with limited access.
2025-10-09 14:53:08 +02:00
Danielle Maywood f31e6e09ba chore(provisioner): support updated coder_ai_task resource (#20160)
Closes https://github.com/coder/internal/issues/978

- Introduce `CODER_TASK_ID` and `CODER_TASK_PROMPT` to the provisioner
environment
- Make use of new `app_id` field in provider, with a fallback to
`sidebar_app.id` for backwards compatibility

**For now** I've left the `taskPrompt` and `taskID` as a TODO as we do
not yet create these values.
2025-10-09 10:42:01 +01:00
Dean Sheather 8942b50872 fix: allow unhanger to unhang dormant workspaces (#20229) 2025-10-09 17:33:57 +11:00
Rishi Mondal c84ab728a8 chore: add nexus-repository icon (#20227) 2025-10-08 16:24:13 -06:00
Jaayden Halko 9935da86c6 chore: migrate appearanceform to Tailwind and shadcn (#20204) 2025-10-08 21:13:04 +01:00
Bruno Quaresma 4b8d73994f chore: migrate MUI icons to lucide-react (#20193) 2025-10-08 15:01:01 -03:00
DevCats e5d7f43c51 chore: add auto-dev-server-icon and set to monochromatic (#20219) 2025-10-08 12:58:56 -05:00
Bruno Quaresma 55be304e53 chore: replace remaining MUI buttons (#20200) 2025-10-08 13:39:47 -03:00
Jiachen Jiang 79736154db docs: add documentation for upcoming Agent Boundary feature (#20099)
## PR Description
tbd @jcjiang 

See a preview at:
https://coder.com/docs/@boundaries-docs/ai-coder/agent-boundary

---------

Co-authored-by: David Fraley <davidiii@fraley.us>
Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-10-08 09:14:14 -07:00
david-fraley 6c5b741bed docs: list tasks CLI docs in manifest.json (#20220) 2025-10-08 17:32:21 +02:00
Cian Johnston fa82f841c7 chore(docs): add documentation for exp CLI commands (#20019)
Updates task documentation with experimental CLI.
~Generated by Claude using `--help` output.~

Should be merged alongside https://github.com/coder/coder/pull/20020
2025-10-08 13:43:44 +01:00
Spike Curtis 5807fe01e4 test: prevent TestAgent_ReconnectingPTY connection reporting check from interfering (#20210)
When we added support for connection tracking in the Workspace agent, we modified the ReconnectingPTY tests to add an initial connection that we immediately hang up and check that connections are logged.

In the case of `screen`-based pty handling, hanging up the initial connection can race with the initial attachment to the `screen` process, and cause that process to exit early. This leaves subsequent connections to the same session ID to fail.

In this PR we just use different pty session IDs so that the initial connections we do to verify logging don't interfere with the rest of the test.

_Arguably_ it's a bug in our Reconnecting PTY code that hanging up immediately can leave the system in a weird state, but we do eventually recover and error out, so I don't think it's worth trying to fix.
2025-10-08 16:23:46 +04:00
Spike Curtis e2076beb9f test: change to explicitly compiling dbcleaner on posix (#20206)
relates to: https://github.com/coder/internal/issues/1026

On POSIX systems (macOS and Linux) we compile the dbcleaner binary into a temp directory. This allows us to explicitly separate the compilation step and report the time it takes. We suspect this might be a contributing factor in the above linked flakes we see on macOS.

This doesn't work on Windows because Go tests clean up the temp directory at the end of the test and the dbcleaner binary will still be executing. On Windows you cannot delete a file being executed nor the directory. However, we are not seeing any flakes on Windows so the old behavior seems to be OK.
2025-10-08 16:18:02 +04:00
Spike Curtis f1d3f31c10 test: increase timeout in TestRun (scaletest/workspaceupdates) (#20211)
fixes https://github.com/coder/internal/issues/1050

Extends the timeout on the affected test. It uses a postgres database, and so 15s timeout isn't enough to not flake with our test infra these days.
2025-10-08 16:17:41 +04:00
Mathias Fredriksson 46e242e444 test(coderd/database/dbtestutil): add debug output to pg_dump failure (#20209) 2025-10-08 14:22:35 +03:00
Sas Swart 544f15523c fix: adjust workspace claims to be initiated by users (#20179)
The prebuilds user never initiates a workspace claim autonomously. A
claim can only happen when a user attempts to create a workspace. When
listing prebuild provisioner jobs, it would not make sense to see jobs
related to users who are creating workspaces and have gotten a prebuilt
workspace. When cleaning up an overwhelmed provisioner queue, we should
not delete claims as they have humans waiting for them and are not part
of the thundering herd.

Therefore, this PR ensures that provisioner jobs that claim workspaces
are considered to be initiated by the user, not the prebuilds system.
2025-10-08 10:40:54 +02:00
Atif Ali 037e6f06f5 docs: fix link to Grafana dashboard example for AI Bridge (#20205) 2025-10-08 08:25:18 +00:00
Mathias Fredriksson 8274251fe1 fix(.devcontainer): check if ssh folder exists in post_create (#19987) 2025-10-08 07:24:13 +00:00
Cian Johnston 63631b5b2b chore(coderd): aitasks: add internal-only api doc comments (#20020)
Adds api doc comments calling out experimental status.

Should be merged alongside https://github.com/coder/coder/pull/20019
2025-10-08 08:20:20 +01:00
Stephen Kirby d0f434b672 feat(docs): add bridge documentation for early access (#20188) 2025-10-07 22:36:05 -05:00
david-fraley be22c38161 docs: update release versions in docs (#20196) 2025-10-07 20:46:47 +00:00
Spike Curtis 65335bc7d4 feat: add cli command scaletest dynamic-parameters (#20034)
part of https://github.com/coder/internal/issues/912

Adds CLI command `coder exp scaletest dynamic-parameters`

I've left out the configuration of tracing and timeouts for now. I think I want to do some refactoring of the scaletest CLI to make handling those flags take up less boiler plate.

I will add tracing and timeout flags in a follow up PR.
2025-10-07 21:53:59 +04:00
Dean Sheather 0e0f0925e4 fix: use raw SVG for logo on static error page (#20189)
Relates to #20185, #20029, #18878
2025-10-08 00:48:17 +11:00
Mathias Fredriksson 057d7dacdc chore(coderd/database/queries): remove trailing whitespace (#20192) 2025-10-07 13:10:38 +00:00
Susana Ferreira 6b72ef8b18 chore(docs): update notifications documentation to include task events (#20190)
## Description

Update notifications documentation to include Task Events introduced in
PR: https://github.com/coder/coder/pull/19965
2025-10-07 11:32:44 +01:00
Kacper Sawicki 0c2eca94f5 feat(cli): add notifications scaletest command (#20092)
Closes https://github.com/coder/internal/issues/984
2025-10-07 10:33:52 +02:00
Kacper Sawicki 05f8f67ced feat(scaletest): add runner for notifications delivery (#20091)
Relates to https://github.com/coder/internal/issues/910

This PR adds a scaletest runner that simulates users receiving notifications through WebSocket connections.

An instance of this notification runner does the following:

1. Creates a user (optionally with specific roles like owner).
2. Connects to /api/v2/notifications/inbox/watch via WebSocket to receive notifications in real-time.
3. Waits for all other concurrently executing runners (per the DialBarrier WaitGroup) to also connect their websockets.
4. For receiving users: Watches the WebSocket for expected notifications and records delivery latency for each notification type.
5. For regular users: Maintains WebSocket connections to simulate concurrent load while receiving users wait for notifications.
6. Waits on the ReceivingWatchBarrier to coordinate between receiving and regular users.
7. Cleans up the created user after the test completes.


Exposes three prometheus metrics:

1. notification_delivery_latency_seconds - HistogramVec. Labels = {username, notification_type}
2. notification_delivery_errors_total - CounterVec. Labels = {username, action}
3. notification_delivery_missed_total - CounterVec. Labels = {username}

The runner measures end-to-end notification latency from when a notification-triggering event occurs (e.g., user creation/deletion) to when the notification is received by a WebSocket client.
2025-10-07 09:59:15 +02:00
Michael Smith 156f985fb0 fix(site): update useClipboard to work better with effect logic (#20183)
## Changes made
- Updated `useClipboard` API to require passing the text in via the
`copyToClipboard` function, rather than requiring that the text gets
specified in render logic
- Ensured that the `copyToClipboard` function always stays stable across
all React lifecycles
- Updated all existing uses to use the new function signatures
- Updated all tests and added new cases
2025-10-06 15:41:57 -04:00
ケイラ 09f69ef74f chore: update logo on error page (#20185) 2025-10-06 12:14:35 -06:00
Bruno Quaresma 83c4611293 chore: revert "feat: include latest build id in task responses" (#20184)
Reverts coder/coder#20181

I realized we don’t need this in the task response. When loading a task,
we already need much more workspace information, so it makes more sense
to fetch the workspace data separately instead of trying to embed all
its details into the response.

I think we can keep the task response clean and focused on the essential
information needed to list tasks. For more specific details, we can
fetch the related resources as needed. So, I’m reverting this PR.
2025-10-06 14:44:11 -03:00
Bruno Quaresma 23a44d10ac feat: include latest build id in task responses (#20181)
Adding the latest build ID is necessary to locate the logs associated
with the tasks in the UI.
2025-10-06 13:12:56 -03:00
Bruno Quaresma 1783ee13ab chore: fix biome error when running make lint (#20182)
Fixes a Biome lint error when running `make lint`.

```
> biome check --error-on-warnings --fix .

biome.jsonc:6:13 deserialize ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  ℹ The configuration schema version does not match the CLI version 2.2.4
  
    4 │                 "includes": ["!e2e/**/*Generated.ts"]
    5 │         },
  > 6 │         "$schema": "https://biomejs.dev/schemas/2.2.0/schema.json"
      │                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    7 │ }
    8 │ 
  
  ℹ   Expected:                     2.2.4
      Found:                        2.2.0
  
  
  ℹ Run the command biome migrate to migrate the configuration file.
  

Checked 1165 files in 796ms. No fixes applied.
```
2025-10-06 11:51:56 -03:00
Bruno Quaresma 33fbb174d5 chore: set biome lsp bin path for vscode (#20180) 2025-10-06 11:51:44 -03:00
Bruno Quaresma 840afb225b feat: select template version for tasks (#20146)
Allows users with `updateTemplates` permission to select a specific
template version when creating a task.

One of the biggest changes was moving `TaskPrompt` into `modules/task`
and adding a Storybook entry for it. I also moved some stories from
`TasksPage` to simplify its story.

<img width="1208" height="197" alt="Screenshot 2025-10-02 at 12 09 06"
src="https://github.com/user-attachments/assets/b85d2723-bb52-442b-b8eb-36721944a653"
/>

Closes https://github.com/coder/coder/issues/19986
2025-10-06 10:23:53 -03:00
dependabot[bot] 3f49e28308 chore: bump github.com/coreos/go-oidc/v3 from 3.15.0 to 3.16.0 (#20178)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc)
from 3.15.0 to 3.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.16.0</h2>
<h2>What's Changed</h2>
<ul>
<li>refactor: Remove unused time injection from RemoteKeySet by <a
href="https://github.com/ponimas"><code>@​ponimas</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/466">coreos/go-oidc#466</a></li>
<li>bump go to 1.24, remove 1.23 support, bump go-jose dependency,
remove x/net dependency by <a
href="https://github.com/wardviaene"><code>@​wardviaene</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/467">coreos/go-oidc#467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/wardviaene"><code>@​wardviaene</code></a> made
their first contribution in <a
href="https://redirect.github.com/coreos/go-oidc/pull/467">coreos/go-oidc#467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.15.0...v3.16.0">https://github.com/coreos/go-oidc/compare/v3.15.0...v3.16.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coreos/go-oidc/commit/e9584733f8bb6c4683d1e98b4fb22eee121f7dff"><code>e958473</code></a>
bump go to 1.24, remove 1.23 support, bump go-jose dependency, remove
x/net d...</li>
<li><a
href="https://github.com/coreos/go-oidc/commit/69b167061fdb7270ef965f150ea6aabe11678728"><code>69b1670</code></a>
refactor: Remove unused time injection from RemoteKeySet</li>
<li>See full diff in <a
href="https://github.com/coreos/go-oidc/compare/v3.15.0...v3.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coreos/go-oidc/v3&package-manager=go_modules&previous-version=3.15.0&new-version=3.16.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:59:26 +00:00
dependabot[bot] 5fdc4185c7 chore: bump github.com/moby/moby from 28.4.0+incompatible to 28.5.0+incompatible (#20177)
Bumps [github.com/moby/moby](https://github.com/moby/moby) from
28.4.0+incompatible to 28.5.0+incompatible.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>v28.5.0</h2>
<h1>28.5.0</h1>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.5.0">docker/cli,
28.5.0 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.5.0">moby/moby,
28.5.0 milestone</a></li>
<li>Deprecated and removed features, see <a
href="https://github.com/docker/cli/blob/v28.5.0/docs/deprecated.md">Deprecated
Features</a>.</li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v28.5.0/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Don't print warnings in <code>docker info</code> for broken symlinks
in CLI-plugin directories. <a
href="https://redirect.github.com/docker/cli/pull/6476">docker/cli#6476</a></li>
<li>Fix a panic during <code>stats</code> on empty event
<code>Actor.ID</code>. <a
href="https://redirect.github.com/docker/cli/pull/6471">docker/cli#6471</a></li>
</ul>
<h3>Packaging updates</h3>
<ul>
<li>Remove support for legacy CBC cipher suites. <a
href="https://redirect.github.com/docker/cli/pull/6474">docker/cli#6474</a></li>
<li>Update Buildkit to <a
href="https://github.com/moby/buildkit/releases/tag/v0.25.0">v0.25.0</a>.
<a
href="https://redirect.github.com/moby/moby/pull/51075">moby/moby#51075</a></li>
<li>Update Dockerfile syntax to <a
href="https://github.com/moby/buildkit/releases/tag/dockerfile%2F1.19.0">v1.19.0</a>.
<a
href="https://redirect.github.com/moby/moby/pull/51075">moby/moby#51075</a></li>
</ul>
<h3>Networking</h3>
<ul>
<li>Eliminated harmless warning about deletion of
<code>endpoint_count</code> from the data store. <a
href="https://redirect.github.com/moby/moby/pull/51064">moby/moby#51064</a></li>
<li>Fix a bug causing IPAM plugins to not be loaded on Windows. <a
href="https://redirect.github.com/moby/moby/pull/51035">moby/moby#51035</a></li>
</ul>
<h3>API</h3>
<ul>
<li>Deprecate support for kernel memory TCP accounting
(<code>KernelMemoryTCP</code>). <a
href="https://redirect.github.com/moby/moby/pull/51067">moby/moby#51067</a></li>
<li>Fix <code>GET containers/{name}/checkpoints</code> returning
<code>null</code> instead of empty JSON array when there are no
checkpoints. <a
href="https://redirect.github.com/moby/moby/pull/51052">moby/moby#51052</a></li>
</ul>
<h3>Go SDK</h3>
<ul>
<li>cli-plugins/plugin: Run: allow customizing the CLI. <a
href="https://redirect.github.com/docker/cli/pull/6481">docker/cli#6481</a></li>
<li>cli/command: add <code>WithUserAgent</code> option. <a
href="https://redirect.github.com/docker/cli/pull/6477">docker/cli#6477</a></li>
</ul>
<h3>Deprecations</h3>
<ul>
<li>Go-SDK: cli/command: deprecate <code>DockerCli.Apply</code>. This
method is no longer used and will be removed in the next release if
there are no remaining uses. <a
href="https://redirect.github.com/docker/cli/pull/6497">docker/cli#6497</a></li>
<li>Go-SDK: cli/command: deprecate
<code>DockerCli.ContentTrustEnabled</code>. This method is no longer
used and will be removed in the next release. <a
href="https://redirect.github.com/docker/cli/pull/6495">docker/cli#6495</a></li>
<li>Go-SDK: cli/command: deprecate
<code>DockerCli.DefaultVersion</code>. This method is no longer used and
will be removed in the next release. <a
href="https://redirect.github.com/docker/cli/pull/6491">docker/cli#6491</a></li>
<li>Go-SDK: cli/command: deprecate <code>ResolveDefaultContext</code>
utility. <a
href="https://redirect.github.com/docker/cli/pull/6529">docker/cli#6529</a></li>
<li>Go-SDK: cli/command: deprecate <code>WithContentTrustFromEnv</code>,
<code>WithContentTrust</code> options. These options were used
internally, and will be removed in the next release.. <a
href="https://redirect.github.com/docker/cli/pull/6489">docker/cli#6489</a></li>
<li>Go-SDK: cli/manifest/store: deprecate <code>IsNotFound()</code>. <a
href="https://redirect.github.com/docker/cli/pull/6514">docker/cli#6514</a></li>
<li>Go-SDK: templates: deprecate NewParse() function. <a
href="https://redirect.github.com/docker/cli/pull/6469">docker/cli#6469</a></li>
</ul>
<h2>v28.5.0-rc.1</h2>
<h2>28.5.0-rc.1</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/cd048300a48700294339c9c91d2dcc691cb8f63b"><code>cd04830</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/51075">#51075</a>
from vvoland/51074-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/e29d6be7a5126c4677a974cac3b9610e5157c780"><code>e29d6be</code></a>
vendor: github.com/moby/buildkit v0.25.0</li>
<li><a
href="https://github.com/moby/moby/commit/9b4369035bed7dfdc3799484159ca4ed09e04e8e"><code>9b43690</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/51069">#51069</a>
from thaJeztah/28.x_backport_docs_rm_deprecated_vir...</li>
<li><a
href="https://github.com/moby/moby/commit/4f3572596b4db81e89aa69cbee8741591d77ad47"><code>4f35725</code></a>
api: swagger: remove VirtualSize fields for API &gt; v1.43</li>
<li><a
href="https://github.com/moby/moby/commit/79f310d4bc0272183fdd9fed87b0a6881c185ca2"><code>79f310d</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/51067">#51067</a>
from austinvazquez/cherry-pick-deprecate-kernel-mem...</li>
<li><a
href="https://github.com/moby/moby/commit/deb4bbbfe09dfea5289d6a410d3c73d8a49a13ac"><code>deb4bbb</code></a>
api: deprecate <code>KernelMemoryTCP</code> support</li>
<li><a
href="https://github.com/moby/moby/commit/423a7fd6af43765bb80d5ab94fcd60c7daa64033"><code>423a7fd</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/51064">#51064</a>
from thaJeztah/28.x_backport_fix_epcnt_warning</li>
<li><a
href="https://github.com/moby/moby/commit/fbf2fe8b7dc2cc532ef7de136f95016f7f56b267"><code>fbf2fe8</code></a>
Eliminate warning about endpoint count store delete</li>
<li><a
href="https://github.com/moby/moby/commit/252a1ebe7effbc4e7e2272154332111d1fc916b2"><code>252a1eb</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/51061">#51061</a>
from thaJeztah/28.x_backport_rm_email_example</li>
<li><a
href="https://github.com/moby/moby/commit/2c15eb6617efb30cb828ce1a7133df6aa1689314"><code>2c15eb6</code></a>
api/docs: remove email field from example auth</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v28.4.0...v28.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=28.4.0+incompatible&new-version=28.5.0+incompatible)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:58:57 +00:00
Sas Swart a7c9e623fe chore: fix api param name (#20172)
In https://github.com/coder/coder/pull/20137, we added a new flag to
`coder provisioner jobs list`, namely `--initiator`.

To make some follow-up worth it, I need to rename an API param used in
the process before it becomes part of our released and tagged API.

Instead of only accepting UUIDs, we accept an arbitrary string.
We still validate it as a UUID now, but we will expand its validation to
allow any string and then resolve that string the same way that we
resolve the user parameter elsewhere in the API.
2025-10-06 13:58:37 +02:00
dependabot[bot] dd99d40ad6 chore: bump github.com/go-playground/validator/v10 from 10.27.0 to 10.28.0 (#20176)
Bumps
[github.com/go-playground/validator/v10](https://github.com/go-playground/validator)
from 10.27.0 to 10.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-playground/validator/releases">github.com/go-playground/validator/v10's
releases</a>.</em></p>
<blockquote>
<h2>Release 10.28.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update workflow.yml to support 2 most recent major versions by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1417">go-playground/validator#1417</a></li>
<li>Bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-playground/validator/pull/1456">go-playground/validator#1456</a></li>
<li>Go 1.25 support by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1459">go-playground/validator#1459</a></li>
<li>Bump github.com/gabriel-vasile/mimetype from 1.4.8 to 1.4.10 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-playground/validator/pull/1463">go-playground/validator#1463</a></li>
<li>Bump golang.org/x/text from 0.22.0 to 0.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-playground/validator/pull/1464">go-playground/validator#1464</a></li>
<li>Bump actions/setup-go from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-playground/validator/pull/1465">go-playground/validator#1465</a></li>
<li>Bump golang.org/x/crypto from 0.33.0 to 0.42.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-playground/validator/pull/1467">go-playground/validator#1467</a></li>
<li>fix: should panic when define duplicate field param in
<code>required_if</code> by <a
href="https://github.com/duyquang6"><code>@​duyquang6</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1468">go-playground/validator#1468</a></li>
<li>Fixed missing keys from returned errors in map validation by <a
href="https://github.com/gelozr"><code>@​gelozr</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1284">go-playground/validator#1284</a></li>
<li>Added https_url tag by <a
href="https://github.com/ahmedkamalio"><code>@​ahmedkamalio</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1461">go-playground/validator#1461</a></li>
<li>docs: add description for 'port' validator by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1435">go-playground/validator#1435</a></li>
<li>Add alphaspace validator by <a
href="https://github.com/takaaa220"><code>@​takaaa220</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1343">go-playground/validator#1343</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/duyquang6"><code>@​duyquang6</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1468">go-playground/validator#1468</a></li>
<li><a href="https://github.com/gelozr"><code>@​gelozr</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1284">go-playground/validator#1284</a></li>
<li><a
href="https://github.com/ahmedkamalio"><code>@​ahmedkamalio</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1461">go-playground/validator#1461</a></li>
<li><a href="https://github.com/takaaa220"><code>@​takaaa220</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1343">go-playground/validator#1343</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-playground/validator/compare/v10.27.0...v10.28.0">https://github.com/go-playground/validator/compare/v10.27.0...v10.28.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-playground/validator/commit/bdc3a7d31bd8269baa07904324e8fb22fb2f9372"><code>bdc3a7d</code></a>
Add alphaspace validator (<a
href="https://redirect.github.com/go-playground/validator/issues/1343">#1343</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/63594a0fbee5293ac7bc6c80286c3277cd2ddb45"><code>63594a0</code></a>
docs: add description for 'port' validator (<a
href="https://redirect.github.com/go-playground/validator/issues/1435">#1435</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/45f3a8e09a4d0b995829fe0613289db4fb69b850"><code>45f3a8e</code></a>
Added https_url tag (<a
href="https://redirect.github.com/go-playground/validator/issues/1461">#1461</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/7a23bca81c8bc72c578252b524665ea173b489da"><code>7a23bca</code></a>
Remove Go version 1.23 from CI workflow</li>
<li><a
href="https://github.com/go-playground/validator/commit/13130d2e78838bec6b9e4dbce756c183844590e7"><code>13130d2</code></a>
Fixed missing keys from returned errors in map validation (<a
href="https://redirect.github.com/go-playground/validator/issues/1284">#1284</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/94e89f0942028ebfb17426b8d3c2005a46557621"><code>94e89f0</code></a>
fix: should panic when define duplicate field param in
<code>required_if</code> (<a
href="https://redirect.github.com/go-playground/validator/issues/1468">#1468</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/6905468e4559e0937518de42c92cb6b5c023342d"><code>6905468</code></a>
Bump golang.org/x/crypto from 0.33.0 to 0.42.0 (<a
href="https://redirect.github.com/go-playground/validator/issues/1467">#1467</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/77ef70e2d1287e50641c096ca1c3d09497e7197c"><code>77ef70e</code></a>
Bump actions/setup-go from 5 to 6 (<a
href="https://redirect.github.com/go-playground/validator/issues/1465">#1465</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/78d05ae554de682d121e78a6a62d7de01be8e863"><code>78d05ae</code></a>
Bump golang.org/x/text from 0.22.0 to 0.29.0 (<a
href="https://redirect.github.com/go-playground/validator/issues/1464">#1464</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/34aea1f62ca76abe2999265d25c8dcf8507cb3ed"><code>34aea1f</code></a>
Bump github.com/gabriel-vasile/mimetype from 1.4.8 to 1.4.10 (<a
href="https://redirect.github.com/go-playground/validator/issues/1463">#1463</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/go-playground/validator/compare/v10.27.0...v10.28.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-playground/validator/v10&package-manager=go_modules&previous-version=10.27.0&new-version=10.28.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:57:20 +00:00
Danielle Maywood 815e58e872 chore: upgrade clistat to v1.0.2 (#20173)
clistat@v1.0.2 contains a bug fix for when `cpu.max` cgroup file is
missing
2025-10-06 12:21:21 +01:00
Thomas Kosiewski b60ae0a0c4 refactor: add wildcard scope entries for API key scopes (#20032)
# Add API Key Scope Wildcards

This PR adds wildcard API key scopes (`resource:*`) for all RBAC resources to ensure every resource has a matching wildcard value. It also adds all individual `resource:action`​ scopes to the API documentation and TypeScript definitions.

The changes include:

- Adding a new database migration (000377) that adds wildcard API key scopes
- Updating the API documentation to include all available scopes
- Enhancing the scope generation scripts to include all resource wildcards
- Updating the TypeScript definitions to match the expanded scope list

These changes make creating API keys with comprehensive permissions for specific resource types easier.
2025-10-06 12:08:17 +02:00
Sas Swart d17dd5d787 feat: add filtering by initiator to provisioner job listing in the CLI (#20137)
Relates to https://github.com/coder/internal/issues/934

This PR provides a mechanism to filter provisioner jobs according to who
initiated the job.
This will be used to find pending prebuild jobs when prebuilds have
overwhelmed the provisioner job queue. They can then be canceled.

If prebuilds are overwhelming provisioners, the following steps will be
taken:

```bash
# pause prebuild reconciliation to limit provisioner queue pollution:
coder prebuilds pause 
# cancel pending provisioner jobs to clear the queue
coder provisioner jobs list --initiator="prebuilds" --status="pending" | jq ... | xargs -n1 -I{} coder provisioner jobs cancel {}
# push a fixed template and wait for the import to complete
coder templates push ... # push a fixed template
# resume prebuild reconciliation
coder prebuilds resume
```

This interface differs somewhat from what was specified in the issue,
but still provides a mechanism that addresses the issue. The original
proposal was made by myself and this simpler implementation makes sense.
I might add a `--search` parameter in a follow-up if there is appetite
for it.

Potential follow ups:
* Support for this usage: `coder provisioner jobs list --search
"initiator:prebuilds status:pending"`
* Adding the same parameters to `coder provisioner jobs cancel` as a
convenience feature so that operators don't have to pipe through `jq`
and `xargs`
2025-10-06 08:56:43 +00:00
Atif Ali c1357d4e27 chore(dogfood): dogfood latest version of agentAPI (#20165) 2025-10-04 15:58:17 +05:00
ケイラ 2ec9be2203 fix: only show error once when failing to update org member roles (#20155) 2025-10-03 14:11:08 -06:00
Zach b48e367c58 chore: remove dead randtz package (#20156)
This package was added in 65db7a71 a couple years back and was seemingly
never used (backed up by `git log -S randtz`).
2025-10-03 09:42:34 -06:00
Rafael Rodriguez bb5884467d feat(cli): prompt for missing required template variables on template creation (#19973)
## Summary

In this pull request we're adding support in the CLI for prompting the
user for any missing required template variables in the `coder templates
push` command and automatically retrying the template build once a user
has provided any missing variable values.

Closes: https://github.com/coder/coder/issues/19782

### Demo

In the following recording I created a simple template terraform file
that used different variable types (string, number, boolean, and
sensitive) and prompted the user to enter a value for each variable.

<details>
<summary>See example template terraform file</summary>

```tf
...

# Required variables for testing interactive prompting
variable "docker_image" {
  description = "Docker image to use for the workspace"
  type        = string
}

variable "workspace_name" {
  description = "Name of the workspace"
  type        = string
}

variable "cpu_limit" {
  description = "CPU limit for the container (number of cores)"
  type        = number
}

variable "enable_gpu" {
  description = "Enable GPU access for the container"
  type        = bool
}

variable "api_key" {
  description = "API key for external services (sensitive)"
  type        = string
  sensitive   = true
}

# Optional variable with default
variable "docker_socket" {
  default     = "/var/run/docker.sock"
  description = "Docker socket path"
  type        = string
}

...
```

</details>

Once the user entered a valid value for each variable, the template
build would be retried.


https://github.com/user-attachments/assets/770cf954-3cbc-4464-925e-2be4e32a97de

<details>
<summary>See output from recording</summary>

```shell
$ ./scripts/coder-dev.sh templates push test-required-params -d examples/templates/test-required-params/
INFO : Overriding codersdk.SessionTokenCookie as we are developing inside a Coder workspace.
/home/coder/coder/build/coder-slim_2.26.0-devel+a68122ca3_linux_amd64
Provisioner tags:  <none>
WARN: No .terraform.lock.hcl file found
  | When provisioning, Coder will be unable to cache providers without a lockfile and must download them from the internet each time.
  | Create one by running  terraform init  in your template directory.
> Upload "examples/templates/test-required-params"? (yes/no) yes
=== ✔ Queued [0ms]
==> ⧗ Running
==> ⧗ Running
=== ✔ Running [4ms]
==> ⧗ Setting up
=== ✔ Setting up [0ms]
==> ⧗ Parsing template parameters
=== ✔ Parsing template parameters [8ms]
==> ⧗ Cleaning Up
=== ✘ Cleaning Up [4ms]
=== ✘ Cleaning Up [8ms]
Found 5 missing required variables:
  - docker_image (string): Docker image to use for the workspace
  - workspace_name (string): Name of the workspace
  - cpu_limit (number): CPU limit for the container (number of cores)
  - enable_gpu (bool): Enable GPU access for the container
  - api_key (string): API key for external services (sensitive)

The template requires values for the following variables:
var.docker_image (required)
  Description: Docker image to use for the workspace
  Type: string
  Current value: <empty>
> Enter value: image-name
var.workspace_name (required)
  Description: Name of the workspace
  Type: string
  Current value: <empty>
> Enter value: workspace-name
var.cpu_limit (required)
  Description: CPU limit for the container (number of cores)
  Type: number
  Current value: <empty>
> Enter value: 1
var.enable_gpu (required)
  Description: Enable GPU access for the container
  Type: bool
  Current value: <empty>
? Select value: false
var.api_key (required), sensitive
  Description: API key for external services (sensitive)
  Type: string
  Current value: <empty>
> Enter value: (*redacted*) ******

Retrying template build with provided variables...
=== ✔ Queued [0ms]
==> ⧗ Running
==> ⧗ Running
=== ✔ Running [2ms]
==> ⧗ Setting up
=== ✔ Setting up [0ms]
==> ⧗ Parsing template parameters
=== ✔ Parsing template parameters [7ms]
==> ⧗ Detecting persistent resources
2025-09-25 22:34:14.731Z Terraform 1.13.0
2025-09-25 22:34:15.140Z data.coder_provisioner.me: Refreshing...
2025-09-25 22:34:15.140Z data.coder_workspace.me: Refreshing...
2025-09-25 22:34:15.140Z data.coder_workspace_owner.me: Refreshing...
2025-09-25 22:34:15.141Z data.coder_provisioner.me: Refresh complete after 0s [id=2bd73098-d127-4362-b3a5-628e5bce6998]
2025-09-25 22:34:15.141Z data.coder_workspace_owner.me: Refresh complete after 0s [id=c2006933-4f3e-4c45-9e04-79612c3a5eca]
2025-09-25 22:34:15.141Z data.coder_workspace.me: Refresh complete after 0s [id=36f2dc6f-0bf2-43bd-bc4d-b29768334e02]
2025-09-25 22:34:15.186Z coder_agent.main: Plan to create
2025-09-25 22:34:15.186Z module.code-server[0].coder_app.code-server: Plan to create
2025-09-25 22:34:15.186Z docker_volume.home_volume: Plan to create
2025-09-25 22:34:15.186Z module.code-server[0].coder_script.code-server: Plan to create
2025-09-25 22:34:15.187Z docker_container.workspace[0]: Plan to create
2025-09-25 22:34:15.187Z Plan: 5 to add, 0 to change, 0 to destroy.
=== ✔ Detecting persistent resources [3104ms]
==> ⧗ Detecting ephemeral resources
2025-09-25 22:34:16.033Z Terraform 1.13.0
2025-09-25 22:34:16.428Z data.coder_workspace.me: Refreshing...
2025-09-25 22:34:16.428Z data.coder_provisioner.me: Refreshing...
2025-09-25 22:34:16.429Z data.coder_workspace_owner.me: Refreshing...
2025-09-25 22:34:16.429Z data.coder_provisioner.me: Refresh complete after 0s [id=2d2f7083-88e6-425c-9df3-856a3bf4cc73]
2025-09-25 22:34:16.429Z data.coder_workspace.me: Refresh complete after 0s [id=c723575e-c7d3-43d7-bf54-0e34d0959dc3]
2025-09-25 22:34:16.431Z data.coder_workspace_owner.me: Refresh complete after 0s [id=d43470c2-236e-4ae9-a977-6b53688c2cb1]
2025-09-25 22:34:16.453Z coder_agent.main: Plan to create
2025-09-25 22:34:16.453Z docker_volume.home_volume: Plan to create
2025-09-25 22:34:16.454Z Plan: 2 to add, 0 to change, 0 to destroy.
=== ✔ Detecting ephemeral resources [1278ms]
==> ⧗ Cleaning Up
=== ✔ Cleaning Up [6ms]
┌──────────────────────────────────┐
│ Template Preview                 │
├──────────────────────────────────┤
│ RESOURCE                         │
├──────────────────────────────────┤
│ docker_container.workspace       │
│ └─ main (linux, amd64)           │
├──────────────────────────────────┤
│ docker_volume.home_volume        │
└──────────────────────────────────┘

The test-required-params template has been created at Sep 25
22:34:16! Developers can provision a workspace with this template using:

Updated version at Sep 25 22:34:16!
```

</details>

### Changes

- Added a new function to check if the provisioner failed due to a
template missing required variables
- Added a handler function that is called when a provisioner fails due
to the "missing required variables" error. The handler function will:
- Check for provided template variables and identify any missing
variables
- Prompt the user for any missing variables (prompt is adapted based on
the variable type)
  - Validate user input for missing variables
- Retry the template build when all variables have been provided by the
user

### Testing

Added tests for the following scenarios:

- Ensure validation based on variable type
- Ensure users are not prompted for variables with a default value
- Ensure variables provided via a variables files (`--variables-file`)
or a variable flag (`--variable`) take precedence over a template
2025-10-03 10:20:06 -05:00
Cian Johnston a360785199 ci(.github/workflows/traiage.yaml): check instead for push access to repo (#20163) 2025-10-03 15:04:20 +01:00
Ethan 2b4485575c feat(scaletest): add autostart scaletest command (#20161)
Closes https://github.com/coder/internal/issues/911
2025-10-03 20:50:21 +10:00
Cian Johnston e1619daacc chore(coderd): update aitasks.go to leverage agentapi-sdk-go (#20159)
I only recently became aware of the existence of `agentapi-sdk-go`.
Updates `aitasks.go` to make use of it.
2025-10-03 10:17:43 +01:00
Cian Johnston 2880582cc9 ci(.github/workflows/traiage.yaml): remove extraneous cleanup steps (#20154) 2025-10-03 10:01:08 +01:00
Cian Johnston 091b5c88d6 ci(.github/workflows/traiage.yaml): adjust prompt for legibility when… (#20144)
… truncated, just like this
2025-10-03 09:24:55 +01:00
yyefimov 039fa89481 fix(coderd): correct the name of the unmarshall error variable (#20150)
Incorrect error variable is used during reporting of the issue during
unmarshall operations and this makes it hard to understand the
underlying reason for OIDC failure: use `unmarshalError` instead of
`err`.
2025-10-03 12:08:15 +10:00
Cian Johnston ffcb7a1693 fix(coderd): truncate task prompt to 160 characters in notifications (#20147)
Truncates the task prompt used in notifications to a maximum of 160
characters. The length of 160 characters was chosen arbitrarily.
2025-10-02 19:54:07 +01:00
Zach 4d1003eace fix: remove initial global HTTP client usage (#20128)
This PR makes the initial steps at removing usage of the global Go HTTP
client, which was seen to have impacts on test flakiness in
https://github.com/coder/internal/issues/1020. The first commit removes
uses from tests, with the exception of one test that is tightly coupled
to the default client. The second commit makes easy/low-risk removals
from application code. This should have some impact to reduce test flakiness.
2025-10-02 11:43:13 -06:00
Danielle Maywood 0d2ccacacd chore: update to coder/clistat v1.0.1 (#20143)
Update https://github.com/coder/clistat to v1.0.1. This release has two
bug fixes.
2025-10-02 15:39:11 +01:00
Rafael Rodriguez c517aabe43 fix: add heartbeat to keep dynamic params websocket open (#20026)
## Summary

In this pull request we're adding a heartbeat to the
`handleParameterWebsocket` function to ensure that the connection stays
open until the 30 min timeout has been reached.

Closes: https://github.com/coder/coder/issues/19805

### Testing

- Reproduced the problem mentioned in the issue (websocket connection
closes after ~10 minutes of inactivity on the create workspace page)

<img width="1870" height="357" alt="Screenshot 2025-09-26 at 15 58 51"
src="https://github.com/user-attachments/assets/a9e2e89e-87c5-4afa-9644-afe246a15f79"
/>

- Confirmed that adding the heartbeat kept the connection open until the
30 min timeout was reached

<img width="1636" height="387" alt="Screenshot 2025-09-29 at 15 51 43"
src="https://github.com/user-attachments/assets/0a8c5cda-29a6-493d-a6c0-4a2629da8838"
/>
2025-10-02 09:32:40 -05:00
Cian Johnston 1f71c2c129 ci(.github/workflows/traiage.yaml): fix task URL in github comment (#20142) 2025-10-02 14:59:22 +01:00
Marcin Tojek d93629bcde fix: check permission to update username (#20139) 2025-10-02 15:07:49 +02:00
Danny Kopping d63bb2ce2f chore: add Audit Log purge advice (#20052)
Audit Log entries can be deleted safely (with appropriate caveats), but
we don't specifically call this out in the docs.

---------

Signed-off-by: Danny Kopping <danny@coder.com>
2025-10-02 11:10:51 +02:00
Dean Sheather d2c286d9b0 chore: fix missing variable in deploy workflow (#20136)
already in release branch and tested working
2025-10-02 16:08:29 +10:00
Dean Sheather e5c8c9bdaf chore: pin dogfood to release branch during release freeze (#20028)
Relates to https://github.com/coder/dogfood/pull/189
Closes https://github.com/coder/internal/issues/1021

- Adds new script `scripts/should_deploy.sh` which implements the
algorithm in the linked issue
- Changes the `ci.yaml` workflow to run on release branches
- Moves the deployment steps out of `ci.yaml` into a new workflow
`deploy.yaml` for concurrency limiting purposes
- Changes the behavior of image tag pushing slightly:
    - Versioned tags will no longer have a `main-` prefix
    - `main` branch will still push the `main` and `latest` tags
    - `release/x.y` branches will now push `release-x.y` tags
- The deploy job will exit early if `should_deploy.sh` returns false
- The deploy job will now retag whatever image it's about to deploy as
`dogfood`
2025-10-02 12:12:29 +10:00
Ethan 76d6e13185 ci: make changes required (#20131)
Earlier today, a dependabot PR was merged despite CI not having been run. https://github.com/coder/coder/pull/20068

This was because the `changes` job failed due to a github ratelimit, which caused all the tests to be skipped, which caused `required` to pass as it passes if tests are skipped.

<img width="725" height="872" alt="image" src="https://github.com/user-attachments/assets/3a13d19b-819a-48df-ad8c-e9ff903a0496" />

This PR makes `changes` required so this can't happen again (assuming we keep around the dependabot automerge around, it might).
2025-10-02 11:22:05 +10:00
Ethan f84a789b40 feat(scaletest): add runner for thundering herd autostart (#19998)
Relates to https://github.com/coder/internal/issues/911

This PR adds a scaletest runner that simulates a user with a workspace configured to autostart at a specific time.

An instance of this autostart runner does the following:
1. Creates a user.
2. Creates a workspace.
3. Listens on `/api/v2/workspaces/<ws-id>/watch` to wait for build completions throughout the run.
4. Stops the workspace, waits for the build to finish.
4. Waits for all other concurrently executing runners (per the `SetupBarrier` `WaitGroup`) to also have a stopped workspace.
5. Sets the workspace autostart time to `time.Now().Add(cfg.AutoStartDelay)`
6. Waits for the autostart workspace build to begin, enter the `pending` status, and then `running`.
7. Waits for the autostart workspace build to end.

Exposes four prometheus metrics:
- `autostart_job_creation_latency_seconds` - HistogramVec. Labels = {username, workspace_name}
- `autostart_job_acquired_latency_seconds` - HistogramVec. Labels = {username, workspace_name}
- `autostart_total_latency_seconds` - `HistogramVec`. Labels = `{username, workspace_name}`.
- `autostart_errors_total` - `CounterVec`. Labels = `{username, action}`.
2025-10-02 10:45:52 +10:00
dependabot[bot] 41420aea3c chore: bump ts-proto from 1.164.0 to 1.181.2 in /site (#20080)
Bumps [ts-proto](https://github.com/stephenh/ts-proto) from 1.164.0 to
1.181.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/stephenh/ts-proto/releases">ts-proto's
releases</a>.</em></p>
<blockquote>
<h2>v1.181.2</h2>
<h2><a
href="https://github.com/stephenh/ts-proto/compare/v1.181.1...v1.181.2">1.181.2</a>
(2024-08-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>toJSON Function with <code>removeEnumPrefix=true</code> and
<code>unrecognizedEnumValue=0</code> Options (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1089">#1089</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/24014908f814e2720b9c2b9bd2ae1773be880a16">2401490</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1086">#1086</a>
<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1086">#1086</a></li>
</ul>
<h2>v1.181.1</h2>
<h2><a
href="https://github.com/stephenh/ts-proto/compare/v1.181.0...v1.181.1">1.181.1</a>
(2024-07-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Incorrect message names in the generated code for repeated fields
(<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1073">#1073</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/8a95d8e0983a38e604b6990461e726db566ff311">8a95d8e</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1072">#1072</a></li>
</ul>
<h2>v1.181.0</h2>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.180.0...v1.181.0">1.181.0</a>
(2024-07-01)</h1>
<h3>Features</h3>
<ul>
<li>added the &quot;typePrefix&quot; and &quot;typeSuffix&quot; options.
(<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1069">#1069</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/ab515cda322baeb94c7588117e4bb5bee6281874">ab515cd</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1033">#1033</a></li>
</ul>
<h2>v1.180.0</h2>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.179.0...v1.180.0">1.180.0</a>
(2024-06-15)</h1>
<h3>Features</h3>
<ul>
<li>oneof=unions-value to use the same field name for oneof cases (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1062">#1062</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/74930908cc8e5292577a793b7ae06c3721225ac3">7493090</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1060">#1060</a></li>
</ul>
<h2>v1.179.0</h2>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.178.0...v1.179.0">1.179.0</a>
(2024-06-15)</h1>
<h3>Features</h3>
<ul>
<li>bigIntLiteral option for using BigInt literals (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1063">#1063</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/b89fbcb1f99ccfcd1f06551286c2459e44a3bac2">b89fbcb</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/928">#928</a>
<a
href="https://redirect.github.com/stephenh/ts-proto/issues/932">#932</a></li>
</ul>
<h2>v1.178.0</h2>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.177.0...v1.178.0">1.178.0</a>
(2024-06-07)</h1>
<h3>Features</h3>
<ul>
<li><code>no-file-descriptor</code> setting for outputSchema option (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1047">#1047</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/c54f06c4a7dd766abf3f91932b1e4cdf38b7f346">c54f06c</a>)</li>
</ul>
<h2>v1.177.0</h2>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.176.3...v1.177.0">1.177.0</a>
(2024-06-07)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/stephenh/ts-proto/blob/main/CHANGELOG.md">ts-proto's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/stephenh/ts-proto/compare/v1.181.1...v1.181.2">1.181.2</a>
(2024-08-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>toJSON Function with <code>removeEnumPrefix=true</code> and
<code>unrecognizedEnumValue=0</code> Options (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1089">#1089</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/24014908f814e2720b9c2b9bd2ae1773be880a16">2401490</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1086">#1086</a>
<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1086">#1086</a></li>
</ul>
<h2><a
href="https://github.com/stephenh/ts-proto/compare/v1.181.0...v1.181.1">1.181.1</a>
(2024-07-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Incorrect message names in the generated code for repeated fields
(<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1073">#1073</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/8a95d8e0983a38e604b6990461e726db566ff311">8a95d8e</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1072">#1072</a></li>
</ul>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.180.0...v1.181.0">1.181.0</a>
(2024-07-01)</h1>
<h3>Features</h3>
<ul>
<li>added the &quot;typePrefix&quot; and &quot;typeSuffix&quot; options.
(<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1069">#1069</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/ab515cda322baeb94c7588117e4bb5bee6281874">ab515cd</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1033">#1033</a></li>
</ul>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.179.0...v1.180.0">1.180.0</a>
(2024-06-15)</h1>
<h3>Features</h3>
<ul>
<li>oneof=unions-value to use the same field name for oneof cases (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1062">#1062</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/74930908cc8e5292577a793b7ae06c3721225ac3">7493090</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/1060">#1060</a></li>
</ul>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.178.0...v1.179.0">1.179.0</a>
(2024-06-15)</h1>
<h3>Features</h3>
<ul>
<li>bigIntLiteral option for using BigInt literals (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1063">#1063</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/b89fbcb1f99ccfcd1f06551286c2459e44a3bac2">b89fbcb</a>),
closes <a
href="https://redirect.github.com/stephenh/ts-proto/issues/928">#928</a>
<a
href="https://redirect.github.com/stephenh/ts-proto/issues/932">#932</a></li>
</ul>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.177.0...v1.178.0">1.178.0</a>
(2024-06-07)</h1>
<h3>Features</h3>
<ul>
<li><code>no-file-descriptor</code> setting for outputSchema option (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1047">#1047</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/c54f06c4a7dd766abf3f91932b1e4cdf38b7f346">c54f06c</a>)</li>
</ul>
<h1><a
href="https://github.com/stephenh/ts-proto/compare/v1.176.3...v1.177.0">1.177.0</a>
(2024-06-07)</h1>
<h3>Features</h3>
<ul>
<li>add option <code>noDefaultsForOptionals</code> (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1051">#1051</a>)
(<a
href="https://github.com/stephenh/ts-proto/commit/41d10205bf68468c37cf69e58dc4c4fdbfffcf5b">41d1020</a>)</li>
</ul>
<h2><a
href="https://github.com/stephenh/ts-proto/compare/v1.176.2...v1.176.3">1.176.3</a>
(2024-06-07)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/stephenh/ts-proto/commit/290d0c51e7bea305f4759c138c43aef8a22af19b"><code>290d0c5</code></a>
chore(release): 1.181.2 [skip ci]</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/24014908f814e2720b9c2b9bd2ae1773be880a16"><code>2401490</code></a>
fix: toJSON Function with <code>removeEnumPrefix=true</code> and
`unrecognizedEnumValue=...</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/76243a860bdcadb16086379abebb60ff9cc3d363"><code>76243a8</code></a>
chore(release): 1.181.1 [skip ci]</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/8a95d8e0983a38e604b6990461e726db566ff311"><code>8a95d8e</code></a>
fix: Incorrect message names in the generated code for repeated fields
(<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1073">#1073</a>)</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/2078d1a905ad7961e168971c51b852deae930b6d"><code>2078d1a</code></a>
Remove .DS_Store (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1071">#1071</a>)</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/c5546fba41ed248ffa750172aae3544e70ffddb8"><code>c5546fb</code></a>
chore(release): 1.181.0 [skip ci]</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/ab515cda322baeb94c7588117e4bb5bee6281874"><code>ab515cd</code></a>
feat: added the &quot;typePrefix&quot; and &quot;typeSuffix&quot;
options. (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1069">#1069</a>)</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/14e7e0f6a94a9309d16fb8d62467c95b3d001529"><code>14e7e0f</code></a>
docs: Describe <code>oneof=unions-value</code> output as Algebraic Data
Type (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1065">#1065</a>)</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/84ccaf2badc2def72b03f11d6faac645d1677f97"><code>84ccaf2</code></a>
chore(release): 1.180.0 [skip ci]</li>
<li><a
href="https://github.com/stephenh/ts-proto/commit/74930908cc8e5292577a793b7ae06c3721225ac3"><code>7493090</code></a>
feat: oneof=unions-value to use the same field name for oneof cases (<a
href="https://redirect.github.com/stephenh/ts-proto/issues/1062">#1062</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/stephenh/ts-proto/compare/v1.164.0...v1.181.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ts-proto&package-manager=npm_and_yarn&previous-version=1.164.0&new-version=1.181.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ケイラ <kayla@tree.camp>
2025-10-01 23:11:11 +00:00
dependabot[bot] 29b4cfc55b chore: bump remark-gfm from 4.0.0 to 4.0.1 in /site (#20081) 2025-10-01 17:08:26 -06:00
dependabot[bot] 79f5cb8b9a chore: bump react-virtualized-auto-sizer and @types/react-virtualized-auto-sizer (#20078)
Bumps
[react-virtualized-auto-sizer](https://github.com/bvaughn/react-virtualized-auto-sizer)
and
[@types/react-virtualized-auto-sizer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-virtualized-auto-sizer).
These dependencies needed to be updated together.
Updates `react-virtualized-auto-sizer` from 1.0.24 to 1.0.26
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/releases">react-virtualized-auto-sizer's
releases</a>.</em></p>
<blockquote>
<h2>1.0.26</h2>
<ul>
<li>Changed <code>width</code> and <code>height</code> values to be
based om <code>getBoundingClientRect</code> rather than
<code>offsetWidth</code> and <code>offsetHeight</code> (<a
href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth#value">which
are integers</a> and can cause rounding/flickering problems in some
cases).</li>
</ul>
<h2>1.0.25</h2>
<ul>
<li>Dependencies updated to include React 19</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/blob/master/CHANGELOG.md">react-virtualized-auto-sizer's
changelog</a>.</em></p>
<blockquote>
<h2>1.0.26</h2>
<ul>
<li>Changed <code>width</code> and <code>height</code> values to be
based om <code>getBoundingClientRect</code> rather than
<code>offsetWidth</code> and <code>offsetHeight</code> (<a
href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth#value">which
are integers</a> and can cause rounding/flickering problems in some
cases).</li>
</ul>
<h2>1.0.25</h2>
<ul>
<li>Dependencies updated to include React 19</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/45b1270b631829c29746de23ad8d60b9a19f0960"><code>45b1270</code></a>
Add deprecation warning for scaledWidth/scaledHeight accessors</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/e9c8ef003f09b13d4afa1a2dcb13f93d910dd937"><code>e9c8ef0</code></a>
Merge pull request <a
href="https://redirect.github.com/bvaughn/react-virtualized-auto-sizer/issues/97">#97</a>
from bvaughn/issues/96</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/fdf25d4075f3bb6ecc1062d2ad119459c8877f57"><code>fdf25d4</code></a>
Change width and height to come from getBoundingClientRect rather than
offset...</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/1898b073c15d4c62587cd2cab186a1b69f1131e4"><code>1898b07</code></a>
Tweaked README format</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/2dc8808e2654e4b2753a6f330dc87bb72c2958ee"><code>2dc8808</code></a>
1.0.24 -&gt; 1.0.25</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/801cc5239defabf2b0d53cfe236ea4cc447774e1"><code>801cc52</code></a>
Merge pull request <a
href="https://redirect.github.com/bvaughn/react-virtualized-auto-sizer/issues/93">#93</a>
from olafbuitelaar/patch-1</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/0b8b1811ffe82658f0330a5ae2726a105e71f9ce"><code>0b8b181</code></a>
updated deps to react 19</li>
<li><a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/commit/9f970c99fd53d7cb0908ad7d4de9982fdf63bd6e"><code>9f970c9</code></a>
Update README</li>
<li>See full diff in <a
href="https://github.com/bvaughn/react-virtualized-auto-sizer/compare/1.0.24...1.0.26">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/react-virtualized-auto-sizer` from 1.0.4 to 1.0.8
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-virtualized-auto-sizer">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 22:46:31 +00:00
dependabot[bot] 4e53d8b9c2 chore: bump @biomejs/biome from 2.2.0 to 2.2.4 in /site (#20118)
Bumps
[@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)
from 2.2.0 to 2.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/releases"><code>@​biomejs/biome</code>'s
releases</a>.</em></p>
<blockquote>
<h2>Biome CLI v2.2.4</h2>
<h2>2.2.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7453">#7453</a> <a
href="https://github.com/biomejs/biome/commit/aa8cea31af675699e18988fe79242ae5d5215af1">
<code>aa8cea3</code></a> Thanks <a
href="https://github.com/arendjr"><code>@​arendjr</code></a>! - Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7242">#7242</a>:
Aliases specified in
<code>package.json</code>'s <code>imports</code> section now support
having multiple targets as part of an array.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7454">#7454</a> <a
href="https://github.com/biomejs/biome/commit/ac171839a31600225e3b759470eaa026746e9cf4">
<code>ac17183</code></a> Thanks <a
href="https://github.com/arendjr"><code>@​arendjr</code></a>! - Greatly
improved performance of
<code>noImportCycles</code> by eliminating allocations.</p>
<p>In one repository, the total runtime of Biome with only
<code>noImportCycles</code> enabled went from ~23s down to ~4s.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7447">#7447</a> <a
href="https://github.com/biomejs/biome/commit/7139aad75b6e8045be6eb09425fb82eb035fb704">
<code>7139aad</code></a> Thanks <a
href="https://github.com/rriski"><code>@​rriski</code></a>! - Fixes <a
href="https://redirect.github.com/biomejs/biome/issues/7446">#7446</a>.
The GritQL
<code>$...</code> spread metavariable now correctly matches members in
object literals, aligning its behavior with arrays and function
calls.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/6710">#6710</a> <a
href="https://github.com/biomejs/biome/commit/98cf9af0a4e02434983899ce49d92209a6abab02">
<code>98cf9af</code></a> Thanks <a
href="https://github.com/arendjr"><code>@​arendjr</code></a>! - Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7423">#4723</a>:
Type inference now recognises
<em>index signatures</em> and their accesses when they are being indexed
as a string.</p>
<h4>Example</h4>
<pre lang="ts"><code>type BagOfPromises = {
// This is an index signature definition. It declares that instances of
type
  // `BagOfPromises` can be indexed using arbitrary strings.
  [property: string]: Promise&lt;void&gt;;
};
<p>let bag: BagOfPromises = {};
// Because <code>bag.iAmAPromise</code> is equivalent to
<code>bag[&amp;quot;iAmAPromise&amp;quot;]</code>, this is
// considered an access to the string index, and a Promise is expected.
bag.iAmAPromise;
</code></pre></p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7415">#7415</a> <a
href="https://github.com/biomejs/biome/commit/d042f18f556edfd4fecff562c8f197dbec81a5e7">
<code>d042f18</code></a> Thanks <a
href="https://github.com/qraqras"><code>@​qraqras</code></a>! - Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7212">#7212</a>,
now the <a href="https://biomejs.dev/linter/rules/use-optional-chain/">
<code>useOptionalChain</code></a> rule recognizes optional chaining
using
<code>typeof</code> (e.g., <code>typeof foo !== 'undefined' &amp;&amp;
foo.bar</code>).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7419">#7419</a> <a
href="https://github.com/biomejs/biome/commit/576baf4faf568e8b6a295f457f70894235ffdb59">
<code>576baf4</code></a> Thanks <a
href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed
<a
href="https://redirect.github.com/biomejs/biome/issues/7323">#7323</a>.
<a
href="https://biomejs.dev/linter/rules/no-unused-private-class-members/">
<code>noUnusedPrivateClassMembers</code></a> no longer reports as unused
TypeScript
<code>private</code> members if the rule encounters a computed access on
<code>this</code>.</p>
<p>In the following example, <code>member</code> as previously reported
as unused. It is no longer reported.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md"><code>@​biomejs/biome</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>2.2.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7453">#7453</a> <a
href="https://github.com/biomejs/biome/commit/aa8cea31af675699e18988fe79242ae5d5215af1"><code>aa8cea3</code></a>
Thanks <a href="https://github.com/arendjr"><code>@​arendjr</code></a>!
- Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7242">#7242</a>:
Aliases specified in
<code>package.json</code>'s <code>imports</code> section now support
having multiple targets as part of an array.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7454">#7454</a> <a
href="https://github.com/biomejs/biome/commit/ac171839a31600225e3b759470eaa026746e9cf4"><code>ac17183</code></a>
Thanks <a href="https://github.com/arendjr"><code>@​arendjr</code></a>!
- Greatly improved performance of
<code>noImportCycles</code> by eliminating allocations.</p>
<p>In one repository, the total runtime of Biome with only
<code>noImportCycles</code> enabled went from ~23s down to ~4s.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7447">#7447</a> <a
href="https://github.com/biomejs/biome/commit/7139aad75b6e8045be6eb09425fb82eb035fb704"><code>7139aad</code></a>
Thanks <a href="https://github.com/rriski"><code>@​rriski</code></a>! -
Fixes <a
href="https://redirect.github.com/biomejs/biome/issues/7446">#7446</a>.
The GritQL
<code>$...</code> spread metavariable now correctly matches members in
object literals, aligning its behavior with arrays and function
calls.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/6710">#6710</a> <a
href="https://github.com/biomejs/biome/commit/98cf9af0a4e02434983899ce49d92209a6abab02"><code>98cf9af</code></a>
Thanks <a href="https://github.com/arendjr"><code>@​arendjr</code></a>!
- Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7423">#4723</a>:
Type inference now recognises
<em>index signatures</em> and their accesses when they are being indexed
as a string.</p>
<h4>Example</h4>
<pre lang="ts"><code>type BagOfPromises = {
// This is an index signature definition. It declares that instances of
type
  // `BagOfPromises` can be indexed using arbitrary strings.
  [property: string]: Promise&lt;void&gt;;
};
<p>let bag: BagOfPromises = {};
// Because <code>bag.iAmAPromise</code> is equivalent to
<code>bag[&amp;quot;iAmAPromise&amp;quot;]</code>, this is
// considered an access to the string index, and a Promise is expected.
bag.iAmAPromise;
</code></pre></p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7415">#7415</a> <a
href="https://github.com/biomejs/biome/commit/d042f18f556edfd4fecff562c8f197dbec81a5e7"><code>d042f18</code></a>
Thanks <a href="https://github.com/qraqras"><code>@​qraqras</code></a>!
- Fixed <a
href="https://redirect.github.com/biomejs/biome/issues/7212">#7212</a>,
now the <a
href="https://biomejs.dev/linter/rules/use-optional-chain/"><code>useOptionalChain</code></a>
rule recognizes optional chaining using
<code>typeof</code> (e.g., <code>typeof foo !== 'undefined' &amp;&amp;
foo.bar</code>).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/biomejs/biome/pull/7419">#7419</a> <a
href="https://github.com/biomejs/biome/commit/576baf4faf568e8b6a295f457f70894235ffdb59"><code>576baf4</code></a>
Thanks <a
href="https://github.com/Conaclos"><code>@​Conaclos</code></a>! - Fixed
<a
href="https://redirect.github.com/biomejs/biome/issues/7323">#7323</a>.
<a
href="https://biomejs.dev/linter/rules/no-unused-private-class-members/"><code>noUnusedPrivateClassMembers</code></a>
no longer reports as unused TypeScript
<code>private</code> members if the rule encounters a computed access on
<code>this</code>.</p>
<p>In the following example, <code>member</code> as previously reported
as unused. It is no longer reported.</p>
<pre lang="ts"><code>class TsBioo {
  private member: number;
<p>set_with_name(name: string, value: number) {
this[name] = value;
}
}
</code></pre></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/biomejs/biome/commit/5d212c5ab940ba83cc72d4aa9936ebbb1964ae7a"><code>5d212c5</code></a>
ci: release (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7450">#7450</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/351bccdfe49a6173cb1446ef2a8a9171c8d78c26"><code>351bccd</code></a>
chore: restore release files</li>
<li><a
href="https://github.com/biomejs/biome/commit/32dbfa156b3d097813ff96e53a65b4004adb3591"><code>32dbfa1</code></a>
ci: release (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7413">#7413</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/75b6a0d12f3aa30647f743d607b0d60c0470fff3"><code>75b6a0d</code></a>
feat(linter): add rule <code>noJsxLiterals</code> (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7248">#7248</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/53ff5ae34428f042bb5b80c19862c9cf69fc6359"><code>53ff5ae</code></a>
feat(analyse/json): add <code>noDuplicateDependencies</code> rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7142">#7142</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/daa4a66e7971800a5e15024f5b5535d072087ac9"><code>daa4a66</code></a>
ci: release (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7306">#7306</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/0f38ea689acf6c64b0e749d34da48a03a9708067"><code>0f38ea6</code></a>
chore: add new bronze sponsor (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7397">#7397</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/7f532745900936039e77cc0b4254562ec9a7376d"><code>7f53274</code></a>
docs: safety of useSortedKeys (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/6112">#6112</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/fad34b9db9778fe964ff7dbc489de0bfad2d3ece"><code>fad34b9</code></a>
feat(biome_js_analyze): add UseConsistentArrowReturn rule (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7245">#7245</a>)</li>
<li><a
href="https://github.com/biomejs/biome/commit/4416573f4d709047a28407d99381810b7bc7dcc7"><code>4416573</code></a>
feat(lint/vue): implement <code>useVueMultiWordComponentNames</code> (<a
href="https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome/issues/7373">#7373</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/biomejs/biome/commits/@biomejs/biome@2.2.4/packages/@biomejs/biome">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@biomejs/biome&package-manager=npm_and_yarn&previous-version=2.2.0&new-version=2.2.4)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 22:12:40 +00:00
dependabot[bot] 230df3eadf chore: bump react-confetti from 6.2.2 to 6.4.0 in /site (#20126)
Bumps [react-confetti](https://github.com/alampros/react-confetti) from
6.2.2 to 6.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/alampros/react-confetti/releases">react-confetti's
releases</a>.</em></p>
<blockquote>
<h2>v6.4.0</h2>
<h1><a
href="https://github.com/alampros/react-confetti/compare/v6.3.0...v6.4.0">6.4.0</a>
(2025-03-04)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>clamp tweenProgress between 0 and tweenDuration (<a
href="https://github.com/alampros/react-confetti/commit/f988305151150522111c7b846303ba2263fa85e9">f988305</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>adding tweenFrom property to allow smooth transition when parameters
change (<a
href="https://github.com/alampros/react-confetti/commit/dde31e0e28da164f7b9f3909e73baa6ffe24cf68">dde31e0</a>)</li>
</ul>
<h2>v6.3.0</h2>
<h1><a
href="https://github.com/alampros/react-confetti/compare/v6.2.3...v6.3.0">6.3.0</a>
(2025-03-01)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>prevent particle flicker on removal (<a
href="https://github.com/alampros/react-confetti/commit/5cb5bd87032705b90a8d85588d931b985a4127e5">5cb5bd8</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>using elapsed time in physics updates (<a
href="https://github.com/alampros/react-confetti/commit/d1626dcd16758f627749a30794075663c5fce15f">d1626dc</a>)</li>
</ul>
<h2>v6.2.3</h2>
<h2><a
href="https://github.com/alampros/react-confetti/compare/v6.2.2...v6.2.3">6.2.3</a>
(2025-02-22)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>export IConfettiOptions (<a
href="https://github.com/alampros/react-confetti/commit/73dffe8f87cb87ed7aed42effdc056ac6fe8ffde">73dffe8</a>),
closes <a
href="https://redirect.github.com/alampros/react-confetti/issues/165">#165</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/alampros/react-confetti/blob/develop/CHANGELOG.md">react-confetti's
changelog</a>.</em></p>
<blockquote>
<h1><a
href="https://github.com/alampros/react-confetti/compare/v6.3.0...v6.4.0">6.4.0</a>
(2025-03-04)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>clamp tweenProgress between 0 and tweenDuration (<a
href="https://github.com/alampros/react-confetti/commit/f988305151150522111c7b846303ba2263fa85e9">f988305</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>adding tweenFrom property to allow smooth transition when parameters
change (<a
href="https://github.com/alampros/react-confetti/commit/dde31e0e28da164f7b9f3909e73baa6ffe24cf68">dde31e0</a>)</li>
</ul>
<h1><a
href="https://github.com/alampros/react-confetti/compare/v6.2.3...v6.3.0">6.3.0</a>
(2025-03-01)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>prevent particle flicker on removal (<a
href="https://github.com/alampros/react-confetti/commit/5cb5bd87032705b90a8d85588d931b985a4127e5">5cb5bd8</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>using elapsed time in physics updates (<a
href="https://github.com/alampros/react-confetti/commit/d1626dcd16758f627749a30794075663c5fce15f">d1626dc</a>)</li>
</ul>
<h2><a
href="https://github.com/alampros/react-confetti/compare/v6.2.2...v6.2.3">6.2.3</a>
(2025-02-22)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>export IConfettiOptions (<a
href="https://github.com/alampros/react-confetti/commit/73dffe8f87cb87ed7aed42effdc056ac6fe8ffde">73dffe8</a>),
closes <a
href="https://redirect.github.com/alampros/react-confetti/issues/165">#165</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/alampros/react-confetti/commit/0d535377bc449b9515e19975315620a13ca20dba"><code>0d53537</code></a>
chore(release): 6.4.0 [skip ci]</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/641b3519007b53699b876c4b7d6e32473633366c"><code>641b351</code></a>
Merge branch 'develop'</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/6ac61ed2d39743845efe23f2c25783b1f763c165"><code>6ac61ed</code></a>
lint fix</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/90f5a594883b95cc6f6ee4e291a8878e2222a77e"><code>90f5a59</code></a>
Merge pull request <a
href="https://redirect.github.com/alampros/react-confetti/issues/172">#172</a>
from AlexJDG/bugfix/fix-tweening</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/f988305151150522111c7b846303ba2263fa85e9"><code>f988305</code></a>
fix: clamp tweenProgress between 0 and tweenDuration</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/dde31e0e28da164f7b9f3909e73baa6ffe24cf68"><code>dde31e0</code></a>
feat: adding tweenFrom property to allow smooth transition when
parameters ch...</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/5dd9f7b4ea29c9460b0fd7ffb1864d178b1aa2ac"><code>5dd9f7b</code></a>
chore: renaming property for clarity</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/31eb46d24be1398cb81d501670dec96aba518cb6"><code>31eb46d</code></a>
chore(release): 6.3.0 [skip ci]</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/e44738908b515237443cbb865cd1e61fdcc2a938"><code>e447389</code></a>
Merge branch 'develop'</li>
<li><a
href="https://github.com/alampros/react-confetti/commit/b1779918cf790752a4095df4ecb794a97b025994"><code>b177991</code></a>
fix lint action name</li>
<li>Additional commits viewable in <a
href="https://github.com/alampros/react-confetti/compare/v6.2.2...v6.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-confetti&package-manager=npm_and_yarn&previous-version=6.2.2&new-version=6.4.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 22:11:37 +00:00
Asher 94c76b97bd feat: add list_apps MCP tool (#19952) 2025-10-01 13:57:11 -08:00
Asher ebcfae27a2 feat: add task create, list, status, and delete MCP tools (#19901) 2025-10-01 13:39:45 -08:00
dependabot[bot] 0993dcfef7 chore: bump monaco-editor from 0.52.2 to 0.53.0 in /site (#20120)
Bumps [monaco-editor](https://github.com/microsoft/monaco-editor) from
0.52.2 to 0.53.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/monaco-editor/releases">monaco-editor's
releases</a>.</em></p>
<blockquote>
<h2>v0.53.0</h2>
<h2>Changes:</h2>
<ul>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4980">#4980</a>:
sets node version</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4979">#4979</a>:
v0.53.0</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4978">#4978</a>:
updates changelog</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4975">#4975</a>:
Fixes worker sandbox problems</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4969">#4969</a>:
Implements language selection</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4967">#4967</a>:
adds amd and firefox/webkit to smoke tests</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4966">#4966</a>:
Fixes AMD web worker loading</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4965">#4965</a>:
Updates monaco-editor-core dependency &amp; fixes basic-languages amd
file</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4964">#4964</a>:
Run npm run playwright-install</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4963">#4963</a>:
Hediet/b/successful mosquito</li>
</ul>
<!-- raw HTML omitted -->
<ul>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4962">#4962</a>:
Fixes node version</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4950">#4950</a>:
ESM Progress</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4913">#4913</a>:
Bump webpack-dev-server from 4.10.0 to 5.2.1 in /samples</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4915">#4915</a>:
Add snowflake sql keywords</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4895">#4895</a>:
Fixes <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4799">microsoft/monaco-editor#4799</a></li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4742">#4742</a>:
Update webpack plugin to support module workers</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4824">#4824</a>:
Fix CI and website workflows</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4747">#4747</a>:
Engineering - add dependsOn field</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4734">#4734</a>:
Bump express from 4.19.2 to 4.21.1 in /website</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4616">#4616</a>:
Bump requirejs from 2.3.6 to 2.3.7</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4668">#4668</a>:
Bump micromatch from 4.0.5 to 4.0.8 in /website</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4726">#4726</a>:
Bump http-proxy-middleware from 2.0.6 to 2.0.7 in /website</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4595">#4595</a>:
Bump ws from 8.8.1 to 8.18.0 in /samples</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4697">#4697</a>:
Bump body-parser and express in /samples</li>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4696">#4696</a>:
Bump rollup from 2.79.1 to 2.79.2</li>
</ul>
<p>This list of changes was <a
href="https://dev.azure.com/monacotools/Monaco/_build/results?buildId=356772&amp;view=logs">auto
generated</a>.<!-- raw HTML omitted --></p>
<h2>v0.53.0-rc2</h2>
<p>No release notes provided.</p>
<h2>v0.53.0-dev-20250908</h2>
<p>No release notes provided.</p>
<h2>v0.53.0-dev-20250907</h2>
<p>No release notes provided.</p>
<h2>v0.53.0-dev-20250906</h2>
<h2>Changes:</h2>
<ul>
<li><a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4978">#4978</a>:
updates changelog</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md">monaco-editor's
changelog</a>.</em></p>
<blockquote>
<h2>[0.53.0]</h2>
<ul>
<li>⚠️ This release deprecates the AMD build and ships with
significant changes of the AMD build. The AMD build will still be
shipped for a while, but we don't offer support for it anymore. Please
migrate to the ESM build.</li>
</ul>
<h3>New Features</h3>
<ul>
<li>Next Edit Suggestion support.</li>
<li>Scroll On Middle Click</li>
<li>Edit Context Support</li>
</ul>
<h3>Breaking Changes</h3>
<ul>
<li>Internal AMD modules are no longer accessible. Accessing internal
AMD modules was never supported. While this is still possible in the ESM
build, we don't encourage this usage pattern.</li>
<li>The <a
href="https://github.com/microsoft/monaco-editor/blob/a4d7907bd439b06b24e334bdf2ab597bcae658b5/samples/browser-script-editor/index.html">browser-script-editor
scenario</a> for unbundled synchronous script import and editor creation
no longer works. Instead, a the ESM build should be used with a bundler,
such as vite or webpack.</li>
<li>Custom AMD workers don't work anymore out of the box.</li>
</ul>
<h2>[0.52.0]</h2>
<ul>
<li>Comment added inside of <code>IModelContentChangedEvent</code></li>
</ul>
<h2>[0.51.0]</h2>
<ul>
<li>New fields <code>IEditorOptions.placeholder</code> and
<code>IEditorOptions.compactMode</code></li>
<li>New fields <code>IGotoLocationOptions.multipleTests</code> and
<code>IGotoLocationOptions.alternativeTestsCommand</code></li>
<li>New field <code>IInlineEditOptions.backgroundColoring</code></li>
<li>New experimental field
<code>IEditorOptions.experimental.useTrueInlineView</code></li>
<li>New options <code>CommentThreadRevealOptions</code> for
comments</li>
</ul>
<p>Contributions to <code>monaco-editor</code>:</p>
<ul>
<li><a href="https://github.com/ScottCarda-MS"><code>@​ScottCarda-MS
(Scott Carda)</code></a>: Update Q# Keywords [PR <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4586">#4586</a>](<a
href="https://redirect.github.com/microsoft/monaco-editor/pull/4586">microsoft/monaco-editor#4586</a>)</li>
</ul>
<h2>[0.50.0]</h2>
<ul>
<li>New field
<code>IEditorMinimapOptions.sectionHeaderLetterSpacing</code></li>
<li>New field <code>IOverlayWidgetPosition.stackOridinal</code></li>
<li>New field <code>EmitOutput.diagnostics</code></li>
<li>New event <code>IOverlayWidget.onDidLayout</code></li>
<li>New events <code>ICodeEditor.onBeginUpdate</code> and
<code>ICodeEditor.onEndUpdate</code></li>
<li><code>HoverVerbosityRequest.action</code> -&gt;
<code>HoverVerbosityRequest.verbosityDelta</code></li>
<li><code>MultiDocumentHighlightProvider.selector</code> changed from
<code>LanguageFilter</code> to <code>LanguageSelector</code></li>
<li>New optional parameters in <code>getEmitOutput</code>:
<code>emitOnlyDtsFiles</code> and <code>forceDtsEmit</code></li>
</ul>
<p>Contributions to <code>monaco-editor</code>:</p>
<ul>
<li><a href="https://github.com/htcfreek"><code>@​htcfreek
(Heiko)</code></a>: Add extension to <code>csp.contribution.ts</code>
[PR <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4504">#4504</a>](<a
href="https://redirect.github.com/microsoft/monaco-editor/pull/4504">microsoft/monaco-editor#4504</a>)</li>
<li><a href="https://github.com/jakebailey"><code>@​jakebailey (Jake
Bailey)</code></a>: Call clearFiles on internal EmitOutput diagnostics,
pass args down [PR <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4482">#4482</a>](<a
href="https://redirect.github.com/microsoft/monaco-editor/pull/4482">microsoft/monaco-editor#4482</a>)</li>
<li><a href="https://github.com/johnyanarella"><code>@​johnyanarella
(John Yanarella)</code></a>: Update TypeScript to TS 5.4.5 in all
projects, vendored files [PR <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4305">#4305</a>](<a
href="https://redirect.github.com/microsoft/monaco-editor/pull/4305">microsoft/monaco-editor#4305</a>)</li>
<li><a
href="https://github.com/samstrohkorbatt"><code>@​samstrohkorbatt</code></a>:
Adding Python f-string syntax support [PR <a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4401">#4401</a>](<a
href="https://redirect.github.com/microsoft/monaco-editor/pull/4401">microsoft/monaco-editor#4401</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/4e45ba0c5ff45fc61c0ccac61c0987369df04a6e"><code>4e45ba0</code></a>
sets node version (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4980">#4980</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/c7f027ed9e925e7704f24eb93d99defa867cda7c"><code>c7f027e</code></a>
v0.53.0 (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4979">#4979</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/c41951a02b7e9497484ed259a4af7197c4b0c123"><code>c41951a</code></a>
updates changelog (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4978">#4978</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/759c442daedd192c1b61abacb624b68665dbd1b6"><code>759c442</code></a>
Fixes css and amd output</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/6f3fbe8c3a8e14adff806a554cebe97aa8f4a2a3"><code>6f3fbe8</code></a>
Fixes worker sandbox problems (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4975">#4975</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/a4d7907bd439b06b24e334bdf2ab597bcae658b5"><code>a4d7907</code></a>
Implements language selection (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4969">#4969</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/9e4368a8e92e9035d9bdc719a90f908a01067c41"><code>9e4368a</code></a>
adds amd and firefox/webkit to smoke tests (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4967">#4967</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/d2c20a1ad77b3aa406aad09f9576e91619fa5dcb"><code>d2c20a1</code></a>
Fixes AMD web worker loading (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4966">#4966</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/3bfde9adce4057c11fcb56ffa39fa5ab9a463875"><code>3bfde9a</code></a>
Updates monaco-editor-core dependency &amp; fixes basic-languages amd
file (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4965">#4965</a>)</li>
<li><a
href="https://github.com/microsoft/monaco-editor/commit/15e0a937777d0b7639d4c987e00ad5fcf4d1d47e"><code>15e0a93</code></a>
Run npm run playwright-install (<a
href="https://redirect.github.com/microsoft/monaco-editor/issues/4964">#4964</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/monaco-editor/compare/v0.52.2...v0.53.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=monaco-editor&package-manager=npm_and_yarn&previous-version=0.52.2&new-version=0.53.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:57:55 +00:00
dependabot[bot] f05ccfe525 chore: bump postcss from 8.5.1 to 8.5.6 in /site (#20113)
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.1 to 8.5.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/releases">postcss's
releases</a>.</em></p>
<blockquote>
<h2>8.5.6</h2>
<ul>
<li>Fixed <code>ContainerWithChildren</code> type discriminating (by <a
href="https://github.com/Goodwine"><code>@​Goodwine</code></a>).</li>
</ul>
<h2>8.5.5</h2>
<ul>
<li>Fixed <code>package.json</code>→<code>exports</code> compatibility
with some tools (by <a
href="https://github.com/JounQin"><code>@​JounQin</code></a>).</li>
</ul>
<h2>8.5.4</h2>
<ul>
<li>Fixed Parcel compatibility issue (by <a
href="https://github.com/git-sumitchaudhary"><code>@​git-sumitchaudhary</code></a>).</li>
</ul>
<h2>8.5.3</h2>
<ul>
<li>Added more details to <code>Unknown word</code> error (by <a
href="https://github.com/hiepxanh"><code>@​hiepxanh</code></a>).</li>
<li>Fixed types (by <a
href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed docs (by <a
href="https://github.com/catnipan"><code>@​catnipan</code></a>).</li>
</ul>
<h2>8.5.2</h2>
<ul>
<li>Fixed end position of rules with semicolon (by <a
href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/postcss/blob/main/CHANGELOG.md">postcss's
changelog</a>.</em></p>
<blockquote>
<h2>8.5.6</h2>
<ul>
<li>Fixed <code>ContainerWithChildren</code> type discriminating (by <a
href="https://github.com/Goodwine"><code>@​Goodwine</code></a>).</li>
</ul>
<h2>8.5.5</h2>
<ul>
<li>Fixed <code>package.json</code>→<code>exports</code> compatibility
with some tools (by <a
href="https://github.com/JounQin"><code>@​JounQin</code></a>).</li>
</ul>
<h2>8.5.4</h2>
<ul>
<li>Fixed Parcel compatibility issue (by <a
href="https://github.com/git-sumitchaudhary"><code>@​git-sumitchaudhary</code></a>).</li>
</ul>
<h2>8.5.3</h2>
<ul>
<li>Added more details to <code>Unknown word</code> error (by <a
href="https://github.com/hiepxanh"><code>@​hiepxanh</code></a>).</li>
<li>Fixed types (by <a
href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
<li>Fixed docs (by <a
href="https://github.com/catnipan"><code>@​catnipan</code></a>).</li>
</ul>
<h2>8.5.2</h2>
<ul>
<li>Fixed end position of rules with semicolon (by <a
href="https://github.com/romainmenke"><code>@​romainmenke</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/postcss/postcss/commit/91d6eb5c3d1ca8acb4e8e3926005acf2b066c211"><code>91d6eb5</code></a>
Release 8.5.6 version</li>
<li><a
href="https://github.com/postcss/postcss/commit/65ffc55117bf4289b1f977986ed76fad402641b1"><code>65ffc55</code></a>
Update dependencies</li>
<li><a
href="https://github.com/postcss/postcss/commit/ecd20eb7f9587d63e3f3348b768aec0e9fb000d3"><code>ecd20eb</code></a>
Fix ContainerWithChildren to allow discriminating the node type by
comparing ...</li>
<li><a
href="https://github.com/postcss/postcss/commit/c18159719e4a6d65ad7085edf1dc42e07814f683"><code>c181597</code></a>
Release 8.5.5 version</li>
<li><a
href="https://github.com/postcss/postcss/commit/c5523fbec5f32622e77103c643e1258007c2609d"><code>c5523fb</code></a>
Update dependencies</li>
<li><a
href="https://github.com/postcss/postcss/commit/2e3450c55f41e378e086f4f189e5243a573c3390"><code>2e3450c</code></a>
refactor: <code>import</code> should be listed before
<code>require</code> (<a
href="https://redirect.github.com/postcss/postcss/issues/2052">#2052</a>)</li>
<li><a
href="https://github.com/postcss/postcss/commit/4d720bd01adec2e8645bf91e725825bebb712e1b"><code>4d720bd</code></a>
Update EM text</li>
<li><a
href="https://github.com/postcss/postcss/commit/6cb4a6673fb6d8b23eb1ebe66a22b6267ab141de"><code>6cb4a66</code></a>
Release 8.5.4 version</li>
<li><a
href="https://github.com/postcss/postcss/commit/ec5c1e031083664bed1cf91eaac72f8c61068110"><code>ec5c1e0</code></a>
Update dependencies</li>
<li><a
href="https://github.com/postcss/postcss/commit/e85e9385c87499bc7e274c6ce332cf59e3988994"><code>e85e938</code></a>
Fix code format</li>
<li>Additional commits viewable in <a
href="https://github.com/postcss/postcss/compare/8.5.1...8.5.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=postcss&package-manager=npm_and_yarn&previous-version=8.5.1&new-version=8.5.6)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:57:46 +00:00
dependabot[bot] b68c648476 chore: bump react-resizable-panels from 3.0.3 to 3.0.6 in /site (#20125)
Bumps
[react-resizable-panels](https://github.com/bvaughn/react-resizable-panels)
from 3.0.3 to 3.0.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/bvaughn/react-resizable-panels/releases">react-resizable-panels's
releases</a>.</em></p>
<blockquote>
<h2>3.0.6</h2>
<ul>
<li><a
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/517">#517</a>:
Fixed Firefox bug that caused resizing to be interrupted unexpected</li>
</ul>
<h2>3.0.5</h2>
<ul>
<li><a
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/512">#512</a>:
Fixed size precision regression from 2.0.17</li>
</ul>
<h2>3.0.4</h2>
<ul>
<li><a
href="https://redirect.github.com/bvaughn/react-resizable-panels/pull/503">#503</a>:
Support custom cursors</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/43a071df6bb96d54e8b81a6be0e2d453af45cc4b"><code>43a071d</code></a>
3.0.5 -&gt; 3.0.6</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/2bb5e969431581f57f6507726ca26998f5d25663"><code>2bb5e96</code></a>
Fix Firefox drag bug (<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/517">#517</a>)</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/f65a4815c73d43ae884c0465d59da76991f4d14e"><code>f65a481</code></a>
3.0.4 -&gt; 3.0.5</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/0bfe50b08535970513c1b4d91d23f3d223fb24f0"><code>0bfe50b</code></a>
Prettier</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/25c91ac9d77db5c6e00f3d19690cd3780e431289"><code>25c91ac</code></a>
reintroduce toFixed changes from 2.0.16 removed in 2.0.17 (<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/512">#512</a>)</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/97b6d482f5d83da1f561874619eff95026efee6f"><code>97b6d48</code></a>
Update Code Sandbox link</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/45300ec4463da75caa2147243e16de19c4183d33"><code>45300ec</code></a>
Remove duplication in Panel component's Imperative API docs. (<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/511">#511</a>)</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/8d426e7fbddf2a6fe1c5e9e6c91f23ea30107ce0"><code>8d426e7</code></a>
Fix typo in README.md (<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/509">#509</a>)</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/5af2d8d030a034e9295bc31d8229f70004dd2e25"><code>5af2d8d</code></a>
3.0.3 -&gt; 3.0.4</li>
<li><a
href="https://github.com/bvaughn/react-resizable-panels/commit/9b69a44a1f32657a9c6e2d41b73153814909e9a7"><code>9b69a44</code></a>
Support custom cursors (<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/503">#503</a>)
(<a
href="https://redirect.github.com/bvaughn/react-resizable-panels/issues/504">#504</a>)</li>
<li>See full diff in <a
href="https://github.com/bvaughn/react-resizable-panels/compare/3.0.3...3.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-resizable-panels&package-manager=npm_and_yarn&previous-version=3.0.3&new-version=3.0.6)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:51:57 +00:00
dependabot[bot] e89c7cdcef chore: bump @fontsource/ibm-plex-mono from 5.1.1 to 5.2.7 in /site (#20127)
Bumps
[@fontsource/ibm-plex-mono](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/ibm-plex-mono)
from 5.1.1 to 5.2.7.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/fontsource/font-files/commits/HEAD/fonts/google/ibm-plex-mono">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@fontsource/ibm-plex-mono&package-manager=npm_and_yarn&previous-version=5.1.1&new-version=5.2.7)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:51:43 +00:00
dependabot[bot] b92a0f428c chore: bump autoprefixer from 10.4.20 to 10.4.21 in /site (#20124)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from
10.4.20 to 10.4.21.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/autoprefixer/releases">autoprefixer's
releases</a>.</em></p>
<blockquote>
<h2>10.4.21</h2>
<ul>
<li>Fixed old <code>-moz-</code> prefix for
<code>:placeholder-shown</code> (by <a
href="https://github.com/Marukome0743"><code>@​Marukome0743</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md">autoprefixer's
changelog</a>.</em></p>
<blockquote>
<h2>10.4.21</h2>
<ul>
<li>Fixed old <code>-moz-</code> prefix for
<code>:placeholder-shown</code> (by <a
href="https://github.com/Marukome0743"><code>@​Marukome0743</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/postcss/autoprefixer/commit/541295c0e6dd348db2d3f52772b59cd403c59d29"><code>541295c</code></a>
Release 10.4.21 version</li>
<li><a
href="https://github.com/postcss/autoprefixer/commit/8d555f7e5e665d6a70e1d08db6e0bc9c4262db66"><code>8d555f7</code></a>
Update dependencies and sort imports</li>
<li><a
href="https://github.com/postcss/autoprefixer/commit/5c2421e82af45ee085d0806110fcef66bbebe59b"><code>5c2421e</code></a>
Update Node.js and pnpm on CI</li>
<li><a
href="https://github.com/postcss/autoprefixer/commit/af9cb5f365f66bf5169f1f42e08036651453b1a6"><code>af9cb5f</code></a>
fix: replace <code>:-moz-placeholder-shown</code> with
<code>:-moz-placeholder</code> (<a
href="https://redirect.github.com/postcss/autoprefixer/issues/1532">#1532</a>)</li>
<li>See full diff in <a
href="https://github.com/postcss/autoprefixer/compare/10.4.20...10.4.21">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=autoprefixer&package-manager=npm_and_yarn&previous-version=10.4.20&new-version=10.4.21)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:51:24 +00:00
dependabot[bot] cf8d7665e3 chore: bump chroma-js from 2.4.2 to 2.6.0 in /site (#20123)
Bumps [chroma-js](https://github.com/gka/chroma.js) from 2.4.2 to 2.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gka/chroma.js/releases">chroma-js's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>🎉 NEW: color.tint + color.shade (thanks to <a
href="https://github.com/tremby"><code>@​tremby</code></a> in <a
href="https://redirect.github.com/gka/chroma.js/pull/246">gka/chroma.js#246</a>)</li>
<li>fix: remove false w3c color cornflower (thanks to <a
href="https://github.com/friedPotat0"><code>@​friedPotat0</code></a> in
<a
href="https://redirect.github.com/gka/chroma.js/pull/298">gka/chroma.js#298</a>)</li>
<li>docs: replace website with archive by <a
href="https://github.com/Artoria2e5"><code>@​Artoria2e5</code></a> in <a
href="https://redirect.github.com/gka/chroma.js/pull/264">gka/chroma.js#264</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gka/chroma.js/compare/v2.5.0...v2.6.0">https://github.com/gka/chroma.js/compare/v2.5.0...v2.6.0</a></p>
<h2>v2.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>🎉 Big code refactoring to ES modules plus dependency and build setup
updates by <a href="https://github.com/gka"><code>@​gka</code></a> &amp;
<a href="https://github.com/zyyv"><code>@​zyyv</code></a> in <a
href="https://redirect.github.com/gka/chroma.js/pull/336">gka/chroma.js#336</a></li>
<li>Update 404 links in readme.md by <a
href="https://github.com/rdela"><code>@​rdela</code></a> in <a
href="https://redirect.github.com/gka/chroma.js/pull/326">gka/chroma.js#326</a></li>
<li>Update readme.md by <a
href="https://github.com/JiatLn"><code>@​JiatLn</code></a> in <a
href="https://redirect.github.com/gka/chroma.js/pull/307a.js/pull/336">gka/chroma.js#307</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/zyyv"><code>@​zyyv</code></a> made their
first contribution in <a
href="https://redirect.github.com/gka/chroma.js/pull/336">gka/chroma.js#336</a></li>
<li><a href="https://github.com/rdela"><code>@​rdela</code></a> made
their first contribution in <a
href="https://redirect.github.com/gka/chroma.js/pull/326">gka/chroma.js#326</a></li>
<li><a href="https://github.com/JiatLn"><code>@​JiatLn</code></a> made
their first contribution in <a
href="https://redirect.github.com/gka/chroma.js/pull/307">gka/chroma.js#307</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/gka/chroma.js/compare/v2.3.0...v2.5.0">https://github.com/gka/chroma.js/compare/v2.3.0...v2.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/gka/chroma.js/blob/main/CHANGELOG.md">chroma-js's
changelog</a>.</em></p>
<blockquote>
<h3>2.6.0</h3>
<ul>
<li>🎉 NEW: add <a
href="https://github.com/gka/chroma.js/blob/main%5Bhttps://github.com/gka/chroma.js/blob/main%60https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main.https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main%60https://github.com/gka/chroma.js/blob/main%5Dhttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main#https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main-https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main">https://github.com/gka/chroma.js/blob/main[https://github.com/gka/chroma.js/blob/main`https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main.https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main`https://github.com/gka/chroma.js/blob/main]https://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main#https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main-https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main</a>,
<a
href="https://github.com/gka/chroma.js/blob/main%5Bhttps://github.com/gka/chroma.js/blob/main%60https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main.https://github.com/gka/chroma.js/blob/mainthttps://github.com/gka/chroma.js/blob/mainihttps://github.com/gka/chroma.js/blob/mainnhttps://github.com/gka/chroma.js/blob/mainthttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main%60https://github.com/gka/chroma.js/blob/main%5Dhttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main#https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main-https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main">https://github.com/gka/chroma.js/blob/main[https://github.com/gka/chroma.js/blob/main`https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main.https://github.com/gka/chroma.js/blob/mainthttps://github.com/gka/chroma.js/blob/mainihttps://github.com/gka/chroma.js/blob/mainnhttps://github.com/gka/chroma.js/blob/mainthttps://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main`https://github.com/gka/chroma.js/blob/main]https://github.com/gka/chroma.js/blob/main(https://github.com/gka/chroma.js/blob/main#https://github.com/gka/chroma.js/blob/mainchttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainlhttps://github.com/gka/chroma.js/blob/mainohttps://github.com/gka/chroma.js/blob/mainrhttps://github.com/gka/chroma.js/blob/main-https://github.com/gka/chroma.js/blob/mainshttps://github.com/gka/chroma.js/blob/mainhhttps://github.com/gka/chroma.js/blob/mainahttps://github.com/gka/chroma.js/blob/maindhttps://github.com/gka/chroma.js/blob/mainehttps://github.com/gka/chroma.js/blob/main)https://github.com/gka/chroma.js/blob/main</a>.</li>
<li>fix: remove false w3c color cornflower</li>
</ul>
<h3>2.5.0</h3>
<ul>
<li>refactored code base to ES6 modules</li>
</ul>
<h3>2.4.0</h3>
<ul>
<li>add support for Oklab and Oklch color spaces</li>
</ul>
<h3>2.3.0</h3>
<ul>
<li>use binom of degree n in chroma.bezier</li>
</ul>
<h3>2.2.0</h3>
<ul>
<li>use Delta e2000 for chroma.deltaE <a
href="https://redirect.github.com/gka/chroma.js/issues/269">#269</a></li>
</ul>
<h3>2.0.3</h3>
<ul>
<li>hsl2rgb will, like other x2rgb conversions now set the default alpha
to 1</li>
</ul>
<h3>2.0.2</h3>
<ul>
<li>use a more mangle-safe check for Color class constructor to fix
issues with uglifyjs and terser</li>
</ul>
<h3>2.0.1</h3>
<ul>
<li>added <code>chroma.valid()</code> for checking if a color can be
parsed by chroma.js</li>
</ul>
<h3>2.0.0</h3>
<ul>
<li>chroma.js has been ported from CoffeeScript to ES6! This means you
can now import parts of chroma in your projects!</li>
<li>changed HCG input space from [0..360,0..100,0..100] to
[0..360,0..1,0..1] (to be in line with HSL)</li>
<li>added new object unpacking (e.g. <code>hsl2rgb({h,s,l})</code>)</li>
<li>changed default interpolation to <code>lrgb</code> in
mix/interpolate and average.</li>
<li>if colors can't be parsed correctly, chroma will now throw Errors
instead of silently failing with console.errors</li>
</ul>
<h3>1.4.1</h3>
<ul>
<li>chroma.scale() now interprets <code>null</code> as NaN and returns
the fallback color. Before it had interpreted <code>null</code> as
<code>0</code></li>
<li>added <code>scale.nodata()</code> to allow customizing the
previously hard-coded fallback (aka &quot;no data&quot;) color
#cccccc</li>
</ul>
<h3>1.4.0</h3>
<ul>
<li>color.hex() now automatically sets the mode to 'rgba' if the colors
alpha channel is &lt; 1. so
<code>chroma('rgba(255,0,0,.5)').hex()</code> will now return
<code>&quot;#ff000080&quot;</code> instead of
<code>&quot;#ff0000&quot;</code>. if this is not what you want, you must
explicitly set the mode to <code>rgb</code> using
<code>.hex(&quot;rgb&quot;)</code>.</li>
<li>bugfix in chroma.average in LRGB mode (<a
href="https://redirect.github.com/gka/chroma.js/issues/187">#187</a>)</li>
<li>chroma.scale now also works with just one color (<a
href="https://redirect.github.com/gka/chroma.js/issues/180">#180</a>)</li>
</ul>
<h3>1.3.5</h3>
<ul>
<li>added LRGB interpolation</li>
</ul>
<h3>1.3.4</h3>
<ul>
<li>passing <em>null</em> as mode in scale.colors will return chroma
objects</li>
</ul>
<h3>1.3.3</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/gka/chroma.js/commits/v2.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chroma-js&package-manager=npm_and_yarn&previous-version=2.4.2&new-version=2.6.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:50:53 +00:00
dependabot[bot] 4cabb9528e chore: bump @types/lodash from 4.17.15 to 4.17.20 in /site (#20122)
Bumps
[@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash)
from 4.17.15 to 4.17.20.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/lodash&package-manager=npm_and_yarn&previous-version=4.17.15&new-version=4.17.20)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:46:34 +00:00
dependabot[bot] 29aa1cc572 chore: bump tailwindcss from 3.4.17 to 3.4.18 in /site (#20117)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps
[tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)
from 3.4.17 to 3.4.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/releases">tailwindcss's
releases</a>.</em></p>
<blockquote>
<h2>v3.4.18</h2>
<h3>Fixed</h3>
<ul>
<li>Improve support for raw <code>supports-[…]</code> queries in
arbitrary values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/13605">#13605</a>)</li>
<li>Fix <code>require.cache</code> error when loaded through a
TypeScript file in Node 22.18+ (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18665">#18665</a>)</li>
<li>Support <code>import.meta.resolve(…)</code> in configs for new
enough Node.js versions (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18938">#18938</a>)</li>
<li>Allow using newer versions of <code>postcss-load-config</code> for
better ESM and TypeScript PostCSS config support with the CLI (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18938">#18938</a>)</li>
<li>Remove irrelevant utility rules when matching important classes (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19030">#19030</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md">tailwindcss's
changelog</a>.</em></p>
<blockquote>
<h2>[3.4.18] - 2024-10-01</h2>
<h3>Fixed</h3>
<ul>
<li>Improve support for raw <code>supports-[…]</code> queries in
arbitrary values (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/13605">#13605</a>)</li>
<li>Fix <code>require.cache</code> error when loaded through a
TypeScript file in Node 22.18+ (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18665">#18665</a>)</li>
<li>Support <code>import.meta.resolve(…)</code> in configs for new
enough Node.js versions (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18938">#18938</a>)</li>
<li>Allow using newer versions of <code>postcss-load-config</code> for
better ESM and TypeScript PostCSS config support with the CLI (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/18938">#18938</a>)</li>
<li>Remove irrelevant utility rules when matching important classes (<a
href="https://redirect.github.com/tailwindlabs/tailwindcss/pull/19030">#19030</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/tailwindlabs/tailwindcss/commits/v3.4.18/packages/tailwindcss">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tailwindcss&package-manager=npm_and_yarn&previous-version=3.4.17&new-version=3.4.18)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:42:53 +00:00
dependabot[bot] 30f81edbce chore: bump google.golang.org/api from 0.250.0 to 0.251.0 (#20110)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.250.0 to 0.251.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.251.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.250.0...v0.251.0">0.251.0</a>
(2025-09-30)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3319">#3319</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7ef0f9bc31e15c6998e4b26b511bf1d5d50a6970">7ef0f9b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3321">#3321</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2cb519b1a2d45c30fe1dfde10b47a83424d30231">2cb519b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3322">#3322</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3e4bc6062699a1710d50f68b694bbe3a50132e82">3e4bc60</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3324">#3324</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b41b5a5c9ef21d7499b6f206c214c4a16933e3b7">b41b5a5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3325">#3325</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8c5ef06788b235fcfb78e7226cf9905e88c96628">8c5ef06</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.250.0...v0.251.0">0.251.0</a>
(2025-09-30)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3319">#3319</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7ef0f9bc31e15c6998e4b26b511bf1d5d50a6970">7ef0f9b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3321">#3321</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2cb519b1a2d45c30fe1dfde10b47a83424d30231">2cb519b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3322">#3322</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3e4bc6062699a1710d50f68b694bbe3a50132e82">3e4bc60</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3324">#3324</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b41b5a5c9ef21d7499b6f206c214c4a16933e3b7">b41b5a5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3325">#3325</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8c5ef06788b235fcfb78e7226cf9905e88c96628">8c5ef06</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/bce8b63a2760d6bb50b56bc120bc79c5a5a4f53a"><code>bce8b63</code></a>
chore(main): release 0.251.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3320">#3320</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/65e7830d404c48623fbd05f4bebdb3c8cc8b8ea9"><code>65e7830</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3323">#3323</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/8c5ef06788b235fcfb78e7226cf9905e88c96628"><code>8c5ef06</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3325">#3325</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/b41b5a5c9ef21d7499b6f206c214c4a16933e3b7"><code>b41b5a5</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3324">#3324</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/3e4bc6062699a1710d50f68b694bbe3a50132e82"><code>3e4bc60</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3322">#3322</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2cb519b1a2d45c30fe1dfde10b47a83424d30231"><code>2cb519b</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3321">#3321</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/7ef0f9bc31e15c6998e4b26b511bf1d5d50a6970"><code>7ef0f9b</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3319">#3319</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.250.0...v0.251.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.250.0&new-version=0.251.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:42:34 +00:00
dependabot[bot] a191ff9aa2 chore: bump dayjs from 1.11.13 to 1.11.18 in /site (#20115)
Bumps [dayjs](https://github.com/iamkun/dayjs) from 1.11.13 to 1.11.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/iamkun/dayjs/releases">dayjs's
releases</a>.</em></p>
<blockquote>
<h2>v1.11.18</h2>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.17...v1.11.18">1.11.18</a>
(2025-08-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>error semantic-release dependency (<a
href="https://github.com/iamkun/dayjs/commit/8cfb31386d840d31e9655870f4d8c01592eb753a">8cfb313</a>)</li>
</ul>
<h2>v1.11.17</h2>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.16...v1.11.17">1.11.17</a>
(2025-08-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>[en-AU] locale use the same ordinal as moment (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2878">#2878</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/1b95ecd21d4feafe7ab113a2d48d7d8d93bb95c9">1b95ecd</a>)</li>
</ul>
<h2>v1.11.16</h2>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.15...v1.11.16">1.11.16</a>
(2025-08-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>test release workflow (no code changes) (<a
href="https://github.com/iamkun/dayjs/commit/c38c428a78c344699eff373adfc8c007bb3a514f">c38c428</a>)</li>
</ul>
<h2>v1.11.15</h2>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.14...v1.11.15">1.11.15</a>
(2025-08-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fix misspellings in Irish or Irish Gaelic [ga] (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2861">#2861</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/9c14a4245a8e764ee3260ff17a7ff48dfd09d279">9c14a42</a>)</li>
</ul>
<h2>v1.11.14</h2>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.13...v1.11.14">1.11.14</a>
(2025-08-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>.utcOffset(0, true) result and its clone are different bug (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2505">#2505</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/fefdcd4b6b807786f65139b6dd801e0014d7dc6f">fefdcd4</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/iamkun/dayjs/blob/v1.11.18/CHANGELOG.md">dayjs's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.17...v1.11.18">1.11.18</a>
(2025-08-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>error semantic-release dependency (<a
href="https://github.com/iamkun/dayjs/commit/8cfb31386d840d31e9655870f4d8c01592eb753a">8cfb313</a>)</li>
</ul>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.16...v1.11.17">1.11.17</a>
(2025-08-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>[en-AU] locale use the same ordinal as moment (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2878">#2878</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/1b95ecd21d4feafe7ab113a2d48d7d8d93bb95c9">1b95ecd</a>)</li>
</ul>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.15...v1.11.16">1.11.16</a>
(2025-08-29)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>test release workflow (no code changes) (<a
href="https://github.com/iamkun/dayjs/commit/c38c428a78c344699eff373adfc8c007bb3a514f">c38c428</a>)</li>
</ul>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.14...v1.11.15">1.11.15</a>
(2025-08-28)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Fix misspellings in Irish or Irish Gaelic [ga] (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2861">#2861</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/9c14a4245a8e764ee3260ff17a7ff48dfd09d279">9c14a42</a>)</li>
</ul>
<h2><a
href="https://github.com/iamkun/dayjs/compare/v1.11.13...v1.11.14">1.11.14</a>
(2025-08-27)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>.utcOffset(0, true) result and its clone are different bug (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2505">#2505</a>)
(<a
href="https://github.com/iamkun/dayjs/commit/fefdcd4b6b807786f65139b6dd801e0014d7dc6f">fefdcd4</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/iamkun/dayjs/commit/9beb3f3ea595c6046cbe863ee6d15d63e6fb2b07"><code>9beb3f3</code></a>
chore(release): 1.11.18 [skip ci]</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/d72d0cfb58595259e5b634da54f66b355e306f29"><code>d72d0cf</code></a>
Merge pull request <a
href="https://redirect.github.com/iamkun/dayjs/issues/2925">#2925</a>
from iamkun/dev</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/9be50d5b504afd619efe970b3a40b11d95b98a8b"><code>9be50d5</code></a>
chore: update workflow</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/8cfb31386d840d31e9655870f4d8c01592eb753a"><code>8cfb313</code></a>
fix: error semantic-release dependency</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/b9815f988447425dfb6cd63c42cf0487953ddb5e"><code>b9815f9</code></a>
chore: update workflow</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/7fcf939982437e50c08d33b6e1e53ab46f53c1f4"><code>7fcf939</code></a>
chore(release): 1.11.17 [skip ci]</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/b832bab7b95f9756bba31a1c12d0f0c1678828d0"><code>b832bab</code></a>
d2m (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2922">#2922</a>)</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/1b95ecd21d4feafe7ab113a2d48d7d8d93bb95c9"><code>1b95ecd</code></a>
fix: [en-AU] locale use the same ordinal as moment (<a
href="https://redirect.github.com/iamkun/dayjs/issues/2878">#2878</a>)</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/5465380fbc16ca1bd36cfd2f3e2295d2f447602c"><code>5465380</code></a>
chore: update .npmignore</li>
<li><a
href="https://github.com/iamkun/dayjs/commit/fcdbc82d6fa299a4ddb2040e1ed20c3917c1e615"><code>fcdbc82</code></a>
chore: update workflow debug <code>@​semantic-release/github</code></li>
<li>Additional commits viewable in <a
href="https://github.com/iamkun/dayjs/compare/v1.11.13...v1.11.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dayjs&package-manager=npm_and_yarn&previous-version=1.11.13&new-version=1.11.18)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:42:26 +00:00
dependabot[bot] f68495aa6e chore: bump ua-parser-js from 1.0.40 to 1.0.41 in /site (#20116)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from
1.0.40 to 1.0.41.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/faisalman/ua-parser-js/releases">ua-parser-js's
releases</a>.</em></p>
<blockquote>
<h2>v1.0.41</h2>
<h2>Version 0.7.41 / 1.0.41</h2>
<ul>
<li>Add new browser: Daum, Ladybird</li>
<li>Add new device vendor: HMD</li>
<li>Add new engine: LibWeb</li>
<li>Add new os: Windows IoT, Ubuntu Touch</li>
<li>Improve cpu detection: ARM, x86</li>
<li>Improve device vendor detection: Apple, Archos, Generic, Google,
Honor, Huawei, Infinix, Nvidia, Lenovo, Nokia, OnePlus, Xiaomi</li>
<li>Improve device type detection: smarttv, wearables</li>
<li>Improve os detection: Linux, Symbian</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/faisalman/ua-parser-js/compare/1.0.40...1.0.41">https://github.com/faisalman/ua-parser-js/compare/1.0.40...1.0.41</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/faisalman/ua-parser-js/blob/master/CHANGELOG.md">ua-parser-js's
changelog</a>.</em></p>
<blockquote>
<h2>Version 0.7.41 / 1.0.41</h2>
<ul>
<li>Add new browser: Daum, Ladybird</li>
<li>Add new device vendor: HMD</li>
<li>Add new engine: LibWeb</li>
<li>Add new os: Windows IoT, Ubuntu Touch</li>
<li>Improve cpu detection: ARM, x86</li>
<li>Improve device vendor detection: Apple, Archos, Generic, Google,
Honor, Huawei, Infinix, Nvidia, Lenovo, Nokia, OnePlus, Xiaomi</li>
<li>Improve device type detection: smarttv, wearables</li>
<li>Improve os detection: Linux, Symbian</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/90017c98d341788570435b7587ce1f0725022c7a"><code>90017c9</code></a>
Bump version <code>1.0.41</code> (mirror of <code>0.7.41</code>)</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/af825ff5574d63122dec5a3261f7933044001a1c"><code>af825ff</code></a>
Bump version <code>0.7.41</code></li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/592595445144f06efc32325399c575d9cef964ab"><code>5925954</code></a>
Backport - Improve detection for Nokia device &amp; Symbian OS</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/fc668ef0c09b5a4663077757b8fe73bc850ff8ea"><code>fc668ef</code></a>
Backport - Improve device detection for Generic device: capture its
device mo...</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/0543fb2e95e55be28fc14fa68936bf790407b057"><code>0543fb2</code></a>
Backport - Improve CPU detection: ARM</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/98f1c00fd35cbb321228318fcf5e2f7671d75dfa"><code>98f1c00</code></a>
Backport - Improve device detection for unidentified SmartTV
vendors</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/d66c971090281558706a48118c4db570ebf0ed73"><code>d66c971</code></a>
Backport - Improve detection for Nvidia devices</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/cbe60388ea25b60c10321d964296cb8b53e74bbb"><code>cbe6038</code></a>
Backport - Add Daum app user agent (<a
href="https://redirect.github.com/faisalman/ua-parser-js/issues/773">#773</a>)</li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/e665bd56bef61ee147c359f93c7896f17332db36"><code>e665bd5</code></a>
Backport - Add new OS: <code>Ubuntu Touch</code></li>
<li><a
href="https://github.com/faisalman/ua-parser-js/commit/20c30407207b30638c0f10c4884541115a41c56f"><code>20c3040</code></a>
Backport - Add new device: Apple HomePod</li>
<li>Additional commits viewable in <a
href="https://github.com/faisalman/ua-parser-js/compare/1.0.40...1.0.41">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ua-parser-js&package-manager=npm_and_yarn&previous-version=1.0.40&new-version=1.0.41)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:42:17 +00:00
dependabot[bot] 0765970d49 chore: bump jest-fixed-jsdom from 0.0.9 to 0.0.10 in /site (#20114)
Bumps [jest-fixed-jsdom](https://github.com/mswjs/jest-fixed-jsdom) from
0.0.9 to 0.0.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mswjs/jest-fixed-jsdom/releases">jest-fixed-jsdom's
releases</a>.</em></p>
<blockquote>
<h2>v0.0.10 (2025-08-30)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>using node's global AbortController and AbortSignal (<a
href="https://redirect.github.com/mswjs/jest-fixed-jsdom/issues/35">#35</a>)
(1e63cde866d5575f42ec5fc4520ebb9c487101e2) <a
href="https://github.com/stevematney"><code>@​stevematney</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mswjs/jest-fixed-jsdom/commit/d31545fc0c56c1ccb0c6a54644c37f54ed25605e"><code>d31545f</code></a>
chore(release): v0.0.10</li>
<li><a
href="https://github.com/mswjs/jest-fixed-jsdom/commit/1e63cde866d5575f42ec5fc4520ebb9c487101e2"><code>1e63cde</code></a>
fix: using node's global AbortController and AbortSignal (<a
href="https://redirect.github.com/mswjs/jest-fixed-jsdom/issues/35">#35</a>)</li>
<li>See full diff in <a
href="https://github.com/mswjs/jest-fixed-jsdom/compare/v0.0.9...v0.0.10">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jest-fixed-jsdom&package-manager=npm_and_yarn&previous-version=0.0.9&new-version=0.0.10)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:42:04 +00:00
dependabot[bot] f7388f3dfc chore: bump github.com/anthropics/anthropic-sdk-go from 1.12.0 to 1.13.0 (#20109)
Bumps
[github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go)
from 1.12.0 to 1.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-go/releases">github.com/anthropics/anthropic-sdk-go's
releases</a>.</em></p>
<blockquote>
<h2>v1.13.0</h2>
<h2>1.13.0 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.12.0...v1.13.0">v1.12.0...v1.13.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Claude Sonnet 4.5 and context
management features (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/3d5d51ad6ee64b34c7cc361a9dfd6f45966987dd">3d5d51a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>bugfix for setting JSON keys with special characters (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c868b921190f8d371cc93d12e019daf5a7463306">c868b92</a>)</li>
<li><strong>internal:</strong> unmarshal correctly when there are
multiple discriminators (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/ecc3ce31a9ed98b8f2b66b5e1489fce510528f77">ecc3ce3</a>)</li>
<li>use slices.Concat instead of sometimes modifying r.Options (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/88e7186cad944290498a3381c829df36d26a1cce">88e7186</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>bump minimum go version to 1.22 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/87af8f397ae68ce72a76a07a735d21495aad8799">87af8f3</a>)</li>
<li>do not install brew dependencies in ./scripts/bootstrap by default
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c689348cc4b5ec7ab3512261e4e3cc50d208a02c">c689348</a>)</li>
<li><strong>internal:</strong> fix tests (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/bfc6eafeff58664f0d6f155f96286f3993e60f89">bfc6eaf</a>)</li>
<li>update more docs for 1.22 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/d67c50d49082b4b28bdabc44943853431cd5205c">d67c50d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md">github.com/anthropics/anthropic-sdk-go's
changelog</a>.</em></p>
<blockquote>
<h2>1.13.0 (2025-09-29)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.12.0...v1.13.0">v1.12.0...v1.13.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Claude Sonnet 4.5 and context
management features (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/3d5d51ad6ee64b34c7cc361a9dfd6f45966987dd">3d5d51a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>bugfix for setting JSON keys with special characters (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c868b921190f8d371cc93d12e019daf5a7463306">c868b92</a>)</li>
<li><strong>internal:</strong> unmarshal correctly when there are
multiple discriminators (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/ecc3ce31a9ed98b8f2b66b5e1489fce510528f77">ecc3ce3</a>)</li>
<li>use slices.Concat instead of sometimes modifying r.Options (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/88e7186cad944290498a3381c829df36d26a1cce">88e7186</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>bump minimum go version to 1.22 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/87af8f397ae68ce72a76a07a735d21495aad8799">87af8f3</a>)</li>
<li>do not install brew dependencies in ./scripts/bootstrap by default
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c689348cc4b5ec7ab3512261e4e3cc50d208a02c">c689348</a>)</li>
<li><strong>internal:</strong> fix tests (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/bfc6eafeff58664f0d6f155f96286f3993e60f89">bfc6eaf</a>)</li>
<li>update more docs for 1.22 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/d67c50d49082b4b28bdabc44943853431cd5205c">d67c50d</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/e8befdc7fdceba33c9000b0b50061b8a42cb6c04"><code>e8befdc</code></a>
release: 1.13.0</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/1de6d4717bf8d4e6ff30e64bbdb9974dc1f36dae"><code>1de6d47</code></a>
feat(api): adds support for Claude Sonnet 4.5 and context management
features</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/a9aab31ae626c91a70c7893e0ff583d522930435"><code>a9aab31</code></a>
fix: bugfix for setting JSON keys with special characters</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/41a745429cf31fa0ec05d9a3638e92fdb42e4f3b"><code>41a7454</code></a>
codegen metadata</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/31633bdc1a055d8e85a09c76f1cfe40f5dbaab8a"><code>31633bd</code></a>
chore: do not install brew dependencies in ./scripts/bootstrap by
default</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/2deaed6d70652c9b51966235a283ec02102e72b5"><code>2deaed6</code></a>
fix: use slices.Concat instead of sometimes modifying r.Options</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/9f35b6866932b7a21547b73a41adb531f7f30fd7"><code>9f35b68</code></a>
chore: update more docs for 1.22</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/287a399aa194714f394d1b65a726573eb34d769a"><code>287a399</code></a>
chore: bump minimum go version to 1.22</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/aa4540a9c37d7a3584cc158e0a24fa5377979629"><code>aa4540a</code></a>
chore(internal): fix tests</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/73e5532c81d4cdfa082e0b7b4ae3244d54ef2469"><code>73e5532</code></a>
codegen metadata</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.12.0...v1.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/anthropics/anthropic-sdk-go&package-manager=go_modules&previous-version=1.12.0&new-version=1.13.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:41:20 +00:00
dependabot[bot] 7328fa5c08 chore: bump typescript from 5.7.3 to 5.9.3 in /offlinedocs (#20112)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.3
to 5.9.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.9.3</h2>
<p>Note: this tag was recreated to point at the correct commit. The npm
package contained the correct content.</p>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/">release
announcement</a></p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.1 (RC)</a>.</li>
<li><em>No specific changes for TypeScript 5.9.2 (Stable)</em></li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.3%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.3 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.9</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/">release
announcement</a></p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.1 (RC)</a>.</li>
<li><em>No specific changes for TypeScript 5.9.2 (Stable)</em></li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.9 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-rc/">release
announcement</a></p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.9 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/">release
announcement</a>.</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.9.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.9.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
</ul>
<h2>TypeScript 5.8.3</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/">release
announcement</a>.</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.8.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.8.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.8.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.8.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.8.2%22+is%3Aclosed+">fixed
issues query for Typescript 5.8.2 (Stable)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.8.3%22+is%3Aclosed+">fixed
issues query for Typescript 5.8.3 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/TypeScript/commit/c63de15a992d37f0d6cec03ac7631872838602cb"><code>c63de15</code></a>
Bump version to 5.9.3 and LKG</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/8428ca4cc8a7ecc9ac18dd0258016228814f5eaf"><code>8428ca4</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/microsoft/TypeScript/issues/62438">#62438</a>
(Fix incorrectly ignored dts file fr...) into release-5.9 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/a131cac6831aa6532ea963d0cb3131b957cad980"><code>a131cac</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/microsoft/TypeScript/issues/62351">#62351</a>
(Add missing Float16Array constructo...) into release-5.9 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/04243333584a5bfaeb3434c0982c6280fe87b8d5"><code>0424333</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/microsoft/TypeScript/issues/62423">#62423</a>
(Revert PR 61928) into release-5.9 (<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62425">#62425</a>)</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/bdb641a4347af822916fb8cdb9894c9c2d2421dd"><code>bdb641a</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/microsoft/TypeScript/issues/62311">#62311</a>
(Fix parenthesizer rules for manuall...) into release-5.9 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/0d9b9b92e2aca2f75c979a801abbc21bff473748"><code>0d9b9b9</code></a>
🤖 Pick PR <a
href="https://redirect.github.com/microsoft/TypeScript/issues/61978">#61978</a>
(Restructure CI to prepare for requi...) into release-5.9 (#...</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/2dce0c58af51cf9a9068365dc2f756c61b82b597"><code>2dce0c5</code></a>
Intentionally regress one buggy declaration output to an older version
(<a
href="https://redirect.github.com/microsoft/TypeScript/issues/62163">#62163</a>)</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/5be33469d551655d878876faa9e30aa3b49f8ee9"><code>5be3346</code></a>
Bump version to 5.9.2 and LKG</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/ad825f2bee3362886d642c48cb97c82df82b3ddb"><code>ad825f2</code></a>
Bump version to 5.9.1-rc and LKG</li>
<li><a
href="https://github.com/microsoft/TypeScript/commit/463a5bf92c3597dc14f252517c10a1bef7ac2f4c"><code>463a5bf</code></a>
Update LKG</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.9.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=typescript&package-manager=npm_and_yarn&previous-version=5.7.3&new-version=5.9.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:37:23 +00:00
dependabot[bot] c6c9fa1e39 chore: bump alpine from 3.21.3 to 3.22.1 in /scripts (#20107)
Bumps alpine from 3.21.3 to 3.22.1.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=alpine&package-manager=docker&previous-version=3.21.3&new-version=3.22.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:34:28 +00:00
dependabot[bot] 3eb6e1cc97 chore: bump coder/claude-code/coder from 3.0.0 to 3.0.1 in /dogfood/coder (#20104)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=3.0.0&new-version=3.0.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:34:11 +00:00
dependabot[bot] b05033897a chore: bump rust from 3f391b0 to 1219c0b in /dogfood/coder (#20108)
Bumps rust from `3f391b0` to `1219c0b`.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rust&package-manager=docker&previous-version=slim&new-version=slim)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:33:54 +00:00
dependabot[bot] 7c3e24f3be chore: bump ubuntu from 0e5e4a5 to 4e0171b in /dogfood/coder (#20105)
Bumps ubuntu from `0e5e4a5` to `4e0171b`.


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ubuntu&package-manager=docker&previous-version=jammy&new-version=jammy)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 19:33:42 +00:00
ケイラ 3afab824f5 fix: revert playwright update and update dependabot config (#20103) 2025-10-01 13:26:49 -06:00
Cian Johnston b3f1492f14 ci(.github/workflows/traiage.yaml): set default inputs on trigger by label assignment (#20100)
When not triggering via `workflow_dispatch`, it looks like the default
values are simply empty.
This PR creates an intermediate step to conditionally set defaults based
on `github.event_name`.

I'm also adding a commented-out step for installing `gh` that's required
for local testing via `nektos/act`. It's not required in a 'real'
runner.
2025-10-01 19:53:58 +01:00
Bruno Quaresma 6b61c8a32a feat: add workspace status on tasks (#20037)
<img width="1206" height="722" alt="Screenshot 2025-09-30 at 11 29 31"
src="https://github.com/user-attachments/assets/f109552d-af5e-41e1-a0e8-fdfcb3f973b7"
/>


Closes https://github.com/coder/coder/issues/19988
2025-10-01 15:49:52 -03:00
dependabot[bot] 718f712c18 chore: bump the react group across 1 directory with 2 updates (#20102)
Bumps the react group with 2 updates in the /site directory:
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)
and
[@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).

Updates `@types/react` from 19.1.13 to 19.1.17
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/react-dom` from 19.1.9 to 19.1.11
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 18:38:25 +00:00
Bruno Quaresma f23a6a1140 feat: add remove task button into the tasks list (#20036)
**Demo:**


https://github.com/user-attachments/assets/eca91a46-41fb-412c-b476-0cf91c0b69b8

Closes https://github.com/coder/coder/issues/19525
2025-10-01 15:37:11 -03:00
Bruno Quaresma 0fbe21e574 chore: downgrade msw and @radix-ui/dialog (#20098)
The upgrade caused the following error:

```
node: ../deps/uv/src/unix/stream.c:456: uv__stream_destroy: Assertion `!uv__io_active(&stream->io_watcher, POLLIN | POLLOUT)' failed.
```

After downgrading `msw`, a new error appeared only in
`WorkspacesPage.test.tsx`:

```
<--- Last few GCs --->

[2799:0x292c2000]    16790 ms: Scavenge 336.1 (443.3) -> 322.8 (443.3) MB, pooled: 32 MB, 6.45 / 0.00 ms  (average mu = 0.997, current mu = 0.996) allocation failure; 
[2799:0x292c2000]    16883 ms: Scavenge 336.7 (443.3) -> 326.8 (443.3) MB, pooled: 32 MB, 8.29 / 0.00 ms  (average mu = 0.997, current mu = 0.996) allocation failure; 
[2799:0x292c2000]    16989 ms: Scavenge 339.6 (443.3) -> 329.1 (443.3) MB, pooled: 32 MB, 9.87 / 0.00 ms  (average mu = 0.997, current mu = 0.996) allocation failure; 
```

After some debugging, I traced it to `@radix-ui/dialog`. I didn’t find
any open issues about memory leaks there, so my guess is it’s just using
more memory than our default allocation. Jest has an option to increase
the memory limit, but we should be fine for now.

Related issue:
[https://github.com/mswjs/msw/issues/2537](https://github.com/mswjs/msw/issues/2537)
2025-10-01 15:24:20 -03:00
Steven Masley 3a56ea56a7 test: fix rbac benchmark to test performance instead of cache (#20097)
The benchmark should be testing the performance of `authorize`, not a
cache lookup
2025-10-01 13:23:51 -05:00
Cian Johnston 257fb76882 ci: automatically determine issue URL when invoked via issue label assignment (#20089)
Silly me forgot that `inputs.*` will likely be empty when invoked
outside of `workflow_dispatch`.

Sample run:
https://github.com/coder/coder/actions/runs/18165531528/job/51706661391
2025-10-01 15:50:40 +01:00
Cian Johnston 98262d8fb2 ci: allow dispatching workflow triage via label (#20042)
Allows creating a task for an issue if a label 'traiage' is set.
Requires membership of the `coder` org to run.

Manual workflow_dispatch:
https://github.com/coder/coder/actions/runs/18158719999/job/51684512634

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-01 13:38:25 +01:00
dependabot[bot] f4a6894bf4 chore: bump @radix-ui/react-dialog from 1.1.4 to 1.1.15 in /site (#20068)
Bumps [@radix-ui/react-dialog](https://github.com/radix-ui/primitives)
from 1.1.4 to 1.1.15.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@radix-ui/react-dialog&package-manager=npm_and_yarn&previous-version=1.1.4&new-version=1.1.15)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:58:26 +00:00
dependabot[bot] 77b95983aa chore: bump @radix-ui/react-select from 2.1.4 to 2.2.6 in /site (#20079)
Bumps [@radix-ui/react-select](https://github.com/radix-ui/primitives)
from 2.1.4 to 2.2.6.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@radix-ui/react-select&package-manager=npm_and_yarn&previous-version=2.1.4&new-version=2.2.6)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:52:18 +00:00
dependabot[bot] fc6c5a49d6 chore: bump msw from 2.4.8 to 2.11.3 in /site (#20074)
Bumps [msw](https://github.com/mswjs/msw) from 2.4.8 to 2.11.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mswjs/msw/releases">msw's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.3 (2025-09-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>migrate to <code>until-async</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2590">#2590</a>)
(7087b1e29eb7ca0a414eff36ed3c98d03147044b) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.2 (2025-09-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>setupWorker:</strong> handle in-flight requests after
calling <code>worker.stop()</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2578">#2578</a>)
(97cf4c744d9b1a17f42ca65ac8ef93b2632b935b) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.1 (2025-08-31)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>use <code>tough-cookie@6</code> directly (<a
href="https://redirect.github.com/mswjs/msw/issues/2453">#2453</a>)
(6ce3b9511821e997a8e21f1d7578bbf824a3deb6) <a
href="https://github.com/sampsonjoliver"><code>@​sampsonjoliver</code></a>
<a href="https://github.com/SamMousa"><code>@​SamMousa</code></a> <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li><strong>HttpResponse:</strong> infer provided body type for
<code>HttpResponse.arrayBuffer</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2575">#2575</a>)
(ad3d7c1c130a38bf9f5e5886782b725d2aa53745) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.11.0 (2025-08-30)</h2>
<h3>Features</h3>
<ul>
<li>custom request predicate function (<a
href="https://redirect.github.com/mswjs/msw/issues/2541">#2541</a>)
(a05405bd5ba7c82ad3e80990c176cbf6cb94dee7) <a
href="https://github.com/ytoshiki"><code>@​ytoshiki</code></a> <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.10.5 (2025-08-13)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>export the <code>GraphQLResponseBody</code> type (<a
href="https://redirect.github.com/mswjs/msw/issues/2565">#2565</a>)
(642523d3258bd1996df986ea0c9270be150bec3d) <a
href="https://github.com/breadadams"><code>@​breadadams</code></a></li>
</ul>
<h2>v2.10.4 (2025-07-12)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>HttpHandler:</strong> use correct query parameters docs link
(<a href="https://redirect.github.com/mswjs/msw/issues/2547">#2547</a>)
(6cdce81de5576e5049899a729ab3a1424550c003) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.10.3 (2025-07-04)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ws:</strong> support <code>resolutionContext</code> on
<code>parse</code> and <code>run</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2544">#2544</a>)
(024568571990b6068601a0ba9f03e143ccbbfffb) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
<li><strong>getResponse:</strong> support <code>resolutionContext</code>
argument (<a
href="https://redirect.github.com/mswjs/msw/issues/2543">#2543</a>)
(ce3ab1fdd3b353d6a1d8db3c69532bde44483a8a) <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<h2>v2.10.2 (2025-06-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>TypeScript:</strong> support <code>Response.error()</code>
and <code>HttpResponse.error()</code> as mocked responses (<a
href="https://redirect.github.com/mswjs/msw/issues/2132">#2132</a>)
(72cc8ddac8f030f747b674148b03e5a025e412d2) <a
href="https://github.com/jacquesg"><code>@​jacquesg</code></a> <a
href="https://github.com/kettanaito"><code>@​kettanaito</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mswjs/msw/commit/3f7641a52abf94bae71a100fe7293a7812ab0952"><code>3f7641a</code></a>
chore(release): v2.11.3</li>
<li><a
href="https://github.com/mswjs/msw/commit/9e6712e7c3b36366e23264608beb19e3760df251"><code>9e6712e</code></a>
test: fix <code>body-stream</code> test rough performance equal</li>
<li><a
href="https://github.com/mswjs/msw/commit/7087b1e29eb7ca0a414eff36ed3c98d03147044b"><code>7087b1e</code></a>
fix: migrate to <code>until-async</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2590">#2590</a>)</li>
<li><a
href="https://github.com/mswjs/msw/commit/df869f4b00b26605d949925e567d32f80133ff1a"><code>df869f4</code></a>
chore(release): v2.11.2</li>
<li><a
href="https://github.com/mswjs/msw/commit/97cf4c744d9b1a17f42ca65ac8ef93b2632b935b"><code>97cf4c7</code></a>
fix(setupWorker): handle in-flight requests after calling
<code>worker.stop()</code> (<a
href="https://redirect.github.com/mswjs/msw/issues/2">#2</a>...</li>
<li><a
href="https://github.com/mswjs/msw/commit/44e15210230fee2685ad63be31ff97161d6734e2"><code>44e1521</code></a>
chore: migrate eslint to flat config (<a
href="https://redirect.github.com/mswjs/msw/issues/2212">#2212</a>)</li>
<li><a
href="https://github.com/mswjs/msw/commit/25d2c8f54f6ca72569799e0d7a1bde62fb9fd931"><code>25d2c8f</code></a>
test(graphql): add <code>TypedDocumentNode</code> inference tests (<a
href="https://redirect.github.com/mswjs/msw/issues/2018">#2018</a>)</li>
<li><a
href="https://github.com/mswjs/msw/commit/5c676b8a22e32c7da15e07d1bcc752190a941240"><code>5c676b8</code></a>
chore(release): v2.11.1</li>
<li><a
href="https://github.com/mswjs/msw/commit/6ce3b9511821e997a8e21f1d7578bbf824a3deb6"><code>6ce3b95</code></a>
fix: use <code>tough-cookie@6</code> directly (<a
href="https://redirect.github.com/mswjs/msw/issues/2453">#2453</a>)</li>
<li><a
href="https://github.com/mswjs/msw/commit/3173e667512061955b8607ed890ef2a45558db77"><code>3173e66</code></a>
refactor: remove unused import &amp; imported multiple times (<a
href="https://redirect.github.com/mswjs/msw/issues/2576">#2576</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mswjs/msw/compare/v2.4.8...v2.11.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=msw&package-manager=npm_and_yarn&previous-version=2.4.8&new-version=2.11.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:52:14 +00:00
dependabot[bot] 7c4c4abc7b chore: bump the vite group across 1 directory with 3 updates (#20057)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps the vite group with 3 updates in the /site directory:
[@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react),
[vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and
[vite-plugin-checker](https://github.com/fi3ework/vite-plugin-checker).

Updates `@vitejs/plugin-react` from 5.0.2 to 5.0.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-react/releases"><code>@​vitejs/plugin-react</code>'s
releases</a>.</em></p>
<blockquote>
<h2>plugin-react@5.0.4</h2>
<h3>Perf: use native refresh wrapper plugin in rolldown-vite (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/881">#881</a>)</h3>
<h2>plugin-react@5.0.3</h2>
<h3>HMR did not work for components imported with queries with
rolldown-vite (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/872">#872</a>)</h3>
<h3>Perf: simplify refresh wrapper generation (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/835">#835</a>)</h3>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md"><code>@​vitejs/plugin-react</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>5.0.4 (2025-09-27)</h2>
<h3>Perf: use native refresh wrapper plugin in rolldown-vite (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/881">#881</a>)</h3>
<h2>5.0.3 (2025-09-17)</h2>
<h3>HMR did not work for components imported with queries with
rolldown-vite (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/872">#872</a>)</h3>
<h3>Perf: simplify refresh wrapper generation (<a
href="https://redirect.github.com/vitejs/vite-plugin-react/pull/835">#835</a>)</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/450d7df80a52c45f3da7a9612d96a4913f565ed7"><code>450d7df</code></a>
release: plugin-react@5.0.4</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/86388455a0964b0563ab35b3b7410f245d598d54"><code>8638845</code></a>
feat(react): full bundle mode compat (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/882">#882</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/bd1487d9a1396f8e9b92b95cd80c9edb8c736885"><code>bd1487d</code></a>
perf(react): use native refresh wrapper plugin in rolldown-vite (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/881">#881</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/80df894c78169d63d9f1f49d35dd548b6aa53601"><code>80df894</code></a>
docs: remove <code>disableOxcRecommendation</code> from plugin-react
readme (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/880">#880</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/608f266c8d53f41a6b1541de35b218fe2640ec05"><code>608f266</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/879">#879</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/3c2ebf89de7f5e40ed0ef932993f7d0b7695719b"><code>3c2ebf8</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/851">#851</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/8293cb38945e56729b5b045b09858da6b78ba3a3"><code>8293cb3</code></a>
release: plugin-react@5.0.3</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/89ec16d68054a767f624d3da5b91cedf2fba1759"><code>89ec16d</code></a>
fix(react): hmr did not work for components imported with queries with
rolldo...</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/3a8b4a9070399bc7518cfcceb64d1518fda1568a"><code>3a8b4a9</code></a>
perf: avoid sourcemap for refresh wrapper injection (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/835">#835</a>)</li>
<li><a
href="https://github.com/vitejs/vite-plugin-react/commit/afa28f1675e8169f6494413b2bb69577b9cbf6f5"><code>afa28f1</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react/issues/823">#823</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.0.4/packages/plugin-react">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for <code>@​vitejs/plugin-react</code> since
your current version.</p>
</details>
<br />

Updates `vite` from 7.1.4 to 7.1.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v7.1.7</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.7/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v7.1.6</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.6/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v7.1.5</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v7.1.5/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.6...v7.1.7">7.1.7</a>
(2025-09-22)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>build:</strong> fix ssr environment <code>emitAssets:
true</code> when <code>sharedConfigBuild: true</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/20787">#20787</a>)
(<a
href="https://github.com/vitejs/vite/commit/4c4583ce7a13306e0853901570c5d95517fe81da">4c4583c</a>)</li>
<li><strong>client:</strong> use CSP nonce when rendering error overlay
(<a
href="https://redirect.github.com/vitejs/vite/issues/20791">#20791</a>)
(<a
href="https://github.com/vitejs/vite/commit/9bc9d1258f550e9d8f5e530cd27aecb1bee32bdb">9bc9d12</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20811">#20811</a>)
(<a
href="https://github.com/vitejs/vite/commit/9f2247c066cac75746356c9391845235445a154b">9f2247c</a>)</li>
<li><strong>glob:</strong> handle glob imports from folders starting
with dot (<a
href="https://redirect.github.com/vitejs/vite/issues/20800">#20800</a>)
(<a
href="https://github.com/vitejs/vite/commit/105abe87c412cf0f83859ba41fed869221cbb3e0">105abe8</a>)</li>
<li><strong>hmr:</strong> trigger prune event when import is removed
from non hmr module (<a
href="https://redirect.github.com/vitejs/vite/issues/20768">#20768</a>)
(<a
href="https://github.com/vitejs/vite/commit/9f32b1dc710991c53a9f665c8d0d6945f342bf92">9f32b1d</a>)</li>
<li><strong>hmr:</strong> wait for <code>import.meta.hot.prune</code>
callbacks to complete before running other HMRs (<a
href="https://redirect.github.com/vitejs/vite/issues/20698">#20698</a>)
(<a
href="https://github.com/vitejs/vite/commit/98a3484733443ee529870477a6ab6a03572e3cbc">98a3484</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.5...v7.1.6">7.1.6</a>
(2025-09-18)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20773">#20773</a>)
(<a
href="https://github.com/vitejs/vite/commit/88af2ae7df77160e7d11a9fa147a4967c8499f13">88af2ae</a>)</li>
<li><strong>esbuild:</strong> inject esbuild helper functions with
minified <code>$</code> variables correctly (<a
href="https://redirect.github.com/vitejs/vite/issues/20761">#20761</a>)
(<a
href="https://github.com/vitejs/vite/commit/7e8e0043d60379e11da481d9cc3c3556c9756ac0">7e8e004</a>)</li>
<li>fallback terser to main thread when nameCache is provided (<a
href="https://redirect.github.com/vitejs/vite/issues/20750">#20750</a>)
(<a
href="https://github.com/vitejs/vite/commit/a679a643404c95556dda2670643e14eca9c585bd">a679a64</a>)</li>
<li><strong>types:</strong> strict env typings fail when
<code>skipLibCheck</code> is <code>false</code> (<a
href="https://redirect.github.com/vitejs/vite/issues/20755">#20755</a>)
(<a
href="https://github.com/vitejs/vite/commit/cc54e294746d3eac868de96f85d98dd0fa0cda11">cc54e29</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li><strong>deps:</strong> update rolldown-related dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20675">#20675</a>)
(<a
href="https://github.com/vitejs/vite/commit/a67bb5fbec5f3e42151dc7e3166858d0d33533de">a67bb5f</a>)</li>
<li><strong>deps:</strong> update rolldown-related dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20772">#20772</a>)
(<a
href="https://github.com/vitejs/vite/commit/d785e72f2ead705e8b2416c0a5097878fced3435">d785e72</a>)</li>
</ul>
<h2><!-- raw HTML omitted --><a
href="https://github.com/vitejs/vite/compare/v7.1.4...v7.1.5">7.1.5</a>
(2025-09-08)<!-- raw HTML omitted --></h2>
<h3>Bug Fixes</h3>
<ul>
<li>apply <code>fs.strict</code> check to HTML files (<a
href="https://redirect.github.com/vitejs/vite/issues/20736">#20736</a>)
(<a
href="https://github.com/vitejs/vite/commit/14015d794f69accba68798bd0e15135bc51c9c1e">14015d7</a>)</li>
<li><strong>deps:</strong> update all non-major dependencies (<a
href="https://redirect.github.com/vitejs/vite/issues/20732">#20732</a>)
(<a
href="https://github.com/vitejs/vite/commit/122bfbabeb1f095ce7cabd30893e5531e9a007c4">122bfba</a>)</li>
<li>upgrade sirv to 3.0.2 (<a
href="https://redirect.github.com/vitejs/vite/issues/20735">#20735</a>)
(<a
href="https://github.com/vitejs/vite/commit/09f2b52e8d5907f26602653caf41b3a56692600d">09f2b52</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/693d25510aba3322e8e689764df8c3b18db04a98"><code>693d255</code></a>
release: v7.1.7</li>
<li><a
href="https://github.com/vitejs/vite/commit/98a3484733443ee529870477a6ab6a03572e3cbc"><code>98a3484</code></a>
fix(hmr): wait for <code>import.meta.hot.prune</code> callbacks to
complete before runni...</li>
<li><a
href="https://github.com/vitejs/vite/commit/9f32b1dc710991c53a9f665c8d0d6945f342bf92"><code>9f32b1d</code></a>
fix(hmr): trigger prune event when import is removed from non hmr module
(<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20">#20</a>...</li>
<li><a
href="https://github.com/vitejs/vite/commit/9f2247c066cac75746356c9391845235445a154b"><code>9f2247c</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20811">#20811</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/105abe87c412cf0f83859ba41fed869221cbb3e0"><code>105abe8</code></a>
fix(glob): handle glob imports from folders starting with dot (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20800">#20800</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/4c4583ce7a13306e0853901570c5d95517fe81da"><code>4c4583c</code></a>
fix(build): fix ssr environment <code>emitAssets: true</code> when
`sharedConfigBuild: t...</li>
<li><a
href="https://github.com/vitejs/vite/commit/9bc9d1258f550e9d8f5e530cd27aecb1bee32bdb"><code>9bc9d12</code></a>
fix(client): use CSP nonce when rendering error overlay (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20791">#20791</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/54377f70ad72d56a2c5b4f36a812b5991573d5b1"><code>54377f7</code></a>
release: v7.1.6</li>
<li><a
href="https://github.com/vitejs/vite/commit/88af2ae7df77160e7d11a9fa147a4967c8499f13"><code>88af2ae</code></a>
fix(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20773">#20773</a>)</li>
<li><a
href="https://github.com/vitejs/vite/commit/d785e72f2ead705e8b2416c0a5097878fced3435"><code>d785e72</code></a>
chore(deps): update rolldown-related dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20772">#20772</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/v7.1.7/packages/vite">compare
view</a></li>
</ul>
</details>
<br />

Updates `vite-plugin-checker` from 0.10.3 to 0.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fi3ework/vite-plugin-checker/releases">vite-plugin-checker's
releases</a>.</em></p>
<blockquote>
<h2>vite-plugin-checker@0.11.0</h2>
<h3>   🚨 Breaking Changes</h3>
<ul>
<li>Use node built-in instead of <code>strip-ansi</code>  -  by <a
href="https://github.com/danielroe"><code>@​danielroe</code></a> in <a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/588">fi3ework/vite-plugin-checker#588</a>
<a
href="https://github.com/fi3ework/vite-plugin-checker/commit/66a10dc"><!--
raw HTML omitted -->(66a10)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🚀 Features</h3>
<ul>
<li><strong>oxlint</strong>: Add support for oxlint  -  by <a
href="https://github.com/raidorev"><code>@​raidorev</code></a> in <a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/578">fi3ework/vite-plugin-checker#578</a>
<a
href="https://github.com/fi3ework/vite-plugin-checker/commit/61408e7"><!--
raw HTML omitted -->(61408)<!-- raw HTML omitted --></a></li>
</ul>
<h3>   🐞 Bug Fixes</h3>
<ul>
<li>Address merge conflict with strip-ansi  -  by <a
href="https://github.com/danielroe"><code>@​danielroe</code></a> <a
href="https://github.com/fi3ework/vite-plugin-checker/commit/bac91cf"><!--
raw HTML omitted -->(bac91)<!-- raw HTML omitted --></a></li>
<li><strong>deps</strong>: Update dependency strip-ansi to ^7.1.2  -  in
<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/587">fi3ework/vite-plugin-checker#587</a>
<a
href="https://github.com/fi3ework/vite-plugin-checker/commit/5ddc18c"><!--
raw HTML omitted -->(5ddc1)<!-- raw HTML omitted --></a></li>
</ul>
<h5>    <a
href="https://github.com/fi3ework/vite-plugin-checker/compare/vite-plugin-checker@0.10.3...vite-plugin-checker@0.11.0">View
changes on GitHub</a></h5>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/44a86f717078355c40ea4ee77a78fb3200ab557e"><code>44a86f7</code></a>
v0.11.0</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/d22d54a935e0214569d676f243d4b4f860fbac90"><code>d22d54a</code></a>
chore: remove in-source changelogs</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/baf7152a75711b4bf6edecd949d7a3f0b3cc8589"><code>baf7152</code></a>
ci: use trusted publishing</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/bac91cf1fc99cfd86bde979906d3e1c1cd3afeb5"><code>bac91cf</code></a>
fix: address merge conflict with strip-ansi</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/66a10dca11420d39f39879dbde3716c314e15375"><code>66a10dc</code></a>
perf!: use node built-in instead of <code>strip-ansi</code> (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/588">#588</a>)</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/61408e75f78491a3e5a32203387a529796a5a764"><code>61408e7</code></a>
feat(oxlint): add support for oxlint (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/578">#578</a>)</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/5ddc18c639ee7f4fac8d42762cc02d206d78f182"><code>5ddc18c</code></a>
fix(deps): update dependency strip-ansi to ^7.1.2 (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/587">#587</a>)</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/bfc6118391f971b91ee6c8145565b17e3df51258"><code>bfc6118</code></a>
chore(deps): update dependency <code>@​tsconfig/strictest</code> to
^2.0.6 (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/586">#586</a>)</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/fd3443a5d955466386dfcb07099ba7225a386369"><code>fd3443a</code></a>
chore(deps): update dependency vite to v5 [security] (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/585">#585</a>)</li>
<li><a
href="https://github.com/fi3ework/vite-plugin-checker/commit/9158f8f1a6d4388d0b2908b41de3c4e2fcaa1b04"><code>9158f8f</code></a>
chore(deps): update dependency publint to ^0.3.13 (<a
href="https://redirect.github.com/fi3ework/vite-plugin-checker/issues/584">#584</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/fi3ework/vite-plugin-checker/compare/vite-plugin-checker@0.10.3...vite-plugin-checker@0.11.0">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for vite-plugin-checker since your current
version.</p>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:46:00 +00:00
dependabot[bot] cdd9ddd659 chore: bump ssh2 and @types/ssh2 in /site (#20077)
Bumps [ssh2](https://github.com/mscdex/ssh2) and
[@types/ssh2](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ssh2).
These dependencies needed to be updated together.
Updates `ssh2` from 1.16.0 to 1.17.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mscdex/ssh2/commit/844f1edfc41589737671f96a4f4e76afdf46abd4"><code>844f1ed</code></a>
package: bump version to v1.17.0</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/f7cbb0cff0a3ae7e4447ca706feaf1cf184344c4"><code>f7cbb0c</code></a>
package: bump nan to v2.23.0</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/83ec32070aca0d7dc679a833aa477520365ca74a"><code>83ec320</code></a>
ci: add node 24.x</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/b33c065d8630c5942d23748ae4ca7427bc0e7d18"><code>b33c065</code></a>
ci: bump windows image version</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/c19a821454a9034824425a7d6cc74991021d377e"><code>c19a821</code></a>
client: add support for environment variables when starting SFTP</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/dd5510c0888476e9eec205273732473fcce5adc6"><code>dd5510c</code></a>
lib: fix workers thread-safety issues</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/0fe2643cb29f0a29df9388af7f1ca8da15b09cd4"><code>0fe2643</code></a>
ci: unset OPENSSL_CONF</li>
<li><a
href="https://github.com/mscdex/ssh2/commit/42491a6053e222db4ff1b6c343b57040fb490647"><code>42491a6</code></a>
ci: fix issues related to old node-gyp + new Python</li>
<li>See full diff in <a
href="https://github.com/mscdex/ssh2/compare/v1.16.0...v1.17.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/ssh2` from 1.15.1 to 1.15.5
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ssh2">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:44:53 +00:00
Susana Ferreira 516af762b4 chore(dogfood): update claude_system_prompt to not report system prompt status change (#20053)
## Description

This PR updates the dogfood "Write Coder on Coder" template by modifying
the Claude system prompt so that it does not report task status changes
related to the system prompt itself.

Currently, when a user adds the initial prompt, the Claude code
workspace app (configured via Terraform) reports four status changes:
`Working → Idle → Working → Idle`
The first pair (`Working → Idle`) is caused by the status reporting of
the system prompt, which is unnecessary noise.
These redundant transitions also triggered notification reports, leading
to extra, misleading updates.

With this update, the system prompt will no longer trigger status
transitions or notifications, ensuring that only user-driven prompts
cause meaningful status and notification updates.
2025-10-01 12:39:44 +01:00
dependabot[bot] 36279ee002 chore: bump the emotion group across 2 directories with 1 update (#20056)
Bumps the emotion group with 1 update in the /offlinedocs directory:
[@emotion/styled](https://github.com/emotion-js/emotion).
Bumps the emotion group with 1 update in the /site directory:
[@emotion/styled](https://github.com/emotion-js/emotion).

Updates `@emotion/styled` from 11.14.0 to 11.14.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emotion-js/emotion/releases"><code>@​emotion/styled</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​emotion/styled</code><a
href="https://github.com/11"><code>@​11</code></a>.14.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/emotion-js/emotion/pull/3334">#3334</a>
<a
href="https://github.com/emotion-js/emotion/commit/0facbe47bd9099ae4ed22dc201822d910ac3dec5"><code>0facbe4</code></a>
Thanks <a
href="https://github.com/ZachRiegel"><code>@​ZachRiegel</code></a>! -
Renamed default-exported variable in <code>@emotion/styled</code> to aid
inferred import names in auto-import completions in IDEs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/emotion-js/emotion/commit/49229553967b6050c92d9602eb577bdc48167e91"><code>4922955</code></a>
Version Packages (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3335">#3335</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/0facbe47bd9099ae4ed22dc201822d910ac3dec5"><code>0facbe4</code></a>
Renamed default-exported variable in <code>@emotion/styled</code> to aid
inferred import...</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/cce67ec6b2fc94261028b4f4778aae8c3d6c5fd6"><code>cce67ec</code></a>
Bump parcel (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3258">#3258</a>)</li>
<li>See full diff in <a
href="https://github.com/emotion-js/emotion/compare/@emotion/styled@11.14.0...@emotion/styled@11.14.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@emotion/styled` from 11.14.0 to 11.14.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/emotion-js/emotion/releases"><code>@​emotion/styled</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​emotion/styled</code><a
href="https://github.com/11"><code>@​11</code></a>.14.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/emotion-js/emotion/pull/3334">#3334</a>
<a
href="https://github.com/emotion-js/emotion/commit/0facbe47bd9099ae4ed22dc201822d910ac3dec5"><code>0facbe4</code></a>
Thanks <a
href="https://github.com/ZachRiegel"><code>@​ZachRiegel</code></a>! -
Renamed default-exported variable in <code>@emotion/styled</code> to aid
inferred import names in auto-import completions in IDEs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/emotion-js/emotion/commit/49229553967b6050c92d9602eb577bdc48167e91"><code>4922955</code></a>
Version Packages (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3335">#3335</a>)</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/0facbe47bd9099ae4ed22dc201822d910ac3dec5"><code>0facbe4</code></a>
Renamed default-exported variable in <code>@emotion/styled</code> to aid
inferred import...</li>
<li><a
href="https://github.com/emotion-js/emotion/commit/cce67ec6b2fc94261028b4f4778aae8c3d6c5fd6"><code>cce67ec</code></a>
Bump parcel (<a
href="https://redirect.github.com/emotion-js/emotion/issues/3258">#3258</a>)</li>
<li>See full diff in <a
href="https://github.com/emotion-js/emotion/compare/@emotion/styled@11.14.0...@emotion/styled@11.14.1">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:39:33 +00:00
dependabot[bot] 19e23af7a7 chore: bump undici from 6.21.2 to 6.21.3 in /site (#20075)
Bumps [undici](https://github.com/nodejs/undici) from 6.21.2 to 6.21.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nodejs/undici/releases">undici's
releases</a>.</em></p>
<blockquote>
<h2>v6.21.3</h2>
<h2>What's Changed</h2>
<ul>
<li>[Backport v6.x] append crlf to formdata body by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/nodejs/undici/pull/4210">nodejs/undici#4210</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/nodejs/undici/compare/v6.21.2...v6.21.3">https://github.com/nodejs/undici/compare/v6.21.2...v6.21.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nodejs/undici/commit/da0e823ac0e89390256d61c429df0cf236afb79e"><code>da0e823</code></a>
Bumped v6.21.4</li>
<li><a
href="https://github.com/nodejs/undici/commit/dbbe0a2d5004cd7b6016e52736f59ce37bdb1556"><code>dbbe0a2</code></a>
append crlf to formdata body (<a
href="https://redirect.github.com/nodejs/undici/issues/3625">#3625</a>)
(<a
href="https://redirect.github.com/nodejs/undici/issues/4210">#4210</a>)</li>
<li>See full diff in <a
href="https://github.com/nodejs/undici/compare/v6.21.2...v6.21.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=undici&package-manager=npm_and_yarn&previous-version=6.21.2&new-version=6.21.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:39:22 +00:00
dependabot[bot] ddd5352003 chore: bump react-markdown from 9.0.3 to 9.1.0 in /site (#20070)
Bumps [react-markdown](https://github.com/remarkjs/react-markdown) from
9.0.3 to 9.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/remarkjs/react-markdown/releases">react-markdown's
releases</a>.</em></p>
<blockquote>
<h2>9.1.0</h2>
<ul>
<li>6ce120e Add support for async plugins
by <a href="https://github.com/wooorm"><code>@​wooorm</code></a> in <a
href="https://redirect.github.com/remarkjs/react-markdown/pull/890">remarkjs/react-markdown#890</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0">https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/remarkjs/react-markdown/blob/main/changelog.md">react-markdown's
changelog</a>.</em></p>
<blockquote>
<h2>9.1.0 - 2025-02-20</h2>
<ul>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/6ce120e"><code>6ce120e</code></a>
Add support for async plugins</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/747e505c9a465ee77addba626f288dfbda8bcad4"><code>747e505</code></a>
9.1.0</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/6ce120e70630a062b42e225ce917cf71339fa024"><code>6ce120e</code></a>
Add support for async plugins</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/78d08de906536b6913695883f215807992fc034d"><code>78d08de</code></a>
Refactor to remove warning in tests</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/bcdc5b3b4f45be2b662ae11c4b42e74727e3ba2f"><code>bcdc5b3</code></a>
Refactor <code>package.json</code></li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/c44e246bbb0cbad1110b22b6fb239db2669de0d0"><code>c44e246</code></a>
Update dev-dependencies</li>
<li>See full diff in <a
href="https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-markdown&package-manager=npm_and_yarn&previous-version=9.0.3&new-version=9.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:38:56 +00:00
dependabot[bot] a7e65d4a76 chore: bump react-markdown from 9.0.3 to 9.1.0 in /offlinedocs (#20065)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [react-markdown](https://github.com/remarkjs/react-markdown) from
9.0.3 to 9.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/remarkjs/react-markdown/releases">react-markdown's
releases</a>.</em></p>
<blockquote>
<h2>9.1.0</h2>
<ul>
<li>6ce120e Add support for async plugins
by <a href="https://github.com/wooorm"><code>@​wooorm</code></a> in <a
href="https://redirect.github.com/remarkjs/react-markdown/pull/890">remarkjs/react-markdown#890</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0">https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/remarkjs/react-markdown/blob/main/changelog.md">react-markdown's
changelog</a>.</em></p>
<blockquote>
<h2>9.1.0 - 2025-02-20</h2>
<ul>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/6ce120e"><code>6ce120e</code></a>
Add support for async plugins</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/747e505c9a465ee77addba626f288dfbda8bcad4"><code>747e505</code></a>
9.1.0</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/6ce120e70630a062b42e225ce917cf71339fa024"><code>6ce120e</code></a>
Add support for async plugins</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/78d08de906536b6913695883f215807992fc034d"><code>78d08de</code></a>
Refactor to remove warning in tests</li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/bcdc5b3b4f45be2b662ae11c4b42e74727e3ba2f"><code>bcdc5b3</code></a>
Refactor <code>package.json</code></li>
<li><a
href="https://github.com/remarkjs/react-markdown/commit/c44e246bbb0cbad1110b22b6fb239db2669de0d0"><code>c44e246</code></a>
Update dev-dependencies</li>
<li>See full diff in <a
href="https://github.com/remarkjs/react-markdown/compare/9.0.3...9.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=react-markdown&package-manager=npm_and_yarn&previous-version=9.0.3&new-version=9.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:35:31 +00:00
dependabot[bot] a650685a87 chore: bump semver and @types/semver in /site (#20076)
Bumps [semver](https://github.com/npm/node-semver) and
[@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver).
These dependencies needed to be updated together.
Updates `semver` from 7.6.2 to 7.7.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/releases">semver's
releases</a>.</em></p>
<blockquote>
<h2>v7.7.2</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.1...v7.7.2">7.7.2</a>
(2025-05-12)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/fcafb61ed566ff8ccf24818dd94b76738f037aa4"><code>fcafb61</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/780">#780</a>
add missing <code>'use strict'</code> directives (<a
href="https://redirect.github.com/npm/node-semver/issues/780">#780</a>)
(<a href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/c99f336fa3bdff465652f9041eab2127d2f52eb2"><code>c99f336</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/781">#781</a>
prerelease identifier starting with digits (<a
href="https://redirect.github.com/npm/node-semver/issues/781">#781</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/c760403b935d3ad35f83e9bbe5ebe1badef2fc71"><code>c760403</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/784">#784</a>
template-oss-apply for workflow permissions (<a
href="https://redirect.github.com/npm/node-semver/issues/784">#784</a>)
(<a
href="https://github.com/wraithgar"><code>@​wraithgar</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/2677f2a88334b0e728dbfe9ad9f5f57458437c87"><code>2677f2a</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/778">#778</a>
bump <code>@​npmcli/template-oss</code> from 4.23.6 to 4.24.3 (<a
href="https://redirect.github.com/npm/node-semver/issues/778">#778</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
</ul>
<h2>v7.7.1</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.0...v7.7.1">7.7.1</a>
(2025-02-03)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/af761c05bd53eef83b5e20f8b09360b0e70557dc"><code>af761c0</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/764">#764</a>
inc: fully capture prerelease identifier (<a
href="https://redirect.github.com/npm/node-semver/issues/764">#764</a>)
(<a
href="https://github.com/wraithgar"><code>@​wraithgar</code></a>)</li>
</ul>
<h2>v7.7.0</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.6.3...v7.7.0">7.7.0</a>
(2025-01-29)</h2>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/0864b3ce7932667013e0c7c5ec764777d4682883"><code>0864b3c</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/753">#753</a>
add &quot;release&quot; inc type (<a
href="https://redirect.github.com/npm/node-semver/issues/753">#753</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/d588e3782864b1cab2fe9f2452b848e8c7f609d1"><code>d588e37</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/755">#755</a>
diff: fix prerelease to stable version diff logic (<a
href="https://redirect.github.com/npm/node-semver/issues/755">#755</a>)
(<a
href="https://github.com/eminberkayd"><code>@​eminberkayd</code></a>,
berkay.daglar)</li>
<li><a
href="https://github.com/npm/node-semver/commit/8a34bdecc783407f4e1a8a1ee1f67906b84a4b78"><code>8a34bde</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/754">#754</a>
add identifier validation to <code>inc()</code> (<a
href="https://redirect.github.com/npm/node-semver/issues/754">#754</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/67e54785a0f871361230f84323cbb631b9b6d834"><code>67e5478</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/756">#756</a>
readme: added missing period for consistency (<a
href="https://redirect.github.com/npm/node-semver/issues/756">#756</a>)
(<a
href="https://github.com/shaymolcho"><code>@​shaymolcho</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/868d4bbe3d318c52544f38d5f9977a1103e924c2"><code>868d4bb</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/749">#749</a>
clarify comment about obsolete prefixes (<a
href="https://redirect.github.com/npm/node-semver/issues/749">#749</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>, <a
href="https://github.com/ljharb"><code>@​ljharb</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/145c554b8c7b7ecfcb451153ad18bdb2f24ad10d"><code>145c554</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/741">#741</a>
bump <code>@​npmcli/eslint-config</code> from 4.0.5 to 5.0.0 (<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot])</li>
<li><a
href="https://github.com/npm/node-semver/commit/753e02b9d0cb3ac23e085dc33efcab3e08d61f2b"><code>753e02b</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/747">#747</a>
bump <code>@​npmcli/template-oss</code> from 4.23.3 to 4.23.4 (<a
href="https://redirect.github.com/npm/node-semver/issues/747">#747</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/0b812d5fb5fbb208e89dc1250e2efafeaa549437"><code>0b812d5</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/744">#744</a>
postinstall for dependabot template-oss PR (<a
href="https://github.com/hashtagchris"><code>@​hashtagchris</code></a>)</li>
</ul>
<h2>v7.6.3</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.6.2...v7.6.3">7.6.3</a>
(2024-07-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/73a3d79c4ec32d5dd62c9d5f64e5af7fbdad9ec0"><code>73a3d79</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/726">#726</a>
optimize Range parsing and formatting (<a
href="https://redirect.github.com/npm/node-semver/issues/726">#726</a>)
(<a href="https://github.com/jviide"><code>@​jviide</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/2975ece120e17660c9f1ef517de45c09ff821064"><code>2975ece</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/719">#719</a>
fix extra backtick typo (<a
href="https://redirect.github.com/npm/node-semver/issues/719">#719</a>)
(<a href="https://github.com/stdavis"><code>@​stdavis</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/blob/main/CHANGELOG.md">semver's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.1...v7.7.2">7.7.2</a>
(2025-05-12)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/fcafb61ed566ff8ccf24818dd94b76738f037aa4"><code>fcafb61</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/780">#780</a>
add missing <code>'use strict'</code> directives (<a
href="https://redirect.github.com/npm/node-semver/issues/780">#780</a>)
(<a href="https://github.com/Fdawgs"><code>@​Fdawgs</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/c99f336fa3bdff465652f9041eab2127d2f52eb2"><code>c99f336</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/781">#781</a>
prerelease identifier starting with digits (<a
href="https://redirect.github.com/npm/node-semver/issues/781">#781</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/c760403b935d3ad35f83e9bbe5ebe1badef2fc71"><code>c760403</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/784">#784</a>
template-oss-apply for workflow permissions (<a
href="https://redirect.github.com/npm/node-semver/issues/784">#784</a>)
(<a
href="https://github.com/wraithgar"><code>@​wraithgar</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/2677f2a88334b0e728dbfe9ad9f5f57458437c87"><code>2677f2a</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/778">#778</a>
bump <code>@​npmcli/template-oss</code> from 4.23.6 to 4.24.3 (<a
href="https://redirect.github.com/npm/node-semver/issues/778">#778</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
</ul>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.7.0...v7.7.1">7.7.1</a>
(2025-02-03)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/af761c05bd53eef83b5e20f8b09360b0e70557dc"><code>af761c0</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/764">#764</a>
inc: fully capture prerelease identifier (<a
href="https://redirect.github.com/npm/node-semver/issues/764">#764</a>)
(<a
href="https://github.com/wraithgar"><code>@​wraithgar</code></a>)</li>
</ul>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.6.3...v7.7.0">7.7.0</a>
(2025-01-29)</h2>
<h3>Features</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/0864b3ce7932667013e0c7c5ec764777d4682883"><code>0864b3c</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/753">#753</a>
add &quot;release&quot; inc type (<a
href="https://redirect.github.com/npm/node-semver/issues/753">#753</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/d588e3782864b1cab2fe9f2452b848e8c7f609d1"><code>d588e37</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/755">#755</a>
diff: fix prerelease to stable version diff logic (<a
href="https://redirect.github.com/npm/node-semver/issues/755">#755</a>)
(<a
href="https://github.com/eminberkayd"><code>@​eminberkayd</code></a>,
berkay.daglar)</li>
<li><a
href="https://github.com/npm/node-semver/commit/8a34bdecc783407f4e1a8a1ee1f67906b84a4b78"><code>8a34bde</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/754">#754</a>
add identifier validation to <code>inc()</code> (<a
href="https://redirect.github.com/npm/node-semver/issues/754">#754</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/67e54785a0f871361230f84323cbb631b9b6d834"><code>67e5478</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/756">#756</a>
readme: added missing period for consistency (<a
href="https://redirect.github.com/npm/node-semver/issues/756">#756</a>)
(<a
href="https://github.com/shaymolcho"><code>@​shaymolcho</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/868d4bbe3d318c52544f38d5f9977a1103e924c2"><code>868d4bb</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/749">#749</a>
clarify comment about obsolete prefixes (<a
href="https://redirect.github.com/npm/node-semver/issues/749">#749</a>)
(<a href="https://github.com/mbtools"><code>@​mbtools</code></a>, <a
href="https://github.com/ljharb"><code>@​ljharb</code></a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/145c554b8c7b7ecfcb451153ad18bdb2f24ad10d"><code>145c554</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/741">#741</a>
bump <code>@​npmcli/eslint-config</code> from 4.0.5 to 5.0.0 (<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot])</li>
<li><a
href="https://github.com/npm/node-semver/commit/753e02b9d0cb3ac23e085dc33efcab3e08d61f2b"><code>753e02b</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/747">#747</a>
bump <code>@​npmcli/template-oss</code> from 4.23.3 to 4.23.4 (<a
href="https://redirect.github.com/npm/node-semver/issues/747">#747</a>)
(<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot],
<a
href="https://github.com/npm-cli-bot"><code>@​npm-cli-bot</code></a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/0b812d5fb5fbb208e89dc1250e2efafeaa549437"><code>0b812d5</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/744">#744</a>
postinstall for dependabot template-oss PR (<a
href="https://github.com/hashtagchris"><code>@​hashtagchris</code></a>)</li>
</ul>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.6.2...v7.6.3">7.6.3</a>
(2024-07-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/73a3d79c4ec32d5dd62c9d5f64e5af7fbdad9ec0"><code>73a3d79</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/726">#726</a>
optimize Range parsing and formatting (<a
href="https://redirect.github.com/npm/node-semver/issues/726">#726</a>)
(<a href="https://github.com/jviide"><code>@​jviide</code></a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/2975ece120e17660c9f1ef517de45c09ff821064"><code>2975ece</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/719">#719</a>
fix extra backtick typo (<a
href="https://redirect.github.com/npm/node-semver/issues/719">#719</a>)
(<a href="https://github.com/stdavis"><code>@​stdavis</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/281055e7716ef0415a8826972471331989ede58c"><code>281055e</code></a>
chore: release 7.7.2 (<a
href="https://redirect.github.com/npm/node-semver/issues/783">#783</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/fcafb61ed566ff8ccf24818dd94b76738f037aa4"><code>fcafb61</code></a>
fix: add missing <code>'use strict'</code> directives (<a
href="https://redirect.github.com/npm/node-semver/issues/780">#780</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/c760403b935d3ad35f83e9bbe5ebe1badef2fc71"><code>c760403</code></a>
chore: template-oss-apply for workflow permissions (<a
href="https://redirect.github.com/npm/node-semver/issues/784">#784</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/c99f336fa3bdff465652f9041eab2127d2f52eb2"><code>c99f336</code></a>
fix: prerelease identifier starting with digits (<a
href="https://redirect.github.com/npm/node-semver/issues/781">#781</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/2677f2a88334b0e728dbfe9ad9f5f57458437c87"><code>2677f2a</code></a>
chore: bump <code>@​npmcli/template-oss</code> from 4.23.6 to 4.24.3 (<a
href="https://redirect.github.com/npm/node-semver/issues/778">#778</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/0b98655dbc1a9eb79370ed80f557be98d1c06587"><code>0b98655</code></a>
chore: bump <code>@​npmcli/template-oss</code> from 4.23.4 to 4.23.6 (<a
href="https://redirect.github.com/npm/node-semver/issues/760">#760</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/30c438bb46c74f319aa8783f96d233ebf5f4a90d"><code>30c438b</code></a>
chore: release 7.7.1 (<a
href="https://redirect.github.com/npm/node-semver/issues/765">#765</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/af761c05bd53eef83b5e20f8b09360b0e70557dc"><code>af761c0</code></a>
fix(inc): fully capture prerelease identifier (<a
href="https://redirect.github.com/npm/node-semver/issues/764">#764</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/2cfcbb5021059d0b6642a77400efb4b51133bd75"><code>2cfcbb5</code></a>
chore: release 7.7.0 (<a
href="https://redirect.github.com/npm/node-semver/issues/750">#750</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/d588e3782864b1cab2fe9f2452b848e8c7f609d1"><code>d588e37</code></a>
fix(diff): fix prerelease to stable version diff logic (<a
href="https://redirect.github.com/npm/node-semver/issues/755">#755</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/npm/node-semver/compare/v7.6.2...v7.7.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/semver` from 7.5.8 to 7.7.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:34:03 +00:00
dependabot[bot] 65c9822c65 chore: bump prettier from 3.4.1 to 3.6.2 in /offlinedocs (#20061)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [prettier](https://github.com/prettier/prettier) from 3.4.1 to
3.6.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.6.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Add missing blank line around code block by <a
href="https://github.com/fisker"><code>@​fisker</code></a> in <a
href="https://redirect.github.com/prettier/prettier/pull/17675">prettier/prettier#17675</a></li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#362">Changelog</a></p>
<h2>3.6.1</h2>
<ul>
<li>Fix &quot;Warning: File descriptor 39 closed but not opened in
unmanaged mode&quot; error when running
<code>--experimental-cli</code></li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#361">Changelog</a></p>
<h2>3.6.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/3.5.3...3.6.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2025/06/23/3.6.0">Release note
&quot;Prettier 3.6: Experimental fast CLI and new OXC and Hermes
plugins!&quot;</a></p>
<h2>3.5.3</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#353">Changelog</a></p>
<h2>3.5.2</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#352">Changelog</a></p>
<h2>3.5.1</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#351">Changelog</a></p>
<h2>3.5.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/3.4.2...3.5.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2025/02/09/3.5.0">Release
note</a></p>
<h2>3.4.2</h2>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md#342">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.6.2</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.6.1...3.6.2">diff</a></p>
<h4>Markdown: Add missing blank line around code block (<a
href="https://redirect.github.com/prettier/prettier/pull/17675">#17675</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="md"><code>&lt;!-- Input --&gt;
1. Some text, and code block below, with newline after code block
<pre lang="yaml"><code>---
foo: bar
</code></pre>
<ol>
<li>Another</li>
<li>List</li>
</ol>
<p>&lt;!-- Prettier 3.6.1 --&gt;</p>
<ol>
<li>
<p>Some text, and code block below, with newline after code block</p>
<pre lang="yaml"><code>---
foo: bar
</code></pre>
<ol>
<li>Another</li>
<li>List</li>
</ol>
</li>
</ol>
<p>&lt;!-- Prettier 3.6.2 --&gt;</p>
<ol>
<li>
<p>Some text, and code block below, with newline after code block</p>
<pre lang="yaml"><code>---
foo: bar
</code></pre>
<ol>
<li>Another</li>
<li>List<br />
</code></pre></li>
</ol>
</li>
</ol>
<h1>3.6.1</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.6.0...3.6.1">diff</a></p>
<h4>TypeScript: Allow const without initializer (<a
href="https://redirect.github.com/prettier/prettier/pull/17650">#17650</a>,
<a
href="https://redirect.github.com/prettier/prettier/pull/17654">#17654</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="jsx"><code>// Input
&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prettier/prettier/commit/7a8b05f41574633fd3af5298f3eeaf33567ad3d3"><code>7a8b05f</code></a>
Release 3.6.2</li>
<li><a
href="https://github.com/prettier/prettier/commit/46526b49b6315914b9229be412c1557ce59f8dbf"><code>46526b4</code></a>
Add missing blank line around code block (<a
href="https://redirect.github.com/prettier/prettier/issues/17675">#17675</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/a04ec1196f9c3efe2312b10c2f0d02903c9de5e7"><code>a04ec11</code></a>
chore(deps): update babel to v7.27.7 (<a
href="https://redirect.github.com/prettier/prettier/issues/17684">#17684</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/32be5b6b44314579f3dcc838f26b03ce47938acb"><code>32be5b6</code></a>
chore(deps): update dependency flow-parser to v0.274.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/17676">#17676</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/b55e777924538b69c564abea51a42e33597910b9"><code>b55e777</code></a>
Update docs about &quot;TypeScript Configuration Files&quot; (<a
href="https://redirect.github.com/prettier/prettier/issues/17677">#17677</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/b197c99224b2e068736020bdaa8b2f8a686d4b1e"><code>b197c99</code></a>
chore(deps): update dependency <code>@​vitejs/plugin-react</code> to
v4.6.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/17674">#17674</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/1185f8370a7a4c1b038b994e7be32a2413fae12d"><code>1185f83</code></a>
chore(deps): update dependency <code>@​angular/compiler</code> to
v20.0.5 (<a
href="https://redirect.github.com/prettier/prettier/issues/17680">#17680</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/aa1316fa603e25d853e76f69cdc029c19b8d24b9"><code>aa1316f</code></a>
chore(deps): update dependency browserslist to v4.25.1 (<a
href="https://redirect.github.com/prettier/prettier/issues/17671">#17671</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/c468d33f16c665363da86f9275be4b4d9f799dcd"><code>c468d33</code></a>
chore(deps): update dependency oxc-parser to v0.75.0 (<a
href="https://redirect.github.com/prettier/prettier/issues/17672">#17672</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/3f46d91bdb7b2a650f376215fdf884babfc765b7"><code>3f46d91</code></a>
chore(deps): update dependency vite to v7 (<a
href="https://redirect.github.com/prettier/prettier/issues/17673">#17673</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.4.1...3.6.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prettier&package-manager=npm_and_yarn&previous-version=3.4.1&new-version=3.6.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:33:36 +00:00
dependabot[bot] 58f2574791 chore: bump next from 15.4.7 to 15.5.4 in /offlinedocs (#20063)
Bumps [next](https://github.com/vercel/next.js) from 15.4.7 to 15.5.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v15.5.4</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: ensure onRequestError is invoked when otel enabled (<a
href="https://redirect.github.com/vercel/next.js/issues/83343">#83343</a>)</li>
<li>fix: devtools initial position should be from next config (<a
href="https://redirect.github.com/vercel/next.js/issues/83571">#83571</a>)</li>
<li>[devtool] fix overlay styles are missing (<a
href="https://redirect.github.com/vercel/next.js/issues/83721">#83721</a>)</li>
<li>Turbopack: don't match dynamic pattern for node_modules packages (<a
href="https://redirect.github.com/vercel/next.js/issues/83176">#83176</a>)</li>
<li>Turbopack: don't treat metadata routes as RSC (<a
href="https://redirect.github.com/vercel/next.js/issues/82911">#82911</a>)</li>
<li>[turbopack] Improve handling of symlink resolution errors in
track_glob and read_glob (<a
href="https://redirect.github.com/vercel/next.js/issues/83357">#83357</a>)</li>
<li>Turbopack: throw large static metadata error earlier (<a
href="https://redirect.github.com/vercel/next.js/issues/82939">#82939</a>)</li>
<li>fix: error overlay not closing when backdrop clicked (<a
href="https://redirect.github.com/vercel/next.js/issues/83981">#83981</a>)</li>
<li>Turbopack: flush Node.js worker IPC on error (<a
href="https://redirect.github.com/vercel/next.js/issues/84077">#84077</a>)</li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li>[CNA] use linter preference (<a
href="https://redirect.github.com/vercel/next.js/issues/83194">#83194</a>)</li>
<li>CI: use KV for test timing data (<a
href="https://redirect.github.com/vercel/next.js/issues/83745">#83745</a>)</li>
<li>docs: september improvements and fixes (<a
href="https://redirect.github.com/vercel/next.js/issues/83997">#83997</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/yiminghe"><code>@​yiminghe</code></a>, <a
href="https://github.com/huozhi"><code>@​huozhi</code></a>, <a
href="https://github.com/devjiwonchoi"><code>@​devjiwonchoi</code></a>,
<a href="https://github.com/mischnic"><code>@​mischnic</code></a>, <a
href="https://github.com/lukesandberg"><code>@​lukesandberg</code></a>,
<a href="https://github.com/ztanner"><code>@​ztanner</code></a>, <a
href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a>, <a
href="https://github.com/leerob"><code>@​leerob</code></a>, <a
href="https://github.com/fufuShih"><code>@​fufuShih</code></a>, <a
href="https://github.com/dwrth"><code>@​dwrth</code></a>, <a
href="https://github.com/aymericzip"><code>@​aymericzip</code></a>, <a
href="https://github.com/obendev"><code>@​obendev</code></a>, <a
href="https://github.com/molebox"><code>@​molebox</code></a>, <a
href="https://github.com/OoMNoO"><code>@​OoMNoO</code></a>, <a
href="https://github.com/pontasan"><code>@​pontasan</code></a>, <a
href="https://github.com/styfle"><code>@​styfle</code></a>, <a
href="https://github.com/HondaYt"><code>@​HondaYt</code></a>, <a
href="https://github.com/ryuapp"><code>@​ryuapp</code></a>, <a
href="https://github.com/lpalmes"><code>@​lpalmes</code></a>, and <a
href="https://github.com/ijjk"><code>@​ijjk</code></a> for helping!</p>
<h2>v15.5.3</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: validation return types of pages API routes (<a
href="https://redirect.github.com/vercel/next.js/issues/83069">#83069</a>)</li>
<li>fix: relative paths in dev in validator.ts (<a
href="https://redirect.github.com/vercel/next.js/issues/83073">#83073</a>)</li>
<li>fix: remove satisfies keyword from type validation to preserve old
TS compatibility (<a
href="https://redirect.github.com/vercel/next.js/issues/83071">#83071</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/bgub"><code>@​bgub</code></a> for helping!</p>
<h2>v15.5.2</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: disable unknownatrules lint rule entirely (<a
href="https://redirect.github.com/vercel/next.js/issues/83059">#83059</a>)</li>
<li>revert: add ?dpl to fonts in /_next/static/media (<a
href="https://redirect.github.com/vercel/next.js/issues/83062">#83062</a>)</li>
</ul>
<h3>Credits</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/40f1d7814d8f1ab3d9e169b389015b8d6f258fb3"><code>40f1d78</code></a>
v15.5.4</li>
<li><a
href="https://github.com/vercel/next.js/commit/cb30f0a1760b640b42cc15f34c55531499d3949c"><code>cb30f0a</code></a>
[backport] docs: september improvements and fixes (<a
href="https://redirect.github.com/vercel/next.js/issues/83997">#83997</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/b6a32bb57956f0bd4175d7b04e83c3bbad5249a8"><code>b6a32bb</code></a>
[backport] [CNA] use linter preference (<a
href="https://redirect.github.com/vercel/next.js/issues/83194">#83194</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/84087">#84087</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/26d61f1e9a27a5f6c3dea5ac36c2c20c33cc0127"><code>26d61f1</code></a>
[backport] Turbopack: flush Node.js worker IPC on error (<a
href="https://redirect.github.com/vercel/next.js/issues/84079">#84079</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/e11e87a54734bb8136e2e5ac5c0c2218b1e57a48"><code>e11e87a</code></a>
[backport] fix: error overlay not closing when backdrop clicked (<a
href="https://redirect.github.com/vercel/next.js/issues/83981">#83981</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/83">#83</a>...</li>
<li><a
href="https://github.com/vercel/next.js/commit/0a29888575d9f95e1cdf26d62bcab05a5a53bf95"><code>0a29888</code></a>
[backport] fix: devtools initial position should be from next config (<a
href="https://redirect.github.com/vercel/next.js/issues/83571">#83571</a>)...</li>
<li><a
href="https://github.com/vercel/next.js/commit/7a53950c136242fa77af5c02307a86966379e5a8"><code>7a53950</code></a>
[backport] Turbopack: don't treat metadata routes as RSC (<a
href="https://redirect.github.com/vercel/next.js/issues/83804">#83804</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/050bdf1ae70f71cac9a4634b1059ce386b15825a"><code>050bdf1</code></a>
[backport] Turbopack: throw large static metadata error earlier (<a
href="https://redirect.github.com/vercel/next.js/issues/83816">#83816</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/1f6ea09f8586ec26978c79d0a3d90b4b6b62f1a4"><code>1f6ea09</code></a>
[backport] Turbopack: Improve handling of symlink resolution errors (<a
href="https://redirect.github.com/vercel/next.js/issues/83805">#83805</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/c7d1855499e507df5591c3697a365ae1a063ebb0"><code>c7d1855</code></a>
[backport] CI: use KV for test timing data (<a
href="https://redirect.github.com/vercel/next.js/issues/83860">#83860</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/compare/v15.4.7...v15.5.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=15.4.7&new-version=15.5.4)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:33:08 +00:00
dependabot[bot] c93795e271 chore: bump remark-gfm from 4.0.0 to 4.0.1 in /offlinedocs (#20066)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [remark-gfm](https://github.com/remarkjs/remark-gfm) from 4.0.0 to
4.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/remarkjs/remark-gfm/releases">remark-gfm's
releases</a>.</em></p>
<blockquote>
<h2>4.0.1</h2>
<h4>Types</h4>
<ul>
<li>4af823a Refactor to use <code>interface</code> for exposed
types</li>
<li>3a57a5b Add declaration maps</li>
<li>76559f9 Refactor to use <code>@import</code>s</li>
</ul>
<h4>Docs</h4>
<ul>
<li>173394d Add docs on footnote option</li>
<li>21cae6a Fix typo
by <a href="https://github.com/leafac"><code>@​leafac</code></a> in <a
href="https://redirect.github.com/remarkjs/remark-gfm/pull/73">remarkjs/remark-gfm#73</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/remarkjs/remark-gfm/compare/4.0.0...4.0.1">https://github.com/remarkjs/remark-gfm/compare/4.0.0...4.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/109972e8a773bf5dac1d6d2da0776557f36971aa"><code>109972e</code></a>
4.0.1</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/173394d37359ac3b193a39832fdf0babadd39d40"><code>173394d</code></a>
Add docs on footnote option</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/030dd8d53490ffef21ead3420d3e75028aff511f"><code>030dd8d</code></a>
Update dev-dependencies</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/21cae6ac8b33d98ad8a944023443a1f99f6727f0"><code>21cae6a</code></a>
Fix typo</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/4af823a56b4aab629a2558b347030c9648c0968e"><code>4af823a</code></a>
Refactor to use <code>interface</code> for exposed types</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/3a57a5bc3cb6a7f9c1f8ac17257f598c20d60397"><code>3a57a5b</code></a>
Add declaration maps</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/76559f9e0509a53589879622baeb0d31ea1f5369"><code>76559f9</code></a>
Refactor to use <code>@import</code>s</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/da382350ccbf4902572ea46dd6a6ebd839e50433"><code>da38235</code></a>
Refactor <code>package.json</code></li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/a5e8993994a569ab8508daddbc5b982399804392"><code>a5e8993</code></a>
Remove license year</li>
<li><a
href="https://github.com/remarkjs/remark-gfm/commit/4e1d55f3202a9bda07e02e271860719c813bd4f5"><code>4e1d55f</code></a>
Refactor <code>.editorconfig</code></li>
<li>Additional commits viewable in <a
href="https://github.com/remarkjs/remark-gfm/compare/4.0.0...4.0.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=remark-gfm&package-manager=npm_and_yarn&previous-version=4.0.0&new-version=4.0.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:27:35 +00:00
dependabot[bot] 8ee6aaa188 chore: bump knip from 5.51.0 to 5.64.1 in /site (#20073)
Bumps [knip](https://github.com/webpro-nl/knip/tree/HEAD/packages/knip)
from 5.51.0 to 5.64.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/webpro-nl/knip/releases">knip's
releases</a>.</em></p>
<blockquote>
<h2>Release 5.64.1</h2>
<ul>
<li>Edit docs (634b59d07353bc09db762ee1b672df06da66da59)</li>
<li>Edit docs (d3433f00840736e11cc5c845babffe415ecad1fe)</li>
<li>Add &quot;How to keep package.json under control&quot; article
(570f40b15007c075d7f1e4d77bd2970034eec8ec)</li>
<li>We're incompatible with typescript v7
(f4f9166a0fca265e6f0dc939528836ce7003938f)</li>
<li>Migrate from bun → pnpm
(f18428c53d5bff7bad5259bf053e1d8c2b78881f)</li>
<li>Migrate from biome v1 → v2
(7ae5d72dadba0d8084842765ba3c045ac9199aa5)</li>
<li>Update dependencies (3174456e0c0f3086cc52d41cbea647b5a50cc057)</li>
<li>Re-gen plugins list (2da7ba49e8930c68b3cf8d1421a88cf975af9800)</li>
<li>Migrate from zod v3 → v4
(a71c1030be3ee6b7312fdb952504a3f1dbe5a694)</li>
</ul>
<h2>Release 5.64.0</h2>
<ul>
<li>Fix formatting (900068149a5612cb6d084d46a3ff31b94c49b284)</li>
<li>Add <code>env-cmd</code> Support (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1254">#1254</a>)
(21d6b5183ad10b3296cdb9c8f21a8f2d01bb36e9) - thanks <a
href="https://github.com/joealden"><code>@​joealden</code></a>!</li>
<li>Re-gen sponsorships chart
(185c6389226216548c5691acbac38dda3bf07dfd)</li>
<li>fix: handle only string modules in dependency resolution (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1263">#1263</a>)
(a54021b6e5904fe6a6e87614728b841fe6931858) - thanks <a
href="https://github.com/wattanx"><code>@​wattanx</code></a>!</li>
<li>fix: bun ci (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1267">#1267</a>)
(3d1c3c5b91f440ade9f1069dd41f402e50645c6c) - thanks <a
href="https://github.com/Zamiell"><code>@​Zamiell</code></a>!</li>
<li>Filter out invalid binaries (resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1264">#1264</a>)
(6f306111e4571418546da2aaf40d9b533940dd28)</li>
<li>Work types for good ol' ts 5.0.4
(9913ee755014285036a12ceed65371eb47a321eb)</li>
<li>Add <a
href="https://github.com/Datadog-OSS"><code>@​Datadog-OSS</code></a>
sponsor (a61d9fef9b3ea9c163c6408b1b38495417aeb1da)</li>
<li>feat: GitHub actions reporter (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1231">#1231</a>)
(0a234504fd626f9f0a59aa377301fa46639539c1) - thanks <a
href="https://github.com/cylewaitforit"><code>@​cylewaitforit</code></a>!</li>
<li>Add pos to unlisted deps issue type
(5b54dae614d1b0719046405241d80e390ab9f4ba)</li>
<li>Improve import specifier sanitizer (resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1257">#1257</a>)
(087a98e028994d3e19bfcfd88b7b6231855de781)</li>
<li>Cover more cases for symbol refs finder (resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1273">#1273</a>)
(3d76e51e59eceeb528ef6e20ca5e3a1bfff2a841)</li>
<li>Fix package name of rslib enabler (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1272">#1272</a>)
(432bdccb9aa3c8c7d8c0114f6614a651d959e56d) - thanks <a
href="https://github.com/nyarthan"><code>@​nyarthan</code></a>!</li>
<li>Pass parsed CLI args to config-as-a-function
(b0814c9d454ccd060aeda693398d1707ef678fc4)</li>
<li>Ignore !-suffixed deps/bins only in production mode (resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1253">#1253</a>)
(06d4df84e7fe2735fce8bc1b1b12e78016e38ebb)</li>
<li>Update docs (0d8fd135b46855f6d606783e6c256cceeccf9acf)</li>
<li>Auto-format (f54a7bd2cd74354f51fb46ae978b3e5db8759fd7)</li>
<li>Find accessed identifiers for dynamic imports (resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1155">#1155</a>,
resolves <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1230">#1230</a>)
(ec0be7e3b222da5b6ddb34baad9d2591f0f479cb)</li>
<li>Update oxc-resolver and a few more (dev) deps
(96c822a40855c21152f81a1599458850b4f6c2dc)</li>
<li>Optimize <code>getAccessedIdentifiers</code>
(8fb95019030533909c970bdb204b4779c19eaf5d)</li>
<li>fix: enable pnpm plugin on root config &amp; lockfile (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1275">#1275</a>)
(6e339cadc079b0e144c2036134154c696e8b31c0) - thanks <a
href="https://github.com/nyarthan"><code>@​nyarthan</code></a>!</li>
<li>Remove ancient past sponsors
(e9e6e911d87cf550df87647f5a9b949d32faa27f)</li>
<li>Remove default <code>binaries</code> values in plugins
(aac28c491ead836231e7487a8ebea056d0cf16cc)</li>
<li>Remove default <code>containingFilePath</code> value in angular
plugin (92089275df7752a830c171d8d1d4cb39b0a83565)</li>
<li>Add <code>isRootOnly</code> to pnpm plugin
(fe99f594ac79c2bb3590091651300062b690a12b)</li>
<li>Move/extend docs to write plugin
(497bddb5479a53d59baaa078225343a621eaa317)</li>
<li>feat: add <code>time</code> &amp; <code>unzip</code> to ignored
binaries (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1276">#1276</a>)
(4f8d9df599ffaba171e2535ffe61153f4ce1089a) - thanks <a
href="https://github.com/nyarthan"><code>@​nyarthan</code></a>!</li>
<li>Add <code>Rstest</code> Plugin (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1277">#1277</a>)
(5b7d92f101153294708a3d1afe8d2c4d61595116) - thanks <a
href="https://github.com/nyarthan"><code>@​nyarthan</code></a>!</li>
<li>Edit docs (847ccf168776f2cb6c9b5108a208ea8eae12799f)</li>
<li>feat: add plugin for <code>bumpp</code> (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1278">#1278</a>)
(136a14bc4ff4138389a831afc62f5406f66223a5) - thanks <a
href="https://github.com/nyarthan"><code>@​nyarthan</code></a>!</li>
<li>Support input resolver from args in plugins (resolve <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1274">#1274</a>)
(19dd367764fa078fb9c93bb0a715492ff0581098)</li>
<li>Edit docs (77d683e2b75b44c7fd5fc47b59621398b86028ea)</li>
</ul>
<h2>Release 5.63.1</h2>
<ul>
<li>Fix <code>rsbuild</code> Plugin (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1227">#1227</a>)
(e91eea3382059ad4067ace6079e856b2268d9f94) - thanks <a
href="https://github.com/joealden"><code>@​joealden</code></a>!</li>
<li>Binaries don't contain colons (closes <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1234">#1234</a>)
(1d060ac1043ccf211380682962c4c668758740ed)</li>
<li>Refactor options all over the place
(982d3272e46609f06ca858605d802a75726500d1)</li>
<li>feat: detect nuxt modules as dependencies (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1241">#1241</a>)
(f2072e6aecd81a2082dc60f440d1e48ab583e480) - thanks <a
href="https://github.com/danielamaia"><code>@​danielamaia</code></a>!</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/webpro-nl/knip/commit/e0ff0b5d74ae42686b86cff962a357bce9619a16"><code>e0ff0b5</code></a>
Release 5.64.1</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/a71c1030be3ee6b7312fdb952504a3f1dbe5a694"><code>a71c103</code></a>
Migrate from zod v3 → v4</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/3174456e0c0f3086cc52d41cbea647b5a50cc057"><code>3174456</code></a>
Update dependencies</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/7ae5d72dadba0d8084842765ba3c045ac9199aa5"><code>7ae5d72</code></a>
Migrate from biome v1 → v2</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/f18428c53d5bff7bad5259bf053e1d8c2b78881f"><code>f18428c</code></a>
Migrate from bun → pnpm</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/f4f9166a0fca265e6f0dc939528836ce7003938f"><code>f4f9166</code></a>
We're incompatible with typescript v7</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/f0aeb5bc66536573035fcabee283d1b28d5f39c1"><code>f0aeb5b</code></a>
Release 5.64.0</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/77d683e2b75b44c7fd5fc47b59621398b86028ea"><code>77d683e</code></a>
Edit docs</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/19dd367764fa078fb9c93bb0a715492ff0581098"><code>19dd367</code></a>
Support input resolver from args in plugins (resolve <a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1274">#1274</a>)</li>
<li><a
href="https://github.com/webpro-nl/knip/commit/136a14bc4ff4138389a831afc62f5406f66223a5"><code>136a14b</code></a>
feat: add plugin for <code>bumpp</code> (<a
href="https://github.com/webpro-nl/knip/tree/HEAD/packages/knip/issues/1278">#1278</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/webpro-nl/knip/commits/5.64.1/packages/knip">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=knip&package-manager=npm_and_yarn&previous-version=5.51.0&new-version=5.64.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:27:05 +00:00
dependabot[bot] 3dc857c75d chore: bump @radix-ui/react-slot from 1.1.1 to 1.2.3 in /site (#20072)
Bumps [@radix-ui/react-slot](https://github.com/radix-ui/primitives)
from 1.1.1 to 1.2.3.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/radix-ui/primitives/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@radix-ui/react-slot&package-manager=npm_and_yarn&previous-version=1.1.1&new-version=1.2.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:26:46 +00:00
dependabot[bot] 1c93846737 chore: bump @types/node from 20.17.16 to 20.19.19 in /offlinedocs (#20064)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
from 20.17.16 to 20.19.19.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/node&package-manager=npm_and_yarn&previous-version=20.17.16&new-version=20.19.19)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:26:11 +00:00
dependabot[bot] 057b0eb07e chore: bump @playwright/test from 1.50.1 to 1.55.1 in /site (#20071)
Bumps [@playwright/test](https://github.com/microsoft/playwright) from
1.50.1 to 1.55.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/microsoft/playwright/releases"><code>@​playwright/test</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v1.55.1</h2>
<h3>Highlights</h3>
<p><a
href="https://redirect.github.com/microsoft/playwright/issues/37479">microsoft/playwright#37479</a>
- [Bug]: Upgrade Chromium to 140.0.7339.186.
<a
href="https://redirect.github.com/microsoft/playwright/issues/37147">microsoft/playwright#37147</a>
- [Regression]: Internal error: step id not found.
<a
href="https://redirect.github.com/microsoft/playwright/issues/37146">microsoft/playwright#37146</a>
- [Regression]: HTML reporter displays a broken chip link when there are
no projects.
<a
href="https://redirect.github.com/microsoft/playwright/pull/37137">microsoft/playwright#37137</a>
- Revert &quot;fix(a11y): track inert elements as hidden&quot;.</p>
<h2>Browser Versions</h2>
<ul>
<li>Chromium 140.0.7339.186</li>
<li>Mozilla Firefox 141.0</li>
<li>WebKit 26.0</li>
</ul>
<p>This version was also tested against the following stable
channels:</p>
<ul>
<li>Google Chrome 139</li>
<li>Microsoft Edge 139</li>
</ul>
<h2>v1.55.0</h2>
<h2>New APIs</h2>
<ul>
<li>New Property <a
href="https://playwright.dev/docs/api/class-teststepinfo#test-step-info-title-path">testStepInfo.titlePath</a>
Returns the full title path starting from the test file, including test
and step titles.</li>
</ul>
<h2>Codegen</h2>
<ul>
<li>Automatic <code>toBeVisible()</code> assertions: Codegen can now
generate automatic <code>toBeVisible()</code> assertions for common UI
interactions. This feature can be enabled in the Codegen settings
UI.</li>
</ul>
<h2>Breaking Changes</h2>
<ul>
<li>⚠️ Dropped support for Chromium extension manifest v2.</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>Added support for Debian 13 &quot;Trixie&quot;.</li>
</ul>
<h2>Browser Versions</h2>
<ul>
<li>Chromium 140.0.7339.16</li>
<li>Mozilla Firefox 141.0</li>
<li>WebKit 26.0</li>
</ul>
<p>This version was also tested against the following stable
channels:</p>
<ul>
<li>Google Chrome 139</li>
<li>Microsoft Edge 139</li>
</ul>
<h2>v1.54.2</h2>
<h3>Highlights</h3>
<p><a
href="https://redirect.github.com/microsoft/playwright/issues/36714">microsoft/playwright#36714</a>
- [Regression]: Codegen is not able to launch in Administrator Terminal
on Windows (ProtocolError: Protocol error)
<a
href="https://redirect.github.com/microsoft/playwright/issues/36828">microsoft/playwright#36828</a>
- [Regression]: Playwright Codegen keeps spamming with selected option
<a
href="https://redirect.github.com/microsoft/playwright/issues/36810">microsoft/playwright#36810</a>
- [Regression]: Starting Codegen with target language doesn't work
anymore</p>
<h2>Browser Versions</h2>
<ul>
<li>Chromium 139.0.7258.5</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/microsoft/playwright/commit/ae51df7a35888f663553ab4e9c45d6cb6335397f"><code>ae51df7</code></a>
chore: mark v1.55.1 (<a
href="https://redirect.github.com/microsoft/playwright/issues/37530">#37530</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/86dde294ce7fc9dd62d2f7ce5afd0c79cff50140"><code>86dde29</code></a>
feat(chromium): roll to r1193 (<a
href="https://redirect.github.com/microsoft/playwright/issues/37529">#37529</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/86328bc9f43da2fe2b9aba2822c79f8b4c0c7f72"><code>86328bc</code></a>
chore: do not use -k option (<a
href="https://redirect.github.com/microsoft/playwright/issues/37532">#37532</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/63799ba68340fde11445d4f48c12515c28dcc92a"><code>63799ba</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37214">#37214</a>):
docs: fix method names in release notes</li>
<li><a
href="https://github.com/microsoft/playwright/commit/21e29a42ab090d7848a3c3255f05335ba0db424d"><code>21e29a4</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37153">#37153</a>):
fix(html): don't display a chip with empty content with ...</li>
<li><a
href="https://github.com/microsoft/playwright/commit/ba62e6ab0d25f7415ffdf121e4e186aadb213be5"><code>ba62e6a</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37149">#37149</a>):
fix(test): attaching in boxed fixture</li>
<li><a
href="https://github.com/microsoft/playwright/commit/25bb073f2697c98995871d40828604b0836c29b7"><code>25bb073</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37137">#37137</a>):
Revert &quot;fix(a11y): track inert elements as hidden (<a
href="https://redirect.github.com/microsoft/playwright/issues/36947">#36947</a>)&quot;</li>
<li><a
href="https://github.com/microsoft/playwright/commit/f992162f04ae0b0b5a0f4b6114b894215be98995"><code>f992162</code></a>
chore: mark v1.55.0 (<a
href="https://redirect.github.com/microsoft/playwright/issues/37121">#37121</a>)</li>
<li><a
href="https://github.com/microsoft/playwright/commit/4a92ea00253106c8bd4234b8d5be2e205d049012"><code>4a92ea0</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37113">#37113</a>):
docs: add release-notes for v1.55</li>
<li><a
href="https://github.com/microsoft/playwright/commit/aa05507bbabc170abf7775bf0d3ddd2438dc384a"><code>aa05507</code></a>
cherry-pick(<a
href="https://redirect.github.com/microsoft/playwright/issues/37114">#37114</a>):
test: move browser._launchServer in child process</li>
<li>Additional commits viewable in <a
href="https://github.com/microsoft/playwright/compare/v1.50.1...v1.55.1">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~playwright-bot">playwright-bot</a>, a new
releaser for <code>@​playwright/test</code> since your current
version.</p>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@playwright/test&package-manager=npm_and_yarn&previous-version=1.50.1&new-version=1.55.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:26:07 +00:00
dependabot[bot] 48d19c5546 chore: bump @fontsource/fira-code from 5.2.5 to 5.2.7 in /site (#20069)
Bumps
[@fontsource/fira-code](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/fira-code)
from 5.2.5 to 5.2.7.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/fontsource/font-files/commits/HEAD/fonts/google/fira-code">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@fontsource/fira-code&package-manager=npm_and_yarn&previous-version=5.2.5&new-version=5.2.7)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:24:56 +00:00
dependabot[bot] 9d8579bbe3 chore: bump chromatic from 11.25.2 to 11.29.0 in /site (#20067)
Bumps [chromatic](https://github.com/chromaui/chromatic-cli) from
11.25.2 to 11.29.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chromaui/chromatic-cli/releases">chromatic's
releases</a>.</em></p>
<blockquote>
<h2>v11.29.0</h2>
<h4>🚀 Enhancement</h4>
<ul>
<li>Export <code>createLogger</code> and make all arguments optional <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1182">#1182</a>
(<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Gert Hengeveld (<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h2>v11.28.4</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Revert &quot;Add git command logging and pass
<code>--no-relative</code> to <code>git diff</code>.&quot; <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1183">#1183</a>
(<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Gert Hengeveld (<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h2>v11.28.3</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Add git command logging and pass <code>--no-relative</code> to
<code>git diff</code>. <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1181">#1181</a>
(<a href="https://github.com/tmeasday"><code>@​tmeasday</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Tom Coleman (<a
href="https://github.com/tmeasday"><code>@​tmeasday</code></a>)</li>
</ul>
<h2>v11.28.2</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Use pagination to get all tests in the build <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1175">#1175</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h2>v11.28.1</h2>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Return additional build info on action rerun <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1174">#1174</a>
(<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
<li>✏️ Update help text to reflect actual state of
exitOnceUploaded. <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1169">#1169</a>
(<a href="https://github.com/jwir3"><code>@​jwir3</code></a>)</li>
</ul>
<h4>Authors: 2</h4>
<ul>
<li>Justin Thurman (<a
href="https://github.com/justin-thurman"><code>@​justin-thurman</code></a>)</li>
<li>Scott Johnson (<a
href="https://github.com/jwir3"><code>@​jwir3</code></a>)</li>
</ul>
<h2>v11.28.0</h2>
<h4>🚀 Enhancement</h4>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/chromaui/chromatic-cli/blob/main/CHANGELOG.md">chromatic's
changelog</a>.</em></p>
<blockquote>
<h1>v11.29.0 (Fri May 23 2025)</h1>
<h4>🚀 Enhancement</h4>
<ul>
<li>Export <code>createLogger</code> and make all arguments optional <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1182">#1182</a>
(<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Gert Hengeveld (<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<hr />
<h1>v11.28.4 (Fri May 23 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Revert &quot;Add git command logging and pass
<code>--no-relative</code> to <code>git diff</code>.&quot; <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1183">#1183</a>
(<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Gert Hengeveld (<a
href="https://github.com/ghengeveld"><code>@​ghengeveld</code></a>)</li>
</ul>
<hr />
<h1>v11.28.3 (Thu May 22 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Add git command logging and pass <code>--no-relative</code> to
<code>git diff</code>. <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1181">#1181</a>
(<a href="https://github.com/tmeasday"><code>@​tmeasday</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Tom Coleman (<a
href="https://github.com/tmeasday"><code>@​tmeasday</code></a>)</li>
</ul>
<hr />
<h1>v11.28.2 (Thu Apr 17 2025)</h1>
<h4>🐛 Bug Fix</h4>
<ul>
<li>Use pagination to get all tests in the build <a
href="https://redirect.github.com/chromaui/chromatic-cli/pull/1175">#1175</a>
(<a href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<h4>Authors: 1</h4>
<ul>
<li>Cody Kaup (<a
href="https://github.com/codykaup"><code>@​codykaup</code></a>)</li>
</ul>
<hr />
<h1>v11.28.1 (Thu Apr 17 2025)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/6004745462f2b0e925f5ffd02427e1d93b5a4457"><code>6004745</code></a>
Bump version to: 11.29.0 [skip ci]</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/15caa2ae276e61cf5a1d4158a0a3b0291a526a68"><code>15caa2a</code></a>
Update CHANGELOG.md [skip ci]</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/092db515ebca02d057c1b7ed91712fd6c7720d1b"><code>092db51</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/chromatic-cli/issues/1182">#1182</a>
from chromaui/export-createLogger</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/71ad899f7f824278ab05e0ac854ee88a78da3509"><code>71ad899</code></a>
Merge branch 'main' into export-createLogger</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/e6127ede8887d61107ec725f057a410f8c2898b9"><code>e6127ed</code></a>
Bump version to: 11.28.4 [skip ci]</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/88ca20e2f8eb6f78fc289872c043935ad044474e"><code>88ca20e</code></a>
Update CHANGELOG.md [skip ci]</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/ac3689eae4ccbabccc63298fd935dc20d352d3ad"><code>ac3689e</code></a>
Merge pull request <a
href="https://redirect.github.com/chromaui/chromatic-cli/issues/1183">#1183</a>
from chromaui/revert-1181-tom/cap-2840-turbosnap-det...</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/46ef6376e1e7dd1442e5986828bdd251d5cb4d8c"><code>46ef637</code></a>
Revert &quot;Add git command logging and pass <code>--no-relative</code>
to <code>git diff</code>.&quot;</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/fd1bbfe989c2c0e56ef6d7a40949b1a692bc4d32"><code>fd1bbfe</code></a>
Export createLogger and make all arguments optional</li>
<li><a
href="https://github.com/chromaui/chromatic-cli/commit/24e63156d595d9e2b144247661946125e3f9110c"><code>24e6315</code></a>
Bump version to: 11.28.3 [skip ci]</li>
<li>Additional commits viewable in <a
href="https://github.com/chromaui/chromatic-cli/compare/v11.25.2...v11.29.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chromatic&package-manager=npm_and_yarn&previous-version=11.25.2&new-version=11.29.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:23:09 +00:00
dependabot[bot] 4553614bff chore: bump the mui group across 1 directory with 5 updates (#20054)
Bumps the mui group with 5 updates in the /site directory:

| Package | From | To |
| --- | --- | --- |
|
[@mui/icons-material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material)
| `5.16.14` | `5.18.0` |
|
[@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material)
| `5.16.14` | `5.18.0` |
|
[@mui/system](https://github.com/mui/material-ui/tree/HEAD/packages/mui-system)
| `5.16.14` | `5.18.0` |
|
[@mui/utils](https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils)
| `5.16.14` | `5.17.1` |
|
[@mui/x-tree-view](https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view)
| `7.25.0` | `7.29.10` |


Updates `@mui/icons-material` from 5.16.14 to 5.18.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/releases"><code>@​mui/icons-material</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.18.0</h2>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/blob/v5.18.0/CHANGELOG.md"><code>@​mui/icons-material</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>5.18.0</h2>
<!-- raw HTML omitted -->
<p><em>Jun 26, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mui/material-ui/commit/6b50143dcfc2aad56a37c9f2e1f14256e9a65c4e"><code>6b50143</code></a>
5.18.0 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/46432">#46432</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/0d509f8a4a48031a1e25974a1604b803892ce94e"><code>0d509f8</code></a>
[release] v5.17.1 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45614">#45614</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/b0dc8270c5a2896293ff8b61052120a13819f0a1"><code>b0dc827</code></a>
v5.17.0 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-icons-material/issues/45605">#45605</a>)</li>
<li>See full diff in <a
href="https://github.com/mui/material-ui/commits/v5.18.0/packages/mui-icons-material">compare
view</a></li>
</ul>
</details>
<br />

Updates `@mui/material` from 5.16.14 to 5.18.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/releases"><code>@​mui/material</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.18.0</h2>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/blob/v5.18.0/CHANGELOG.md"><code>@​mui/material</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>5.18.0</h2>
<!-- raw HTML omitted -->
<p><em>Jun 26, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mui/material-ui/commit/6b50143dcfc2aad56a37c9f2e1f14256e9a65c4e"><code>6b50143</code></a>
5.18.0 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46432">#46432</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/f233c5b08681c5ea72c4be6e696194e9a5d57e1c"><code>f233c5b</code></a>
[material-nextjs][system] Backport CSS layers to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/46320">#46320</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/0d509f8a4a48031a1e25974a1604b803892ce94e"><code>0d509f8</code></a>
[release] v5.17.1 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45614">#45614</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/2baafb387125a74262ad6f3a76252d379de32678"><code>2baafb3</code></a>
[v5.x][core] Fix types version (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45612">#45612</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/b0dc8270c5a2896293ff8b61052120a13819f0a1"><code>b0dc827</code></a>
v5.17.0 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45605">#45605</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/371a1fe00fd826596cbba279f997595f20d18010"><code>371a1fe</code></a>
[material-ui] Support nested theme when upper theme is CSS vars theme
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-material/issues/45604">#45604</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/c4392057185ed6ab62961f1cb777d5d86919d744"><code>c439205</code></a>
[material-ui][TextareaAutosize] Temporarily disconnect ResizeObserver to
avoi...</li>
<li>See full diff in <a
href="https://github.com/mui/material-ui/commits/v5.18.0/packages/mui-material">compare
view</a></li>
</ul>
</details>
<br />

Updates `@mui/system` from 5.16.14 to 5.18.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/releases"><code>@​mui/system</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.18.0</h2>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/blob/v5.18.0/CHANGELOG.md"><code>@​mui/system</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>5.18.0</h2>
<!-- raw HTML omitted -->
<p><em>Jun 26, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<p>CSS layers make it easier to override styles by splitting a single
style sheet into multiple layers.
To learn more, check out the <a
href="https://v5.mui.com/material-ui/customization/css-layers/">CSS
layers documentation</a>.</p>
<h3><code>@mui/system@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3><code>@mui/material-nextjs@5.18.0</code></h3>
<ul>
<li>Backport CSS layers from v7 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46320">#46320</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<h3>Docs</h3>
<ul>
<li>Ease migration to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45991">#45991</a>)
<a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a></li>
<li>Add AccordionSummary to the breaking change migration (<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a>) (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45972">#45972</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/oliviertassinari"><code>@​oliviertassinari</code></a>,
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mui/material-ui/commit/6b50143dcfc2aad56a37c9f2e1f14256e9a65c4e"><code>6b50143</code></a>
5.18.0 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46432">#46432</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/f233c5b08681c5ea72c4be6e696194e9a5d57e1c"><code>f233c5b</code></a>
[material-nextjs][system] Backport CSS layers to v5 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/46320">#46320</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/0d509f8a4a48031a1e25974a1604b803892ce94e"><code>0d509f8</code></a>
[release] v5.17.1 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45614">#45614</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/2baafb387125a74262ad6f3a76252d379de32678"><code>2baafb3</code></a>
[v5.x][core] Fix types version (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-system/issues/45612">#45612</a>)</li>
<li>See full diff in <a
href="https://github.com/mui/material-ui/commits/v5.18.0/packages/mui-system">compare
view</a></li>
</ul>
</details>
<br />

Updates `@mui/utils` from 5.16.14 to 5.17.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/releases"><code>@​mui/utils</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mui/material-ui/blob/v5.17.1/CHANGELOG.md"><code>@​mui/utils</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v5.17.1</h2>
<!-- raw HTML omitted -->
<p><em>Mar 18, 2025</em></p>
<p>This release fixes the <code>@mui/types</code> dependencies in all
packages to fix a package layout bug (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45612">#45612</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></p>
<h2>v5.17.0</h2>
<p><em>Mar 18, 2025</em></p>
<p>A big thanks to the 2 contributors who made this release
possible.</p>
<h3><code>@mui/material@5.17.0</code></h3>
<ul>
<li>[TextareaAutosize] Temporarily disconnect ResizeObserver to avoid
loop error (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/44540">#44540</a>)
(<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45238">#45238</a>)
<a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a></li>
<li>Support nested theme when upper theme is CSS vars theme (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45604">#45604</a>)
<a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></li>
</ul>
<p>All contributors of this release in alphabetical order: <a
href="https://github.com/DiegoAndai"><code>@​DiegoAndai</code></a>, <a
href="https://github.com/siriwatknp"><code>@​siriwatknp</code></a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mui/material-ui/commit/0d509f8a4a48031a1e25974a1604b803892ce94e"><code>0d509f8</code></a>
[release] v5.17.1 (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45614">#45614</a>)</li>
<li><a
href="https://github.com/mui/material-ui/commit/2baafb387125a74262ad6f3a76252d379de32678"><code>2baafb3</code></a>
[v5.x][core] Fix types version (<a
href="https://github.com/mui/material-ui/tree/HEAD/packages/mui-utils/issues/45612">#45612</a>)</li>
<li>See full diff in <a
href="https://github.com/mui/material-ui/commits/v5.17.1/packages/mui-utils">compare
view</a></li>
</ul>
</details>
<br />

Updates `@mui/x-tree-view` from 7.25.0 to 7.29.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mui/mui-x/releases"><code>@​mui/x-tree-view</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v7.29.10</h2>
<p>We'd like to extend a big thank you to the 1 contributor who made
this release possible. Here are some highlights :</p>
<ul>
<li>🐞 Bugfixes</li>
</ul>
<p>The following is the team member who have contributed to this
release:
<a
href="https://github.com/flaviendelangle"><code>@​flaviendelangle</code></a></p>
<h3>Tree View</h3>
<h4><code>@mui/x-tree-view@7.29.10</code></h4>
<ul>
<li>[tree view] Fix the expansion toggle on icon container with old DOM
structure (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/19546">#19546</a>)
<a
href="https://github.com/flaviendelangle"><code>@​flaviendelangle</code></a></li>
</ul>
<h4><code>@mui/x-tree-view-pro@7.29.10</code> <a
href="https://mui.com/r/x-pro-svg-link" title="Pro plan"><img
src="https://mui.com/r/x-pro-svg" alt="pro" /></a></h4>
<p>Same changes as in <code>@mui/x-tree-view@7.29.10</code>.</p>
<h2>v7.29.9</h2>
<p>We'd like to extend a big thank you to the 5 contributors who made
this release possible. Here are some highlights :</p>
<ul>
<li>🐞 Bugfixes</li>
</ul>
<p>Special thanks go out to the community members for their valuable
contributions:
<a href="https://github.com/nusr"><code>@​nusr</code></a></p>
<p>The following are all team members who have contributed to this
release:
<a
href="https://github.com/cherniavskii"><code>@​cherniavskii</code></a>,
<a
href="https://github.com/mapache-salvaje"><code>@​mapache-salvaje</code></a>,
<a href="https://github.com/MBilalShafi"><code>@​MBilalShafi</code></a>,
<a
href="https://github.com/rita-codes"><code>@​rita-codes</code></a></p>
<!-- raw HTML omitted -->
<h3>Data Grid</h3>
<h4><code>@mui/x-data-grid@7.29.9</code></h4>
<ul>
<li>[DataGrid] Do not call <code>preProcessEditCellProps()</code> if
cell is not editable based on <code>isCellEditable()</code> (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/19082">#19082</a>)
<a href="https://github.com/nusr"><code>@​nusr</code></a></li>
</ul>
<h4><code>@mui/x-data-grid-pro@7.29.9</code> <a
href="https://mui.com/r/x-pro-svg-link" title="Pro plan"><img
src="https://mui.com/r/x-pro-svg" alt="pro" /></a></h4>
<p>Same changes as in <code>@mui/x-data-grid@7.29.9</code>, plus:</p>
<ul>
<li>[DataGridPro] Fix row ordering not auto-scrolling when moving beyond
viewport (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/18718">#18718</a>)
<a
href="https://github.com/MBilalShafi"><code>@​MBilalShafi</code></a></li>
</ul>
<h4><code>@mui/x-data-grid-premium@7.29.9</code> <a
href="https://mui.com/r/x-premium-svg-link" title="Premium plan"><img
src="https://mui.com/r/x-premium-svg" alt="premium" /></a></h4>
<p>Same changes as in <code>@mui/x-data-grid-pro@7.29.9</code>.</p>
<h3>Docs</h3>
<ul>
<li>[docs] Audit and revise the Data Grid Pro row docs (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/18629">#18629</a>)
<a
href="https://github.com/mapache-salvaje"><code>@​mapache-salvaje</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mui/mui-x/blob/v7.29.10/CHANGELOG.md"><code>@​mui/x-tree-view</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>v7.29.10</h2>
<p><em>Sep 25, 2025</em></p>
<p>We'd like to extend a big thank you to the 1 contributor who made
this release possible. Here are some highlights :</p>
<ul>
<li>🐞 Bugfixes</li>
</ul>
<p>The following is the team member who have contributed to this
release:
<a
href="https://github.com/flaviendelangle"><code>@​flaviendelangle</code></a></p>
<h3>Tree View</h3>
<h4><code>@mui/x-tree-view@7.29.10</code></h4>
<ul>
<li>[tree view] Fix the expansion toggle on icon container with old DOM
structure (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/19546">#19546</a>)
<a
href="https://github.com/flaviendelangle"><code>@​flaviendelangle</code></a></li>
</ul>
<h4><code>@mui/x-tree-view-pro@7.29.10</code> <a
href="https://mui.com/r/x-pro-svg-link" title="Pro plan"><img
src="https://mui.com/r/x-pro-svg" alt="pro" /></a></h4>
<p>Same changes as in <code>@mui/x-tree-view@7.29.10</code>.</p>
<!-- raw HTML omitted -->
<h2>7.29.9</h2>
<p><em>Aug 7, 2025</em></p>
<p>We'd like to extend a big thank you to the 5 contributors who made
this release possible. Here are some highlights :</p>
<ul>
<li>🐞 Bugfixes</li>
</ul>
<p>Special thanks go out to the community members for their valuable
contributions:
<a href="https://github.com/nusr"><code>@​nusr</code></a></p>
<p>The following are all team members who have contributed to this
release:
<a
href="https://github.com/cherniavskii"><code>@​cherniavskii</code></a>,
<a
href="https://github.com/mapache-salvaje"><code>@​mapache-salvaje</code></a>,
<a href="https://github.com/MBilalShafi"><code>@​MBilalShafi</code></a>,
<a
href="https://github.com/rita-codes"><code>@​rita-codes</code></a></p>
<!-- raw HTML omitted -->
<h3>Data Grid</h3>
<h4><code>@mui/x-data-grid@7.29.9</code></h4>
<ul>
<li>[DataGrid] Do not call <code>preProcessEditCellProps()</code> if
cell is not editable based on <code>isCellEditable()</code> (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/19082">#19082</a>)
<a href="https://github.com/nusr"><code>@​nusr</code></a></li>
</ul>
<h4><code>@mui/x-data-grid-pro@7.29.9</code> <a
href="https://mui.com/r/x-pro-svg-link" title="Pro plan"><img
src="https://mui.com/r/x-pro-svg" alt="pro" /></a></h4>
<p>Same changes as in <code>@mui/x-data-grid@7.29.9</code>, plus:</p>
<ul>
<li>[DataGridPro] Fix row ordering not auto-scrolling when moving beyond
viewport (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/18718">#18718</a>)
<a
href="https://github.com/MBilalShafi"><code>@​MBilalShafi</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mui/mui-x/commit/a1d26c9ea9ca8d2f1556fd3cad9cbb6753fd6fed"><code>a1d26c9</code></a>
[release] v7.29.10 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/19705">#19705</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/c54bb3d55e772f0581e753c9eddc6cb79a94c82d"><code>c54bb3d</code></a>
[tree view] Fix the expansion toggle on icon container with old DOM
structure...</li>
<li><a
href="https://github.com/mui/mui-x/commit/a80b51b5268ec21a5680677dfbc53b6da2366a32"><code>a80b51b</code></a>
V.7.29.1 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17520">#17520</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/1cead40be63a401f263cbe5a3f2bbb370d4fef2c"><code>1cead40</code></a>
[TreeView] Fix drag and drop issue with label editing (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17415">#17415</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/80a4c73f9e215f7ea2e1e5cdbbe8e80ec5a8ed80"><code>80a4c73</code></a>
v7.29.0 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17383">#17383</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/3fe4c2a957202a86836e28ed5cc2d0c69a49de24"><code>3fe4c2a</code></a>
[core] Cleanup <code>@mui</code> dependency versions (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17390">#17390</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/714c27a35669ddb6607b8304f7dde004cebc12fa"><code>714c27a</code></a>
v7.28.1 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17073">#17073</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/77e84ecc93ccf68211b1bd0cc9d74b1d59b5f741"><code>77e84ec</code></a>
v7.28.0 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/17002">#17002</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/d83ee5c49d3b881a816385f5a59ccff8b2e503d4"><code>d83ee5c</code></a>
[core] Allow MUI Core v7 in dependencies (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/16951">#16951</a>)</li>
<li><a
href="https://github.com/mui/mui-x/commit/3b9664368b060d57fc67f9961104d63c47299b54"><code>3b96643</code></a>
v7.26.0 (<a
href="https://github.com/mui/mui-x/tree/HEAD/packages/x-tree-view/issues/16498">#16498</a>)</li>
<li>See full diff in <a
href="https://github.com/mui/mui-x/commits/v7.29.10/packages/x-tree-view">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~rita-codes">rita-codes</a>, a new releaser
for <code>@​mui/x-tree-view</code> since your current version.</p>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:19:02 +00:00
dependabot[bot] f4c3469a9c chore: bump sanitize-html and @types/sanitize-html in /offlinedocs (#20062)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html)
and
[@types/sanitize-html](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sanitize-html).
These dependencies needed to be updated together.
Updates `sanitize-html` from 2.14.0 to 2.17.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md">sanitize-html's
changelog</a>.</em></p>
<blockquote>
<h2>2.17.0 (2025-05-14)</h2>
<ul>
<li>Add <code>preserveEscapedAttributes</code>, allowing attributes on
escaped disallowed tags to be retained. Thanks to <a
href="https://github.com/benelliott">Ben Elliot</a> for this new
option.</li>
</ul>
<h2>2.16.0 (2025-04-16)</h2>
<ul>
<li>Add <code>onOpenTag</code> and <code>onCloseTag</code> events to
enable advanced filtering to hook into the parser. Thanks to <a
href="https://github.com/naktinis">Rimvydas Naktinis</a>.</li>
</ul>
<h2>2.15.0 (2025-03-19)</h2>
<ul>
<li>Allow keeping tag content when discarding with exclusive filter by
returning <code>&quot;excludeTag&quot;</code>. Thanks to <a
href="https://github.com/rChaoz">rChaoz</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/86efc067a63515e08ecfc47f94d8bca0e3715030"><code>86efc06</code></a>
Merge pull request <a
href="https://redirect.github.com/apostrophecms/sanitize-html/issues/705">#705</a>
from apostrophecms/release-2.17.0</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/c487e7796a1dea5b1dd7a083b4efc47f7988cc51"><code>c487e77</code></a>
release 2.17.0</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/da16903beda114b6d65f2de72b2f8054af010163"><code>da16903</code></a>
Merge pull request <a
href="https://redirect.github.com/apostrophecms/sanitize-html/issues/704">#704</a>
from apostrophecms/add-thanks-to-changelog</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/0e5d881f48c4aa40536d070337159e92edc646b1"><code>0e5d881</code></a>
Update CHANGELOG</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/614e7dfc2ce156baff560254cdf5be77f0560e64"><code>614e7df</code></a>
Merge pull request <a
href="https://redirect.github.com/apostrophecms/sanitize-html/issues/668">#668</a>
from benelliott/feature/preserve-escaped-attributes-2</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/8628ceaa17fa1672037761985c4cb454537a10bd"><code>8628cea</code></a>
Update README.md</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/f07ce9dff8e047655f2f42db1f427b10eb8f982d"><code>f07ce9d</code></a>
README.md: Add warning on usage of
<code>preserveEscapedAttributes</code></li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/27de3a879ad36d01906e5297f779a5393c700c17"><code>27de3a8</code></a>
Add test demonstrating that preserveEscapedAttributes doesn't affect
behaviou...</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/3d2893e01336427c7999c31ea554ebe868780fff"><code>3d2893e</code></a>
Add documentation for <code>preserveEscapedAttributes</code> option</li>
<li><a
href="https://github.com/apostrophecms/sanitize-html/commit/ae1dc35af6b48ab9b25513342c16183c6c66a118"><code>ae1dc35</code></a>
Add <code>preserveEscapedAttributes</code> option to allow attributes on
escaped disallo...</li>
<li>Additional commits viewable in <a
href="https://github.com/apostrophecms/sanitize-html/compare/2.14.0...2.17.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/sanitize-html` from 2.13.0 to 2.16.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sanitize-html">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:18:43 +00:00
dependabot[bot] 6680026ebc chore: bump @chakra-ui/react from 2.10.5 to 2.10.9 in /offlinedocs (#20060)
Bumps
[@chakra-ui/react](https://github.com/chakra-ui/chakra-ui/tree/HEAD/packages/react)
from 2.10.5 to 2.10.9.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/chakra-ui/chakra-ui/commits/@chakra-ui/react@2.10.9/packages/react">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@chakra-ui/react&package-manager=npm_and_yarn&previous-version=2.10.5&new-version=2.10.9)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:18:02 +00:00
dependabot[bot] c9329084b7 chore: bump eslint-config-next from 14.2.23 to 14.2.33 in /offlinedocs (#20059)
Bumps
[eslint-config-next](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next)
from 14.2.23 to 14.2.33.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">eslint-config-next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.33</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>omit searchParam data from FlightRouterState before transport (<a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/80734">#80734</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
<h2>v14.2.32</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix router handling when setting a location response header <a
href="https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next/issues/82588">#82588</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/5a97b408c2d8668bed1642d382fc1d78ed3731cc"><code>5a97b40</code></a>
v14.2.33</li>
<li><a
href="https://github.com/vercel/next.js/commit/89ee5615520d593e328be994b30cd445ef5d5c17"><code>89ee561</code></a>
v14.2.32</li>
<li><a
href="https://github.com/vercel/next.js/commit/55f76620ffb715ca3255bae96fa58f4a1a0848b1"><code>55f7662</code></a>
v14.2.31</li>
<li><a
href="https://github.com/vercel/next.js/commit/243072b7a8b7fb3be74a8d9256847669b131ea7e"><code>243072b</code></a>
v14.2.30</li>
<li><a
href="https://github.com/vercel/next.js/commit/ca9211576c9a21c15980dcc6f022c2cd21542561"><code>ca92115</code></a>
v14.2.29</li>
<li><a
href="https://github.com/vercel/next.js/commit/e65628a237ea76d77d911aedb12d5137fddd90fb"><code>e65628a</code></a>
v14.2.28</li>
<li><a
href="https://github.com/vercel/next.js/commit/43f10b8ead008ba36ddf0a955353949e200c409a"><code>43f10b8</code></a>
v14.2.27</li>
<li><a
href="https://github.com/vercel/next.js/commit/10a042cdca294fd1c6852b320954bc6ccc6064e7"><code>10a042c</code></a>
v14.2.26</li>
<li><a
href="https://github.com/vercel/next.js/commit/d36a1f3c3547b0cb807f30c14aa6250a932349c8"><code>d36a1f3</code></a>
v14.2.25</li>
<li><a
href="https://github.com/vercel/next.js/commit/756be15c4cfecb6fae1c69cae7cfaf336423b6cf"><code>756be15</code></a>
v14.2.24</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/commits/v14.2.33/packages/eslint-config-next">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=eslint-config-next&package-manager=npm_and_yarn&previous-version=14.2.23&new-version=14.2.33)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:17:35 +00:00
dependabot[bot] 8b6165c438 chore: bump @types/lodash from 4.17.15 to 4.17.20 in /offlinedocs (#20058)
Bumps
[@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash)
from 4.17.15 to 4.17.20.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@types/lodash&package-manager=npm_and_yarn&previous-version=4.17.15&new-version=4.17.20)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 11:17:09 +00:00
Cian Johnston ff930ad4f3 feat(coderd): add ability to search org members by user_id, is_system, github_user_id (#20048)
Adds the ability to search org members by query.
Supported fields: `user_id`, `is_system`, `github_user_id`.
2025-09-30 23:54:21 +01:00
Jaayden Halko 4db5158aed fix: fix flaky test in WorkspacePage.test.tsx (#20033)
re-enabled the skipped test and tested locally. Passed 100 out of 100
times locally.
2025-09-30 23:47:17 +01:00
Bruno Quaresma b8370c25ff fix: add tasks link to sidebar logo (#20038) 2025-09-30 19:09:05 -03:00
david-fraley bf2cfddacb docs: update Claude Code version in docs (#20049) 2025-09-30 21:22:11 +00:00
Bruno Quaresma f009ebd662 feat: minor prompt redesign (#20045)
When I navigate to tasks, the prompt doesn’t feel prominent enough—even
though it should be the primary element on the screen. To give it more
focus, I made some small design changes. Here are both versions:

**Before:**
<img width="1624" height="970" alt="Screenshot 2025-09-30 at 12 10 58"
src="https://github.com/user-attachments/assets/b5451ad5-4d32-4716-8e0f-e4596e7c92c8"
/>

**After:**
<img width="1624" height="970" alt="Screenshot 2025-09-30 at 12 10 46"
src="https://github.com/user-attachments/assets/f478e327-12c0-4f49-829f-8b094a6b613e"
/>
2025-09-30 18:20:45 -03:00
david-fraley fe189b9cc8 fix(docs): add missing div to fix formatting (#20047) 2025-09-30 11:51:15 -07:00
Susana Ferreira 7bddd80d60 feat(site): add task notifications to user settings (#20006)
## Description

Add UI support for the new `Task Events` notification templates (`Task
Working` and `Task Idle`) added in backend PR
https://github.com/coder/coder/pull/19965. The
`/api/v2/notifications/templates/system` endpoint now returns these
templates, therefore this PR keeps the UI in sync.

## Changes

* Added `Task Working` and `Task Idle` to notification template mocks so
Storybook reflects backend data.
* Deployment Settings already lists all templates from the API, so no
code change was needed (stories updated automatically).
* Updated the User Settings filter to include `Task Events` so they
appear for end users.

<img width="2930" height="1666" alt="Screenshot 2025-09-29 at 17 06 22"
src="https://github.com/user-attachments/assets/045d5dd7-13a4-4378-9bf3-9fd86a86e64b"
/>

Depends on: https://github.com/coder/coder/pull/19965
2025-09-30 18:37:25 +01:00
Benjamin Peinhardt ada20d2691 feat: implement coder exp boundary subcommand (#19771) 2025-09-30 12:26:41 -05:00
Cian Johnston 6e4d903a8e fix(coderd): increase task notification dedupe bypass timestamp to 1 minute (#20043) 2025-09-30 16:05:34 +00:00
david-fraley 7481ada293 docs: orient install page towards enterprise and community members (#20041) 2025-09-30 15:58:46 +00:00
david-fraley 95aa16df1b docs: add Tasks Core Principles Page (#19878)
---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Ben Potter <ben@coder.com>
Co-authored-by: Atif Ali <atif@coder.com>
2025-09-30 10:49:39 -05:00
Danny Kopping 4e7b518b65 chore: bump coder/aibridge to v0.1.3 (#20039) 2025-09-30 15:13:39 +00:00
Bruno Quaresma e96d69ba95 feat: delete task from sidebar (#20023)
This adds a way to delete a task from the sidebar. Once this PR is
merged, I’ll also add the option to the table list.

https://github.com/user-attachments/assets/75d714ef-afe1-4d9c-b907-1eab3a59f26b

Right now, after deleting a task, the data still shows—that’s a separate
issue related to how task data is loaded in the FE. A proper tasks
endpoint is now available, and that should be addressed as part of
[https://github.com/coder/internal/issues/904](https://github.com/coder/internal/issues/904).

Related to https://github.com/coder/coder/issues/19525
2025-09-30 10:02:02 -03:00
Cian Johnston bf021e627e ci: add option to skip cleanup in ai triage workflow (#20031)
Now that we are creating the workspaces as the triggering user, it's
more ergonomic to allow the workspace owner to review the task on
completion.
2025-09-30 12:07:44 +01:00
dependabot[bot] 8cfa2c4b52 chore: bump axios from 1.8.2 to 1.12.0 in /site (#20030)
Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/axios/axios/releases">axios's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.12.0</h2>
<h2>Release notes:</h2>
<h3>Bug Fixes</h3>
<ul>
<li>adding build artifacts (<a
href="https://github.com/axios/axios/commit/9ec86de257bfa33856571036279169f385ed92bd">9ec86de</a>)</li>
<li>dont add dist on release (<a
href="https://github.com/axios/axios/commit/a2edc3606a4f775d868a67bb3461ff18ce7ecd11">a2edc36</a>)</li>
<li><strong>fetch-adapter:</strong> set correct Content-Type for Node
FormData (<a
href="https://redirect.github.com/axios/axios/issues/6998">#6998</a>)
(<a
href="https://github.com/axios/axios/commit/a9f47afbf3224d2ca987dbd8188789c7ea853c5d">a9f47af</a>)</li>
<li><strong>node:</strong> enforce maxContentLength for data: URLs (<a
href="https://redirect.github.com/axios/axios/issues/7011">#7011</a>)
(<a
href="https://github.com/axios/axios/commit/945435fc51467303768202250debb8d4ae892593">945435f</a>)</li>
<li>package exports (<a
href="https://redirect.github.com/axios/axios/issues/5627">#5627</a>)
(<a
href="https://github.com/axios/axios/commit/aa78ac23fc9036163308c0f6bd2bb885e7af3f36">aa78ac2</a>)</li>
<li><strong>params:</strong> removing '[' and ']' from URL encode
exclude characters (<a
href="https://redirect.github.com/axios/axios/issues/3316">#3316</a>)
(<a
href="https://redirect.github.com/axios/axios/issues/5715">#5715</a>)
(<a
href="https://github.com/axios/axios/commit/6d84189349c43b1dcdd977b522610660cc4c7042">6d84189</a>)</li>
<li>release pr run (<a
href="https://github.com/axios/axios/commit/fd7f404488b2c4f238c2fbe635b58026a634bfd2">fd7f404</a>)</li>
<li><strong>types:</strong> change the type guard on isCancel (<a
href="https://redirect.github.com/axios/axios/issues/5595">#5595</a>)
(<a
href="https://github.com/axios/axios/commit/0dbb7fd4f61dc568498cd13a681fa7f907d6ec7e">0dbb7fd</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>adapter:</strong> surface low‑level network error details;
attach original error via cause (<a
href="https://redirect.github.com/axios/axios/issues/6982">#6982</a>)
(<a
href="https://github.com/axios/axios/commit/78b290c57c978ed2ab420b90d97350231c9e5d74">78b290c</a>)</li>
<li><strong>fetch:</strong> add fetch, Request, Response env config
variables for the adapter; (<a
href="https://redirect.github.com/axios/axios/issues/7003">#7003</a>)
(<a
href="https://github.com/axios/axios/commit/c959ff29013a3bc90cde3ac7ea2d9a3f9c08974b">c959ff2</a>)</li>
<li>support reviver on JSON.parse (<a
href="https://redirect.github.com/axios/axios/issues/5926">#5926</a>)
(<a
href="https://github.com/axios/axios/commit/2a9763426e43d996fd60d01afe63fa6e1f5b4fca">2a97634</a>),
closes <a
href="https://redirect.github.com/axios/axios/issues/5924">#5924</a></li>
<li><strong>types:</strong> extend AxiosResponse interface to include
custom headers type (<a
href="https://redirect.github.com/axios/axios/issues/6782">#6782</a>)
(<a
href="https://github.com/axios/axios/commit/7960d34eded2de66ffd30b4687f8da0e46c4903e">7960d34</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a
href="https://github.com/WillianAgostini" title="+132/-16760
([#7002](https://github.com/axios/axios/issues/7002)
[#5926](https://github.com/axios/axios/issues/5926)
[#6782](https://github.com/axios/axios/issues/6782) )">Willian
Agostini</a></li>
<li><!-- raw HTML omitted --> <a
href="https://github.com/DigitalBrainJS" title="+4263/-293
([#7006](https://github.com/axios/axios/issues/7006)
[#7003](https://github.com/axios/axios/issues/7003) )">Dmitriy
Mozgovoy</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/mkhani01"
title="+111/-15 ([#6982](https://github.com/axios/axios/issues/6982)
)">khani</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/AmeerAssadi"
title="+123/-0 ([#7011](https://github.com/axios/axios/issues/7011)
)">Ameer Assadi</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/emiedonmokumo"
title="+55/-35 ([#6998](https://github.com/axios/axios/issues/6998)
)">Emiedonmokumo Dick-Boro</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/opsysdebug"
title="+8/-8 ([#6980](https://github.com/axios/axios/issues/6980)
)">Zeroday BYTE</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/jasonsaayman"
title="+7/-7 ([#6985](https://github.com/axios/axios/issues/6985)
[#6985](https://github.com/axios/axios/issues/6985) )">Jason
Saayman</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/HealGaren"
title="+5/-7 ([#5715](https://github.com/axios/axios/issues/5715)
)">최예찬</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/gligorkot"
title="+3/-1 ([#5627](https://github.com/axios/axios/issues/5627)
)">Gligor Kotushevski</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/adimit"
title="+2/-1 ([#5595](https://github.com/axios/axios/issues/5595)
)">Aleksandar Dimitrov</a></li>
</ul>
<h2>Release v1.11.0</h2>
<h2>Release notes:</h2>
<h3>Bug Fixes</h3>
<ul>
<li>form-data npm pakcage (<a
href="https://redirect.github.com/axios/axios/issues/6970">#6970</a>)
(<a
href="https://github.com/axios/axios/commit/e72c193722530db538b19e5ddaaa4544d226b253">e72c193</a>)</li>
<li>prevent RangeError when using large Buffers (<a
href="https://redirect.github.com/axios/axios/issues/6961">#6961</a>)
(<a
href="https://github.com/axios/axios/commit/a2214ca1bc60540baf2c80573cea3a0ff91ba9d1">a2214ca</a>)</li>
<li><strong>types:</strong> resolve type discrepancies between ESM and
CJS TypeScript declaration files (<a
href="https://redirect.github.com/axios/axios/issues/6956">#6956</a>)
(<a
href="https://github.com/axios/axios/commit/8517aa16f8d082fc1d5309c642220fa736159110">8517aa1</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a href="https://github.com/izzygld"
title="+186/-93 ([#6970](https://github.com/axios/axios/issues/6970)
)">izzy goldman</a></li>
<li><!-- raw HTML omitted --> <a
href="https://github.com/manishsahanidev" title="+70/-0
([#6961](https://github.com/axios/axios/issues/6961) )">Manish
Sahani</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/noritaka1166"
title="+12/-10 ([#6938](https://github.com/axios/axios/issues/6938)
[#6939](https://github.com/axios/axios/issues/6939) )">Noritaka
Kobayashi</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/jrnail23"
title="+13/-2 ([#6956](https://github.com/axios/axios/issues/6956)
)">James Nail</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/Tejaswi1305"
title="+1/-1 ([#6894](https://github.com/axios/axios/issues/6894)
)">Tejaswi1305</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/axios/axios/blob/v1.x/CHANGELOG.md">axios's
changelog</a>.</em></p>
<blockquote>
<h1><a
href="https://github.com/axios/axios/compare/v1.11.0...v1.12.0">1.12.0</a>
(2025-09-11)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>adding build artifacts (<a
href="https://github.com/axios/axios/commit/9ec86de257bfa33856571036279169f385ed92bd">9ec86de</a>)</li>
<li>dont add dist on release (<a
href="https://github.com/axios/axios/commit/a2edc3606a4f775d868a67bb3461ff18ce7ecd11">a2edc36</a>)</li>
<li><strong>fetch-adapter:</strong> set correct Content-Type for Node
FormData (<a
href="https://redirect.github.com/axios/axios/issues/6998">#6998</a>)
(<a
href="https://github.com/axios/axios/commit/a9f47afbf3224d2ca987dbd8188789c7ea853c5d">a9f47af</a>)</li>
<li><strong>node:</strong> enforce maxContentLength for data: URLs (<a
href="https://redirect.github.com/axios/axios/issues/7011">#7011</a>)
(<a
href="https://github.com/axios/axios/commit/945435fc51467303768202250debb8d4ae892593">945435f</a>)</li>
<li>package exports (<a
href="https://redirect.github.com/axios/axios/issues/5627">#5627</a>)
(<a
href="https://github.com/axios/axios/commit/aa78ac23fc9036163308c0f6bd2bb885e7af3f36">aa78ac2</a>)</li>
<li><strong>params:</strong> removing '[' and ']' from URL encode
exclude characters (<a
href="https://redirect.github.com/axios/axios/issues/3316">#3316</a>)
(<a
href="https://redirect.github.com/axios/axios/issues/5715">#5715</a>)
(<a
href="https://github.com/axios/axios/commit/6d84189349c43b1dcdd977b522610660cc4c7042">6d84189</a>)</li>
<li>release pr run (<a
href="https://github.com/axios/axios/commit/fd7f404488b2c4f238c2fbe635b58026a634bfd2">fd7f404</a>)</li>
<li><strong>types:</strong> change the type guard on isCancel (<a
href="https://redirect.github.com/axios/axios/issues/5595">#5595</a>)
(<a
href="https://github.com/axios/axios/commit/0dbb7fd4f61dc568498cd13a681fa7f907d6ec7e">0dbb7fd</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li><strong>adapter:</strong> surface low‑level network error details;
attach original error via cause (<a
href="https://redirect.github.com/axios/axios/issues/6982">#6982</a>)
(<a
href="https://github.com/axios/axios/commit/78b290c57c978ed2ab420b90d97350231c9e5d74">78b290c</a>)</li>
<li><strong>fetch:</strong> add fetch, Request, Response env config
variables for the adapter; (<a
href="https://redirect.github.com/axios/axios/issues/7003">#7003</a>)
(<a
href="https://github.com/axios/axios/commit/c959ff29013a3bc90cde3ac7ea2d9a3f9c08974b">c959ff2</a>)</li>
<li>support reviver on JSON.parse (<a
href="https://redirect.github.com/axios/axios/issues/5926">#5926</a>)
(<a
href="https://github.com/axios/axios/commit/2a9763426e43d996fd60d01afe63fa6e1f5b4fca">2a97634</a>),
closes <a
href="https://redirect.github.com/axios/axios/issues/5924">#5924</a></li>
<li><strong>types:</strong> extend AxiosResponse interface to include
custom headers type (<a
href="https://redirect.github.com/axios/axios/issues/6782">#6782</a>)
(<a
href="https://github.com/axios/axios/commit/7960d34eded2de66ffd30b4687f8da0e46c4903e">7960d34</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a
href="https://github.com/WillianAgostini" title="+132/-16760
([#7002](https://github.com/axios/axios/issues/7002)
[#5926](https://github.com/axios/axios/issues/5926)
[#6782](https://github.com/axios/axios/issues/6782) )">Willian
Agostini</a></li>
<li><!-- raw HTML omitted --> <a
href="https://github.com/DigitalBrainJS" title="+4263/-293
([#7006](https://github.com/axios/axios/issues/7006)
[#7003](https://github.com/axios/axios/issues/7003) )">Dmitriy
Mozgovoy</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/mkhani01"
title="+111/-15 ([#6982](https://github.com/axios/axios/issues/6982)
)">khani</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/AmeerAssadi"
title="+123/-0 ([#7011](https://github.com/axios/axios/issues/7011)
)">Ameer Assadi</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/emiedonmokumo"
title="+55/-35 ([#6998](https://github.com/axios/axios/issues/6998)
)">Emiedonmokumo Dick-Boro</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/opsysdebug"
title="+8/-8 ([#6980](https://github.com/axios/axios/issues/6980)
)">Zeroday BYTE</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/jasonsaayman"
title="+7/-7 ([#6985](https://github.com/axios/axios/issues/6985)
[#6985](https://github.com/axios/axios/issues/6985) )">Jason
Saayman</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/HealGaren"
title="+5/-7 ([#5715](https://github.com/axios/axios/issues/5715)
)">최예찬</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/gligorkot"
title="+3/-1 ([#5627](https://github.com/axios/axios/issues/5627)
)">Gligor Kotushevski</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/adimit"
title="+2/-1 ([#5595](https://github.com/axios/axios/issues/5595)
)">Aleksandar Dimitrov</a></li>
</ul>
<h1><a
href="https://github.com/axios/axios/compare/v1.10.0...v1.11.0">1.11.0</a>
(2025-07-22)</h1>
<h3>Bug Fixes</h3>
<ul>
<li>form-data npm pakcage (<a
href="https://redirect.github.com/axios/axios/issues/6970">#6970</a>)
(<a
href="https://github.com/axios/axios/commit/e72c193722530db538b19e5ddaaa4544d226b253">e72c193</a>)</li>
<li>prevent RangeError when using large Buffers (<a
href="https://redirect.github.com/axios/axios/issues/6961">#6961</a>)
(<a
href="https://github.com/axios/axios/commit/a2214ca1bc60540baf2c80573cea3a0ff91ba9d1">a2214ca</a>)</li>
<li><strong>types:</strong> resolve type discrepancies between ESM and
CJS TypeScript declaration files (<a
href="https://redirect.github.com/axios/axios/issues/6956">#6956</a>)
(<a
href="https://github.com/axios/axios/commit/8517aa16f8d082fc1d5309c642220fa736159110">8517aa1</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a href="https://github.com/izzygld"
title="+186/-93 ([#6970](https://github.com/axios/axios/issues/6970)
)">izzy goldman</a></li>
<li><!-- raw HTML omitted --> <a
href="https://github.com/manishsahanidev" title="+70/-0
([#6961](https://github.com/axios/axios/issues/6961) )">Manish
Sahani</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/noritaka1166"
title="+12/-10 ([#6938](https://github.com/axios/axios/issues/6938)
[#6939](https://github.com/axios/axios/issues/6939) )">Noritaka
Kobayashi</a></li>
<li><!-- raw HTML omitted --> <a href="https://github.com/jrnail23"
title="+13/-2 ([#6956](https://github.com/axios/axios/issues/6956)
)">James Nail</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/axios/axios/commit/0d8ad6e1de0f5339e02bc262d6f0df4936974120"><code>0d8ad6e</code></a>
chore(release): v1.12.0 (<a
href="https://redirect.github.com/axios/axios/issues/7013">#7013</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/fd7f404488b2c4f238c2fbe635b58026a634bfd2"><code>fd7f404</code></a>
fix: release pr run</li>
<li><a
href="https://github.com/axios/axios/commit/a2edc3606a4f775d868a67bb3461ff18ce7ecd11"><code>a2edc36</code></a>
fix: dont add dist on release</li>
<li><a
href="https://github.com/axios/axios/commit/9ec86de257bfa33856571036279169f385ed92bd"><code>9ec86de</code></a>
fix: adding build artifacts</li>
<li><a
href="https://github.com/axios/axios/commit/945435fc51467303768202250debb8d4ae892593"><code>945435f</code></a>
fix(node): enforce maxContentLength for data: URLs (<a
href="https://redirect.github.com/axios/axios/issues/7011">#7011</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/28e5e3016d6ed0b3ec489427e4ec00133f45ddc2"><code>28e5e30</code></a>
chore(sponsor): update sponsor block (<a
href="https://redirect.github.com/axios/axios/issues/7005">#7005</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/d03f245a40ec016b190748a865cce9fe3815c903"><code>d03f245</code></a>
chore(CI): fixed release info script to use npm registry instead of git
as fi...</li>
<li><a
href="https://github.com/axios/axios/commit/a0bc91137950f36a1f6b0a2a60d11fd7f245ff0e"><code>a0bc911</code></a>
chore: removing dist files from src (<a
href="https://redirect.github.com/axios/axios/issues/7002">#7002</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/c959ff29013a3bc90cde3ac7ea2d9a3f9c08974b"><code>c959ff2</code></a>
feat(fetch): add fetch, Request, Response env config variables for the
adapte...</li>
<li><a
href="https://github.com/axios/axios/commit/a9f47afbf3224d2ca987dbd8188789c7ea853c5d"><code>a9f47af</code></a>
fix(fetch-adapter): set correct Content-Type for Node FormData (<a
href="https://redirect.github.com/axios/axios/issues/6998">#6998</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/axios/axios/compare/v1.8.2...v1.12.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=1.8.2&new-version=1.12.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-09-30 09:00:45 +00:00
Cian Johnston edd9746443 ci: assign tasks to triggering username in ai triage workflow (#20022)
Note: this requires owner-level perms on the token. This can be removed once it becomes possible to search org members by GitHub ID without owner-level perms.

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-09-30 09:51:28 +01:00
Ethan ec417ded24 refactor(scaletest): make workspacebuild return the built workspace (#19997)
Similar idea as in #19811, this runner doesn't need to conform to `Runnable`, so we have it return the workspace from the `RunReturningWorkspace` function, instead of the more fragile `Run`, followed by a `.WorkspaceID()`.
2025-09-30 18:19:31 +10:00
Ethan 0be922170b feat(cli): add workspace-updates scaletest command (#19905)
Closes https://github.com/coder/internal/issues/889

```
$ coder exp scaletest workspace-updates --workspace-count=4 --power-user-workspaces=2 --template="scratch"
Distribution plan:
  Total workspaces: 4
  Power users: 1 (each owning 2 workspaces = 2 total)
  Regular users: 2 (each owning 1 workspace = 2 total)
Planning workspace...
=== ✔ Queued [0ms]
==> ⧗ Running
==> ⧗ Running
=== ✔ Running [5ms]
==> ⧗ Setting up
=== ✔ Setting up [54ms]
==> ⧗ Detecting persistent resources
=== ✔ Detecting persistent resources [2909ms]
==> ⧗ Cleaning Up
=== ✔ Cleaning Up [5ms]
┌───────────────────────────────────────────┐
│ Workspace Preview                         │
├───────────────────────────────────────────┤
│ RESOURCE                 ACCESS           │
├───────────────────────────────────────────┤
│ null_resource.workspace                   │
│ └─ main (linux, amd64)    coder ssh       │
└───────────────────────────────────────────┘
Creating users...
Running workspace updates scaletest...


Test results:
        Pass:  3
        Fail:  0
        Total: 3

        Total duration: 5.378685938s
        Avg. duration:  3.701307642s

Cleaning up...

Uploading traces...
Waiting 15s for prometheus metrics to be scraped
```
2025-09-30 18:07:05 +10:00
Ethan 65ac6cb42a feat(scaletest): add runner for coder connect load gen (#19904)
Relates to https://github.com/coder/internal/issues/889.

This PR adds a scaletest runner that simulates a single Coder Connect client receiving workspace updates.

An instance of a workspace updates runner does the following:
- Creates a user, if a session token is not supplied.
- Attempts to repeatedly dial the Coder Connect endpoint, with a configurable (two minutes by default) timeout. 
- Once dialed successfully, waits for any other concurrently executing runners to also dial successfully, or timeout (using the barrier).
- Starts a configurable number of workspace builds.
- Waits for that many workspaces to be seen over the workspace updates stream (with a configurable timeout).

Exposes two prometheus metrics:
- `workspace_updates_latency_seconds` - `HistogramVec`. Labels = `{username, num_owned_workspaces, workspace_name}`
  - This is the time between starting a workspace build, and receiving both the corresponding workspace update.
- `workspace_updates_errors_total` - `NewCounterVec`. Labels = `{username, num_owned_workspaces, action}`
  - The number of times a specific action of the runner has failed, per user/client.
2025-09-30 17:28:58 +10:00
Spike Curtis 2bd11dfb15 test: precompile the db cleaner on make test (#20000)
We're seeing some timeouts from starting the db cleaner, e.g. https://github.com/coder/internal/issues/1026

My suspicion is that in CI the go build cache might not be warm, and so it can take a while to compile and run the dbcleaner subprocess.

This fix builds the cleaner once prior to starting a test run via `make test` to ensure we have a warm cache.
2025-09-30 10:42:06 +04:00
Susana Ferreira fdb0267e5d feat: add notification for task status (#19965)
## Description

Send a notification to the workspace owner when an AI task’s app state
becomes `Working` or `Idle`.
An AI task is identified by a workspace build with `HasAITask = true`
and `AITaskSidebarAppID` matching the agent app’s ID.

## Changes

* Add `TemplateTaskWorking` notification template.
* Add `TemplateTaskIdle` notification template.
* Add `GetLatestWorkspaceAppStatusesByAppID` SQL query to get the
workspace app statuses ordered by latest first.
* Update `PATCH /workspaceagents/me/app-status` to enqueue:
  * `TemplateTaskWorking` when state transitions to `working`
  * `TemplateTaskIdle` when state transitions to `idle`
* Notification labels include:
  * `task`: task initial prompt
  * `workspace`: workspace name
* Notification dedupe: include a minute-bucketed timestamp (UTC
truncated to the minute) in the enqueue data to allow identical content
to resend within the same day (but not more than once per minute).

Closes: https://github.com/coder/coder/issues/19776
2025-09-29 16:44:53 +01:00
Cian Johnston abdea7213a feat(cli): add ability to create tasks for other users (#20012) 2025-09-29 15:42:03 +01:00
Bruno Quaresma f2f4ed12e9 chore: revert redesign tasks page to match AI tools (#20013)
Reverts coder/coder#19962
2025-09-29 11:30:05 -03:00
dependabot[bot] 98b9adc3e7 chore: bump google.golang.org/api from 0.249.0 to 0.250.0 (#20015)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.249.0 to 0.250.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.250.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.249.0...v0.250.0">0.250.0</a>
(2025-09-25)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3306">#3306</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/04e934090bdb2c6defe389051d4a71346fca2f5b">04e9340</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3308">#3308</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b85955acd18b5172dfadd48edb7450304b563423">b85955a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3309">#3309</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6d11ef46bc0bd6b3b6d35308abdba321c2949cf7">6d11ef4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3310">#3310</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/5ed74f3762c4d5b9feb311eef05b93ad7601cb7b">5ed74f3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3311">#3311</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ffae06168e8e52e49cb76884ca74f3ddc3f5a7c9">ffae061</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3312">#3312</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7f0983cef96e29797343025ca9cbfecc98ef89d3">7f0983c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3314">#3314</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0e5a06df6b629c4c96210b01412c5ff2a082f027">0e5a06d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3315">#3315</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a6d27cff843c2e65feafd252cf87a871a4448ee8">a6d27cf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3316">#3316</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e4eefd950ed18cb8fd1ec642c0fea6f0cb3b8322">e4eefd9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3318">#3318</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2242712e4569edd123fdac8f3f12beb536942a4b">2242712</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.249.0...v0.250.0">0.250.0</a>
(2025-09-25)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3306">#3306</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/04e934090bdb2c6defe389051d4a71346fca2f5b">04e9340</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3308">#3308</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b85955acd18b5172dfadd48edb7450304b563423">b85955a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3309">#3309</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6d11ef46bc0bd6b3b6d35308abdba321c2949cf7">6d11ef4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3310">#3310</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/5ed74f3762c4d5b9feb311eef05b93ad7601cb7b">5ed74f3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3311">#3311</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ffae06168e8e52e49cb76884ca74f3ddc3f5a7c9">ffae061</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3312">#3312</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7f0983cef96e29797343025ca9cbfecc98ef89d3">7f0983c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3314">#3314</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0e5a06df6b629c4c96210b01412c5ff2a082f027">0e5a06d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3315">#3315</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a6d27cff843c2e65feafd252cf87a871a4448ee8">a6d27cf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3316">#3316</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e4eefd950ed18cb8fd1ec642c0fea6f0cb3b8322">e4eefd9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3318">#3318</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2242712e4569edd123fdac8f3f12beb536942a4b">2242712</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/307f588476f09cd1e0186384ce53936e7b2ae78d"><code>307f588</code></a>
chore(main): release 0.250.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3307">#3307</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2242712e4569edd123fdac8f3f12beb536942a4b"><code>2242712</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3318">#3318</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/d41bfb6490575a0f8b237748a81766bea0b29f3c"><code>d41bfb6</code></a>
chore(google-api-go-generator): add aiplatform:v1beta1 to
skipAPIGeneration (...</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/34bbc4bbbc501aca6a533eacb6f7bbf17c1fd3b9"><code>34bbc4b</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3313">#3313</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/e4eefd950ed18cb8fd1ec642c0fea6f0cb3b8322"><code>e4eefd9</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3316">#3316</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/a6d27cff843c2e65feafd252cf87a871a4448ee8"><code>a6d27cf</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3315">#3315</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/0e5a06df6b629c4c96210b01412c5ff2a082f027"><code>0e5a06d</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3314">#3314</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/7f0983cef96e29797343025ca9cbfecc98ef89d3"><code>7f0983c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3312">#3312</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ffae06168e8e52e49cb76884ca74f3ddc3f5a7c9"><code>ffae061</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3311">#3311</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/5ed74f3762c4d5b9feb311eef05b93ad7601cb7b"><code>5ed74f3</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3310">#3310</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.249.0...v0.250.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.249.0&new-version=0.250.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 14:25:05 +00:00
Danny Kopping 61fba2db47 chore: implement automatic aibridge usage in claude code in dogfood template (#20011) 2025-09-29 13:14:25 +00:00
Spike Curtis 988ee39b02 test: stop running Test_sshConfigProxyCommandEscape in parallel (#20009)
Fixes https://github.com/coder/internal/issues/1035

Or, at least, closes a remaining race that seems pretty likely.

The tests in question write a file, close the file, then execute the file. Sometimes Linux errors saying "text file busy" which means the file is still open for writing.

What I think is going on is:

1. Test_sshConfigProxyCommandEscape goroutine opens the file and begins writing.
2. Some other, unrelated test execs a command, which causes a `fork()` syscall. The child process now has a copy of the file descriptor to our open file.
3. Test_sshConfigProxyCommandEscape goroutine executes the file and gets "text file busy".
4. The child process calls the `exec` syscall, which closes the file (due to `CLOEXEC` being set).

The race is very tight because 3 has to happen before 4 (and, 3 involves it's own fork/exec), but it's not impossible on a busy system.

c.f. #14233 which was an earlier attempt to fix this. It only prevented the subtests from running in parallel. When the subtests were all running in parallel, the flake was fairly likely because you've got all this fork() activity happening at the same time. But, since the main test was in parallel there is still a chance a totally different test is `fork`'ing at in inopportune time.
2025-09-29 17:01:54 +04:00
Cian Johnston e878281b64 ci: integrate new tasks cli features in ai triage workflow (#20007)
Integrates new experimental tasks CLI commands into traiage workflow

Sample run:
https://github.com/coder/coder/actions/runs/18095432003/job/51485262065
2025-09-29 13:48:37 +01:00
Thomas Kosiewski 79126ab6c7 feat: implement composite API key scopes for workspaces and templates (#19945)
# Add Composite API Key Scopes

This PR adds high-level composite API key scopes to simplify token creation with common permission sets:

- `coder:workspaces.create` - Create and update workspaces
- `coder:workspaces.operate` - Read and update workspaces
- `coder:workspaces.delete` - Read and delete workspaces
- `coder:workspaces.access` - Read, SSH, and connect to workspace applications
- `coder:templates.build` - Read templates and create/read files
- `coder:templates.author` - Full template management with insights
- `coder:apikeys.manage_self` - Manage your own API keys

These composite scopes are persisted in the database and expanded during authorization, providing a more intuitive way to grant permissions compared to the granular resource:action scopes.
2025-09-29 13:17:08 +02:00
dependabot[bot] 860bcd4d91 chore: bump next from 15.2.4 to 15.4.7 in /offlinedocs (#20005)
Bumps [next](https://github.com/vercel/next.js) from 15.2.4 to 15.4.7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v15.4.7</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix router handling when setting a location response header <a
href="https://redirect.github.com/vercel/next.js/issues/82588">#82588</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
<h2>v15.4.2-canary.56</h2>
<h3>Misc Changes</h3>
<ul>
<li>fix: remove a few old references to 'next lint': <a
href="https://redirect.github.com/vercel/next.js/issues/82800">#82800</a></li>
<li>docs: fix TS error in Node.js runtime local assets example: <a
href="https://redirect.github.com/vercel/next.js/issues/82672">#82672</a></li>
<li>docs: Route props helpers, typegen and next lint deprecation: <a
href="https://redirect.github.com/vercel/next.js/issues/82784">#82784</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/bgub"><code>@​bgub</code></a>, <a
href="https://github.com/EAzZY-1wnL"><code>@​EAzZY-1wnL</code></a>, and
<a href="https://github.com/icyJoseph"><code>@​icyJoseph</code></a> for
helping!</p>
<h2>v15.4.2-canary.55</h2>
<h3>Core Changes</h3>
<ul>
<li>[Cache Components] Fix HMR for nested pages: <a
href="https://redirect.github.com/vercel/next.js/issues/82776">#82776</a></li>
<li>Upgrade React from <code>a96a0f39-20250815</code> to
<code>f508edc8-20250818</code>: <a
href="https://redirect.github.com/vercel/next.js/issues/82747">#82747</a></li>
<li>Avoid duplicate WebSocket connection for global error pages: <a
href="https://redirect.github.com/vercel/next.js/issues/82788">#82788</a></li>
<li>Update linter options: <a
href="https://redirect.github.com/vercel/next.js/issues/82266">#82266</a></li>
<li>React from <code>f508edc8-20250818</code> to
<code>0bdb9206-20250818</code>: <a
href="https://redirect.github.com/vercel/next.js/issues/82792">#82792</a></li>
<li>feat: stabilize experimental.typedRoutes flag: <a
href="https://redirect.github.com/vercel/next.js/issues/82762">#82762</a></li>
<li>[Cache Components] Faster partial hydration in PPR resumes: <a
href="https://redirect.github.com/vercel/next.js/issues/82742">#82742</a></li>
<li>Turbopack: Define built-in webpack conditions using an enum and
typescript union: <a
href="https://redirect.github.com/vercel/next.js/issues/82765">#82765</a></li>
<li>Turbopack: Remove beta warning: <a
href="https://redirect.github.com/vercel/next.js/issues/82797">#82797</a></li>
<li>feat: add a codemod to migrate from the deprecated &quot;next
lint&quot; command: <a
href="https://redirect.github.com/vercel/next.js/issues/82685">#82685</a></li>
<li>fix: don't fail with amp config in JS: <a
href="https://redirect.github.com/vercel/next.js/issues/82798">#82798</a></li>
<li>fix: possible null access: <a
href="https://redirect.github.com/vercel/next.js/issues/82799">#82799</a></li>
</ul>
<h3>Misc Changes</h3>
<ul>
<li>Update Rspack production test manifest: <a
href="https://redirect.github.com/vercel/next.js/issues/82771">#82771</a></li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/unstubbable"><code>@​unstubbable</code></a>, <a
href="https://github.com/bgub"><code>@​bgub</code></a>, <a
href="https://github.com/vercel-release-bot"><code>@​vercel-release-bot</code></a>,
<a href="https://github.com/lubieowoce"><code>@​lubieowoce</code></a>,
and <a href="https://github.com/bgw"><code>@​bgw</code></a> for
helping!</p>
<h2>v15.4.2-canary.54</h2>
<h3>Core Changes</h3>
<ul>
<li>[Cache Components] Defer Request Data API resolution to another task
in dev when it would suspend when prerendering: <a
href="https://redirect.github.com/vercel/next.js/issues/82386">#82386</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/f30d815859e932e09222e93bb6e8a376b918d874"><code>f30d815</code></a>
v15.4.7</li>
<li><a
href="https://github.com/vercel/next.js/commit/1a026e338d2b8c977c8949a134168952338d6d01"><code>1a026e3</code></a>
fix router handling when setting a location response header (<a
href="https://redirect.github.com/vercel/next.js/issues/82588">#82588</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/be4aafd4b744fbf6500b311b74c84243f70a3059"><code>be4aafd</code></a>
v15.4.6</li>
<li><a
href="https://github.com/vercel/next.js/commit/91e5b6b84f56c096dc2bb647eb384388e06489fd"><code>91e5b6b</code></a>
Backport &quot;fix: add <code>?dpl</code> to fonts in
<code>/_next/static/media</code> (<a
href="https://redirect.github.com/vercel/next.js/issues/82384">#82384</a>)&quot;
(<a
href="https://redirect.github.com/vercel/next.js/issues/82421">#82421</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/f1629d939597cc46ccbe44fe66bda91eac31e219"><code>f1629d9</code></a>
Backport &quot;[Pages] fix: <code>_error</code> page's
<code>req.url</code> can be overwritten t… (<a
href="https://redirect.github.com/vercel/next.js/issues/82377">#82377</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/b9aab5dbe926c256d439bfecb226693dcd1a1be4"><code>b9aab5d</code></a>
v15.4.5</li>
<li><a
href="https://github.com/vercel/next.js/commit/a8c93c49dd2d42a2ced8a17bc53b3fea11d25c96"><code>a8c93c4</code></a>
Disable test new tests jobs</li>
<li><a
href="https://github.com/vercel/next.js/commit/ed2a6c754831406f8cd724eb52a562bb124c1504"><code>ed2a6c7</code></a>
[backport]: fix(next/image): improve and simplify detect-content-type
(<a
href="https://redirect.github.com/vercel/next.js/issues/82118">#82118</a>...</li>
<li><a
href="https://github.com/vercel/next.js/commit/f00fcc9011e7d0ef027021fc8424f51b8ac97880"><code>f00fcc9</code></a>
[backport]: fix(next/image): fix image-optimizer.ts headers (<a
href="https://redirect.github.com/vercel/next.js/issues/82114">#82114</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/82175">#82175</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/55a7568e9d12459f8c5f5ae120fe2e228af284bb"><code>55a7568</code></a>
Backport: Turbopack: update mimalloc (<a
href="https://redirect.github.com/vercel/next.js/issues/81993">#81993</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/82166">#82166</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/compare/v15.2.4...v15.4.7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=15.2.4&new-version=15.4.7)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-09-29 11:08:18 +00:00
Danny Kopping 32b5544d22 chore: revert github.com/mark3labs/mcp-go to v0.38.0 (#20004)
v0.41.0 seems to have a bug where it passes nil for tool definitions
instead of an empty map like it used to.

Signed-off-by: Danny Kopping <danny@coder.com>
2025-09-29 10:44:28 +00:00
Dean Sheather e257d2e94b chore: upgrade aibridge dependency to v0.1.1 (#20003)
Fixes openai tool call interception
(https://github.com/coder/aibridge/pull/8)
2025-09-29 09:25:06 +00:00
Cian Johnston 3e1f6afd66 chore: work around timing issue in TestReplicas/ErrorWithoutLicense (#20002)
Closes https://github.com/coder/internal/issues/268

Wraps the assertions in a `testutil.Eventually` so that hopefully any
transient timing issues resolve themselves. If this does not resolve the
issue, we may need to plumb through some kind of `chan struct{}` into
`api.Entitlements.Update()`
2025-09-29 10:20:26 +01:00
Rowan Smith aaa50715e1 fix: fix for template dormancy hour/day toggle (#19884)
resolves #15451 

> Solution: Selecting days is always be enabled and rounds (up) the
hours to the nearest day. I.e. 25 hours -> 2 days.

tested with 26hrs saved, then toggled to days. result = value changed to
2 days

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.

blink helped

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-29 09:23:02 +10:00
Bruno Quaresma 54ce03a300 chore: replace MUI buttons (#19968)
Replace MUI buttons with `components/Button`
2025-09-26 21:38:54 -03:00
Andrew Aquino 10d41b3a72 refactor: replace other deprecated Popovers which open on hover (#19753)
closes #19397 
dependency: #19709 

#19635 covered a large chunk of deprecated `Popover`s which open on
hover, specifically the ones which instantiated `HelpTooltip`. This PR
replaces all of the non-`HelpTooltip` hover-triggered popovers, and
removes the deprecated popover component :)

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-09-26 15:05:09 -07:00
Rafael Rodriguez d29a52462b feat: remove agent name from app URLs (#19750)
## Summary

In this pull request we're removing `agent_name` from subdomains in APP
urls when an `app` is used in the subdomain. `agent_names` will still be
used when a `port` is used in the subdomain.

Closes: https://github.com/coder/coder/issues/18485

### Changes

- Updated regex to support an optional agent name
- Added logic to support checking the app slug for a matching port
(e.g., 8080 or 8080s)

### Testing

- Updated all tests to support an optional `agent_name`
2025-09-26 12:25:58 -05:00
Bruno Quaresma 403a9e57c9 chore: migrate MUI icons to lucide icons (#19967)
This PR completes the migration from Material UI icons to Lucide icons.
2025-09-26 14:02:34 -03:00
Bruno Quaresma 89339f6e5d feat: redesign tasks page to match AI tools (#19962)
**Demo:**

<img width="3228" height="1940" alt="image"
src="https://github.com/user-attachments/assets/d29555ae-8122-4043-9ee2-2603506e5f3c"
/>
2025-09-26 13:30:44 -03:00
Dean Sheather fc58996bbf chore: add StripPrefix to aibridge server handler (#19990)
oops
2025-09-26 15:40:42 +00:00
Bruno Quaresma c2d514356f fix: handle chat app not found (#19947)
Sometimes users can misconfigure the app used for chat. When that
happens, we should make it clear to the user.

<img width="1197" height="727" alt="Screenshot 2025-09-24 at 14 15 12"
src="https://github.com/user-attachments/assets/6afe2c22-e7c3-47d4-8446-76000535a492"
/>

- Handle “chat app not found.”
- Simplify stories.
- Have `TaskAppIframe` handle all task iframes so we don’t need a
separate iframe component for chat.
2025-09-26 12:36:45 -03:00
Dean Sheather 43415f0144 chore: add enterprise feature for aibridge (#19976)
Adds enterprise feature "aibridge" and gates the aibridge CRUD and LLM API endpoints behind it.
2025-09-27 01:13:06 +10:00
Paweł Banaszewski 65f2895c0d chore: add CLI command to list aibridge interceptions (#19935)
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-09-27 00:58:12 +10:00
Paweł Banaszewski 0a6ba5d51a feat: add endpoint to list aibridge interceptions (#19929)
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-09-27 00:20:33 +10:00
Bruno Quaresma d70e26d2e3 chore: remove react-helmet (#19963)
Since React 19 supports head tags natively, we no longer need to use
`react-helmet`.

---------

Co-authored-by: ケイラ <mckayla@hey.com>
Co-authored-by: Andrew Aquino <dawneraq@gmail.com>
2025-09-26 10:52:53 -03:00
Danielle Maywood eb74732839 refactor!: rename prompt field to input for task creation (#19982)
Renames the `prompt` field to `input` for task creation. This matches
the naming used in the CLI and elsewhere.
2025-09-26 12:18:08 +01:00
Cian Johnston 0a840e48fd feat(cli): add more information to coder whoami (#19971)
Builds upon https://github.com/coder/coder/pull/19970

I got kinda carried away when I saw the extra stuff we could add in
here, so I went ahead and added it:

* User ID
* Organization IDs
* Roles

This technically duplicates functionality from `coder users show` but I
figure folks may find it useful.
2025-09-26 11:20:25 +01:00
Thomas Kosiewski 05537c1894 feat: publish RBAC scopes in OAuth2 metadata endpoints (#19942)
<!--

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.

-->

Publish supported OAuth2 scopes from RBAC external scope names

This PR updates the OAuth2 metadata endpoints to publish the supported scopes from the RBAC external scope names. Previously, the `ScopesSupported` field was empty with a TODO to implement a scope system. Now, both the authorization server metadata and protected resource metadata endpoints return the list of scopes from `rbac.ExternalScopeNames()`.

The tests have been updated to verify that the correct scopes are being returned in the metadata responses.
2025-09-26 12:15:36 +02:00
Thomas Kosiewski d0db9ec88f feat: add multi-scope support to API keys (#19917)
# Canonicalize API Key Scopes

This PR introduces canonical API key scopes with a `coder:` namespace prefix to avoid collisions with low-level resource:action names. It:

1. Renames special API key scopes in the database:
   - `all` → `coder:all`
   - `application_connect` → `coder:application_connect`

2. Adds support for a new `scopes` field in the API key creation request, allowing multiple scopes to be specified while maintaining backward compatibility with the singular `scope` field.

3. Updates the API documentation to reflect these changes, including the new endpoint for listing public API key scopes.

4. Ensures backward compatibility by mapping between legacy and canonical scope names in relevant code paths.
2025-09-26 11:56:34 +02:00
Thomas Kosiewski 4bda39585d feat: add external API key scopes (#19916)
# Add support for low-level API key scopes

This PR adds support for fine-grained API key scopes based on RBAC resource:action pairs. It includes:

1. A new endpoint `/api/v2/auth/scopes` to list all public low-level API key scopes
2. Generated constants in the SDK for all public scopes
3. Tests to verify scope validation during token creation
4. Updated API documentation to reflect the expanded scope options

The implementation allows users to create API keys with specific permissions like `workspace:read` or `template:use` instead of only the legacy `all` or `application_connect` scopes.



Fixes #19847
2025-09-26 11:43:32 +02:00
Danielle Maywood b7e0b2a73d feat(cli): add exp task logs (#19915)
Closes https://github.com/coder/internal/issues/894
2025-09-26 10:37:52 +01:00
Cian Johnston 82bebc7cc8 feat(cli): improve exp task status --watch (#19969)
* Improves logic for `exp task status --watch` so that it will also exit
on task idle status.
* Adds workspace agent health to `exp task status` output.
2025-09-26 10:33:31 +01:00
Thomas Kosiewski 47c92ad1d2 feat: add public RBAC scope catalog for user-requestable permissions (#19913)
# Add a curated catalog of public RBAC scopes

This PR introduces a curated catalog of public RBAC scopes that are exposed to users. It adds:

- A `publicLowLevel` map in `scopes_catalog.go` that defines which resource:action pairs are user-requestable
- `IsPublicLowLevel()` function to check if a scope is in the public catalog
- `PublicLowLevelScopeNames()` function that returns a sorted list of public scopes
- Tests to verify the catalog entries are valid and properly sorted
- Updated documentation in the check-scopes README to clarify that public scopes should be added to this catalog

This change helps distinguish between internal-only scopes and those that should be exposed to users in the API.
2025-09-26 11:30:28 +02:00
Cian Johnston eb55f0ab19 fix(coderd)!: only show task status for current build (#19966)
This changes the task get endpoint to omit app statuses for previous
'lifetimes' of a workspace.

It also introduces a [breaking
change](https://github.com/coder/coder/blob/release/2.26/codersdk/aitasks.go#L83)
to bring `TaskStateComplete` in line with
`WorkspaceAppStatusStateComplete`. I can alternatively revert this
change and add a conversion function between the two SDK types.
2025-09-26 10:14:37 +01:00
Cian Johnston 930bbaf035 feat(cli): add formatting options to coder whoami (#19970)
This addresses a long-standing gripe of mine: to get your logged in
username you would have to do
```bash
coder whoami | awk '{print $9}'
```

This allows you to do:

```
coder whoami -o json | jq -r '.username'
```

or

```
coder whoami -f table -c username
```
2025-09-26 09:33:27 +01:00
Spike Curtis f2904726a5 test: wait for completion before asserting in TestAgentConnectionMonitor_BuildOutdated (#19959)
<!--

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.

-->

follow on to #19836 
fixes https://github.com/coder/internal/issues/970

Same issue, different (adjacent) test.
2025-09-26 09:24:11 +04:00
Spike Curtis 904a308cd4 test: ignore bad connection errors for TestServer cases that don't use the db (#19957)
<!--

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.

-->
2025-09-26 08:48:24 +04:00
Ethan 659f237737 docs: add next steps to coder desktop guide (#19975)
I ended up on the Coder Desktop docs page and thought half of it had disappeared, though it was actually tucked away behind a second page. This PR adds a next steps section to the first page that links there, as it seems very easy to miss right now.
2025-09-26 14:06:59 +10:00
Brett Kolodny 647101b421 feat: add --shared-with-me flag to coder list command (#19948)
Closes
[coder/internal#1013](https://github.com/coder/internal/issues/1013)
2025-09-25 16:54:44 -04:00
Atif Ali a78790c632 chore: update claude code module in dogfood template (#19961)
Update the Claude Code module to version 3.0.0 
Tested in
https://dev.coder.com/templates/coder/coder/versions/quizzical_yalow1
2025-09-25 20:40:51 +05:00
Mathias Fredriksson 0bac5a4d5c feat(coderd): add experimental tasks logs endpoint (#19958)
Fixes coder/internal#901
2025-09-25 15:12:49 +00:00
Cian Johnston 063e8634c7 ci: create tasks instead of workspaces in ai triage workflow (#19940)
Co-authored-by: Danielle Maywood <danielle@themaywoods.com>
2025-09-25 16:00:54 +01:00
Danielle Maywood 252f430eb9 feat(cli): add exp task send (#19922)
Closes https://github.com/coder/internal/issues/895

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-09-25 15:40:02 +01:00
Danny Kopping 0a79817050 feat: initialize aibridged & mount API handler (#19798)
Addresses https://github.com/coder/internal/issues/987
2025-09-25 16:37:28 +02:00
Danny Kopping 6971f612be feat: aibridged mcp handling (#19911)
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.
2025-09-25 16:01:56 +02:00
Mathias Fredriksson 653101e5f6 fix(coderd): fix parsing of response format in tasks send (#19960) 2025-09-25 13:50:42 +00:00
Danny Kopping fc9bff7107 feat: add aibridged package (#19797)
Addresses https://github.com/coder/internal/issues/987
2025-09-25 15:40:25 +02:00
Spike Curtis 289f0217c7 feat: add scaletest Runner for dynamicparameters load gen (#19890)
relates to https://github.com/coder/internal/issues/912

Adds a new scaletest Runner to generate dynamic parameters load.

A later PR will add the CLI command, including creating the template & version.
2025-09-25 16:18:37 +04:00
Mathias Fredriksson 5317d309d0 feat(coderd): add experimental tasks send endpoint (#19941)
Fixes coder/internal#902
2025-09-25 12:12:00 +00:00
Danny Kopping 615585d5d1 feat: add aibridgedserver pkg (#19902) 2025-09-25 13:32:16 +02:00
Kacper Sawicki c8742badbb fix(cli): enhance error handling for multiple agents in SSH command (#19943)
Closes #19812

## Problem
> When I try to SSH into my workspace with multiple agents. It does not
provide an intuitive way to do that successfully and instead misguides
by printing wrong instructions.

This PR enhances the error handling to provide suggestions with SSH
commands that users can copy and paste directly.

Before:
```
Encountered an error running "coder ssh", see "coder ssh --help" for more information
error: multiple agents found, please specify the agent name, available agents: [coder dev]
```

After:
```
Encountered an error running "coder ssh", see "coder ssh --help" for more information
error: multiple agents found, please specify the agent name, available agents: [coder dev]
Try running:
         $ ssh coder.dogfood.me.coder
         $ ssh dev.dogfood.me.coder
```
2025-09-25 12:03:51 +02:00
Susana Ferreira da467bad2a feat(site): add custom notification settings (#19938)
## Description

Add Custom Notification settings to `/deployment/notifications` page and
`/settings/notifications` user's page.

<img width="2936" height="3008" alt="Screenshot 2025-09-24 at 12 53 52"
src="https://github.com/user-attachments/assets/c11ccaba-7bdd-4b0d-98b3-faa48a9796ba"
/>

<img width="2920" height="2976" alt="Screenshot 2025-09-24 at 12 54 06"
src="https://github.com/user-attachments/assets/21aa3057-a14e-4ba6-8138-98a4dc3952dc"
/>

Follow-up from: https://github.com/coder/coder/pull/19751
2025-09-25 09:48:13 +01:00
Vijay Bandari b712e975d5 chore: update okta icon (#19951) 2025-09-24 15:49:46 -06:00
Bruno Quaresma 2df9c5b6b5 feat: add sidebar to task page (#19944)
**Demo:**

https://github.com/user-attachments/assets/83363666-ed0e-488a-84b8-bb46517a2bb8

- Integrate sidebar into the task page
- Minor cosmetic changes
- Fix scrolling issues in tasks list
2025-09-24 14:52:59 -03:00
Andrew Aquino 669984c943 refactor: replace deprecated Popovers which open on click (#19709)
for #19397 
dependency: #19635 

This PR specifically covers components which open a popover that's
triggered by a click, rather than a hover.

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-09-24 10:00:54 -07:00
ケイラ a6fc28cc6f chore: bring back x-auth-checks with a length limit (#19928) 2025-09-24 10:46:50 -06:00
Thomas Kosiewski adb7521066 feat: generate RBAC scope name constants (#19896)
# Generate RBAC scope name constants

This PR adds a new generated file `coderd/rbac/scopes_constants_gen.go` that contains typed constants for all RBAC scope names in the format `Scope<Resource><Action>`. For example, `ScopeWorkspaceRead` for the scope "workspace:read".

These constants make it easier to reference specific scopes in code without using string literals, improving type safety and making refactoring easier.

The PR:
- Adds a new template file `scripts/typegen/scopenames.gotmpl`
- Updates the typegen script to support generating scope name constants
- Updates the Makefile to include the new generated file in build targets
2025-09-24 18:40:36 +02:00
Bruno Quaresma 5ff503b8fc fix: force task to be created with latest version (#19923)
Fixes https://github.com/coder/coder/issues/19744
2025-09-24 13:23:31 -03:00
Thomas Kosiewski acc0890dce feat: add lint check for API key scope enum completeness (#19862)
Added a script/linter to ensure all `policy.RBACPermissions` entries are part of the `api_key_scope` enumerated in the `coderd/database/dump.sql` file.

Fixes #19846
2025-09-24 18:06:16 +02:00
Dean Sheather 42dd544d90 fix: use unique cookies for workspace proxies (#19930)
There is currently an issue with subdomain workspace apps on workspace
proxies, where if you have a workspace proxy wildcard nested beneath the
primary wildcard, cookies from the primary may be sent to the server
before cookies from the proxy specifically.

Currently:
1. Use a subdomain app via the primary proxy `*.coder.corp.com`
    a. Client sends no cookies
    a. Server does token smuggling flow
a. Server sets a cookie `coder_subdomain_app_session_token` on
`*.coder.corp.com`
    a. Server redirects client to reload the page
    a. Request should succeed as usual
1. Wait until the primary proxy's session token cookie has expired in
the database (or make it invalid yourself)
1. Use a subdomain app via a separate proxy `*.sydney.coder.corp.com`
a. Client sends `coder_subdomain_app_session_token` cookie from
`*.coder.corp.com`
    a. Server validates supplied cookie, it fails because it's expired
    a. Server does token smuggling flow
a. Server sets a cookie `coder_subdomain_app_session_token` on
`*.sydney.coder.corp.com`
    a. Server redirects client to reload page
    a. Client sends BOTH cookies.
a. The server will only process the first cookie it receives, so if the
expired cookie for the primary proxy is sent first the request will end
up in a permanent loop on step b.

The fix is to append `_{hash(wildcard_access_url)}` to the subdomain
cookies as we cannot control browser behavior further. This avoids the
conflict as each proxy will only read it's specific cookie.
2025-09-25 00:30:02 +10:00
Bruno Quaresma 7baaa16ac1 chore: add tasks sidebar component (#19926)
This PR is part of a series of PRs aimed at completing the tasks
sidebar.

**Demo:**

https://github.com/user-attachments/assets/0d830f22-dc94-45d7-833b-fe706226ad68

Reference:
[https://github.com/coder/coder/issues/19573](https://github.com/coder/coder/issues/19573)
Depends on:
[https://github.com/coder/coder/pull/19920](https://github.com/coder/coder/pull/19920)
Based on:
[https://github.com/coder/coder/pull/19655](https://github.com/coder/coder/pull/19655)
2025-09-24 10:40:01 -03:00
Bruno Quaresma 50a92147e3 chore: add UserCombobox component for tasks sidebar (#19920)
This PR is part of a series of PRs aimed at completing the tasks
sidebar.

Reference:
[https://github.com/coder/coder/issues/19573](https://github.com/coder/coder/issues/19573)
2025-09-24 10:27:53 -03:00
Cian Johnston 78b1ec9698 feat(cli): add optional --name arg to 'exp task create' (#19939)
Allows specifying task name in `exp task create`
2025-09-24 14:05:59 +01:00
Bruno Quaresma 6d0943a53a feat: don't redirect to task page when it is created (#19919)
**Demo:**

https://github.com/user-attachments/assets/3ffaa13e-553f-43d2-9fad-d4d3ea7a4ede

Closes https://github.com/coder/coder/issues/19675
2025-09-24 10:05:38 -03:00
Cian Johnston 8f3e03ad40 ci: add auto-generated summary and GitHub issue comment workflows to triage.yaml (#19925) 2025-09-24 11:54:44 +01:00
Thomas Kosiewski 77d19c99cd ci: fix shellcheck lint error (#19933) 2025-09-24 10:47:50 +02:00
Danny Kopping 0ece153a0e chore: define aibridged protobuf specification (#19795) 2025-09-24 17:05:04 +10:00
Spike Curtis 5f1ddb6d57 test: skip ProbeOK test until fixed to not flake (#19931)
temp skip of flaky test: https://github.com/coder/internal/issues/957
2025-09-24 10:31:51 +04:00
Cian Johnston a68122ca30 chore: fix Test_Runner/CleanupPendingBuild with testutil.Eventually (#19924)
Fixes https://github.com/coder/internal/issues/968
2025-09-23 16:53:53 +01:00
Rafael Rodriguez f80cc15d90 chore(dogfood): add tooltip to jetbrains module (#19781)
## Summary

In this pull request we're adding support for a `tooltip` to the
JetBrains module in the dogfood template. Tooltip support was added to
the JetBrains module in https://github.com/coder/registry/pull/421

### Testing

Added `tooltip` to the JetBrains app in the example `docker` template
and verified that the tooltip appeared in my workspace

<img width="1039" height="560" alt="Screenshot 2025-09-23 at 10 01 52"
src="https://github.com/user-attachments/assets/9277f343-f73e-4fb8-a5cc-145f1aad9725"
/>
2025-09-23 10:44:03 -05:00
Cian Johnston 4a56a4094b chore: apptest: update test helpers to context-aware testutil.Eventually (#19918)
Relates to https://github.com/coder/internal/issues/960
2025-09-23 09:16:33 +01:00
Danielle Maywood b71d6713d1 feat(site): allow starting task workspace from task page (#19790)
Closes https://github.com/coder/coder/issues/19622

When viewing a task with a stopped workspace, instead show a 'Start
workspace' button instead of a 'View workspace'. The user can still view
the workspace by clicking the workspace button at the top right of the
page.


https://github.com/user-attachments/assets/4424c251-5f20-4e82-9ee0-c87a0b30a193
2025-09-23 09:05:49 +01:00
Thomas Kosiewski fb0ce389a6 feat: implement API key scopes database migration (#19861)
Added database migration for API key scopes.

Fixes #19845
2025-09-22 19:26:51 +02:00
Spike Curtis a30c30724b chore: refactor cli and coderd to use ClientOptions (#19763)
Refactors CLI and coderd to use the ClientBuilder pattern rather than directly instantiating the Client.
2025-09-22 21:02:56 +04:00
Bruno Quaresma e7d648fb28 fix: make app tabs scrollable (#19881)
The solution follows the way VSCode manages its tabs. Since many other
editors use a similar approach, this feels familiar and intuitive for
our users.

**Demo:**


https://github.com/user-attachments/assets/b4cfb307-268b-4c8b-ac7f-d01dff4ce60b

Fix https://github.com/coder/coder/issues/19438
2025-09-22 13:46:54 -03:00
Thomas Kosiewski 6fb4cc6b82 fix: add retry logic to OAuth2 metadata tests to avoid race conditions (#19813)
This PR adds a readiness wait to OAuth2 metadata endpoint tests to avoid rare races with server startup. Instead of immediately making HTTP requests, the tests now use `testutil.Eventually` to retry the requests until they succeed, with a short interval between attempts. This helps prevent flaky tests that might fail due to timing issues during server initialization.  
  
Fixes: https://github.com/coder/internal/issues/996
2025-09-22 18:30:36 +02:00
ケイラ 98213d7fc4 chore: improve playwright logging (#19899) 2025-09-22 10:17:03 -06:00
ケイラ e189088c03 chore: wrap pr ai guidelines notice in a comment (#19900) 2025-09-22 09:45:43 -06:00
Cian Johnston 6d1c425421 ci: fix AI triage (a.k.a. 'traiage') workflow (#19912)
- Updates default template name
- Set `GITHUB_TOKEN` env
- Implement simple `traiage.sh resume` script to download output
artifact
2025-09-22 16:42:42 +01:00
Atif Ali d2da8357cf docs: clarify offline CLI installation instructions (#19914) 2025-09-22 19:26:06 +05:00
Spike Curtis 1734dfd291 chore: cleanup unused Client in server command (#19762)
As part of converting production code to use the new ClientBuilder, I noticed some dead code that creates a client with a URL for the only purpose of later accessing the URL. This PR removes the cruft.
2025-09-22 17:38:34 +04:00
Spike Curtis 1d0e79f37e chore: refactor InitClient() to use ClientOptions (#19761)
Refactors `InitClient` and friends to use the ClientBuilder rather than modifying a Client in place.
2025-09-22 17:26:36 +04:00
Spike Curtis 606ae897b7 chore: refactor to directly create Client in Command Handlers (#19760)
Refactors the CLI to create the `*codersdk.Client` in the handlers. This is groundwork for changing the `rootCmd.InitClient()` to use the new `ClientOption`​s.

It also improves variable locality, scoping the Client to the handler. This makes misuse less likely and reduces the memory allocations to just the command being executed, rather than allocating a Client for every command regardless of whether it is executed.
2025-09-22 17:14:07 +04:00
Cian Johnston 12496830d6 ci: add workflow for agentic issue triage (#19839)
Adds a GH workflow to start a workspace with a pre-determined template,
perform a first pass over a given GitHub issue, and persist the changes
in a GCS bucket for later refining. Tested locally with `nektos/act`.

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-09-22 13:29:18 +01:00
Spike Curtis 5c2b9a5b82 chore: refactor codersdk.Client creation with functional args (#19759)
Adds ClientBuilder to build a codersdk.Client. This is a safer pattern than the current usage which modifies properties of the Client after creating it, opening us up to race conditions.

Refactors agentsdk to use the builder.
2025-09-22 15:59:41 +04:00
dependabot[bot] 562ef68cd9 chore: bump github.com/hashicorp/terraform-json from 0.25.0 to 0.27.2 (#19908)
Bumps
[github.com/hashicorp/terraform-json](https://github.com/hashicorp/terraform-json)
from 0.25.0 to 0.27.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-json/releases">github.com/hashicorp/terraform-json's
releases</a>.</em></p>
<blockquote>
<h2>v0.27.2</h2>
<p>NOTES / BUG FIXES</p>
<ul>
<li><code>UnmarshalLogMessage</code> to use <code>json.Number</code>
(instead of default <code>float64</code>) (<a
href="https://redirect.github.com/hashicorp/terraform-json/pull/178">#178</a>)
<ul>
<li>This avoids precision related problems when decoding numbers in JSON
data. This would impact only <code>0.27.1</code> consumers.</li>
</ul>
</li>
</ul>
<h2>v0.27.1</h2>
<h2>What's Changed</h2>
<h3>ENHANCEMENTS</h3>
<ul>
<li>Replace <code>json.RawMessage</code> with <code>any</code> for list
log messages by <a
href="https://github.com/dbanck"><code>@​dbanck</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/177">hashicorp/terraform-json#177</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hashicorp/terraform-json/compare/v0.27.0...v0.27.1">https://github.com/hashicorp/terraform-json/compare/v0.27.0...v0.27.1</a></p>
<h2>v0.27.0</h2>
<h2>What's Changed</h2>
<h3>ENHANCEMENTS</h3>
<ul>
<li>logging: Introduce types for structured UI messages +
<code>UnmarshalLogMessage()</code> by <a
href="https://github.com/radeksimko"><code>@​radeksimko</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/167">hashicorp/terraform-json#167</a></li>
<li>logging: Add query related message types by <a
href="https://github.com/radeksimko"><code>@​radeksimko</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/169">hashicorp/terraform-json#169</a></li>
<li>Add support for action schemas (unlinked) by <a
href="https://github.com/austinvalle"><code>@​austinvalle</code></a> in
<a
href="https://redirect.github.com/hashicorp/terraform-json/pull/166">hashicorp/terraform-json#166</a></li>
<li>Add support for action invocation within Plan JSON by <a
href="https://github.com/mutahhir"><code>@​mutahhir</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/172">hashicorp/terraform-json#172</a></li>
<li>tf query: add identity version for the list_resource_found message
by <a href="https://github.com/dsa0x"><code>@​dsa0x</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/176">hashicorp/terraform-json#176</a></li>
</ul>
<h3>INTERNAL</h3>
<ul>
<li>go: Bump to 1.25 by <a
href="https://github.com/radeksimko"><code>@​radeksimko</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/168">hashicorp/terraform-json#168</a></li>
<li>Bump actions/checkout from 4.2.2 to 5.0.0 in the
github-actions-breaking group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/170">hashicorp/terraform-json#170</a></li>
<li>Bump github.com/zclconf/go-cty from 1.16.3 to 1.16.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/171">hashicorp/terraform-json#171</a></li>
<li>build(deps): bump actions/setup-go from 5.5.0 to 6.0.0 in the
github-actions-breaking group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/174">hashicorp/terraform-json#174</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mutahhir"><code>@​mutahhir</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/172">hashicorp/terraform-json#172</a></li>
<li><a href="https://github.com/dsa0x"><code>@​dsa0x</code></a> made
their first contribution in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/176">hashicorp/terraform-json#176</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hashicorp/terraform-json/compare/v0.26.0...v0.27.0">https://github.com/hashicorp/terraform-json/compare/v0.26.0...v0.27.0</a></p>
<h2>v0.26.0</h2>
<h2>ENHANCEMENTS:</h2>
<ul>
<li>Added: support for list resource by <a
href="https://github.com/anubhav-goel"><code>@​anubhav-goel</code></a>
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/165">hashicorp/terraform-json#165</a></li>
</ul>
<h2>INTERNAL:</h2>
<ul>
<li>Bump actions/setup-go from 5.4.0 to 5.5.0 in the
github-actions-backward-compatible group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/161">hashicorp/terraform-json#161</a></li>
<li>github: Add PR template with required fields for PCI compliance by
<a href="https://github.com/xiehan"><code>@​xiehan</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/162">hashicorp/terraform-json#162</a></li>
<li>Bump github.com/zclconf/go-cty from 1.16.2 to 1.16.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/163">hashicorp/terraform-json#163</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/anubhav-goel"><code>@​anubhav-goel</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/165">hashicorp/terraform-json#165</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/ef5e0b8eca1ba1231002598662be4ea6b8537173"><code>ef5e0b8</code></a>
UnmarshalLogMessage to use json.Number (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/178">#178</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/3fe6fb24c20ef18182e01e2ef195288fbb45be90"><code>3fe6fb2</code></a>
Replace <code>json.RawMessage</code> for list log messages (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/177">#177</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/739a5926eb30c50488beb49887a8ed6d648a888b"><code>739a592</code></a>
actions: remove action types from action schema (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/175">#175</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/2eaedbecab678d315fab0b4ec89f650a913641fb"><code>2eaedbe</code></a>
tf query: add identity version for the list_resource_found message (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/176">#176</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/2fd292250e8f5085966cbec4786a0961bb5eb071"><code>2fd2922</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/terraform-json/issues/172">#172</a>
from hashicorp/mutahhir/add-action-invocation</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/b539674b30344f937e07516e82b1c700d73f4c57"><code>b539674</code></a>
Add ConfigUnknown field</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/806b1a620df6e027c5a18afd0c079dfd31fe5338"><code>806b1a6</code></a>
Fix tests after type change</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/23522f30fbc6b53352baccd22e0bd8de3b6d6ec6"><code>23522f3</code></a>
Change ConfigValues and ConfigSensitive to interfaces for redaction</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/dd0e457bc673a4627c3334ebdd1b784f9eed32f6"><code>dd0e457</code></a>
Remove Action Invocation as a Resource Mode</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/4643c0fb325f73f4d2d3286e4530c15f328e429d"><code>4643c0f</code></a>
format plan.json for test</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-json/compare/v0.25.0...v0.27.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/hashicorp/terraform-json&package-manager=go_modules&previous-version=0.25.0&new-version=0.27.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-22 11:30:30 +00:00
dependabot[bot] 8242fd2679 chore: bump github.com/brianvoe/gofakeit/v7 from 7.6.0 to 7.7.1 (#19907)
Bumps
[github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit)
from 7.6.0 to 7.7.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/6fcd2f7ef84a956ff8835abe97767c45df26a693"><code>6fcd2f7</code></a>
address - alias and keyword updates to better target address</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/12b7447d083a8a4ab261935f6ff95c7c1ce5fa40"><code>12b7447</code></a>
payment - remove redundent check</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/de7423068163722b23f2b2376c31a406921f7ff5"><code>de74230</code></a>
person - added ein number</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/69b8730a1a46703039afa73c686c37316dabb944"><code>69b8730</code></a>
payment - added alias</li>
<li>See full diff in <a
href="https://github.com/brianvoe/gofakeit/compare/v7.6.0...v7.7.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/brianvoe/gofakeit/v7&package-manager=go_modules&previous-version=7.6.0&new-version=7.7.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-22 11:30:05 +00:00
dependabot[bot] 8486795d51 ci: bump the github-actions group with 2 updates (#19909)
Bumps the github-actions group with 2 updates:
[chromaui/action](https://github.com/chromaui/action) and
[tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `chromaui/action` from 13.1.4 to 13.2.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/20c7e42e1b2f6becd5d188df9acb02f3e2f51519"><code>20c7e42</code></a>
v13.2.0</li>
<li><a
href="https://github.com/chromaui/action/commit/8c981a1b5ed6804b29058a5a68ea818a4c954d16"><code>8c981a1</code></a>
v13.1.5</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/d0795df816d05c4a89c80295303970fddd247cce...20c7e42e1b2f6becd5d188df9acb02f3e2f51519">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
1ac60965030588f3b867cdd4a3900f37ec99970c to
4563c729c555b4141fac99c80f699f571219b836
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.5...v47.0.0">47.0.0</a>
- (2025-09-13)</h1>
<h2><!-- raw HTML omitted -->🚀 Features</h2>
<ul>
<li>Add any_added to outputs (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2567">#2567</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/c260d49a827b5eb266673bed7871c5d3ee9b5aef">c260d49</a>)
- (Jellyfrog)</li>
</ul>
<h2><!-- raw HTML omitted --> Remove</h2>
<ul>
<li>Commit and push step from build job (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2538">#2538</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/be393a90381e27c9fec2c8c2e02b00f005710145">be393a9</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2592">#2592</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/3dbc1e181273d808ccff822a6e00cf18b6628ef0">3dbc1e1</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2591">#2591</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/b1ccff8c0892ad141d7d2de6f31e526a9dad931f">b1ccff8</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2574">#2574</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/050a3d3360d29711ee9d8210fc639d902d23ad07">050a3d3</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update link to glob patterns (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2590">#2590</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a892f50f7a7187bc288633c09230b09ce7ad8fd0">a892f50</a>)
- (Tonye Jack)</li>
<li>Add Jellyfrog as a contributor for code, and doc (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2573">#2573</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f000a9b97f254f9590ff26f651cccde827ad36da">f000a9b</a>)
- (allcontributors[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->🧪 Testing</h2>
<ul>
<li>Manual triggered workflows (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2637">#2637</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/c2ca2493190021783138cb8aac49bcee14b4bb89">c2ca249</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps-dev:</strong> Bump jest from 30.0.5 to 30.1.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2655">#2655</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/9a6755550a331fdcc8ec45443738933f8fa22eea">9a67555</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/git-cliff from 2.1.0 to 2.2.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2660">#2660</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b67e30df88f43e244f4e83775e5ad8335114fb95">b67e30d</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.30.2 to
3.30.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2661">#2661</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/62aef422ffa195474d80d73387535cf4622b2824">62aef42</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.11 to
3.30.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2659">#2659</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e874f3cddd0f54ae776e6995ae6dae4cf40fd3d3">e874f3c</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/setup-node from 4.4.0 to 5.0.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2656">#2656</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/8c14441336bb3d84fd6b7fa83b6d7201c740baf5">8c14441</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.3.0 to 24.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2657">#2657</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e995ac4be5be2bcb6e29556edc51fb63aca6b49b">e995ac4</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.2.1 to 24.3.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2649">#2649</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3b04099b21072562f07469c10deb182b24236ca9">3b04099</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.9 to
3.29.11 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2651">#2651</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e7b6c977e51984988e3cc1d6b18abe2a3ba8daaa">e7b6c97</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/git-cliff from 2.0.2 to 2.1.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2648">#2648</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/765d62bc041415a5b494ef13d02d566128b25973">765d62b</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.8 to
3.29.9 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2647">#2647</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/2036da178f85576f1940fedb74bb93a36cd89ab7">2036da1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.7 to
3.29.8 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2644">#2644</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/239aef84a5502c79a1cea96e495d17588c66c659">239aef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.2.0 to 24.2.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2645">#2645</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7d5f5f4919b6dbc6d3a3689887964361e8dd88f">a7d5f5f</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/checkout from 4.2.2 to 5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2646">#2646</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/5107f3abcc0c3737db51e2949f181e2c197d4d5b">5107f3a</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.1.0 to 24.2.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2640">#2640</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f963b3f3562b00b6d2dd25efc390eb04e51ef6c6">f963b3f</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/download-artifact from 4.3.0 to
5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2641">#2641</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f956744105e18d78bba3844a1199ce43d6503017">f956744</a>)
- (dependabot[bot])</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4563c729c555b4141fac99c80f699f571219b836"><code>4563c72</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.4.0 to 24.5.2
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2669">#2669</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/257f3acedc7e3cf12510ef211c6d89d140bd64aa"><code>257f3ac</code></a>
chore(deps-dev): bump <code>@​types/uuid</code> from 10.0.0 to 11.0.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2668">#2668</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/cac596ed08f1624de93e8c83fa36f0a0aff72311"><code>cac596e</code></a>
chore(deps-dev): bump <code>@​vercel/ncc</code> from 0.38.3 to 0.38.4
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2670">#2670</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4fb6914af96ff7e05cc41c37b85b528daf830762"><code>4fb6914</code></a>
chore(deps-dev): bump ts-jest from 29.4.1 to 29.4.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2671">#2671</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/2371aa7cd265d2e8a0213dc9e2a70dfcfb8fa114"><code>2371aa7</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.3.1 to 24.4.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2664">#2664</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/1ac60965030588f3b867cdd4a3900f37ec99970c...4563c729c555b4141fac99c80f699f571219b836">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-22 11:28:29 +00:00
Spike Curtis e2f5401fb2 test: add test database cleaner in subprocess (#19844)
fixes https://github.com/coder/internal/issues/927

Adds a small subprocess that outlives the testing process to clean up any leaked test databases.
2025-09-22 15:27:06 +04:00
Spike Curtis 596fdcba81 test: refactor dbtestutil to record database creation (#19843)
relates to https://github.com/coder/internal/issues/927

Refactors dbtestutil to use a `Broker` struct to create test databases. Additionally uses a `coder_testing` database to record test databases that are created and when they are dropped.

This is in preparation for the PR above this in the stack which adds a "cleaner" subprocess that cleans out any databases that were left when the test process ends.
2025-09-22 15:13:26 +04:00
Ethan e13fcaf865 refactor(scaletest): support exposing arbitrary metrics on scaletest runs (#19886)
Relates to https://github.com/coder/internal/issues/889

The existing implementation for exposing read and written bytes was a little awkward - we're going to be adding a bunch of scaletest runners / load generators that *don't* transfer any bytes. This PR has the scaletest reports expose a map of arbitrary string-keyed metrics instead.

FWIW, the latest iteration of the scaletesting infrastructure doesn't parse these reports right now - they're just logged to stdout, so we're good to break the json schema here.
2025-09-22 17:45:45 +10:00
Ethan d02ff5f9b2 refactor(scaletest): add runner for creating users (#19811)
Closes https://github.com/coder/internal/issues/985

Simple refactor of the user creation logic into it's own test runner. This lets us create users independently of workspaces, for use in a bunch of load generators, including the Coder Connect load generator.

This PR creates the new runner, and has the existing `createworkspaces` runner use it.
2025-09-22 17:35:36 +10:00
Ethan 6d9e29beb1 refactor(scaletest): generate user and workspace names if omitted (#19885)
Relates to https://github.com/coder/internal/issues/985.

Some scaletest runners would autogenerate names if they weren't supplied on the config, while others required a name be supplied, and a name was autogenerated in the CLI command handler. This PR unifies the runners to make names and emails optional on each config, and generate them in the scaletest runner if omitted. 

The create user runner in the PR above in the stack will do this too.
2025-09-22 17:25:47 +10:00
Asher 7f56212779 feat: add coder_workspace_port_forward MCP tool (#19863)
Closes https://github.com/coder/internal/issues/784
2025-09-21 15:12:57 -08:00
Bruno Quaresma d464360103 fix(site): resolve circular dependency between WorkspacesPage components (#19895)
Move `ACTIVE_BUILD_STATUSES` constant from `WorkspacesPage.tsx` to a
module to break the circular dependency between `WorkspacesPage.tsx` and
`BatchUpdateModalForm.tsx`. This resolves the circular dependency lint
error and ensures proper code organization.

**Error:**
```
• Circular Dependencies
  1) src/pages/WorkspacesPage/WorkspacesPage.tsx -> src/pages/WorkspacesPage/BatchUpdateModalForm.tsx
```

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-19 18:50:11 -03:00
Benraouane Soufiane f39cf3091c chore(site): add rustdesk icon (#19888) 2025-09-19 14:46:51 -06:00
Brett Kolodny 38ca98745b feat: add shared_with_group: and shared_with_user: filters to /workspaces endpoint (#19875)
Adds shared_with_user and shared_with_group filters to the /workspaces
endpoint.

- `shared_with_user`: filters workspaces shared with a specific user.
Accepts a user UUID or username.
- `shared_with_group`: filters workspaces shared with a specific group.
Accepts:
  - a group UUID, or
  - `<organization name>/<group name>`, or
  - `<group name>` (resolved in the default organization).


Closes
[coder/internal#1004](https://github.com/coder/internal/issues/1004)
2025-09-19 16:05:27 -04:00
david-fraley 40ffb79057 fix: update bitnami image (#19892) 2025-09-19 22:50:28 +05:00
david-fraley 738dbc6d47 fix: update bitnami to use legacy image (#19891) 2025-09-19 15:02:04 +00:00
Paweł Banaszewski 439b041780 feat: add best effort attempt to revoke oauth access token in external auth provider (#19775)
Solves #15575
Adds OAuth access token revocation when unlinking external auth
provider. Due to revocation not being consistently implemented by
providers this is only best effort attempt. Unsuccessful revocation
won't influence link removal.
2025-09-19 16:27:02 +02:00
Kacper Sawicki 0601cc8fa6 feat(site): display warnings in tasks page when wildcard is not configured (#19780)
Closes #19739 

This PR adds warnings to Task page to alert users when wildcard is not
configured.

Admin:
<img width="1871" height="1209" alt="image"
src="https://github.com/user-attachments/assets/01beb885-5493-41ed-a266-58609bee5b8b"
/>

Member:
<img width="1713" height="1204" alt="image"
src="https://github.com/user-attachments/assets/53c2bae5-5e0f-458c-b761-633399bdf2f0"
/>
2025-09-19 15:49:34 +02:00
Spike Curtis eb74d902bf test: fix TestServer cases that cancel before PostgreSQL work is done (#19872)
fixes https://github.com/coder/internal/issues/946

Some tests tear down the server before we are done with PostgreSQL work, and the default `clitest` infrastructure fails the test if any errors like that are thrown. This PR modifies the tests like that to ignore postgreSQL errors like this.
2025-09-19 15:14:48 +04:00
Thomas Kosiewski 4d8dc221bf chore: upgrade Node.js from 20.19.4 to 22.19.0 and update dependencies (#19870)
# Update Node.js from 20.19.4 to 22.19.0

This PR updates Node.js from v20.19.4 to v22.19.0 across the codebase. The change includes:

- Updated Node.js version in GitHub Actions setup-node workflow
- Updated Node.js version in the dogfood Dockerfile
- Changed from `pkgs.nodejs_20` to `unstablePkgs.nodejs_22` in the Nix flake
- Updated the Node.js engine version constraints in package.json files to allow Node.js 22
- Updated Playwright from v1.47.0 to v1.50.1
- Updated tzdata dependency from v1.0.44 to v1.0.46
- Updated the flake.lock file with latest nixpkgs references

The PR also improves the error message for Playwright version mismatches by showing the actual versions in the error.
2025-09-18 23:08:55 +02:00
Rowan Smith 623893708b feat: add helm var to support RBAC for deploying workspaces in extra namespaces (#19517)
This is a feature to create Role & RoleBinding entries on a per
namespace basis to support deploying workspaces in separate namespace to
where Coder is deployed. The idea behind this is to avoid the creation
of custom RBAC entries or the use of ClusterRoles (in order to maintain
priciple of least privilege).

> 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.

This is a blink assisted PR.

Example `helm template` without
`coder.serviceAccount.workspaceNamespaces` enabled (existing behaviour
as of current release) is below. Outcome = 1 x SA, 1 x Role, 1 x
RoleBinding, all in the coder (`.Release.Namespace`) namespace.
```
➜  coder git:(feat/helm_namespace_rbac_improvements) ✗ helm template -n coder coder . --set coder.image.tag=v2.25.1
---
...
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: coder-workspace-perms
  namespace: coder
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups:
    - apps
    resources:
    - deployments
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: "coder"
  namespace: coder
subjects:
  - kind: ServiceAccount
    name: "coder"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: coder-workspace-perms
---
```

Example `helm template` *with*
`coder.serviceAccount.workspaceNamespaces` enabled is below. Outcome = 1
x SA, 1 x Role, 1 x RoleBinding, all in the coder (`.Release.Namespace`)
namespace PLUS a Role and RoleBinding in the `dev-ws` namespace with
each of the RoleBindings referencing the coder SA in the coder
(`.Release.Namespace`) namespace:

```
➜  coder git:(feat/helm_namespace_rbac_improvements) ✗ helm template -n coder coder . --set coder.image.tag=v2.25.1 --set-json 'coder.serviceAccount.workspaceNamespaces=[{"name":"dev-ws","workspacePerms":true,"enableDeployments":true,"extraRules":[]}]' 
---
...
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: coder-workspace-perms
  namespace: coder
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups:
    - apps
    resources:
    - deployments
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: coder-workspace-perms
  namespace: dev-ws
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups: [""]
    resources: ["persistentvolumeclaims"]
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
  - apiGroups:
    - apps
    resources:
    - deployments
    verbs:
    - create
    - delete
    - deletecollection
    - get
    - list
    - patch
    - update
    - watch
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: "coder"
  namespace: coder
subjects:
  - kind: ServiceAccount
    name: "coder"
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: coder-workspace-perms
---
# Source: coder/templates/rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: "coder"
  namespace: dev-ws
subjects:
  - kind: ServiceAccount
    name: "coder"
    namespace: coder
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: coder-workspace-perms
---
```
2025-09-18 14:27:04 +10:00
Michael Smith 8a6852f095 fix(site): revamp UI for batch-updating workspaces (#18895)
Closes https://github.com/coder/coder/issues/18879
Builds on https://github.com/coder/coder/pull/18895

## Changes made
- Deleted `BatchUpdateConfirmation` component, replacing it with
`BatchUpdateModalForm`
- Added stories for the new component, trying to capture every variant I
could think of

## Screenshots
<img width="840" height="1059" alt="image"
src="https://github.com/user-attachments/assets/0fdac28e-19e8-4a14-a20a-fc1fd3758c81"
/>


## Notes
- There's too many problems to list, but look at the issue to see all
the problems we had with the old implementation
- It's definitely helpful to look at the stories to see all the things
the component is meant to cover
2025-09-17 20:46:38 -04:00
Michael Smith 759746cbf1 fix(site): update useAgentLogs to make it more testable and add more tests (#19126)
Take 2
Closes https://github.com/coder/internal/issues/644

## Changes made
- Updated how `useAgentLogs` was defined to make it easier to inject
specific data dependencies (basically making the hook more
unit-testable)
- Simplified the hook API to limit the amount of scope of data it needs
to work
- Added more test cases, and re-enabled the one test case we had
previously disabled
- Extracted our mock websocket code into a separate file, and added more
methods to it
- Updated all runtime code to accommodate new changes
2025-09-17 19:58:02 -04:00
Michael Smith d3bf5065a0 chore(site): convert more components from Emotion to TailwindCSS (#19719)
## Changes made
- Patched React `CSSProperties` type to add support for custom CSS
properties
- Updated several of the components in the `components` directory to
Tailwind
- Updated most of the `WorkspacePageBuildView` component to Tailwind to
account for CSS specificity changes
- Updated `Search` to address accessibility violation and removed all
MUI logic
- Updated `Search` stories (added new story, decoupled all stories from
single decorator)
- Updated `autoFocus` behavior in `SearchField`
- Updated the styling for `WorkspacePageBuildView` to make sure the tabs
had enough padding
- Fixed layout effect in `WorkspacePageBuildView` to fire correctly
2025-09-17 18:55:25 -04:00
Steven Masley 679179f404 feat: scope allow_list to include resource_type (#19748)
This feature allows the `allow_list` in the scopes to specify the `type`
2025-09-17 08:32:14 -05:00
Steven Masley 3df9d8e902 test: set test flags from within an init to limit maximum test parallelism (#19575) 2025-09-17 08:24:19 -05:00
Ethan 356604eca6 chore(coderd/notifications): avoid generating warning logs for trivial enqueue failures (#19840)
I noticed during a scaletest that many warning logs were being generated when enqueuing notifications. The error was:
```
failed to notify of workspace creation: notification is not enabled
```
I don't think we should be warning if automated notifications fail to send to users because they have them disabled.

To fix, we'll stop returning these errors.
2025-09-17 18:17:18 +10:00
Marcin Tojek 8781499c3d chore: add nextflow icon (#19838)
Related: https://github.com/coder/registry/pull/416
2025-09-17 08:46:57 +02:00
ケイラ f5fac293dc fix(site): show available logs consistently on template creation page (#19832) 2025-09-16 14:33:57 -06:00
david-fraley ea718084ff docs: update Tasks Template Code (#19770) 2025-09-16 20:27:57 +00:00
ケイラ 8db82d25b3 chore: upgrade to react 19 (#19829) 2025-09-16 13:37:30 -06:00
Danny Kopping 422bba44d9 chore: add aibridge database resources & define RBAC policies (#19796)
Closes https://github.com/coder/internal/issues/986
2025-09-16 21:31:17 +02:00
Danny Kopping 348a2e0285 feat: add configs for external auth MCP usage + tool allow/denylist (#19794)
Closes https://github.com/coder/internal/issues/988

The logic for allowing/denying tools can be found in https://github.com/coder/aibridge/pull/4/files#diff-330a6371a583dd8cadeed79b95499e3a87960ad8ea4d6a94061e8f88a44834c3 (`ProxyBase.filterAllowedTools`).
2025-09-16 20:31:29 +02:00
Spike Curtis 655a36c392 test: fix TestAgentConnectionMonitor_PingTimeout race with mock assertions (#19836)
Fixes https://github.com/coder/internal/issues/970

The test doesn't wait for `monitor()` to complete, and the mock database call that we assert takes place in a `defer` within `monitor()`. This allows the mock assertions to race with the defer and flake the test.

Solution is to explicitly wait for `monitor()` to complete before the end of the test, so that mock assertions (which happen in a `t.Cleanup()`) don't race.
2025-09-16 21:54:50 +04:00
Spike Curtis 4fc0093388 fix: fix TestCloserStack_Timeout to wait for all asyncClosers (#19837)
fixes https://github.com/coder/internal/issues/966


TestCloserStack_Timeout creates `asyncCloser`s which allow control over the exact timing and order of their close method returning. They also, as a final backstop will throw an error if the test context ends before they are unblocked.

TestCloserStack_Timeout unblocks all `asyncCloser`s in a defer and then ends the test. This defer _unblocks_ the running close goroutines, but does not wait for them to finish. Since the test context is canceled as soon as the test completes, this creates a race condition where the close goroutines can trigger the context cancelled  arm of the `select` statement.

The fix is to both unblock and wait for all close goroutines to complete before ending the test and cancelling the context.
2025-09-16 21:53:50 +04:00
Brett Kolodny e6b04d1918 feat: add shared filter to workspaces query (#19807)
Adds a `shared:<boolean>` search query to the `/workspaces [get]`
endpoint


https://github.com/user-attachments/assets/ccf84bd9-c1fd-4085-825b-2e3176a2d488

Closes
[coder/internal#972](https://github.com/coder/internal/issues/972)
2025-09-16 12:37:39 -04:00
Danny Kopping 8487216548 chore: add aibridge configs & experiment (#19793) 2025-09-16 11:45:23 +02:00
Ethan 2695bb418a ci: reduce size of ci failure slack notification (#19835)
The slack message will now look something like:

>  CI Failure in main
>
> View failure: Click here
>
> @.Blink Investigate this CI failure. Before starting, use your
workspace to read
https://gist.githubusercontent.com/ethanndickson/8dea9f1db3957ac1baf30ae8ce6f1a42/raw/da95920805456580499462a14b9a906d377414c5/blink-flake-instructions.md

(The prompt section is stored in a GHA variable so it can be modified
without committing.)
2025-09-16 08:14:39 +00:00
Stephen Kirby 2f35deeb39 chore(docs): update release calendar for 2.26 mainline release (#19680)
Co-authored-by: Atif Ali <atif@coder.com>
2025-09-16 06:17:49 +00:00
Ethan 995b330250 test: avoid sharing deployment values between subtests (#19833)
Blink didn't figure out a CI failure on main was caused by a data race; fixing it.


I've also updated the [blink prompt](https://gist.githubusercontent.com/ethanndickson/8dea9f1db3957ac1baf30ae8ce6f1a42/raw/060aea7fabb82bef0029a17dad9a5daee7940760/blink-flake-instructions.md).

https://github.com/coder/coder/actions/runs/17737809615
2025-09-16 13:51:26 +10:00
david-fraley cda859363e docs: fix formatting issues (#19831) 2025-09-15 17:02:56 -05:00
Rowan Smith f40ae708d6 chore: fix grammar issue (#19810)
fix a grammar issue.

Added an extra whitespace to the end / expanded the width of the table
to maintain space as adding the one char would have pushed `helps` hard
up against the table edge.

> 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.

no AI

Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-09-15 21:33:56 +00:00
Asher c31768dfe7 fix: use filepath to construct mcp test write path (#19808)
Hopefully fixes https://github.com/coder/internal/issues/993

```
  file path must be absolute: "/test/some/path"
```

Not sure if this is the right fix though, since I am not sure how this
only flakes rather than always failing. It looks like starting with `/`
should not be considered absolute in Windows, but then how did it ever
pass at all?
2025-09-15 09:00:30 -08:00
Danny Kopping 18b0acab4d fix: correct MCP tools' input schemas (#19825)
The input schemas of `coder_workspace_edit_file` and
`coder_workspace_edit_files` were violating the JSON Schemas of both
Anthropic and OpenAI.

Follow-up: we should add a test to ensure future compatibility with
these specs.

Signed-off-by: Danny Kopping <danny@coder.com>
2025-09-15 17:56:44 +02:00
ケイラ 8ff4ba0c70 fix: scroll item list into view when opening MultiSelectCombobox (#19806) 2025-09-15 09:29:25 -06:00
blink-so[bot] c9a877a386 docs: remove beta references from dynamic parameters (#19714)
Dynamic parameters are now GA as of v2.25.0, so this PR updates the
troubleshooting section to remove outdated beta references and clarify
current support.

**Changes:**
- Updated "Template variables not showing up" section to remove beta
references
- Clarified that template variables are fully supported in GA version
- Simplified troubleshooting guidance

Fixes the outdated documentation mentioned in the Slack thread.

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-09-15 15:11:22 +00:00
dependabot[bot] 4dc5d5c733 chore: bump github.com/gohugoio/hugo from 0.149.1 to 0.150.0 (#19826)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.149.1 to 0.150.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.150.0</h2>
<p>The big new feature in this relase is the new <code>version</code>
config option on <a
href="https://gohugo.io/configuration/module/#version">Module
imports</a>, which allows you to set the requested module <a
href="https://go.dev/ref/mod#version-queries">version query</a> directly
in your Hugo configuration (e.g. <code>hugo.toml</code>). This is a
feature that have been requested by many, and I (<a
href="https://github.com/bep"><code>@​bep</code></a>) was reminded about
it by <a
href="https://discourse.gohugo.io/t/mounting-different-branches-tags-from-the-same-repository/55849/5">this
recent thread</a>, which also outlines a common use case for this:
Mounting multiple old versions/branches of API documentation into the
project.</p>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump golang.org/x/mod from 0.27.0 to 0.28.0 d1f6a1dc5
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>modules: Add support for direct version module imports in hugo.toml
747cf4ad6 <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13964">#13964</a></li>
<li>resources/page: Fix truncated summary logic d8774d7fc <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13967">#13967</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13968">#13968</a></li>
<li>config/security: Add PROGRAMDATA to the osenv allowlist 3b8947d82 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/3f5473b7d4e7377e807290c3acc89feeef1aaa71"><code>3f5473b</code></a>
releaser: Bump versions for release of 0.150.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/d1f6a1dc595b3f456044d803c506fbbf36c5d45f"><code>d1f6a1d</code></a>
build(deps): bump golang.org/x/mod from 0.27.0 to 0.28.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/747cf4ad657b6eaeffcd0c7b0a10a38980c7b54c"><code>747cf4a</code></a>
modules: Add support for direct version module imports in hugo.toml</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/d8774d7fc34b12eb39dc85d0f7df797b13ab8fcc"><code>d8774d7</code></a>
resources/page: Fix truncated summary logic</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/3b8947d8217621dbe42198263a27e04a2490ab81"><code>3b8947d</code></a>
config/security: Add PROGRAMDATA to the osenv allowlist</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/321a66ef19ac25411bbbec926b7892be5ae55416"><code>321a66e</code></a>
releaser: Prepare repository for 0.150.0-DEV</li>
<li>See full diff in <a
href="https://github.com/gohugoio/hugo/compare/v0.149.1...v0.150.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.149.1&new-version=0.150.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 14:15:22 +00:00
dependabot[bot] 32b72bf571 ci: bump the github-actions group with 3 updates (#19824)
Bumps the github-actions group with 3 updates:
[step-security/harden-runner](https://github.com/step-security/harden-runner),
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
and [github/codeql-action](https://github.com/github/codeql-action).

Updates `step-security/harden-runner` from 2.13.0 to 2.13.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.1</h2>
<h2>What's Changed</h2>
<ul>
<li>
<p>Graceful handling of HTTP errors: Improved error handling when
fetching Harden Runner policies from the StepSecurity Policy Store API,
ensuring more reliable execution even in case of temporary network/API
issues.</p>
</li>
<li>
<p>Security updates for npm dependencies: Updated vulnerable npm package
dependencies to the latest secure versions.</p>
</li>
<li>
<p>Faster enterprise agent downloads: The enterprise agent is now
downloaded from GitHub Releases instead of packages.stepsecurity.io,
improving download speed and reliability.</p>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2.13.0...v2.13.1">https://github.com/step-security/harden-runner/compare/v2.13.0...v2.13.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a"><code>f4a75cf</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/588">#588</a>
from step-security/rc-26</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/95503d076c107b91d03775aee93f4cb86a134dda"><code>95503d0</code></a>
ci: remove code-review workflow</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4b250a07397b4cabc038948e3d832967764db6b4"><code>4b250a0</code></a>
ci: add job to confirm dist is as expected</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/5b0ab6abcf4c643b4ddf49d19fdb13c5821d124b"><code>5b0ab6a</code></a>
update dependencies</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/d11f2c1d65a99d8b0f20925c425d4d932e6d3366"><code>d11f2c1</code></a>
fix bug where status code was not being preserved</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b3fc98e4dfca39273624a95b9c5fd70d759997e5"><code>b3fc98e</code></a>
improve error handling for policy store sceanrio</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/92fc5d4bf78f09f5494523f3d8f2f85786fe757f"><code>92fc5d4</code></a>
update error message</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b61b0a4938ef1a80f368fbb9a0abcf78846e15a4"><code>b61b0a4</code></a>
policy store improvements</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/e3d3f2baeacadcbf3b2ad500171dd444855d4577"><code>e3d3f2b</code></a>
use GitHub release instead of packages</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/646ac01e72c16075733090f55857fc2f2d9a7e7a"><code>646ac01</code></a>
update agent</li>
<li>Additional commits viewable in <a
href="https://github.com/step-security/harden-runner/compare/ec9f2d5744a09debf3a187a3f4f675c53b671911...f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
8c14441336bb3d84fd6b7fa83b6d7201c740baf5 to
1ac60965030588f3b867cdd4a3900f37ec99970c
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.5...v47.0.0">47.0.0</a>
- (2025-09-13)</h1>
<h2><!-- raw HTML omitted -->🚀 Features</h2>
<ul>
<li>Add any_added to outputs (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2567">#2567</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/c260d49a827b5eb266673bed7871c5d3ee9b5aef">c260d49</a>)
- (Jellyfrog)</li>
</ul>
<h2><!-- raw HTML omitted --> Remove</h2>
<ul>
<li>Commit and push step from build job (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2538">#2538</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/be393a90381e27c9fec2c8c2e02b00f005710145">be393a9</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2592">#2592</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/3dbc1e181273d808ccff822a6e00cf18b6628ef0">3dbc1e1</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2591">#2591</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/b1ccff8c0892ad141d7d2de6f31e526a9dad931f">b1ccff8</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2574">#2574</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/050a3d3360d29711ee9d8210fc639d902d23ad07">050a3d3</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update link to glob patterns (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2590">#2590</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a892f50f7a7187bc288633c09230b09ce7ad8fd0">a892f50</a>)
- (Tonye Jack)</li>
<li>Add Jellyfrog as a contributor for code, and doc (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2573">#2573</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f000a9b97f254f9590ff26f651cccde827ad36da">f000a9b</a>)
- (allcontributors[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->🧪 Testing</h2>
<ul>
<li>Manual triggered workflows (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2637">#2637</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/c2ca2493190021783138cb8aac49bcee14b4bb89">c2ca249</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps-dev:</strong> Bump jest from 30.0.5 to 30.1.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2655">#2655</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/9a6755550a331fdcc8ec45443738933f8fa22eea">9a67555</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/git-cliff from 2.1.0 to 2.2.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2660">#2660</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b67e30df88f43e244f4e83775e5ad8335114fb95">b67e30d</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.30.2 to
3.30.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2661">#2661</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/62aef422ffa195474d80d73387535cf4622b2824">62aef42</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.11 to
3.30.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2659">#2659</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e874f3cddd0f54ae776e6995ae6dae4cf40fd3d3">e874f3c</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/setup-node from 4.4.0 to 5.0.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2656">#2656</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/8c14441336bb3d84fd6b7fa83b6d7201c740baf5">8c14441</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.3.0 to 24.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2657">#2657</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e995ac4be5be2bcb6e29556edc51fb63aca6b49b">e995ac4</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.2.1 to 24.3.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2649">#2649</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3b04099b21072562f07469c10deb182b24236ca9">3b04099</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.9 to
3.29.11 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2651">#2651</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e7b6c977e51984988e3cc1d6b18abe2a3ba8daaa">e7b6c97</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/git-cliff from 2.0.2 to 2.1.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2648">#2648</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/765d62bc041415a5b494ef13d02d566128b25973">765d62b</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.8 to
3.29.9 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2647">#2647</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/2036da178f85576f1940fedb74bb93a36cd89ab7">2036da1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.29.7 to
3.29.8 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2644">#2644</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/239aef84a5502c79a1cea96e495d17588c66c659">239aef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.2.0 to 24.2.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2645">#2645</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7d5f5f4919b6dbc6d3a3689887964361e8dd88f">a7d5f5f</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/checkout from 4.2.2 to 5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2646">#2646</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/5107f3abcc0c3737db51e2949f181e2c197d4d5b">5107f3a</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
24.1.0 to 24.2.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2640">#2640</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f963b3f3562b00b6d2dd25efc390eb04e51ef6c6">f963b3f</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump actions/download-artifact from 4.3.0 to
5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2641">#2641</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/f956744105e18d78bba3844a1199ce43d6503017">f956744</a>)
- (dependabot[bot])</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/1ac60965030588f3b867cdd4a3900f37ec99970c"><code>1ac6096</code></a>
Upgraded to v47 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2663">#2663</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/24d32ffd492484c1d75e0c0b894501ddb9d30d62"><code>24d32ff</code></a>
upgrade: to node24 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2662">#2662</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9a6755550a331fdcc8ec45443738933f8fa22eea"><code>9a67555</code></a>
chore(deps-dev): bump jest from 30.0.5 to 30.1.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2655">#2655</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/b67e30df88f43e244f4e83775e5ad8335114fb95"><code>b67e30d</code></a>
chore(deps): bump tj-actions/git-cliff from 2.1.0 to 2.2.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2660">#2660</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/62aef422ffa195474d80d73387535cf4622b2824"><code>62aef42</code></a>
chore(deps): bump github/codeql-action from 3.30.2 to 3.30.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2661">#2661</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/e874f3cddd0f54ae776e6995ae6dae4cf40fd3d3"><code>e874f3c</code></a>
chore(deps): bump github/codeql-action from 3.29.11 to 3.30.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2659">#2659</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/8c14441336bb3d84fd6b7fa83b6d7201c740baf5...1ac60965030588f3b867cdd4a3900f37ec99970c">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.30.1 to 3.30.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.30.3</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.3 - 10 Sep 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.3/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.30.2</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.30.2 - 09 Sep 2025</h2>
<ul>
<li>Fixed a bug which could cause language autodetection to fail. <a
href="https://redirect.github.com/github/codeql-action/pull/3084">#3084</a></li>
<li>Experimental: The <code>quality-queries</code> input that was added
in <code>3.29.2</code> as part of an internal experiment is now
deprecated and will be removed in an upcoming version of the CodeQL
Action. It has been superseded by a new <code>analysis-kinds</code>
input, which is part of the same internal experiment. Do not use this in
production as it is subject to change at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/3064">#3064</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.30.2/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<ul>
<li>We have improved the CodeQL Action's ability to validate that the
workflow it is used in does not use different versions of the CodeQL
Action for different workflow steps. Mixing different versions of the
CodeQL Action in the same workflow is unsupported and can lead to
unpredictable results. A warning will now be emitted from the
<code>codeql-action/init</code> step if different versions of the CodeQL
Action are detected in the workflow file. Additionally, an error will
now be thrown by the other CodeQL Action steps if they load a
configuration file that was generated by a different version of the
<code>codeql-action/init</code> step. <a
href="https://redirect.github.com/github/codeql-action/pull/3099">#3099</a>
and <a
href="https://redirect.github.com/github/codeql-action/pull/3100">#3100</a></li>
<li>We added support for reducing the size of dependency caches for Java
analyses, which will reduce cache usage and speed up workflows. This
will be enabled automatically at a later time. <a
href="https://redirect.github.com/github/codeql-action/pull/3107">#3107</a></li>
</ul>
<h2>3.30.3 - 10 Sep 2025</h2>
<p>No user facing changes.</p>
<h2>3.30.2 - 09 Sep 2025</h2>
<ul>
<li>Fixed a bug which could cause language autodetection to fail. <a
href="https://redirect.github.com/github/codeql-action/pull/3084">#3084</a></li>
<li>Experimental: The <code>quality-queries</code> input that was added
in <code>3.29.2</code> as part of an internal experiment is now
deprecated and will be removed in an upcoming version of the CodeQL
Action. It has been superseded by a new <code>analysis-kinds</code>
input, which is part of the same internal experiment. Do not use this in
production as it is subject to change at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/3064">#3064</a></li>
</ul>
<h2>3.30.1 - 05 Sep 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.23.0. <a
href="https://redirect.github.com/github/codeql-action/pull/3077">#3077</a></li>
</ul>
<h2>3.30.0 - 01 Sep 2025</h2>
<ul>
<li>Reduce the size of the CodeQL Action, speeding up workflows by
approximately 4 seconds. <a
href="https://redirect.github.com/github/codeql-action/pull/3054">#3054</a></li>
</ul>
<h2>3.29.11 - 21 Aug 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.4. <a
href="https://redirect.github.com/github/codeql-action/pull/3044">#3044</a></li>
</ul>
<h2>3.29.10 - 18 Aug 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.9 - 12 Aug 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.8 - 08 Aug 2025</h2>
<ul>
<li>Fix an issue where the Action would autodetect unsupported languages
such as HTML. <a
href="https://redirect.github.com/github/codeql-action/pull/3015">#3015</a></li>
</ul>
<h2>3.29.7 - 07 Aug 2025</h2>
<p>This release rolls back 3.29.6 to address issues with language
autodetection. It is identical to 3.29.5.</p>
<h2>3.29.6 - 07 Aug 2025</h2>
<ul>
<li>The <code>cleanup-level</code> input to the <code>analyze</code>
Action is now deprecated. The CodeQL Action has written a limited amount
of intermediate results to the database since version 2.2.5, and now
automatically manages cleanup. <a
href="https://redirect.github.com/github/codeql-action/pull/2999">#2999</a></li>
<li>Update default CodeQL bundle version to 2.22.3. <a
href="https://redirect.github.com/github/codeql-action/pull/3000">#3000</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/192325c86100d080feab897ff886c34abd4c83a3"><code>192325c</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3104">#3104</a>
from github/update-v3.30.3-b660efdcf</li>
<li><a
href="https://github.com/github/codeql-action/commit/e68956d90b7fe2260904652cd8de5d73563e4944"><code>e68956d</code></a>
Update changelog for v3.30.3</li>
<li><a
href="https://github.com/github/codeql-action/commit/b660efdcfdfa893d74568cd884067ed18e8d6f88"><code>b660efd</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3103">#3103</a>
from github/mbg/fix/category-check</li>
<li><a
href="https://github.com/github/codeql-action/commit/e49458befe579c5a1088aacda9f2ae384da104ff"><code>e49458b</code></a>
Fix <code>runInterpretResultsFor</code> using the wrong
<code>AnalysisConfig</code> for <code>category</code> fix</li>
<li><a
href="https://github.com/github/codeql-action/commit/f374a62c8bedef779582aeb425a68f7798f2078c"><code>f374a62</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3098">#3098</a>
from github/kaspersv/increase-overlay-base-size-limit</li>
<li><a
href="https://github.com/github/codeql-action/commit/5efa438e92992578d794ae4ceed960bf81011677"><code>5efa438</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3101">#3101</a>
from github/mbg/public-repo-notice-in-pr-template</li>
<li><a
href="https://github.com/github/codeql-action/commit/8a84a62542ea24fd569eb5afdfb2507c25328ab9"><code>8a84a62</code></a>
Overlay: Increase size limit for cached overlay base database</li>
<li><a
href="https://github.com/github/codeql-action/commit/eb50a881d87eb8488328fefe024ae2f6add8384f"><code>eb50a88</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3097">#3097</a>
from github/redsun82/only-dump-sarif</li>
<li><a
href="https://github.com/github/codeql-action/commit/4c534612bf77788909753a5602e96710156f5758"><code>4c53461</code></a>
Tweak sarif dump log</li>
<li><a
href="https://github.com/github/codeql-action/commit/dae3742b0a3b9e08acc580e15ef74bdc454d650a"><code>dae3742</code></a>
Dump soon to be uploaded SARIF on request</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/f1f6e5f6af878fb37288ce1c627459e94dbf7d01...192325c86100d080feab897ff886c34abd4c83a3">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 12:40:44 +00:00
dependabot[bot] 4fde5f8588 chore: bump github.com/aws/aws-sdk-go-v2 from 1.38.1 to 1.39.0 (#19821)
Bumps
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
from 1.38.1 to 1.39.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/648027edb8aeba036195538174a63cbccaca8c16"><code>648027e</code></a>
Release 2025-09-08</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/a3b9b7b1303ebf9fc1837f70253fe086d0ee72a2"><code>a3b9b7b</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/67dad834dcc6ab1c14a2b9935bd92bc1ff91ddd9"><code>67dad83</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/2bfe86a2ca763380b5fb498feab0886d41b96dcc"><code>2bfe86a</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/59e7410f279040b4c186e149402eebf13c5e06d9"><code>59e7410</code></a>
add businessmetrics feature ID for env-based bearer token (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3182">#3182</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1cdc15880e2f5087470b6f813eb0a5cd1451c95f"><code>1cdc158</code></a>
Patching override s3expire shape (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3180">#3180</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1745ede8f69372b0e08c4a8bcc83d43e76caeb26"><code>1745ede</code></a>
Release 2025-09-05</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f84de5375a6e97e530819caba27fa0c7bc773cd6"><code>f84de53</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/7cdaa318493e10d7ef9dd87eb1130b9806c48c98"><code>7cdaa31</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/498b5c42d5b3fc143fc3449665faa3635f468d09"><code>498b5c4</code></a>
remove service/sms (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3177">#3177</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/v1.38.1...v1.39.0">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&package-manager=go_modules&previous-version=1.38.1&new-version=1.39.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 12:23:43 +00:00
dependabot[bot] 05f8ffd943 chore: bump github.com/valyala/fasthttp from 1.65.0 to 1.66.0 (#19822)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.65.0 to 1.66.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.66.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump securego/gosec from 2.22.7 to 2.22.8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2056">valyala/fasthttp#2056</a></li>
<li>docs: add fasthttp-auth to related projects section by <a
href="https://github.com/FAUST-BENCHOU"><code>@​FAUST-BENCHOU</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2057">valyala/fasthttp#2057</a></li>
<li>server: refactor to use atomic type by <a
href="https://github.com/cuiweixie"><code>@​cuiweixie</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2058">valyala/fasthttp#2058</a></li>
<li>chore(deps): bump actions/setup-go from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2060">valyala/fasthttp#2060</a></li>
<li>Fix extra whitespace parsing in HTTP request lines to prevent cache
poisoning by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2061">valyala/fasthttp#2061</a></li>
<li>Drop Go 1.23 support by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2065">valyala/fasthttp#2065</a></li>
<li>Add flushing support to fasthttpadaptor by <a
href="https://github.com/grivera64"><code>@​grivera64</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2054">valyala/fasthttp#2054</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/FAUST-BENCHOU"><code>@​FAUST-BENCHOU</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2057">valyala/fasthttp#2057</a></li>
<li><a href="https://github.com/cuiweixie"><code>@​cuiweixie</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2058">valyala/fasthttp#2058</a></li>
<li><a href="https://github.com/Copilot"><code>@​Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2061">valyala/fasthttp#2061</a>
😄</li>
<li><a href="https://github.com/grivera64"><code>@​grivera64</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2054">valyala/fasthttp#2054</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.65.0...v1.66.0">https://github.com/valyala/fasthttp/compare/v1.65.0...v1.66.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/e04490f830dd9671b53e2359cddc79a23d7877f3"><code>e04490f</code></a>
Add flushing support to fasthttpadaptor (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2054">#2054</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/e9640b4d39215ac87fa85c171b26d745a40a8e99"><code>e9640b4</code></a>
Update benchmarks in readme</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/4d25421ae55c9f5d28dc3731d9a51106a71b7254"><code>4d25421</code></a>
Drop Go 1.23 support (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2065">#2065</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/72dccd04fb1b6ec82f33b95fd8e069861a9872e7"><code>72dccd0</code></a>
Fix extra whitespace parsing in HTTP request lines to prevent cache
poisoning...</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/8c7d2bc051dfc5d5d3d0c847a293622aad42641b"><code>8c7d2bc</code></a>
chore(deps): bump actions/setup-go from 5 to 6 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2060">#2060</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/28b7880b32812a37f8272b2153d07b2df16e821e"><code>28b7880</code></a>
server: refactor to use atomic type (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2058">#2058</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/68d21ed0086a8a7794274a58c5284ab9cac45cdd"><code>68d21ed</code></a>
docs: add fasthttp-auth to related projects section (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2057">#2057</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/7ad0219d24bb082dca5e70e2bd221fe3dc5e4fb5"><code>7ad0219</code></a>
chore(deps): bump securego/gosec from 2.22.7 to 2.22.8 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2056">#2056</a>)</li>
<li>See full diff in <a
href="https://github.com/valyala/fasthttp/compare/v1.65.0...v1.66.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.65.0&new-version=1.66.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 12:22:56 +00:00
dependabot[bot] 3c059c7220 chore: bump the x group with 3 updates (#19820)
Bumps the x group with 3 updates:
[golang.org/x/crypto](https://github.com/golang/crypto),
[golang.org/x/net](https://github.com/golang/net) and
[golang.org/x/tools](https://github.com/golang/tools).

Updates `golang.org/x/crypto` from 0.41.0 to 0.42.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/crypto/commit/5307a0ce6db8057c8d7c4378dc4bd715b4985ba1"><code>5307a0c</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/crypto/commit/9d779377cff7ff1f58520cc044fb90b10ddfc561"><code>9d77937</code></a>
acme: include order problem in OrderError</li>
<li><a
href="https://github.com/golang/crypto/commit/8f580defa01dec23898d3cd27f6369cdcc62f71f"><code>8f580de</code></a>
ssh: remove Go 1.24 build tag for ML-KEM kex</li>
<li><a
href="https://github.com/golang/crypto/commit/a4d1237429d6056ef197b0b911b8b9d7dca8ecf6"><code>a4d1237</code></a>
ssh/knownhosts: improve IPv6 support in Normalize</li>
<li><a
href="https://github.com/golang/crypto/commit/b8d8dae13d7dda8706ca2ab98934ad404aacae22"><code>b8d8dae</code></a>
curve25519: include potential fips140=only error in panic message</li>
<li><a
href="https://github.com/golang/crypto/commit/f5a2eabcab987dc84f30d5479ed5c5605b5de634"><code>f5a2eab</code></a>
ssh: use curve25519.X25519 instead of curve25519.ScalarMult</li>
<li><a
href="https://github.com/golang/crypto/commit/44ecf3af9978b32529ce689a6964bd557c79aa1c"><code>44ecf3a</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/crypto/compare/v0.41.0...v0.42.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/net` from 0.43.0 to 0.44.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/3b23d576ea72235a3fef8f157eb5ab76e65854a8"><code>3b23d57</code></a>
http2: fix race condition when disabling goroutine debugging for one
test</li>
<li><a
href="https://github.com/golang/net/commit/87410502ff26318c9bd1be1c9a09e0a681774dcf"><code>8741050</code></a>
http2: simplify TestServer_Push_RejectAfterGoAway</li>
<li><a
href="https://github.com/golang/net/commit/96e405cac15ef9a113f2b30d3f3f8a216234f09c"><code>96e405c</code></a>
http2: modernize TestTransportRoundtripCloseOnWriteError</li>
<li><a
href="https://github.com/golang/net/commit/6dc6880bcd7edc82184626a363d26d65bc55c195"><code>6dc6880</code></a>
http2: simplify ClientConn Close and Shutdown tests</li>
<li><a
href="https://github.com/golang/net/commit/4e2915b652483bfc9831c080e40c679e42616f03"><code>4e2915b</code></a>
http2: modernize TestTransportAllocationsAfterResponseBodyClose</li>
<li><a
href="https://github.com/golang/net/commit/30b0e78859f03d66b2e275870d5d37455d2f0fb0"><code>30b0e78</code></a>
http2: modernize TestRoundTripDoesntConsumeRequestBodyEarly</li>
<li><a
href="https://github.com/golang/net/commit/b9acd777f1852925992bdeaa623de8cc86efa4eb"><code>b9acd77</code></a>
http2: speed up TestTransportFlowControl</li>
<li><a
href="https://github.com/golang/net/commit/5153f4db3143a3be6ce383b512ba7a4c0f935211"><code>5153f4d</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/net/commit/9338bdd9eeddfeab331342288acfef2293474490"><code>9338bdd</code></a>
http2: speed up TestTransportHandlerBodyClose</li>
<li><a
href="https://github.com/golang/net/commit/6b200364a6614a5cf8d360d854e998c1dc739f24"><code>6b20036</code></a>
http2: add synchronous handler support to serverTester</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/net/compare/v0.43.0...v0.44.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.36.0 to 0.37.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/d49da96b802368c7325ac3b662a238c09a0615b9"><code>d49da96</code></a>
go/analysis/internal/checker: fix panic due to nil Pass</li>
<li><a
href="https://github.com/golang/tools/commit/9da4f7b44800964cb753824472b25a0487f06b15"><code>9da4f7b</code></a>
gopls/internal/test/integration/completion: make test go1.26-robust</li>
<li><a
href="https://github.com/golang/tools/commit/4409ea71cc4b4233548ec108ff8b9b4b59644511"><code>4409ea7</code></a>
gopls/internal/server: add telemetry for Zed, Helix clientInfo</li>
<li><a
href="https://github.com/golang/tools/commit/75023ae58653333dcc3fc240af01833d83a72b7f"><code>75023ae</code></a>
go/ast/inspector: update outdated documentation</li>
<li><a
href="https://github.com/golang/tools/commit/785cd66cb76e91f9c504768594c5f4e422dd8e7b"><code>785cd66</code></a>
gopls/internal/test/integration/completion: skip TestFuzzFunc
pre-go1.25</li>
<li><a
href="https://github.com/golang/tools/commit/ac2e4a594c7ddc3eeddeddddd3cbef3c22e2b6b2"><code>ac2e4a5</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/bc9374dde117ebc9276c545225c3cc1a116a8418"><code>bc9374d</code></a>
go/callgraph/vta: remove unnecessary use of unsafe</li>
<li><a
href="https://github.com/golang/tools/commit/12d7e152453c767e46faa9b7ab3283600b627bf4"><code>12d7e15</code></a>
gopls/internal/analysis/modernize: add test of no gopls imports</li>
<li><a
href="https://github.com/golang/tools/commit/263a7694059cc37e3789d5ce4a4379adc588f46c"><code>263a769</code></a>
gopls/internal/mcp: use official go mcp sdk</li>
<li><a
href="https://github.com/golang/tools/commit/e548c709d4e162c0c771250e46eb9ea13473c1ef"><code>e548c70</code></a>
gopls/internal/analysis/modernize: fix bad edit in var ( ... ) decl</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.36.0...v0.37.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 12:20:03 +00:00
dependabot[bot] 0cf1fed600 chore: bump google.golang.org/api from 0.248.0 to 0.249.0 (#19818)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.248.0 to 0.249.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.249.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.248.0...v0.249.0">0.249.0</a>
(2025-09-08)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3281">#3281</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c03d56bd807f14ef4612df738ba9d3f1f6d31d1d">c03d56b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3283">#3283</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/4d1d33689712d397ab582ee046fc51c94c080e04">4d1d336</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3284">#3284</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d2b41b6ebb0b352d79d2ea64f89579ebbc9f96c7">d2b41b6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3285">#3285</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/bcde9430e3e68f4ec7bebbbf54742774b9f7cfa7">bcde943</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3286">#3286</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/27530ddc5176ffbbd8a418f532878b495cb4fdf5">27530dd</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3288">#3288</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/240e54a47415519f419f9c35a7699205fac62dd1">240e54a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3289">#3289</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2bd4a72fae45cc4cb10b77ad1b1c2d5d8d99a650">2bd4a72</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3291">#3291</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d09c7d319a1191f231043622df5be2f4dba1f629">d09c7d3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3292">#3292</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7b2235b3826bd01cc4c0f47ab9828692875029c6">7b2235b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3293">#3293</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2e60cd5bcc4bafa45fa699a7753db273568af68a">2e60cd5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3294">#3294</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/162aba409d969077157d3ecec3f7578af15a62b4">162aba4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3295">#3295</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e297a428606910b17750a7d09aaec92c2513b415">e297a42</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3296">#3296</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f98f8357e2480c0e96acfa004f30c731988e4cbe">f98f835</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3297">#3297</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ababe603c1ec78c9becb3daf8cde2b4fbd108fde">ababe60</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3299">#3299</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ad70b6eee9be539868c5b8004a7be4501fdd7404">ad70b6e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3300">#3300</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/4fcd5bbd71a8e09cc05c17775fffc365d00dbcb5">4fcd5bb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3301">#3301</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6db056121da007d4c80b1eacdff5cf23e60fa6a2">6db0561</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3302">#3302</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/79b251ae0fcbe4f34730ace80b89f43b529c192b">79b251a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3303">#3303</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e93c8a870b9a43ac439c438d52df964da732df02">e93c8a8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3305">#3305</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1ca0330e52f234f3f9e9d65c431e0f9e7a2e93a0">1ca0330</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.248.0...v0.249.0">0.249.0</a>
(2025-09-08)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3281">#3281</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c03d56bd807f14ef4612df738ba9d3f1f6d31d1d">c03d56b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3283">#3283</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/4d1d33689712d397ab582ee046fc51c94c080e04">4d1d336</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3284">#3284</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d2b41b6ebb0b352d79d2ea64f89579ebbc9f96c7">d2b41b6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3285">#3285</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/bcde9430e3e68f4ec7bebbbf54742774b9f7cfa7">bcde943</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3286">#3286</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/27530ddc5176ffbbd8a418f532878b495cb4fdf5">27530dd</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3288">#3288</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/240e54a47415519f419f9c35a7699205fac62dd1">240e54a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3289">#3289</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2bd4a72fae45cc4cb10b77ad1b1c2d5d8d99a650">2bd4a72</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3291">#3291</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d09c7d319a1191f231043622df5be2f4dba1f629">d09c7d3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3292">#3292</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7b2235b3826bd01cc4c0f47ab9828692875029c6">7b2235b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3293">#3293</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2e60cd5bcc4bafa45fa699a7753db273568af68a">2e60cd5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3294">#3294</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/162aba409d969077157d3ecec3f7578af15a62b4">162aba4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3295">#3295</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e297a428606910b17750a7d09aaec92c2513b415">e297a42</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3296">#3296</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f98f8357e2480c0e96acfa004f30c731988e4cbe">f98f835</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3297">#3297</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ababe603c1ec78c9becb3daf8cde2b4fbd108fde">ababe60</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3299">#3299</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ad70b6eee9be539868c5b8004a7be4501fdd7404">ad70b6e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3300">#3300</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/4fcd5bbd71a8e09cc05c17775fffc365d00dbcb5">4fcd5bb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3301">#3301</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6db056121da007d4c80b1eacdff5cf23e60fa6a2">6db0561</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3302">#3302</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/79b251ae0fcbe4f34730ace80b89f43b529c192b">79b251a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3303">#3303</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e93c8a870b9a43ac439c438d52df964da732df02">e93c8a8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3305">#3305</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1ca0330e52f234f3f9e9d65c431e0f9e7a2e93a0">1ca0330</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/d63ede448babcddf0d4b854b3beeef47d2246144"><code>d63ede4</code></a>
chore(main): release 0.249.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3282">#3282</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/1ca0330e52f234f3f9e9d65c431e0f9e7a2e93a0"><code>1ca0330</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3305">#3305</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/e93c8a870b9a43ac439c438d52df964da732df02"><code>e93c8a8</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3303">#3303</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/79b251ae0fcbe4f34730ace80b89f43b529c192b"><code>79b251a</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3302">#3302</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/6db056121da007d4c80b1eacdff5cf23e60fa6a2"><code>6db0561</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3301">#3301</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/4fcd5bbd71a8e09cc05c17775fffc365d00dbcb5"><code>4fcd5bb</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3300">#3300</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ad70b6eee9be539868c5b8004a7be4501fdd7404"><code>ad70b6e</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3299">#3299</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ababe603c1ec78c9becb3daf8cde2b4fbd108fde"><code>ababe60</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3297">#3297</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f98f8357e2480c0e96acfa004f30c731988e4cbe"><code>f98f835</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3296">#3296</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/e297a428606910b17750a7d09aaec92c2513b415"><code>e297a42</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3295">#3295</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.248.0...v0.249.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.248.0&new-version=0.249.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 11:56:32 +00:00
dependabot[bot] 38787ba9aa chore: bump github.com/brianvoe/gofakeit/v7 from 7.5.1 to 7.6.0 (#19819)
Bumps
[github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit)
from 7.5.1 to 7.6.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/2122822d4d9aeab87b73b6eb01d4e0ade92372ae"><code>2122822</code></a>
datetime - added time and time range</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/f98f33cefbed28045ab9752c6a96effc11809de0"><code>f98f33c</code></a>
category - change time to datetime</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/7e975bcbce25b0d1b5a62543fba823d8e68ae91e"><code>7e975bc</code></a>
misc - len and nil check cleanup</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/73dfff01158d417a79e94419af885e349aa629f6"><code>73dfff0</code></a>
datetime - file rename</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/3ee1f294eb627dda54a30824049de484034331a7"><code>3ee1f29</code></a>
string - fix randomstring lookup output</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/fdde0cc092b9a004ba08beb763f0c541d7a71c85"><code>fdde0cc</code></a>
payment - cvv alias/keyword fix</li>
<li>See full diff in <a
href="https://github.com/brianvoe/gofakeit/compare/v7.5.1...v7.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/brianvoe/gofakeit/v7&package-manager=go_modules&previous-version=7.5.1&new-version=7.6.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 11:56:05 +00:00
dependabot[bot] 36f2d10bdc chore: bump github.com/coder/terraform-provider-coder/v2 from 2.10.0 to 2.11.0 (#19817)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.10.0 to 2.11.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coder/terraform-provider-coder/releases">github.com/coder/terraform-provider-coder/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.0</h2>
<h2>What's Changed</h2>
<ul>
<li>ci: fix go version to that defined in go.mod by <a
href="https://github.com/johnstcn"><code>@​johnstcn</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/438">coder/terraform-provider-coder#438</a></li>
<li>build(deps): Bump actions/setup-go from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/437">coder/terraform-provider-coder#437</a></li>
<li>build(deps): Bump golang.org/x/mod from 0.27.0 to 0.28.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/440">coder/terraform-provider-coder#440</a></li>
<li>feat: add tooltip field to workspace app by <a
href="https://github.com/rafrdz"><code>@​rafrdz</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/435">coder/terraform-provider-coder#435</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/rafrdz"><code>@​rafrdz</code></a> made
their first contribution in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/435">coder/terraform-provider-coder#435</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.10.1...v2.11.0">https://github.com/coder/terraform-provider-coder/compare/v2.10.1...v2.11.0</a></p>
<h2>v2.10.1</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: add Premium license warning for external_agent resource by <a
href="https://github.com/blink-so"><code>@​blink-so</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/434">coder/terraform-provider-coder#434</a></li>
</ul>
<p>This patch release adds a warning to the external_agent resource
documentation to inform users that external agents require a Premium
Coder license.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.10.0...v2.10.1">https://github.com/coder/terraform-provider-coder/compare/v2.10.0...v2.10.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/bb2167ecc44506469c77380367ad1c3bc08f475e"><code>bb2167e</code></a>
feat: add tooltip field to workspace app (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/435">#435</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/c8bc37a5caa446d80c8d3ea966a702d90771d71e"><code>c8bc37a</code></a>
build(deps): Bump golang.org/x/mod from 0.27.0 to 0.28.0 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/440">#440</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/e26aeb89f14bf748ddc5cc78620c63521a8d14ef"><code>e26aeb8</code></a>
build(deps): Bump actions/setup-go from 5 to 6 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/437">#437</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/ac2b839013500e4b3329a8bb8eab0413a182c3d5"><code>ac2b839</code></a>
ci: fix go version to that defined in go.mod (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/438">#438</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/8c9d011c4c695401b0f6e7edccb3d1bc66859d38"><code>8c9d011</code></a>
docs: add Premium license warning for external_agent resource (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/434">#434</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/42c19bc17d1298e7749fd9a429eb5ed013f53bf3"><code>42c19bc</code></a>
build(deps): Bump golang.org/x/mod from 0.25.0 to 0.27.0 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/425">#425</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/06cddcefa93d4644a79136c3ad2d1065d55a0850"><code>06cddce</code></a>
build(deps): Bump github.com/stretchr/testify from 1.10.0 to 1.11.0 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/429">#429</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/b358b645ad48f3a2f51f93ed9aad3e660942caa8"><code>b358b64</code></a>
build(deps): Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/426">#426</a>)</li>
<li>See full diff in <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.10.0...v2.11.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coder/terraform-provider-coder/v2&package-manager=go_modules&previous-version=2.10.0&new-version=2.11.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 11:54:58 +00:00
Kacper Sawicki 7c8f8f449b feat(site): display warning messages when wildcard is not configured (#19660)
Closes https://github.com/coder/coder/issues/19606

This PR adds warnings to alert uses when workspace applications with
subdomain access won't work due to missing wildcard access url
configuration.

### Workspace Page warning

This warning is shown when wildcard hostname is not configured and agent
has subdomain applications.

User:
<img width="1230" height="488" alt="image"
src="https://github.com/user-attachments/assets/66ead7b1-690c-4195-a560-2c5e9ecdf521"
/>

Administrator:

<img width="1231" height="492" alt="image"
src="https://github.com/user-attachments/assets/96f7d6fc-a993-4bbb-bd97-80a750caf3fa"
/>


### Template Editor Warning:

This warning is shown in the output panel (after the user clicks build)
when wildcard hostname is not configured and template contains coder_app
resource and subdomain is set to true.

<img width="1446" height="186" alt="image"
src="https://github.com/user-attachments/assets/ba8e0c8e-1b7f-4722-8cee-24be21b8fc69"
/>
2025-09-15 10:26:48 +02:00
Thomas Kosiewski d238480c7a fix: trim whitespace from API tokens (#19814) 2025-09-15 10:02:10 +02:00
Ethan 6a9b896f5b fix!: use client ip when creating connection logs for workspace proxied app accesses (#19788)
Breaking API Change: 
> The presence of the `ip` field on `codersdk.ConnectionLog` cannot be
guaranteed, and so the field has been made optional. It may be omitted
on API responses.

When running a scaletest, I noticed logs of the form:
```
2025-09-12 06:34:10.924 [erro]  coderd.workspaceapps: upsert connection log failed  trace=0xa17580  span=0xa17620  workspace_id=81b937d7-5777-4df5-b5cb-80241f30326f  agent_id=78b2ff6d-b4a6-4a4e-88a7-283e05455a88  app_id=00000000-0000-0000-0000-000000000000  user_id=00000000-0000-0000-0000-000000000000  user_agent=""  app_slug_or_port=terminal  status_code=404  request_id=67f03cf8-9523-444a-97bc-90de080a54c8 ...
    error= 1 error occurred:
           	* pq: null value in column "ip" of relation "connection_logs" violates not-null constraint
```

to ensure logs are never omitted from the connection log due to a
missing IP again (i.e. I'm not sure if we can always rely on a valid,
parseable, IP from `(http.Request).RemoteAddr`), I've removed the `NOT
NULL` constraint on `ip` on `connection_logs`, and made `ip` on the API
response optional.


The specific cause for these null IPs was the
`/workspaceproxies/me/issue-signed-app-token [post]` endpoint
constructing it's own `http.Request` without a `RemoteAddr` set, and
then passing that to the token issuer.

To solve this, we'll have workspace proxies send the real IP of the
client when calling `/workspaceproxies/me/issue-signed-app-token [post]`
via the header `Coder-Workspace-Proxy-Real-IP`.
2025-09-15 12:30:17 +10:00
Thomas Kosiewski 088d14933c feat: ensure OAuth2 refresh tokens outlive access tokens (#19769) 2025-09-13 08:57:26 +02:00
Asher be7aa58075 feat: add coder_workspace_ls MCP tool (#19652) 2025-09-12 15:57:15 -08:00
Asher 30330abaea feat: add coder_workspace_edit_file MCP tool (#19629) 2025-09-12 15:36:14 -08:00
david-fraley 1e2b66fb20 docs: update Get Started Page to Include Tasks (#19752) 2025-09-12 22:22:28 +00:00
Kacper Sawicki f9f0ebb472 feat(docs): add wildcard access url documentation page (#19713)
Closes #19607 

This pull request adds a new guide about wildcard access URLs.

---------

Co-authored-by: Dean Sheather <dean@deansheather.com>
Co-authored-by: Atif Ali <atif@coder.com>
Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-09-12 13:34:38 -05:00
Brett Kolodny 854f3c0187 feat: add workspaces/acl [delete] endpoint (#19772)
Closes
[coder/internal#971](https://github.com/coder/internal/issues/971)
2025-09-12 12:21:01 -04:00
ケイラ 8e79dbb16f fix: prevent unruly stacking contexts from breaking scrolling (#19785) 2025-09-12 10:11:39 -06:00
Michael Suchacz 336e62bc37 fix: deflake BackedWriter tests (#19802) 2025-09-12 14:00:08 +00:00
Asher 6d39077087 chore: log error when checking if codersdk.Err (#19784) 2025-09-11 13:17:09 -08:00
Brett Kolodny 8d5c566a98 feat: add sharing remove command to the CLI (#19767)
Closes
[coder/internal#861](https://github.com/coder/internal/issues/861)
2025-09-11 16:22:25 -04:00
Asher d5a02d570f feat: add coder_workspace_write_file MCP tool (#19591) 2025-09-11 12:17:15 -08:00
Susana Ferreira eec6c8c120 feat: support custom notifications (#19751)
## Description

Adds support for sending an ad‑hoc custom notification to the
authenticated user via API and CLI. This is useful for surfacing the
result of scripts or long‑running tasks. Notifications are delivered
through the configured method and the dashboard Inbox, respecting
existing preferences and delivery settings.

## Changes

* New notification template: “Custom Notification” with a label for a
custom title and a custom message.
* New API endpoint: `POST /api/v2/notifications/custom` to send a custom
notification to the requesting user.
* New API endpoint: `GET /notifications/templates/custom` to get custom
notification template.
* New CLI subcommand: `coder notifications custom <title> <message>` to
send a custom notification to the requesting user.
* Documentation updates: Add a “Custom notifications” section under
Administration > Monitoring > Notifications, including instructions on
sending custom notifications and examples of when to use them.

Closes: https://github.com/coder/coder/issues/19611
2025-09-11 15:08:57 +02:00
Michael Suchacz 4c98decfb7 chore: add backed reader, writer and pipe implementation (#19147)
Relates to: https://github.com/coder/coder/issues/18101

This PR introduces a new `backedpipe` package that provides reliable
bidirectional byte streams over unreliable network connections. The
implementation includes:

- `BackedPipe`: Orchestrates a reader and writer to provide transparent
reconnection and data replay
- `BackedReader`: Handles reading with automatic reconnection, blocking
reads when disconnected
- `BackedWriter`: Maintains a ring buffer of recent writes for replay
during reconnection
- `RingBuffer`: Efficient circular buffer implementation for storing
data

The package enables resilient connections by tracking sequence numbers
and replaying missed data after reconnection. It handles connection
failures gracefully, automatically reconnecting and resuming data
transfer from the appropriate point.
2025-09-11 14:05:14 +02:00
Rafael Rodriguez e53bc247e9 feat: add tooltip field to workspace app that renders as markdown (#19651)
In this pull request we're adding an optional `tooltip` field. The
`tooltip` field is a string field (with markdown support) that will be
used to display tooltips on hover over app buttons in a workspace
dashboard.

Tooltip screenshot

<img width="816" height="275" alt="Screenshot 2025-08-29 at 4 11 56 PM"
src="https://github.com/user-attachments/assets/52c736a1-f632-465b-89a0-35ca99bd367b"
/>

Tooltip video


https://github.com/user-attachments/assets/21806337-accc-4acf-b8c6-450c031d98f1

Issue: https://github.com/coder/coder/issues/18431
Related provider PR:
https://github.com/coder/terraform-provider-coder/pull/435

### Changes

- Added migration to add `tooltip` column to `workspace_apps` table
- Updated queries to get/set the new `tooltip` column
- Updated frontend to render tooltip as markdown (primary tool tip takes
precedence over template tooltip)

### Testing

- Added storybook test for `Applink` markdown rendering
2025-09-10 11:01:54 -05:00
Danielle Maywood 4cd0ada0bb chore(coderd/database): add tasks data model (#19749)
Part of https://github.com/coder/internal/issues/948

Adds the initial part of the tasks data model as per the RFC.
2025-09-10 10:01:50 +01:00
Asher 4bf63b4068 feat: add coder_workspace_read_file MCP tool (#19562)
Follows similarly to the bash tool (and some code to connect to an agent
was extracted from it).

There are two main parts: a new agent endpoint, and then a new MCP tool
that consumes that endpoint.
2025-09-09 15:12:24 -08:00
david-fraley f402ec99eb docs: fix typo in Coder Desktop Guide (#19742)
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.

Fix a quick typo that was introduced in
https://github.com/coder/coder/commit/8f72538ab7cbcdf23680f4916121ceca0f325e97

---------

Co-authored-by: Prebuilds Owner <prebuilds@system>
Co-authored-by: Atif Ali <atif@coder.com>
Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
2025-09-09 15:05:09 +00:00
Kacper Sawicki 3074547322 perf(enterprise): remove expensive GetWorkspaces query from entitlements (#19747)
Closes: https://github.com/coder/internal/issues/964

This PR addresses the significant database load issue where the
`GetWorkspaces` query was causing performance problems in the license
entitlements code.
2025-09-09 15:46:11 +02:00
Steven Masley d527f91f47 chore: update rego policy to respect user and organisation scopes (#19741)
Prior to this change, user and org scopes were always rejected
2025-09-09 05:50:08 -05:00
Danielle Maywood f3b152bb06 feat(coderd): allow specifying a name for a task (#19745)
Relates to https://github.com/coder/internal/issues/955

Add the ability to the tasks endpoint to give a task a custom name.
2025-09-09 11:08:28 +01:00
Kacper Sawicki b4e4173347 test: improve workspace build job completion logging (#19740)
Closes https://github.com/coder/internal/issues/935

This PR enhances the AwaitWorkspaceBuildJobCompleted func in coderdtest
pkg to provide better visibility into test failures and debugging
information.
2025-09-09 08:38:32 +02:00
Rafael Rodriguez 1677a30a1d fix: add support for spaces in search & enable searching by display name in templates (#19552)
## Summary

In this pull request we're updating search to support queries with
spaces in addition to the `field:value` pattern that is currently
supported.

Additionally templates search now defaults to `display_name` (since
`display_name` is optional the search will fallback to `name`) when
searching without the `field:value` pattern

Closes: https://github.com/coder/coder/issues/14384

### Downsides with searching on `name` and `display_name`

Because the `name` field cannot include spaces, we end up in a situation
where including a space in the query will result in no results since the
query searches on both `name` AND `display_name`. In the following
example, we can see the results of searching by both `name` and
`display_name` on these templates:

| Name | Display Name |
| ------ | ------------- |
| docker | Docker Template |
| faketemplate | A Fake Template |
| azure | Fake Azure Template |
| anotherfake | Another Fake Template |
| azurefake | Another Fake Fake Azure Template |



https://github.com/user-attachments/assets/b0e0793e-e77d-46bc-9a42-d7cf4f8bd910

### Proposal: Search on `display_name` by default and allow for `name`
using the `field:value` pattern

If we remove `name` from the default template search, we're now able to
search with spaces on template `display_names`. Since `display_names`
are what users see in the templates list they might expect the search to
work this way.

Below is an example of `name` being removed from the default template
search.


https://github.com/user-attachments/assets/9aba5911-4960-4384-befb-08ea1acaa3ab

With this approach users would still be able to search on template names
by specifying `exact_name:foo`.

### Testing

Added additional test cases to ensure spaces were handled as expected in
combination with `field:value` patterns.
2025-09-08 17:13:27 -05:00
Andrew Aquino ff18499cb0 refactor: replace Popover with Tooltip in HelpTooltip (#19635)
for #19397 

Currently there are 24 files that import bindings from the deprecated
`Popover` component. One of those is `HelpTooltip`, which is
instantiated in 24 other files. After this PR, the remaining files that
import the deprecated `Popover` should be able to be migrated in just
1-2 more PRs. 🤞🏽

I opted for `Tooltip` as a replacement because it's triggered on hover,
unlike our new `Popover` which is triggered on click.
2025-09-08 10:59:09 -07:00
blink-so[bot] d7d69d1ce9 fix: add xmlns attribute to amazon-q.svg for proper rendering (#19738)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
2025-09-08 21:01:10 +05:00
Kacper Sawicki 776231d025 fix(coderd): add blocking GetProvisionerJobByIDWithLock for workspace build cancellation (#19737)
Closes https://github.com/coder/internal/issues/885

Adds a new database method GetProvisionerJobByIDWithLock that uses FOR
UPDATE without SKIP LOCKED to fix workspace build cancellation returning
500 errors when jobs are locked.
2025-09-08 15:40:14 +02:00
Brett Kolodny 065c7c3d5d feat: add sharing show command to the CLI (#19707)
Closes https://github.com/coder/internal/issues/860
2025-09-08 09:30:08 -04:00
Danielle Maywood 9f66395931 chore(cli): reduce clutter from exp tasks list command (#19727)
Fixes https://github.com/coder/coder/issues/19623

- Stop showing the long ID of each task by default.
- Add new `--quiet` flag to only show IDs.
2025-09-08 13:23:18 +01:00
Thomas Kosiewski 2701d5588e fix: support path parameters in OAuth2 metadata endpoints (#19729)
Update OAuth2 metadata endpoint routes to support path suffixes

This PR updates the OAuth2 metadata endpoint routes to include a wildcard character (*) at the end of the paths. This change allows the endpoints to match requests with path suffixes, making our OAuth2 discovery implementation more flexible and compliant with the relevant RFCs.

The updated routes are:
- `/.well-known/oauth-authorization-server*` for RFC 8414 discovery
- `/.well-known/oauth-protected-resource*` for RFC 9728 discovery
2025-09-08 14:21:57 +02:00
dependabot[bot] 6e33c38777 chore: bump github.com/gohugoio/hugo from 0.148.1 to 0.149.1 (#19734)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.148.1 to 0.149.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.149.1</h2>
<p>The main motivation behind this release is the <a
href="https://groups.google.com/g/golang-announce/c/PtW9VW21NPs/m/DJhMQ-m5AQAJ">Go
1.25.1</a> upgrade, which comes with a <a
href="https://redirect.github.com/golang/go/issues/75054">security
fix</a>. Hugo does not use the feature in question, but we understand
that many Hugo users like to have a clean security report.</p>
<h2>Note</h2>
<p>Note that CSS minification now targets CSS3, removing certain
optimizations that were specific to CSS2.</p>
<h2>What's Changed</h2>
<ul>
<li>Remove noindex meta tag from alias.html 25c0f2408 <a
href="https://github.com/lzap"><code>@​lzap</code></a></li>
<li>Fix nilpointer on ToC heading 4f2d2b2cc <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/11843">#11843</a></li>
<li>tpl/collections: Require collections.D args to be ints b8eb45c9d <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13952">#13952</a></li>
<li>Upgrade to Go 1.25.1 1d90afff1 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13960">#13960</a></li>
<li>Fix config env handling for some slice options e751afa9b <a
href="https://github.com/PikachuTW"><code>@​PikachuTW</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13950">#13950</a></li>
<li>minifiers: Update deprecation handling a09b8a60e <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/11893">#11893</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13947">#13947</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13948">#13948</a></li>
</ul>
<h2>v0.149.0</h2>
<blockquote>
<p>[!NOTE]<br />
If running on Netlify, make sure you have configured your build with
their latest build image, see <a
href="https://redirect.github.com/gohugoio/hugo/issues/13942#issuecomment-3228959652">this
issue</a>.</p>
</blockquote>
<p>Hugo <code>v0.149.0</code> comes with bug fixes and a set of new
features/improvements, notably:</p>
<ul>
<li>We now build with the recently released <a
href="https://tip.golang.org/doc/go1.25">Go 1.25</a></li>
<li>A new <a
href="https://gohugo.io/functions/collections/d/">collections.D</a>
template function that generates random sequences of integers using J.
S. Vitter’s Method D, by some called <a
href="https://getkerf.wordpress.com/2016/03/30/the-best-algorithm-no-one-knows-about/">The
Best Algorithm No One Knows About</a>.</li>
<li>Two new <a
href="https://gohugo.io/configuration/permalinks/#tokens">permalinks
tokens</a>, <code>:sectionslug</code> and <code>:sectionslugs</code>,
especially useful in multilingual Hugo projects.</li>
<li>A new <code>--omitClassComments</code> flag on <code>hugo gen
chromastyles</code></li>
<li>Several improvements to how ToC from Markdown gets rendered, see <a
href="https://redirect.github.com/gohugoio/hugo/issues/13401">#13401</a>
and <a
href="https://redirect.github.com/gohugoio/hugo/issues/12605">#12605</a>.</li>
<li>A new <code>format</code> option in <a
href="https://gohugo.io/functions/transform/unmarshal/">transform.Unmarshal</a></li>
</ul>
<h2>Note</h2>
<ul>
<li>Remove test with deprecated path usage 80e973ea5 <a
href="https://github.com/bep"><code>@​bep</code></a></li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>create: Fix new content command with future dates bb4e66cd7 <a
href="https://github.com/justuswilhelm"><code>@​justuswilhelm</code></a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/12599">#12599</a></li>
<li>Fix server rebuild when adding a new leaf bundle with resources in
one go 13b43e611 <a href="https://github.com/bep"><code>@​bep</code></a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13925">#13925</a></li>
<li>Fix rebuild when deleting a content adapter file 87e100e61 <a
href="https://github.com/bep"><code>@​bep</code></a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>tpl/collections: Add an integration test for collections.D 84b512391
<a href="https://github.com/bep"><code>@​bep</code></a></li>
<li>tpl/collections: Add collections.D using Vitter's Method D for
sequential random sampling 1ba80874e <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>commands: Deprecate --omitEmpty on chromastyles command 61ec7a20a <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>commands: Add --omitClassComments to the chromastyles command
c289fcaaa <a href="https://github.com/bep"><code>@​bep</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/57a784e027a264790ddf36c89b62200525a4561b"><code>57a784e</code></a>
releaser: Bump versions for release of 0.149.1</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/25c0f2408ae777b64f373c1ca30b11c81e499900"><code>25c0f24</code></a>
Remove noindex meta tag from alias.html</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/4f2d2b2cc48d23bef9cc19e8c88a454560b2306a"><code>4f2d2b2</code></a>
Fix nilpointer on ToC heading</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/b8eb45c9dfe6572b80adcdb7bd0dcf55786dcf3d"><code>b8eb45c</code></a>
tpl/collections: Require collections.D args to be ints</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/1d90afff1be34c3cbdd7d9da41635a3f054af982"><code>1d90aff</code></a>
Upgrade to Go 1.25.1</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/e751afa9bd1207a9428cc8e3580f20d5af70b68b"><code>e751afa</code></a>
Fix config env handling for some slice options</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/a09b8a60eb9b9767b3987e9fba895bfe4ad7db58"><code>a09b8a6</code></a>
minifiers: Update deprecation handling</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/0071b47b8be7fed03786182f797ca1cef5185f54"><code>0071b47</code></a>
Update README.md</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/70d62993eef4124873d339ded8fe612cc69f0238"><code>70d6299</code></a>
releaser: Prepare repository for 0.150.0-DEV</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/66240338f1b908ca3b163384c8229943e74eb290"><code>6624033</code></a>
releaser: Bump versions for release of 0.149.0</li>
<li>Additional commits viewable in <a
href="https://github.com/gohugoio/hugo/compare/v0.148.1...v0.149.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.148.1&new-version=0.149.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 12:05:29 +00:00
Marcin Tojek 5c1a708c73 feat: add default workspace name to Template Embed form (#19688)
Fixes: https://github.com/coder/coder/issues/15798
2025-09-08 13:58:24 +02:00
dependabot[bot] 0b460b8d95 ci: bump the github-actions group across 1 directory with 16 updates (#19736)
Bumps the github-actions group with 16 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.3.0` |
`5.0.0` |
| [crate-ci/typos](https://github.com/crate-ci/typos) | `1.35.3` |
`1.36.2` |
| [azure/setup-helm](https://github.com/azure/setup-helm) | `4.3.0` |
`4.3.1` |
| [chromaui/action](https://github.com/chromaui/action) | `13.1.3` |
`13.1.4` |
| [actions/setup-java](https://github.com/actions/setup-java) | `4.7.1`
| `5.0.0` |
|
[google-github-actions/auth](https://github.com/google-github-actions/auth)
| `2.1.12` | `3.0.0` |
|
[google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud)
| `2.2.0` | `3.0.1` |
| [actions/attest](https://github.com/actions/attest) | `2.4.0` |
`3.0.0` |
|
[google-github-actions/get-gke-credentials](https://github.com/google-github-actions/get-gke-credentials)
| `2.3.4` | `3.0.0` |
| [actions/github-script](https://github.com/actions/github-script) |
`7.0.1` | `8.0.0` |
| [depot/build-push-action](https://github.com/depot/build-push-action)
| `1.15.0` | `1.16.2` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `f963b3f3562b00b6d2dd25efc390eb04e51ef6c6` |
`8c14441336bb3d84fd6b7fa83b6d7201c740baf5` |
|
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
| `32` | `33` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.29.8` | `3.30.1` |
|
[aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action)
| `0.32.0` | `0.33.1` |
| [actions/stale](https://github.com/actions/stale) | `9.1.0` | `10.0.0`
|


Updates `actions/checkout` from 4.3.0 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
<li>Prepare v5.0.0 release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p><strong>v2.327.1</strong><br />
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be
<code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<h2>v4.1.4</h2>
<ul>
<li>Disable <code>extensions.worktreeConfig</code> when disabling
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li>
<li>Add dependabot config by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li>
<li>Bump the minor-actions-dependencies group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li>
<li>Bump word-wrap from 1.2.3 to 1.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li>
</ul>
<h2>v4.1.3</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8"><code>08c6903</code></a>
Prepare v5.0.0 release (<a
href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/9f265659d3bb64ab1440b03b12f4d47a24320917"><code>9f26565</code></a>
Update actions checkout to use node 24 (<a
href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/08eba0b27e820071cde6df949e0beb9ba4906955...08c6903cd8c0fde910a37f88322edcfb5dd907a8">compare
view</a></li>
</ul>
</details>
<br />

Updates `crate-ci/typos` from 1.35.3 to 1.36.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.36.2</h2>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>v1.36.1</h2>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>v1.36.0</h2>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1345">August
2025</a> changes</li>
</ul>
<h2>v1.35.8</h2>
<h2>[1.35.8] - 2025-09-02</h2>
<h2>v1.35.7</h2>
<h2>[1.35.7] - 2025-08-29</h2>
<h3>Documentation</h3>
<ul>
<li>Expand PyPI metadata</li>
</ul>
<h2>v1.35.6</h2>
<h2>[1.35.6] - 2025-08-28</h2>
<h3>Fixes</h3>
<ul>
<li>Track <code>go.mod</code> as a golang file (regression from
1.13.21)</li>
</ul>
<h2>v1.35.5</h2>
<h2>[1.35.5] - 2025-08-18</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>accidently</code></li>
<li>Fix typo in correction to <code>dynamincally</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>messager</code></li>
<li>Fix typo in correction to <code>preferables</code></li>
<li>Fix typo in correction to <code>producibles</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.36.2] - 2025-09-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix regression from 1.36.1 when rendering an error for a line with
invalid UTF-8</li>
</ul>
<h2>[1.36.1] - 2025-09-03</h2>
<h3>Fixes</h3>
<ul>
<li>Replaced the error rendering for various quality of life
improvements</li>
</ul>
<h2>[1.36.0] - 2025-09-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1345">August
2025</a> changes</li>
</ul>
<h2>[1.35.8] - 2025-09-02</h2>
<h2>[1.35.7] - 2025-08-29</h2>
<h3>Documentation</h3>
<ul>
<li>Expand PyPI metadata</li>
</ul>
<h2>[1.35.6] - 2025-08-28</h2>
<h3>Fixes</h3>
<ul>
<li>Track <code>go.mod</code> as a golang file (regression from
1.13.21)</li>
</ul>
<h2>[1.35.5] - 2025-08-18</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>accidently</code></li>
<li>Fix typo in correction to <code>dynamincally</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>interruptability</code></li>
<li>Fix typo in correction to <code>messager</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/85f62a8a84f939ae994ab3763f01a0296d61a7ee"><code>85f62a8</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/6f26306a9140281f8f46294118abc2b5cf88a04d"><code>6f26306</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/6bd8b39b57af405b681ed2d7d563f5cdf788388f"><code>6bd8b39</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1374">#1374</a>
from epage/invalid</li>
<li><a
href="https://github.com/crate-ci/typos/commit/f5e19d303814c9192cf68dba44e25b470ef29461"><code>f5e19d3</code></a>
fix(cli): Don't panic with invalid utf-8</li>
<li><a
href="https://github.com/crate-ci/typos/commit/5062775d92cab861376d135b425089eba7bb719d"><code>5062775</code></a>
test(cli): Generalize utf16 tests</li>
<li><a
href="https://github.com/crate-ci/typos/commit/b6297a6a5072df106aa9d94197f5d0533a9730bc"><code>b6297a6</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/e6d718928a2978481771e814abdc731cb904c980"><code>e6d7189</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/1bf1ed2584d38a3d8f47e0715013e092bdda3cec"><code>1bf1ed2</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1372">#1372</a>
from epage/render</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9e79b8d2c636476c043d040ddaa0413ad065f28b"><code>9e79b8d</code></a>
refactor(cli): Give control over the whole group</li>
<li><a
href="https://github.com/crate-ci/typos/commit/a5fa6034532da62881f747a74e2bbc1f58886265"><code>a5fa603</code></a>
refactor(cli): Extract snippet creation</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/52bd719c2c91f9d676e2aa359fc8e0db8925e6d8...85f62a8a84f939ae994ab3763f01a0296d61a7ee">compare
view</a></li>
</ul>
</details>
<br />

Updates `azure/setup-helm` from 4.3.0 to 4.3.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/azure/setup-helm/releases">azure/setup-helm's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.1</h2>
<h3>Changed</h3>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/167">#167</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/167">Pinning
Action Dependencies for Security and Reliability</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/181">#181</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/181">Fix
types, and update node version.</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/191">#191</a>
<a
href="https://redirect.github.com/Azure/setup-helm/pull/191">chore(tests):
Mock arch to make tests pass on arm host</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/192">#192</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/192">chore:
remove unnecessary prebuild script</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/203">#203</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/203">Update
helm version retrieval to use JSON output for latest version</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/207">#207</a>
<a
href="https://redirect.github.com/Azure/setup-helm/pull/207">ci(workflows):
update helm version to v3.18.4 and add matrix for tests</a></li>
</ul>
<h3>Added</h3>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/197">#197</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/197">Add
pre-commit hook</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Azure/setup-helm/blob/main/CHANGELOG.md">azure/setup-helm's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<h2>[4.3.1] - 2025-08-12</h2>
<h3>Changed</h3>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/167">#167</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/167">Pinning
Action Dependencies for Security and Reliability</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/181">#181</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/181">Fix
types, and update node version.</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/191">#191</a>
<a
href="https://redirect.github.com/Azure/setup-helm/pull/191">chore(tests):
Mock arch to make tests pass on arm host</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/192">#192</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/192">chore:
remove unnecessary prebuild script</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/203">#203</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/203">Update
helm version retrieval to use JSON output for latest version</a></li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/207">#207</a>
<a
href="https://redirect.github.com/Azure/setup-helm/pull/207">ci(workflows):
update helm version to v3.18.4 and add matrix for tests</a></li>
</ul>
<h3>Added</h3>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/197">#197</a>
<a href="https://redirect.github.com/Azure/setup-helm/pull/197">Add
pre-commit hook</a></li>
</ul>
<h2>[4.3.0] - 2025-02-15</h2>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/152">#152</a>
feat: log when restoring from cache</li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/157">#157</a>
Dependencies Update</li>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/137">#137</a>
Add dependabot</li>
</ul>
<h2>[4.2.0] - 2024-04-15</h2>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/124">#124</a>
Fix OS detection and download OS-native archive extension</li>
</ul>
<h2>[4.1.0] - 2024-03-01</h2>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/130">#130</a>
switches to use Helm published file to read latest version instead of
using GitHub releases</li>
</ul>
<h2>[4.0.0] - 2024-02-12</h2>
<ul>
<li><a
href="https://redirect.github.com/azure/setup-helm/issues/121">#121</a>
update to node20 as node16 is deprecated</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Azure/setup-helm/commit/1a275c3b69536ee54be43f2070a358922e12c8d4"><code>1a275c3</code></a>
build</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/9e7f762d6f65c7a11db6cd4eadcf3c602b273f47"><code>9e7f762</code></a>
chore(release): v4.3.1 (<a
href="https://redirect.github.com/azure/setup-helm/issues/208">#208</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/c096176d63fc5e293d360dd405e4b9ab2ddadccd"><code>c096176</code></a>
Bump <code>@​types/node</code> from 24.1.0 to 24.2.1 in the actions
group (<a
href="https://redirect.github.com/azure/setup-helm/issues/206">#206</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/5e7287287e0a62377e90be8d80c4e9520ad5676b"><code>5e72872</code></a>
ci(workflows): update helm version to v3.18.4 and add matrix for tests
(<a
href="https://redirect.github.com/azure/setup-helm/issues/207">#207</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/fb8fa4070642059a5ed2b5d02e2992422ebb5f09"><code>fb8fa40</code></a>
Update default helm version to 3.18.3 (<a
href="https://redirect.github.com/azure/setup-helm/issues/194">#194</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/0d097290a8b8242b9d9c3aae2628122e860fea32"><code>0d09729</code></a>
chore: remove unnecessary prebuild script (<a
href="https://redirect.github.com/azure/setup-helm/issues/192">#192</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/32bc12022d790ee9f7033b2b57cd5c7c309e5333"><code>32bc120</code></a>
chore(tests): Mock arch to make tests pass on arm host (<a
href="https://redirect.github.com/azure/setup-helm/issues/191">#191</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/51463d68e891cc6fcd306c1f61fce342582ac53b"><code>51463d6</code></a>
Bump the actions group with 2 updates (<a
href="https://redirect.github.com/azure/setup-helm/issues/205">#205</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/aff10941b250308c1eea3c6dd4a2e8602246ba0f"><code>aff1094</code></a>
Bump the actions group across 1 directory with 2 updates (<a
href="https://redirect.github.com/azure/setup-helm/issues/204">#204</a>)</li>
<li><a
href="https://github.com/Azure/setup-helm/commit/a10a5247d8e840d5e622e4e00cfc8b6103a9cafa"><code>a10a524</code></a>
Update helm version retrieval to use JSON output for latest version (<a
href="https://redirect.github.com/azure/setup-helm/issues/203">#203</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/azure/setup-helm/compare/b9e51907a09c216f16ebe8536097933489208112...1a275c3b69536ee54be43f2070a358922e12c8d4">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromaui/action` from 13.1.3 to 13.1.4
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/d0795df816d05c4a89c80295303970fddd247cce"><code>d0795df</code></a>
v13.1.4</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/58d9ffb36c90c97a02d061544ecc849cc4a242a9...d0795df816d05c4a89c80295303970fddd247cce">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-java` from 4.7.1 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-java/releases">actions/setup-java's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<h3>Breaking Changes</h3>
<ul>
<li>Upgrade to node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/setup-java/pull/888">actions/setup-java#888</a></li>
</ul>
<p>Make sure your runner is updated to this version or newer to use this
release. v2.327.1 <a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<h3>Dependency Upgrades</h3>
<ul>
<li>Upgrade Publish Immutable Action by <a
href="https://github.com/HarithaVattikuti"><code>@​HarithaVattikuti</code></a>
in <a
href="https://redirect.github.com/actions/setup-java/pull/798">actions/setup-java#798</a></li>
<li>Upgrade eslint-plugin-jest from 27.9.0 to 28.11.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-java/pull/730">actions/setup-java#730</a></li>
<li>Upgrade undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-java/pull/833">actions/setup-java#833</a></li>
<li>Upgrade form-data to bring in fix for critical vulnerability by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-java/pull/887">actions/setup-java#887</a></li>
<li>Upgrade actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/setup-java/pull/896">actions/setup-java#896</a></li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Prevent default installation of JetBrains pre-releases by <a
href="https://github.com/priyagupta108"><code>@​priyagupta108</code></a>
in <a
href="https://redirect.github.com/actions/setup-java/pull/859">actions/setup-java#859</a></li>
<li>Improve Error Handling for Setup-Java Action to Help Debug
Intermittent Failures by <a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a> in
<a
href="https://redirect.github.com/actions/setup-java/pull/848">actions/setup-java#848</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/gowridurgad"><code>@​gowridurgad</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-java/pull/848">actions/setup-java#848</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/setup-java/pull/888">actions/setup-java#888</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-java/compare/v4...v5.0.0">https://github.com/actions/setup-java/compare/v4...v5.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-java/commit/dded0888837ed1f317902acf8a20df0ad188d165"><code>dded088</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/actions/setup-java/issues/896">#896</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/0913e9a06eb8b69c62db76aa61f580c2b3a5b4e0"><code>0913e9a</code></a>
Upgrade to node 24 (<a
href="https://redirect.github.com/actions/setup-java/issues/888">#888</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/e9343db97e09d87a3c50e544105d99fe912c204b"><code>e9343db</code></a>
Bumps form-data (<a
href="https://redirect.github.com/actions/setup-java/issues/887">#887</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/ae2b61dbc685e60e4427b2e8ed4f0135c6ea8597"><code>ae2b61d</code></a>
Bump undici from 5.28.5 to 5.29.0 (<a
href="https://redirect.github.com/actions/setup-java/issues/833">#833</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/c190c18febcf6c040d80b10ea201a05a2c320263"><code>c190c18</code></a>
Bump eslint-plugin-jest from 27.9.0 to 29.0.1 (<a
href="https://redirect.github.com/actions/setup-java/issues/730">#730</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/67aec007b3fcabe15ca665bfccc1e255dd52e30d"><code>67aec00</code></a>
Fix: prevent default installation of JetBrains pre-releases (<a
href="https://redirect.github.com/actions/setup-java/issues/859">#859</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/ebb356cc4e59bcf94f518203228485f5d40e4b58"><code>ebb356c</code></a>
Improve Error Handling for Setup-Java Action to Help Debug Intermittent
Failu...</li>
<li><a
href="https://github.com/actions/setup-java/commit/f4f1212c880fdec8162ea9a6493f4495191887b4"><code>f4f1212</code></a>
Update publish-immutable-actions.yml (<a
href="https://redirect.github.com/actions/setup-java/issues/798">#798</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/setup-java/compare/c5195efecf7bdfc987ee8bae7a71cb8b11521c00...dded0888837ed1f317902acf8a20df0ad188d165">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/auth` from 2.1.12 to 3.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/auth/releases">google-github-actions/auth's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump to Node 24 and remove old parameters by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/508">google-github-actions/auth#508</a></li>
<li>Remove hacky script by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/509">google-github-actions/auth#509</a></li>
<li>Release: v3.0.0 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/510">google-github-actions/auth#510</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2...v3.0.0">https://github.com/google-github-actions/auth/compare/v2...v3.0.0</a></p>
<h2>v2.1.13</h2>
<h2>What's Changed</h2>
<ul>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/506">google-github-actions/auth#506</a></li>
<li>Release: v2.1.13 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/507">google-github-actions/auth#507</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2.1.12...v2.1.13">https://github.com/google-github-actions/auth/compare/v2.1.12...v2.1.13</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/auth/commit/7c6bc770dae815cd3e89ee6cdf493a5fab2cc093"><code>7c6bc77</code></a>
Release: v3.0.0 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/510">#510</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/42e4997ee345eebb9d114030d0f9e9b47829ee80"><code>42e4997</code></a>
Remove hacky script (<a
href="https://redirect.github.com/google-github-actions/auth/issues/509">#509</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/5ea4dc11472eebb0a541812f1063c7d318adf57e"><code>5ea4dc1</code></a>
Bump to Node 24 and remove old parameters (<a
href="https://redirect.github.com/google-github-actions/auth/issues/508">#508</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/c200f3691d83b41bf9bbd8638997a462592937ed"><code>c200f36</code></a>
Release: v2.1.13 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/507">#507</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/3a53be7e7cedfadb446e102fa59e97734b2ad238"><code>3a53be7</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/auth/issues/506">#506</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/auth/compare/b7593ed2efd1c1617e1b0254da33b86225adb2a5...7c6bc770dae815cd3e89ee6cdf493a5fab2cc093">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/setup-gcloud` from 2.2.0 to 3.0.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/setup-gcloud/releases">google-github-actions/setup-gcloud's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Release: v3.0.1 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/729">google-github-actions/setup-gcloud#729</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/setup-gcloud/compare/v3.0.0...v3.0.1">https://github.com/google-github-actions/setup-gcloud/compare/v3.0.0...v3.0.1</a></p>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li><strong>‼️ This release requires Node 24+!</strong></li>
<li><strong>‼️ The <code>skip_tool_cache</code> option has been
removed!</strong> Skipping the tool cache is now the default behavior.
To restore the previous behavior of using the tool cache (which is
unnecessary on GitHub managed runners, but may provide performance
increases on self-hosted runners), set <code>cache: true</code>.</li>
</ul>
<hr />
<ul>
<li>Bump to node24 by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/723">google-github-actions/setup-gcloud#723</a></li>
<li>Do not use the tool-cache by default by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/724">google-github-actions/setup-gcloud#724</a></li>
<li>Update to use v3 references by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/725">google-github-actions/setup-gcloud#725</a></li>
<li>Release: v3.0.0 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/726">google-github-actions/setup-gcloud#726</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/setup-gcloud/compare/v2.2.1...v3.0.0">https://github.com/google-github-actions/setup-gcloud/compare/v2.2.1...v3.0.0</a></p>
<h2>v3</h2>
<p>Floating v3 tag</p>
<h2>v2.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/720">google-github-actions/setup-gcloud#720</a></li>
<li>Bump to the latest actions-utils to fix the gen-readme bug by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/721">google-github-actions/setup-gcloud#721</a></li>
<li>Release: v2.2.1 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/722">google-github-actions/setup-gcloud#722</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/setup-gcloud/compare/v2...v2.2.1">https://github.com/google-github-actions/setup-gcloud/compare/v2...v2.2.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/aa5489c8933f4cc7a4f7d45035b3b1440c9c10db"><code>aa5489c</code></a>
Release: v3.0.1 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/729">#729</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/26f734c2779b00b7dda794207734c511110a4368"><code>26f734c</code></a>
Release: v3.0.0 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/726">#726</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/d26df95ce13fba88a7c3f942b50bab0a6e17dc95"><code>d26df95</code></a>
Update to use v3 references (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/725">#725</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/f7c29183d6310acc4d89a82a2e4a06374e259082"><code>f7c2918</code></a>
Do not use the tool-cache by default (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/724">#724</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/6387e6954450355c9cd00e752f0b5e6a07078e1a"><code>6387e69</code></a>
Bump to node24 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/723">#723</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/e427ad8a34f8676edf47cf7d7925499adf3eb74f"><code>e427ad8</code></a>
Release: v2.2.1 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/722">#722</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/d71efb74bd86be0c5c0035758f8b5b9069ef835f"><code>d71efb7</code></a>
Bump to the latest actions-utils to fix the gen-readme bug (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/721">#721</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/ed8ba68de5f95fc08e400796581a06a4acab88ae"><code>ed8ba68</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/720">#720</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/setup-gcloud/compare/cb1e50a9932213ecece00a606661ae9ca44f3397...aa5489c8933f4cc7a4f7d45035b3b1440c9c10db">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/attest` from 2.4.0 to 3.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/attest/releases">actions/attest's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump form-data from 4.0.0 to 4.0.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/attest/pull/266">actions/attest#266</a></li>
<li>Bump <code>@​sigstore/oci</code> from 0.5.0 to 0.6.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/attest/pull/271">actions/attest#271</a></li>
<li>Upgrade to Node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> / <a
href="https://github.com/bdehamer"><code>@​bdehamer</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/276">actions/attest#276</a></li>
<li>Improved checksum parsing by <a
href="https://github.com/bdehamer"><code>@​bdehamer</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/280">actions/attest#280</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p>v2.327.1
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/attest/compare/v2.4.0...v3.0.0">https://github.com/actions/attest/compare/v2.4.0...v3.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/attest/commit/daf44fb950173508f38bd2406030372c1d1162b1"><code>daf44fb</code></a>
improved checksum parsing (<a
href="https://redirect.github.com/actions/attest/issues/280">#280</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/eda10f897a7c40837fe73266c10a25e1046b87ff"><code>eda10f8</code></a>
Upgrade to Node 24 (<a
href="https://redirect.github.com/actions/attest/issues/276">#276</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/1e2321d2815b6c07c5479f3309d67a7698b091a1"><code>1e2321d</code></a>
remove super-linter (<a
href="https://redirect.github.com/actions/attest/issues/283">#283</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/aecfe99586992ebf9c025e2fb6ebb78f4f445055"><code>aecfe99</code></a>
Bump the npm-development group across 1 directory with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/282">#282</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/03f25d860248eee1946e81e6ad8d2420e4de03f3"><code>03f25d8</code></a>
Bump the npm-development group with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/273">#273</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/0fca5a6fa3c943b77f214acb62a366c247a8469e"><code>0fca5a6</code></a>
use absolute path in linter config (<a
href="https://redirect.github.com/actions/attest/issues/275">#275</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/238c03f77f9c851e5129d01004ff41fa0c755c35"><code>238c03f</code></a>
Bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/actions/attest/issues/272">#272</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/9c3e2717a6a9e8eafa4f389f0874b682bcb6f052"><code>9c3e271</code></a>
Bump <code>@​sigstore/oci</code> from 0.5.0 to 0.6.0 (<a
href="https://redirect.github.com/actions/attest/issues/271">#271</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/b40d9fa17a9e7bc51fb727ac9b6dae3ea1da6fa3"><code>b40d9fa</code></a>
Bump the npm-development group with 8 updates (<a
href="https://redirect.github.com/actions/attest/issues/270">#270</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/e831e0e28dfaff51bc0c846aef5bb4195609318f"><code>e831e0e</code></a>
Bump form-data from 4.0.0 to 4.0.4 (<a
href="https://redirect.github.com/actions/attest/issues/266">#266</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/attest/compare/ce27ba3b4a9a139d9a20a4a07d69fabb52f1e5bc...daf44fb950173508f38bd2406030372c1d1162b1">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/get-gke-credentials` from 2.3.4 to 3.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/get-gke-credentials/releases">google-github-actions/get-gke-credentials's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump to Node 24 by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/339">google-github-actions/get-gke-credentials#339</a></li>
<li>Release: v3.0.0 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/340">google-github-actions/get-gke-credentials#340</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/v2...v3.0.0">https://github.com/google-github-actions/get-gke-credentials/compare/v2...v3.0.0</a></p>
<h2>v2.3.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/337">google-github-actions/get-gke-credentials#337</a></li>
<li>Release: v2.3.5 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/338">google-github-actions/get-gke-credentials#338</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.4...v2.3.5">https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.4...v2.3.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/3da1e46a907576cefaa90c484278bb5b259dd395"><code>3da1e46</code></a>
Release: v3.0.0 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/340">#340</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/a1565805d2a41ba5f23190da0a27b6c53ae74250"><code>a156580</code></a>
Bump to Node 24 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/339">#339</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/64bc7249bbcf78056bb92f14d3cedc2da193946c"><code>64bc724</code></a>
Release: v2.3.5 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/338">#338</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/9de2e29024e4aeff8cf37aaa326508267ea011fc"><code>9de2e29</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/337">#337</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/8e574c49425fa7efed1e74650a449bfa6a23308a...3da1e46a907576cefaa90c484278bb5b259dd395">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/github-script` from 7.0.1 to 8.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/github-script/releases">actions/github-script's
releases</a>.</em></p>
<blockquote>
<h2>v8.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update Node.js version support to 24.x by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/637">actions/github-script#637</a></li>
<li>README for updating actions/github-script from v7 to v8 by <a
href="https://github.com/sneha-krip"><code>@​sneha-krip</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/653">actions/github-script#653</a></li>
</ul>
<h2>⚠️ Minimum Compatible Runner Version</h2>
<p><strong>v2.327.1</strong><br />
<a
href="https://github.com/actions/runner/releases/tag/v2.327.1">Release
Notes</a></p>
<p>Make sure your runner is updated to this version or newer to use this
release.</p>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/637">actions/github-script#637</a></li>
<li><a
href="https://github.com/sneha-krip"><code>@​sneha-krip</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/653">actions/github-script#653</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/github-script/compare/v7.1.0...v8.0.0">https://github.com/actions/github-script/compare/v7.1.0...v8.0.0</a></p>
<h2>v7.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgrade husky to v9 by <a
href="https://github.com/benelan"><code>@​benelan</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/482">actions/github-script#482</a></li>
<li>Add workflow file for publishing releases to immutable action
package by <a
href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/485">actions/github-script#485</a></li>
<li>Upgrade IA Publish by <a
href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/486">actions/github-script#486</a></li>
<li>Fix workflow status badges by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/497">actions/github-script#497</a></li>
<li>Update usage of <code>actions/upload-artifact</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/512">actions/github-script#512</a></li>
<li>Clear up package name confusion by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/514">actions/github-script#514</a></li>
<li>Update dependencies with <code>npm audit fix</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/515">actions/github-script#515</a></li>
<li>Specify that the used script is JavaScript by <a
href="https://github.com/timotk"><code>@​timotk</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/478">actions/github-script#478</a></li>
<li>chore: Add Dependabot for NPM and Actions by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/472">actions/github-script#472</a></li>
<li>Define <code>permissions</code> in workflows and update actions by
<a href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in
<a
href="https://redirect.github.com/actions/github-script/pull/531">actions/github-script#531</a></li>
<li>chore: Add Dependabot for .github/actions/install-dependencies by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/532">actions/github-script#532</a></li>
<li>chore: Remove .vscode settings by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/533">actions/github-script#533</a></li>
<li>ci: Use github/setup-licensed by <a
href="https://github.com/nschonni"><code>@​nschonni</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/473">actions/github-script#473</a></li>
<li>make octokit instance available as octokit on top of github, to make
it easier to seamlessly copy examples from GitHub rest api or octokit
documentations by <a
href="https://github.com/iamstarkov"><code>@​iamstarkov</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/508">actions/github-script#508</a></li>
<li>Remove <code>octokit</code> README updates for v7 by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/557">actions/github-script#557</a></li>
<li>docs: add &quot;exec&quot; usage examples by <a
href="https://github.com/neilime"><code>@​neilime</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/546">actions/github-script#546</a></li>
<li>Bump ruby/setup-ruby from 1.213.0 to 1.222.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/github-script/pull/563">actions/github-script#563</a></li>
<li>Bump ruby/setup-ruby from 1.222.0 to 1.229.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/github-script/pull/575">actions/github-script#575</a></li>
<li>Clearly document passing inputs to the <code>script</code> by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/603">actions/github-script#603</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/github-script/pull/610">actions/github-script#610</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/benelan"><code>@​benelan</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/482">actions/github-script#482</a></li>
<li><a href="https://github.com/Jcambass"><code>@​Jcambass</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/485">actions/github-script#485</a></li>
<li><a href="https://github.com/timotk"><code>@​timotk</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/478">actions/github-script#478</a></li>
<li><a
href="https://github.com/iamstarkov"><code>@​iamstarkov</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/508">actions/github-script#508</a></li>
<li><a href="https://github.com/neilime"><code>@​neilime</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/546">actions/github-script#546</a></li>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/github-script/pull/610">actions/github-script#610</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/github-script/compare/v7...v7.1.0">https://github.com/actions/github-script/compare/v7...v7.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/github-script/commit/ed597411d8f924073f98dfc5c65a23a2325f34cd"><code>ed59741</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/github-script/issues/653">#653</a>
from actions/sneha-krip/readme-for-v8</li>
<li><a
href="https://github.com/actions/github-script/commit/2dc352e4baefd91bec0d06f6ae2f1045d1687ca3"><code>2dc352e</code></a>
Bold minimum Actions Runner version in README</li>
<li><a
href="https://github.com/actions/github-script/commit/01e118c8d0d22115597e46514b5794e7bc3d56f1"><code>01e118c</code></a>
Update README for Node 24 runtime requirements</li>
<li><a
href="https://github.com/actions/github-script/commit/8b222ac82eda86dcad7795c9d49b839f7bf5b18b"><code>8b222ac</code></a>
Apply suggestion from <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a></li>
<li><a
href="https://github.com/actions/github-script/commit/adc0eeac992408a7b276994ca87edde1c8ce4d25"><code>adc0eea</code></a>
README for updating actions/github-script from v7 to v8</li>
<li><a
href="https://github.com/actions/github-script/commit/20fe497b3fe0c7be8aae5c9df711ac716dc9c425"><code>20fe497</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/github-script/issues/637">#637</a>
from actions/node24</li>
<li><a
href="https://github.com/actions/github-script/commit/e7b7f222b11a03e8b695c4c7afba89a02ea20164"><code>e7b7f22</code></a>
update licenses</li>
<li><a
href="https://github.com/actions/github-script/commit/2c81ba05f308415d095291e6eeffe983d822345b"><code>2c81ba0</code></a>
Update Node.js version support to 24.x</li>
<li><a
href="https://github.com/actions/github-script/commit/f28e40c7f34bde8b3046d885e986cb6290c5673b"><code>f28e40c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/github-script/issues/610">#610</a>
from actions/nebuk89-patch-1</li>
<li><a
href="https://github.com/actions/github-script/commit/1ae9958572fde544457e4d51aed5ea044e8936f3"><code>1ae9958</code></a>
Update README.md</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/github-script/compare/60a0d83039c74a4aee543508d2ffcb1c3799cdea...ed597411d8f924073f98dfc5c65a23a2325f34cd">compare
view</a></li>
</ul>
</details>
<br />

Updates `depot/build-push-action` from 1.15.0 to 1.16.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/depot/build-push-action/releases">depot/build-push-action's
releases</a>.</em></p>
<blockquote>
<h2>v1.16.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Use ubuntu-latest for release workflow (<a
href="https://redirect.github.com/depot/build-push-action/issues/42">#42</a>)
<a
href="https://github.com/jacobwgillespie"><code>@​jacobwgillespie</code></a></li>
</ul>
<h2>v1.16.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Update <code>@​depot/actions-public-oidc-client</code> to v1.1.0 (<a
href="https://redirect.github.com/depot/build-push-action/issues/41">#41</a>)
<a
href="https://github.com/jacobwgillespie"><code>@​jacobwgillespie</code></a></li>
</ul>
<h2>v1.16.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add support for annotations (<a
href="https://redirect.github.com/depot/build-push-action/issues/38">#38</a>)
<a href="https://github.com/zanieb"><code>@​zanieb</code></a></li>
<li>feat: add <code>save-tags</code> for multiple depot registry tags
(<a
href="https://redirect.github.com/depot/build-push-action/issues/40">#40</a>)
<a href="https://github.com/goller"><code>@​goller</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/depot/build-push-action/commit/9785b135c3c76c33db102e45be96a25ab55cd507"><code>9785b13</code></a>
Merge pull request <a
href="https://redirect.github.com/depot/build-push-action/issues/42">#42</a>
from depot/latest</li>
<li><a
href="https://github.com/depot/build-push-action/commit/7a65e80415392c68bece25b0881703a9ff3e55c5"><code>7a65e80</code></a>
Use ubuntu-latest for release workflow</li>
<li><a
href="https://github.com/depot/build-push-action/commit/0781b3393f28b17fe7982ea3fabe715825b35fad"><code>0781b33</code></a>
Merge pull request <a
href="https://redirect.github.com/depot/build-push-action/issues/41">#41</a>
from depot/updates</li>
<li><a
href="https://github.com/depot/build-push-action/commit/d5d8e086fdcca080fa6279ece582eee909994026"><code>d5d8e08</code></a>
Deduplicate dependencies</li>
<li><a
href="https://github.com/depot/build-push-action/commit/801feb102f76406603cd2a12b4146a7e5af86a34"><code>801feb1</code></a>
Update <code>@​depot/actions-public-oidc-client</code> to v1.1.0</li>
<li><a
href="https://github.com/depot/build-push-action/commit/0b7423b11016b0349604e22d7ea01b078bed6c70"><code>0b7423b</code></a>
Merge pull request <a
href="https://redirect.github.com/depot/build-push-action/issues/38">#38</a>
from zanieb/zb/annotations</li>
<li><a
href="https://github.com/depot/build-push-action/commit/57a5fb2c1acdc2d3fa72bcd36b20f1ea326890de"><code>57a5fb2</code></a>
Merge branch 'main' into zb/annotations</li>
<li><a
href="https://github.com/depot/build-push-action/commit/3ebc0d44eced926ba1bb3f8d1e29794031973ca1"><code>3ebc0d4</code></a>
Merge pull request <a
href="https://redirect.github.com/depot/build-push-action/issues/40">#40</a>
from depot/feat/save-tags</li>
<li><a
href="https://github.com/depot/build-push-action/commit/d662c5a48fd5747bf4dce16d8484eb3ebf98ad2c"><code>d662c5a</code></a>
feat: add <code>save-tags</code> for multiple depot registry tags</li>
<li><a
href="https://github.com/depot/build-push-action/commit/06fcbb73efc9fb42f4df83c43e283a2170c8f9cf"><code>06fcbb7</code></a>
Add support for annotations</li>
<li>See full diff in <a
href="https://github.com/depot/build-push-action/compare/2583627a84956d07561420dcc1d0eb1f2af3fac0...9785b135c3c76c33db102e45be96a25ab55cd507">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
f963b3f3562b00b6d2dd25efc390eb04e51ef6c6 to
8c14441336bb3d84fd6b7fa83b6d7201c740baf5
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/8c14441336bb3d84fd6b7fa83b6d7201c740baf5"><code>8c14441</code></a>
chore(deps): bump actions/setup-node from 4.4.0 to 5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2656">#2656</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/e995ac4be5be2bcb6e29556edc51fb63aca6b49b"><code>e995ac4</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.3.0 to 24.3.1
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2657">#2657</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/3b04099b21072562f07469c10deb182b24236ca9"><code>3b04099</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.2.1 to 24.3.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2649">#2649</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/e7b6c977e51984988e3cc1d6b18abe2a3ba8daaa"><code>e7b6c97</code></a>
chore(deps): bump github/codeql-action from 3.29.9 to 3.29.11 (<a
href="h...

_Description has been truncated_

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 11:55:07 +00:00
dependabot[bot] 2e06b6f75e chore: bump github.com/zclconf/go-cty from 1.16.3 to 1.17.0 (#19735)
Bumps [github.com/zclconf/go-cty](https://github.com/zclconf/go-cty)
from 1.16.3 to 1.17.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/zclconf/go-cty/releases">github.com/zclconf/go-cty's
releases</a>.</em></p>
<blockquote>
<h2>v1.17.0</h2>
<p><code>cty</code> now requires Go 1.23 or later.</p>
<ul>
<li>
<p><code>cty.Value.Elements</code> offers a modern
<code>iter.Seq2</code>-based equivalent of
<code>cty.Value.ElementIterator</code>.</p>
</li>
<li>
<p><code>cty.DeepValues</code> offers a modern
<code>iter.Seq2</code>-based equivalent of <code>cty.Walk</code>.</p>
</li>
<li>
<p><code>cty.Value.WrangleMarksDeep</code> allows inspecting and
modifying individual marks throughout a possibly-nested data
structure.</p>
<p>Having now got some experience using marks more extensively in some
callers, it's become clear that it's often necessary for different
subsystems to be able to collaborate using independent marks without
upsetting each other's assumptions. Today that tends to be achieved
using hand-written transforms either with <code>cty.Transform</code> or
<code>cty.Value.UnmarkDeepWithPaths</code>/<code>cty.Value.MarkWithPaths</code>,
both of which can be pretty expensive even in the common case where
there are no marks present at all.</p>
<p>This new function allows inspecting and transforming marks with far
less overhead, by creating new values only for parts of a structure that
actually need to change and by reusing (rather than recreating) the
&quot;payloads&quot; of the values being modified when we know that only
the marks have changed.</p>
</li>
<li>
<p><code>cty.ValueMarksOfType</code> and
<code>cty.ValueMarksOfTypeDeep</code> make it easier to use type-based
rather than value-based mark schemes, where different values of a common
type are used to track a specific kind of relationship with multiple
external values.</p>
</li>
<li>
<p><code>cty.Value.HasMarkDeep</code> provides a &quot;deep&quot;
version of the existing <code>cty.Value.HasMark</code>, searching
throughout a possibly-nested structure for any values that have the
given mark.</p>
</li>
<li>
<p><code>cty.Value.UnmarkDeep</code> and
<code>cty.Value.UnmarkDeepWithPaths</code> are now implemented in terms
of <code>cty.Value.WrangleMarksDeep</code>, so they benefit from its
reduced overhead. In particular they avoid reconstructing a data
structure that contains no marked values at all.</p>
</li>
<li>
<p><code>cty.Value.MarkWithPaths</code> now has a fast path when it's
given a zero-length <code>PathValueMarks</code>, in which case it just
returns the value it was given with no modifications.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/zclconf/go-cty/blob/main/CHANGELOG.md">github.com/zclconf/go-cty's
changelog</a>.</em></p>
<blockquote>
<h1>1.17.0 (September 5, 2025)</h1>
<p><code>cty</code> now requires Go 1.23 or later.</p>
<ul>
<li>
<p><code>cty.Value.Elements</code> offers a modern
<code>iter.Seq2</code>-based equivalent of
<code>cty.Value.ElementIterator</code>.</p>
</li>
<li>
<p><code>cty.DeepValues</code> offers a modern
<code>iter.Seq2</code>-based equivalent of <code>cty.Walk</code>.</p>
</li>
<li>
<p><code>cty.Value.WrangleMarksDeep</code> allows inspecting and
modifying individual marks throughout a possibly-nested data
structure.</p>
<p>Having now got some experience using marks more extensively in some
callers, it's become clear that it's often necessary for different
subsystems to be able to collaborate using independent marks without
upsetting each other's assumptions. Today that tends to be achieved
using hand-written transforms either with <code>cty.Transform</code> or
<code>cty.Value.UnmarkDeepWithPaths</code>/<code>cty.Value.MarkWithPaths</code>,
both of which can be pretty expensive even in the common case where
there are no marks present at all.</p>
<p>This new function allows inspecting and transforming marks with far
less overhead, by creating new values only for parts of a structure that
actually need to change and by reusing (rather than recreating) the
&quot;payloads&quot; of the values being modified when we know that only
the marks have changed.</p>
</li>
<li>
<p><code>cty.ValueMarksOfType</code> and
<code>cty.ValueMarksOfTypeDeep</code> make it easier to use type-based
rather than value-based mark schemes, where different values of a common
type are used to track a specific kind of relationship with multiple
external values.</p>
</li>
<li>
<p><code>cty.Value.HasMarkDeep</code> provides a &quot;deep&quot;
version of the existing <code>cty.Value.HasMark</code>, searching
throughout a possibly-nested structure for any values that have the
given mark.</p>
</li>
<li>
<p><code>cty.Value.UnmarkDeep</code> and
<code>cty.Value.UnmarkDeepWithPaths</code> are now implemented in terms
of <code>cty.Value.WrangleMarksDeep</code>, so they benefit from its
reduced overhead. In particular they avoid reconstructing a data
structure that contains no marked values at all.</p>
</li>
<li>
<p><code>cty.Value.MarkWithPaths</code> now has a fast path when it's
given a zero-length <code>PathValueMarks</code>, in which case it just
returns the value it was given with no modifications.</p>
</li>
</ul>
<h1>1.16.4 (August 20, 2025)</h1>
<ul>
<li><code>cty.UnknownAsNull</code> now accepts marked values and
preserves the given marks in its result. Previously it had no direct
support for marks and so would either panic or return incorrect results
when given marked values.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/zclconf/go-cty/commit/da4c600729aefcf628d6b042ee439e6927d1104e"><code>da4c600</code></a>
CHANGELOG: Prepare for v1.17.0 release</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/b13ddd40b1cd39b19c1acfab789049d7ff34358c"><code>b13ddd4</code></a>
cty: Use WrangleMarksDeep for UnmarkDeep and UnmarkDeepWithPaths</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/4453ac2b7f5200601370c6a3f27207ebc81d2df4"><code>4453ac2</code></a>
cty: Use DeepValues instead of Walk for deep marks inspections</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/f833b10b8efd62c42155b93ab1864c77c836dbc0"><code>f833b10</code></a>
Bulk replace interface{} -&gt; any</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/d4bb9d4fb66471b4ffd521770f5a9f4ff277ee04"><code>d4bb9d4</code></a>
cty: Various new mark-inspecting helpers</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/31572cfc28dc2446e7f163451f78116c6cf776bb"><code>31572cf</code></a>
cty+ctymarks: Deep mark wrangling helper</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/d95a68cf6be26d4d0c841a6de102483c9d382006"><code>d95a68c</code></a>
cty: Modern iter.Seq2 equivalents of Value.ElementIterator and Walk</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/e76eeea526f53bec67a8fda74d68c9593f1a500a"><code>e76eeea</code></a>
v1.16.4 release</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/700a2bccfebdc72ce9270b9715dd2d4e86bd1fa6"><code>700a2bc</code></a>
cty: UnknownAsNull accepts marked values and preserves marks</li>
<li><a
href="https://github.com/zclconf/go-cty/commit/3c2b6a0e21d8e541c2ff5b3825b27483fad0bd1b"><code>3c2b6a0</code></a>
Prepare for future v1.16.4 release</li>
<li>See full diff in <a
href="https://github.com/zclconf/go-cty/compare/v1.16.3...v1.17.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/zclconf/go-cty&package-manager=go_modules&previous-version=1.16.3&new-version=1.17.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 11:52:11 +00:00
dependabot[bot] d59a4c5e7d chore: bump github.com/moby/moby from 28.3.0+incompatible to 28.4.0+incompatible (#19733)
Bumps [github.com/moby/moby](https://github.com/moby/moby) from
28.3.0+incompatible to 28.4.0+incompatible.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>v28.4.0</h2>
<h2>28.4.0</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.4.0">docker/cli,
28.4.0 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.4.0">moby/moby,
28.4.0 milestone</a></li>
<li>Deprecated and removed features, see <a
href="https://github.com/docker/cli/blob/v28.4.0/docs/deprecated.md">Deprecated
Features</a>.</li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v28.4.0/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<h3>New</h3>
<ul>
<li>Allow Docker CLI to set the <code>GODEBUG</code> environment
variable when the key-value pair
(<code>&quot;GODEBUG&quot;:&quot;...&quot;</code>) exists inside the
docker context metadata. <a
href="https://redirect.github.com/docker/cli/pull/6399">docker/cli#6399</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Add shell completion for <code>docker pull</code> and <code>docker
image pull</code>. <a
href="https://redirect.github.com/docker/cli/pull/6420">docker/cli#6420</a></li>
<li>Fix a regression in v28.3.3 that could cause a panic on <code>docker
push</code> if the client did not send an <code>X-Registry-Auth</code>
header. <a
href="https://redirect.github.com/moby/moby/pull/50738">moby/moby#50738</a></li>
<li>Windows: Potentially fix an issue with &quot;access denied&quot;
error when pulling images. <a
href="https://redirect.github.com/moby/moby/pull/50871">moby/moby#50871</a></li>
<li>containerd image store: Fix <code>docker history</code> failing with
<code>snapshot X does not exist</code> when calling on a non-native
image that was built locally. <a
href="https://redirect.github.com/moby/moby/pull/50875">moby/moby#50875</a></li>
<li>containerd image store: Fix <code>docker image prune</code> to emit
correct <code>untag</code> and <code>delete</code> events and list only
the deleted images root digests instead of every blob. <a
href="https://redirect.github.com/moby/moby/pull/50837">moby/moby#50837</a></li>
<li>Remove interactive login prompt from <code>docker push</code> and
<code>docker pull</code> after a failure caused by missing
authentication. <a
href="https://redirect.github.com/docker/cli/pull/6256">docker/cli#6256</a></li>
</ul>
<h3>Packaging updates</h3>
<ul>
<li>Update BuildKit to <a
href="https://github.com/moby/buildkit/releases/tag/v0.24.0">v0.24.0</a>.
<a
href="https://redirect.github.com/moby/moby/pull/50888">moby#50888</a></li>
<li>Update Go runtime to <a
href="https://go.dev/doc/devel/release#go1.24.6">1.24.7</a>. <a
href="https://redirect.github.com/moby/moby/pull/50889">moby/moby#50889</a>,
<a
href="https://redirect.github.com/docker/cli/pull/6422">docker/cli#6422</a></li>
<li>Update <code>runc</code> to <a
href="https://github.com/opencontainers/runc/releases/tag/v1.3.0">v1.3.0</a>.
<a
href="https://redirect.github.com/moby/moby/pull/50699">moby/moby#50699</a></li>
<li>Update containerd (static binaries only) to <a
href="https://github.com/containerd/containerd/releases/tag/v1.7.28">v1.7.28</a>.
<a
href="https://redirect.github.com/moby/moby/pull/50700">moby/moby#50700</a></li>
</ul>
<h3>Networking</h3>
<ul>
<li>Fix an issue that could cause slow container restart on
live-restore. <a
href="https://redirect.github.com/moby/moby/pull/50829">moby/moby#50829</a></li>
</ul>
<h3>API</h3>
<ul>
<li>Update deprecation message for <code>AuthConfig.Email</code> field.
<a
href="https://redirect.github.com/moby/moby/pull/50797">moby/moby#50797</a></li>
</ul>
<h3>Go SDK</h3>
<ul>
<li>Deprecate profiles package which got migrated to <a
href="https://github.com/moby/profiles">github.com/moby/profiles</a>. <a
href="https://redirect.github.com/moby/moby/pull/50513">moby/moby#50513</a></li>
</ul>
<h3>Deprecations</h3>
<ul>
<li>Deprecate special handling for quoted values for the
<code>--tlscacert</code>, <code>--tlscert</code>, and
<code>--tlskey</code> command-line flags. <a
href="https://redirect.github.com/docker/cli/pull/6291">docker/cli#6291</a></li>
<li>Mark legacy links env vars
(<code>DOCKER_KEEP_DEPRECATED_LEGACY_LINKS_ENV_VARS</code>) as
deprecated in v28.4 and set for removal in v30.0. <a
href="https://redirect.github.com/docker/cli/pull/6309">docker/cli#6309</a></li>
<li>Go-SDK: Deprecate field <code>NetworkSettingsBase.Bridge</code>,
struct <code>NetworkSettingsBase</code>, all the fields of
<code>DefaultNetworkSettings</code>, and struct
<code>DefaultNetworkSettings</code>. <a
href="https://redirect.github.com/moby/moby/pull/50839">moby/moby#50839</a></li>
<li>Go-SDK: api/types: <code>build.CacheDiskUsage</code>,
<code>container.DiskUsage</code>, <code>images.DiskUsage</code> and
<code>volumes.DiskUsage</code> are now deprecated and will be removed in
the next major release. <a
href="https://redirect.github.com/moby/moby/pull/50768">moby/moby#50768</a></li>
<li>Go-SDK: cli-plugins/manager: deprecate <code>ReexecEnvvar</code>. <a
href="https://redirect.github.com/docker/cli/pull/6411">docker/cli#6411</a></li>
<li>Go-SDK: cli-plugins/manager: deprecate annotation aliases
(<code>CommandAnnotationPlugin</code>,
<code>CommandAnnotationPluginVendor</code>,
<code>CommandAnnotationPluginVersion</code>,
<code>CommandAnnotationPluginInvalid</code>,
<code>CommandAnnotationPluginCommandPath</code>) in favor of their
equivalent in <code>cli-plugins/manager/metadata</code>. <a
href="https://redirect.github.com/docker/cli/pull/6298">docker/cli#6298</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/249d679a6baf8a32bb6d72d6ac5cc7ab9c90b4ea"><code>249d679</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50890">#50890</a>
from vvoland/50889-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/d664cfe1390eb623963dfc6f2d8bf02e6875ca60"><code>d664cfe</code></a>
update to go1.24.7</li>
<li><a
href="https://github.com/moby/moby/commit/b384cd2a45f543ceac77526e58761ab49494c8c5"><code>b384cd2</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50888">#50888</a>
from vvoland/50885-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/c1ce88e7f8bba7760fddbb131f2a3e8d1f0069c4"><code>c1ce88e</code></a>
vendor: update buildkit to v0.24.0</li>
<li><a
href="https://github.com/moby/moby/commit/4a34e8e9f69367e4adc830d0562c8a36d1cb855e"><code>4a34e8e</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50875">#50875</a>
from vvoland/50867-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/cfa70d073ec486c561dd2024050f66d5192a5a34"><code>cfa70d0</code></a>
gha/arm64: Setup qemu</li>
<li><a
href="https://github.com/moby/moby/commit/d70382e4424e19cf65d9837a6d8ed8fcb9a5f566"><code>d70382e</code></a>
integration/internal: Print Buildkit logs</li>
<li><a
href="https://github.com/moby/moby/commit/687b206c6b642608f0d61bda090a4169311dca0d"><code>687b206</code></a>
c8d/history: Fix non-native platforms</li>
<li><a
href="https://github.com/moby/moby/commit/e4224f86c085c609303cdd72fef39384237af430"><code>e4224f8</code></a>
integration/internal: Handle Buildkit in GetImageIDFromBody</li>
<li><a
href="https://github.com/moby/moby/commit/5d5332b00c7618f3ad1ab4eda4ac4102c4a9fa8c"><code>5d5332b</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50871">#50871</a>
from vvoland/50870-28.x</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v28.3.0...v28.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=28.3.0+incompatible&new-version=28.4.0+incompatible)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 11:50:52 +00:00
dependabot[bot] 855dc77995 chore: bump the x group with 6 updates (#19732)
Bumps the x group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [golang.org/x/mod](https://github.com/golang/mod) | `0.27.0` |
`0.28.0` |
| [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.30.0` |
`0.31.0` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.16.0` |
`0.17.0` |
| [golang.org/x/sys](https://github.com/golang/sys) | `0.35.0` |
`0.36.0` |
| [golang.org/x/term](https://github.com/golang/term) | `0.34.0` |
`0.35.0` |
| [golang.org/x/text](https://github.com/golang/text) | `0.28.0` |
`0.29.0` |

Updates `golang.org/x/mod` from 0.27.0 to 0.28.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/mod/commit/1759e969dad244f2f1a18cb367aff8614384ffe4"><code>1759e96</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/mod/commit/f060e16ef6180dd29cfa2a803bd919f05ad55a88"><code>f060e16</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/mod/compare/v0.27.0...v0.28.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/oauth2` from 0.30.0 to 0.31.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/oauth2/commit/014cf778b444f29c82ececa4f3ec1f6fe3db3eaf"><code>014cf77</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li><a
href="https://github.com/golang/oauth2/commit/3c76ce5d23d0d48721316e7631625ce32afaa14b"><code>3c76ce5</code></a>
endpoints: correct Naver OAuth2 endpoint URLs</li>
<li>See full diff in <a
href="https://github.com/golang/oauth2/compare/v0.30.0...v0.31.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sync` from 0.16.0 to 0.17.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sync/commit/04914c200cb38d4ea960ee6a4c314a028c632991"><code>04914c2</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/sync/compare/v0.16.0...v0.17.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sys` from 0.35.0 to 0.36.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sys/commit/b06ce0514ea5467cf3ac72ad85e4d1845c51fbad"><code>b06ce05</code></a>
windows: add FILE_ZERO_DATA_INFORMATION</li>
<li><a
href="https://github.com/golang/sys/commit/689cc11b26fb21227ba0ff5ce9222b7bd6053c30"><code>689cc11</code></a>
unix: fix Listen on solaris</li>
<li><a
href="https://github.com/golang/sys/commit/a4712b905411aebcc0c9b999c7e61826bfe4c11d"><code>a4712b9</code></a>
plan9: drop go version tags for unsupported versions</li>
<li><a
href="https://github.com/golang/sys/commit/0293703b0ad8c5db21b6ee27bfb7addec1877064"><code>0293703</code></a>
unix: add IFAL_* consts and ifaddrlblmsg on linux</li>
<li><a
href="https://github.com/golang/sys/commit/ab85cbbe9104a583d3268f28d8a9ef36653cde64"><code>ab85cbb</code></a>
unix/linux: extend rtnetlink constants</li>
<li><a
href="https://github.com/golang/sys/commit/9bd37534d8d5917ab389c2eadec7547c0c52f20b"><code>9bd3753</code></a>
unix: switch (*CPUSet).Zero to clear builtin</li>
<li><a
href="https://github.com/golang/sys/commit/899c23279da9bc75f6c478ab908e69be3a441b4f"><code>899c232</code></a>
windows/mkwinsyscall: use syscall.SyscallN instead of
syscall.Syscall{6,9,12,15}</li>
<li><a
href="https://github.com/golang/sys/commit/543f21a0561186ad3f71483165a2a1dc32dbae4c"><code>543f21a</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/sys/compare/v0.35.0...v0.36.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/term` from 0.34.0 to 0.35.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/term/commit/1a11b45a6fdc76d25c81fa21867a34052ba8fbd1"><code>1a11b45</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/term/commit/d862cd548e11aa25b32848fd8a08ab1a178f30fa"><code>d862cd5</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/term/compare/v0.34.0...v0.35.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/text` from 0.28.0 to 0.29.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/e69f31bf9cf2f46bd3325bc9bad37fe9001731c2"><code>e69f31b</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/text/commit/60c9786d9e6cc83e1900ce976fdba2e1c327d220"><code>60c9786</code></a>
all: upgrade go directive to at least 1.24.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.28.0...v0.29.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 11:50:16 +00:00
dependabot[bot] 8750e8cbcb chore: bump github.com/anthropics/anthropic-sdk-go from 1.4.0 to 1.11.0 (#19730)
Bumps
[github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go)
from 1.4.0 to 1.11.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-go/releases">github.com/anthropics/anthropic-sdk-go's
releases</a>.</em></p>
<blockquote>
<h2>v1.11.0</h2>
<h2>1.11.0 (2025-09-05)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.10.0...v1.11.0">v1.10.0...v1.11.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Documents in tool results (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/7161c2ce9843b80374186dc83fd84a8dfebda45f">7161c2c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> fix issue in Go with nested document
content params (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/b442cc3fd41ee53a18f8ccec868ae1057dae53a8">b442cc3</a>)</li>
<li>use release please annotations on more places (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/31a09b07991cc92d38517c80320d154246779a76">31a09b0</a>)</li>
</ul>
<h2>v1.10.0</h2>
<h2>1.10.0 (2025-09-02)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.9.1...v1.10.0">v1.9.1...v1.10.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> makes 1 hour TTL Cache Control generally
available (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c28a9a3272acb1973f2a2fb768157ab27a8f440d">c28a9a3</a>)</li>
<li><strong>client:</strong> adds support for code-execution-2025-08-26
tool (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/066a126a92a8e09f10742f13e0db36724a96c788">066a126</a>)</li>
<li>use custom decoder for []ContentBlockParamUnion (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/464">#464</a>)
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/473159792468018c709da311d7ac27139cf851e6">4731597</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>close body before retrying (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c970e10ff45c04c38a5a2c87fe85a8c191e06f80">c970e10</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>deprecate older claude-3-5 sonnet models (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/453">#453</a>)
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/e49d59b14be89dcfb858b565e5183ecf9c1e246b">e49d59b</a>)</li>
</ul>
<h2>v1.9.1</h2>
<h2>1.9.1 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.9.0...v1.9.1">v1.9.0...v1.9.1</a></p>
<h2>v1.9.0</h2>
<h2>1.9.0 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.8.0...v1.9.0">v1.8.0...v1.9.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>betas:</strong> add context-1m-2025-08-07 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c086118c9acd55ec711b29a08f165b358e56332b">c086118</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md">github.com/anthropics/anthropic-sdk-go's
changelog</a>.</em></p>
<blockquote>
<h2>1.11.0 (2025-09-05)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.10.0...v1.11.0">v1.10.0...v1.11.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> adds support for Documents in tool results (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/7161c2ce9843b80374186dc83fd84a8dfebda45f">7161c2c</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>client:</strong> fix issue in Go with nested document
content params (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/b442cc3fd41ee53a18f8ccec868ae1057dae53a8">b442cc3</a>)</li>
<li>use release please annotations on more places (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/31a09b07991cc92d38517c80320d154246779a76">31a09b0</a>)</li>
</ul>
<h2>1.10.0 (2025-09-02)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.9.1...v1.10.0">v1.9.1...v1.10.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> makes 1 hour TTL Cache Control generally
available (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c28a9a3272acb1973f2a2fb768157ab27a8f440d">c28a9a3</a>)</li>
<li><strong>client:</strong> adds support for code-execution-2025-08-26
tool (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/066a126a92a8e09f10742f13e0db36724a96c788">066a126</a>)</li>
<li>use custom decoder for []ContentBlockParamUnion (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/464">#464</a>)
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/473159792468018c709da311d7ac27139cf851e6">4731597</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>close body before retrying (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c970e10ff45c04c38a5a2c87fe85a8c191e06f80">c970e10</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>deprecate older claude-3-5 sonnet models (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/453">#453</a>)
(<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/e49d59b14be89dcfb858b565e5183ecf9c1e246b">e49d59b</a>)</li>
</ul>
<h2>1.9.1 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.9.0...v1.9.1">v1.9.0...v1.9.1</a></p>
<h2>1.9.0 (2025-08-12)</h2>
<p>Full Changelog: <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.8.0...v1.9.0">v1.8.0...v1.9.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>betas:</strong> add context-1m-2025-08-07 (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c086118c9acd55ec711b29a08f165b358e56332b">c086118</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> detect breaking changes when removing
endpoints (<a
href="https://github.com/anthropics/anthropic-sdk-go/commit/91ea5197646ffd3d807610f11bab8726092e7a4b">91ea519</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/7182eab5e7ebd5d766739f86537fe25a2ab0c51c"><code>7182eab</code></a>
release: 1.11.0</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/b90d70029ae2ff67d281f86bc9d99483e8f79fa3"><code>b90d700</code></a>
fix(client): fix issue in Go with nested document content params</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/cc676e4666daccd502044c5d9249b14023f67ca8"><code>cc676e4</code></a>
feat(api): adds support for Documents in tool results</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/c93b7cd87ffe5c753d69305984ad5186d2f4e93c"><code>c93b7cd</code></a>
fix: use release please annotations on more places</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/92995ec5b5ad00e6aa720aef38a9278b48762754"><code>92995ec</code></a>
release: 1.10.0</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/0663f951e52292eb20c8c81d4585fdb01389f956"><code>0663f95</code></a>
feat(client): adds support for code-execution-2025-08-26 tool</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/90eb81bfbb98831258c8ba3030098649a06fc588"><code>90eb81b</code></a>
feat: use custom decoder for []ContentBlockParamUnion (<a
href="https://redirect.github.com/anthropics/anthropic-sdk-go/issues/464">#464</a>)</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/2f2b92cd9882270b204ca3b0f1be9ebce9dd2572"><code>2f2b92c</code></a>
fix: close body before retrying</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/722cf6bed0ebf16a2886eca80a5f42514ddff956"><code>722cf6b</code></a>
codegen metadata</li>
<li><a
href="https://github.com/anthropics/anthropic-sdk-go/commit/1cea167dfa61355ef1268927094e0c13303e7b67"><code>1cea167</code></a>
codegen metadata</li>
<li>Additional commits viewable in <a
href="https://github.com/anthropics/anthropic-sdk-go/compare/v1.4.0...v1.11.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/anthropics/anthropic-sdk-go&package-manager=go_modules&previous-version=1.4.0&new-version=1.11.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 11:46:42 +00:00
Mathias Fredriksson 21402c7aaa perf(coderd/database): optimize GetAPIKeysLastUsedAfter (#19725)
This change adds a support-index for `GetAPIKeysLastUsedAfter`.

On dogfood (24h): called 4.4k times, 380ms average.

Change for tested time range: `170ms` -> `3.3ms`.
2025-09-08 13:13:12 +03:00
Mathias Fredriksson fb9753edf2 fix(coderd/database): rename duplicate migration (#19724) 2025-09-08 08:54:12 +00:00
Mathias Fredriksson 9db265d508 fix(coderd/database): optimize provisioner daemon with status query using index (#19703)
Fixes coder/internal#724

This change adds an index to optimize the
`GetProvisionerDaemonsWithStatusByOrganization` query.

Execution time dropped from `18s 838ms` to `107ms`.
2025-09-08 11:10:53 +03:00
Ethan 38028df4d5 ci: make test-go-pg-17 a required check (#19722)
We run an additional test suite with the latest major version of Postgres. Until now, it hasn't been required that this suite pass before merging, prior discussion available [here](https://github.com/coder/coder/pull/13665#discussion_r1654933195). 

Making it required also means we'll receive slack notifications when it fails on `main`.
2025-09-08 18:06:30 +10:00
Spike Curtis d25ff6c48b docs: add guidelines about PR size (#19700)
Adds guidelines about PR size to our contributing guide.
2025-09-08 09:55:48 +04:00
Ethan dae19039d7 test: fix TestCache_DeploymentStats flake (#19683)
Closes https://github.com/coder/internal/issues/961
Likely the same deal as in #19599, the body of `require.Eventually` now fires immediately, when it used to fire after 250ms (the interval). Presumably, the deployment stats become ready before the vs code session count gets incremented. This was never an issue with the 250ms delay, as this flake has only cropped up after the testify version bump.

We'll fix the issue by making it possible to wait for a full metrics cache refresh, i.e. removing `require.Eventually` in this test altogether.
2025-09-08 12:07:38 +10:00
Danielle Maywood e12b621ff0 fix(coderd): ensure agent WebSocket conn is cleaned up (#19711)
When clients disconnected from the /containers/watch endpoint, the WebSocket 
connection between coderd and the agent stayed open. This caused heartbeat 
traffic every 15s that was incorrectly counted as workspace activity, 
extending workspace lifetimes indefinitely.

Now properly cancels the agent connection context when the client disconnects.
2025-09-05 14:26:46 +01:00
Atif Ali 8f72538ab7 docs: reorganize Coder Desktop docs (#18871)
Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-09-05 06:17:47 +00:00
ケイラ 04fa027532 chore: upgrade to vite 7 (#19352)
Nice little treat :)
2025-09-04 17:43:19 -06:00
Brett Kolodny 909acbc833 feat: add sharing add command to the CLI (#19576)
Adds a `sharing add` command for sharing Workspaces with other users and
groups.

The command allows sharing with multiple users, and groups within one
command as well as specifying the role (`use`, or `admin`) defaulting to
`use` if none is specified.

In the current implementation when the command completes we show the
user the current state of the workspace ACL.

```
$ coder sharing add apricot-catfish-86 --user=member:admin --group=contractors:use
USER    GROUP        ROLE
member  -            admin
member  contractors  use
```

If a user is a part of multiple groups, or the workspace has been
individually shared with them they will show up multiple times. Although
this is a bit confusing at first glance it's important to be able to
tell what the maximum role a user may have, and via what ACL they have
it.

---

One piece of UX to consider is that in order to be able to share a
Workspace with a user they must have a role that can read that user. In
the tests we give the user the `ScopedRoleOrgAuditor` role.

Closes
[coder/internal#859](https://github.com/coder/internal/issues/859)
2025-09-04 17:37:16 -04:00
Brett Kolodny a78d65c8b9 fix: prevent new workspace page from scrolling past the bottom of the screen (#19705)
Fixes the overflow on the page and also improves the scroll behavior of
the form

Closes #19690 


https://github.com/user-attachments/assets/00397698-ef34-4146-9589-9218c08510fe
2025-09-04 17:24:05 -04:00
Callum Styan 0ec9df390b fix: reduce impact of GetPrebuildMetrics on database (#19694)
see https://github.com/coder/internal/issues/959 but the tl; dr is:
- we call this DB query on an interval (every 15s) and it would be
called on each coderd replica as well
- the generated values update very infrequently (for our most used
internal template I saw the builds created/claimed update twice in a 1h
period)
- we have no index on the initiator ID, so this query has to scan the
entire workspace_builds table on every request

In reality this should likely just be a Prometheus metric, and
Prometheus can handle the counter reset behaviour at query time, but for
now this should at least cut the load of the query to 25% of it's
current impact.

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-09-04 13:43:50 -07:00
Hugo Dutka 20309074d1 docs: update Tailscale DERP fleet usage phrasing (#19653)
I noticed that our docs mention the possibility of using the
Tailscale-managed DERP server fleet.
https://github.com/coder/coder/pull/15901 changed the phrasing from

> However, Tailscale has graciously allowed us to use  

to  

> However, our Wireguard integration through Tailscale has graciously
allowed us to use

This change alters the original meaning of the sentence. AFAIK, the
original meant that we contacted Tailscale directly and asked if it
would be ok for our customers to use the Tailscale-managed DERP server
fleet, and Tailscale graciously agreed. The new phrasing conveys
something different. This PR reverts the phrasing to the original.

---------

Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-09-04 19:09:08 +02:00
Danielle Maywood f94abfc83e feat(cli): add quiet flag to task create (#19701)
Allows passing `--quiet` (or `-q`) to the task create command so that it
only prints the ID of the task.
2025-09-04 10:03:22 +01:00
Ethan f867a9d481 fix(cli/templatepush): only implicitly read from stdin if the directory flag is unset (#19681)
In trying to address confusion with the `-`  (for stdin) directory flag last year, I had `template push` read from stdin if stdin was not a TTY. However, I made the mistake of checking if the directory flag was set or not by comparing it to the default value. This meant in something like GitHub Actions, where you don't have a TTY for stdin, it was impossible to read from the current working directory. The fix is just to check if the flag was explicitly set, using pflags.

If users encounter this bug, and this fix is unavailable in their version of Coder, they can workaround it by setting `-d "$(pwd)"`
2025-09-04 14:31:56 +10:00
Ethan 50704a5014 ci: improve 'tfail in goroutine' ruleguard rule (#19682)
This PR improves the ruleguard rule for detecting `t.Fail` calls in goroutines. It picks up additional violations, of which are fixed in this PR.
See self-review for details.

The motivation for fixing this comes from a flake I fixed in https://github.com/coder/coder/pull/19599, where tests would fail from a `require` in an `Eventually`.
2025-09-04 14:28:29 +10:00
Ethan 1b4ce0909c fix: pin pg_dump version when generating schema (#19696)
The latest release of all `pg_dump` major versions, going back to 13,
started inserting `\restrict` `\unrestrict` keywords into dumps. This
currently breaks sqlc in `gen/dump` and our check migration script. Full
details of the postgres change are available here:
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=575f54d4c

To fix, we'll always use the `pg_dump` in our postgres 13.21 docker
image for schema dumps, instead of what's on the runner/local machine.

Coder doesn't restore from postgres dumps, so we're not vulnerable to
attacks that would be patched by the latest postgres version.
Regardless, we'll unpin ASAP.

Once sqlc is updated to handle these keywords, we need to start
stripping them when comparing the schema in the migration check script,
and then we can unpin the pg_dump version. This is being tracked at
https://github.com/coder/internal/issues/965
2025-09-04 14:00:21 +10:00
Atif Ali 62c74305db chore(docs): always point to latest toolsdk in MCP docs (#19689)
Updated toolsdk documentation link to the latest version.

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.
2025-09-03 13:28:33 +00:00
Spike Curtis 04dfda8a0e fix: change enqueue error to debug log level (#19686)
fixes https://github.com/coder/internal/issues/958

Logging was being done at error level, but most likely any errors are from simple races between an update triggered around the same time as a client disconnecting. Debug is fine for these.
2025-09-03 13:42:02 +04:00
Marcin Tojek d415964b9f fix: show popup on successful template build (#19674)
Fixes: https://github.com/coder/coder/issues/18364
2025-09-03 09:23:37 +02:00
Spike Curtis 18945a7949 chore: refactor CLI agent auth tests as unit tests (#19609)
Fixes https://github.com/coder/internal/issues/933

Refactors CLI tests that check the `--auth` flag parsing for various public clouds into a unit test that just creates the agent Client and asserts on the type.

Testing that the agent client actually authenticates correctly with these auth types is well covered by Coderd tests, so we don't need to retread that ground here, and the deleted tests were flaky on Windows.
2025-09-03 10:49:19 +04:00
Spike Curtis 1354d84eb4 chore: refactor instance identity to be a SessionTokenProvider (#19566)
Refactors Agent instance identity to be a SessionTokenProvider.

Refactors the CLI to create Agent clients via a centralized function, rather than add-hoc via individual command handlers and their flags.

This allows commands besides `coder agent`, but which still use the agent identity, to support instance identity authentication.

Fixes #19111 by unifying all API requests to go thru the SessionTokenProvider for auth credentials.
2025-09-03 10:38:42 +04:00
Spike Curtis ee35ad3a57 fix: remove hold WaitGroup in TestConcurrentFetch (#19617)
Fixes: https://github.com/coder/internal/issues/950

Pretty sure the intention of the `hold` wait group is to try to get the two goroutines that the test starts running at the same time. But, that should be the case for two goroutines started anyway.

The use of `hold` doesn't actually guarantee concurrent execution of `Acquire`, just that both goroutines get as far as `Done()` --- the go scheduler could run them serially without incident.

So I've chosen to just remove the use of `hold` to simplify.

But, for posterity, the data race was due to incrementing by 1 in the loop along with the goroutine that calls Done. You could increment by 1 and then back down to 0 before the second iteration of the loop starts. This then causes a data race with calling `Wait()` in the first goroutine and `Add()` in the second iteration. c.f. https://pkg.go.dev/sync#WaitGroup.Add
2025-09-03 09:25:49 +04:00
Brett Kolodny 6606d8b642 fix: add bottom padding to workspace page (#19643)
Before:
<img width="2874" height="142" alt="CleanShot 2025-08-29 at 11 58 56@2x"
src="https://github.com/user-attachments/assets/4e270397-d0d5-40b7-aac4-f00b7f842fda"
/>


After:

<img width="3104" height="228" alt="CleanShot 2025-08-29 at 11 59 14@2x"
src="https://github.com/user-attachments/assets/106ccaf1-2615-4354-8b1d-3e68fc73b218"
/>
2025-09-02 20:16:51 -04:00
Steven Masley f571730715 chore: update coder/preview to v1.0.4 (#19640) 2025-09-02 15:01:20 -04:00
Cian Johnston bd6e91eeab fix(coderd): add audit log on creating a new session key (#19672)
Fixes https://github.com/coder/coder/issues/19671
(re-?)Adds an audit log entry when an API key is created via `coder
login`.

NOTE: This does _not_ backfill audit logs.

<img width="1354" height="207" alt="Screenshot 2025-09-02 at 14 16 24"
src="https://github.com/user-attachments/assets/921e85c1-eced-4a19-9d37-8f84f4af1e73"
/>
2025-09-02 14:21:56 +01:00
Danielle Maywood 12bce12952 fix(coderd): ensure a newly created task can be fetched (#19670)
Due to how we currently label a workspace as a task, there is a delay
between when a task workspace is created and when it is labelled as a
task.

This PR introduces fallback check for when a workspace does _not_ have
`HasAITask` set. This fallback check tests to see if the special "AI
Prompt" parameter is present in the workspace's build parameters.
2025-09-02 13:25:32 +01:00
Cian Johnston 06cbb2890f fix: expire token for prebuilds user when regenerating session token (#19667)
* provisionerdserver: Expires prebuild user token for workspace, if it
exists, when regenerating session token.
* dbauthz: disallow prebuilds user from creating api keys
* dbpurge: added functionality to expire stale api keys owned by the
prebuilds user
2025-09-02 09:38:43 +01:00
Danielle Maywood a2a758d5a6 chore(cli): re-order CLI create command (#19658)
Relates to https://github.com/coder/internal/issues/893

Instead of `coder task create <template> --input <input>`, it is now
`coder task create <input> --template <template>`.

If there is only one AI task template on the deployment, the
`--template` parameter can be omitted.
2025-09-02 09:07:25 +01:00
dependabot[bot] 519812776e chore: bump github.com/stretchr/testify from 1.10.0 to 1.11.1 (#19599)
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify)
from 1.10.0 to 1.11.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/stretchr/testify/releases">github.com/stretchr/testify's
releases</a>.</em></p>
<blockquote>
<h2>v1.11.1</h2>
<p>This release fixes <a
href="https://redirect.github.com/stretchr/testify/issues/1785">#1785</a>
introduced in v1.11.0 where expected argument values implementing the
stringer interface (<code>String() string</code>) with a method which
mutates their value, when passed to mock.Mock.On
(<code>m.On(&quot;Method&quot;, &lt;expected&gt;).Return()</code>) or
actual argument values passed to mock.Mock.Called may no longer match
one another where they previously did match. The behaviour prior to
v1.11.0 where the stringer is always called is restored. Future testify
releases may not call the stringer method at all in this case.</p>
<h2>What's Changed</h2>
<ul>
<li>Backport <a
href="https://redirect.github.com/stretchr/testify/issues/1786">#1786</a>
to release/1.11: mock: revert to pre-v1.11.0 argument matching behavior
for mutating stringers by <a
href="https://github.com/brackendawson"><code>@​brackendawson</code></a>
in <a
href="https://redirect.github.com/stretchr/testify/pull/1788">stretchr/testify#1788</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/stretchr/testify/compare/v1.11.0...v1.11.1">https://github.com/stretchr/testify/compare/v1.11.0...v1.11.1</a></p>
<h2>v1.11.0</h2>
<h2>What's Changed</h2>
<h3>Functional Changes</h3>
<p>v1.11.0 Includes a number of performance improvements.</p>
<ul>
<li>Call stack perf change for CallerInfo by <a
href="https://github.com/mikeauclair"><code>@​mikeauclair</code></a> in
<a
href="https://redirect.github.com/stretchr/testify/pull/1614">stretchr/testify#1614</a></li>
<li>Lazily render mock diff output on successful match by <a
href="https://github.com/mikeauclair"><code>@​mikeauclair</code></a> in
<a
href="https://redirect.github.com/stretchr/testify/pull/1615">stretchr/testify#1615</a></li>
<li>assert: check early in Eventually, EventuallyWithT, and Never by <a
href="https://github.com/cszczepaniak"><code>@​cszczepaniak</code></a>
in <a
href="https://redirect.github.com/stretchr/testify/pull/1427">stretchr/testify#1427</a></li>
<li>assert: add IsNotType by <a
href="https://github.com/bartventer"><code>@​bartventer</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1730">stretchr/testify#1730</a></li>
<li>assert.JSONEq: shortcut if same strings by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1754">stretchr/testify#1754</a></li>
<li>assert.YAMLEq: shortcut if same strings by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1755">stretchr/testify#1755</a></li>
<li>assert: faster and simpler isEmpty using reflect.Value.IsZero by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1761">stretchr/testify#1761</a></li>
<li>suite: faster methods filtering (internal refactor) by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1758">stretchr/testify#1758</a></li>
</ul>
<h3>Fixes</h3>
<ul>
<li>assert.ErrorAs: log target type by <a
href="https://github.com/craig65535"><code>@​craig65535</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1345">stretchr/testify#1345</a></li>
<li>Fix failure message formatting for Positive and Negative asserts in
<a
href="https://redirect.github.com/stretchr/testify/pull/1062">stretchr/testify#1062</a></li>
<li>Improve ErrorIs message when error is nil but an error was expected
by <a href="https://github.com/tsioftas"><code>@​tsioftas</code></a> in
<a
href="https://redirect.github.com/stretchr/testify/pull/1681">stretchr/testify#1681</a></li>
<li>fix Subset/NotSubset when calling with mixed input types by <a
href="https://github.com/siliconbrain"><code>@​siliconbrain</code></a>
in <a
href="https://redirect.github.com/stretchr/testify/pull/1729">stretchr/testify#1729</a></li>
<li>Improve ErrorAs failure message when error is nil by <a
href="https://github.com/ccoVeille"><code>@​ccoVeille</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1734">stretchr/testify#1734</a></li>
<li>mock.AssertNumberOfCalls: improve error msg by <a
href="https://github.com/3scalation"><code>@​3scalation</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1743">stretchr/testify#1743</a></li>
</ul>
<h3>Documentation, Build &amp; CI</h3>
<ul>
<li>docs: Fix typo in README by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1688">stretchr/testify#1688</a></li>
<li>Replace deprecated io/ioutil with io and os by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1684">stretchr/testify#1684</a></li>
<li>Document consequences of calling t.FailNow() by <a
href="https://github.com/greg0ire"><code>@​greg0ire</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1710">stretchr/testify#1710</a></li>
<li>chore: update docs for Unset <a
href="https://redirect.github.com/stretchr/testify/issues/1621">#1621</a>
by <a href="https://github.com/techfg"><code>@​techfg</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1709">stretchr/testify#1709</a></li>
<li>README: apply gofmt to examples by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1687">stretchr/testify#1687</a></li>
<li>refactor: use %q and %T to simplify fmt.Sprintf by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1674">stretchr/testify#1674</a></li>
<li>Propose Christophe Colombier (ccoVeille) as approver by <a
href="https://github.com/brackendawson"><code>@​brackendawson</code></a>
in <a
href="https://redirect.github.com/stretchr/testify/pull/1716">stretchr/testify#1716</a></li>
<li>Update documentation for the Error function in assert or require
package by <a
href="https://github.com/architagr"><code>@​architagr</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1675">stretchr/testify#1675</a></li>
<li>assert: remove deprecated build constraints by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1671">stretchr/testify#1671</a></li>
<li>assert: apply gofumpt to internal test suite by <a
href="https://github.com/ccoVeille"><code>@​ccoVeille</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1739">stretchr/testify#1739</a></li>
<li>CI: fix shebang in .ci.*.sh scripts by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1746">stretchr/testify#1746</a></li>
<li>assert,require: enable parallel testing on (almost) all top tests by
<a href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1747">stretchr/testify#1747</a></li>
<li>suite.Passed: add one more status test report by <a
href="https://github.com/Ararsa-Derese"><code>@​Ararsa-Derese</code></a>
in <a
href="https://redirect.github.com/stretchr/testify/pull/1706">stretchr/testify#1706</a></li>
<li>Add Helper() method in internal mocks and assert.CollectT by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1423">stretchr/testify#1423</a></li>
<li>assert.Same/NotSame: improve usage of Sprintf by <a
href="https://github.com/ccoVeille"><code>@​ccoVeille</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1742">stretchr/testify#1742</a></li>
<li>mock: enable parallel testing on internal testsuite by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1756">stretchr/testify#1756</a></li>
<li>suite: cleanup use of 'testing' internals at runtime by <a
href="https://github.com/dolmen"><code>@​dolmen</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1751">stretchr/testify#1751</a></li>
<li>assert: check test failure message for Empty and NotEmpty by <a
href="https://github.com/ccoVeille"><code>@​ccoVeille</code></a> in <a
href="https://redirect.github.com/stretchr/testify/pull/1745">stretchr/testify#1745</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/stretchr/testify/commit/2a57335dc9cd6833daa820bc94d9b40c26a7917d"><code>2a57335</code></a>
Merge pull request <a
href="https://redirect.github.com/stretchr/testify/issues/1788">#1788</a>
from brackendawson/1785-backport-1.11</li>
<li><a
href="https://github.com/stretchr/testify/commit/af8c91234f184009f57ef29027b39ca89cb00100"><code>af8c912</code></a>
Backport <a
href="https://redirect.github.com/stretchr/testify/issues/1786">#1786</a>
to release/1.11</li>
<li><a
href="https://github.com/stretchr/testify/commit/b7801fbf5cd58d201296d5d0e132d1849966dbd4"><code>b7801fb</code></a>
Merge pull request <a
href="https://redirect.github.com/stretchr/testify/issues/1778">#1778</a>
from stretchr/dependabot/github_actions/actions/chec...</li>
<li><a
href="https://github.com/stretchr/testify/commit/69831f3b08c40d56a09d0be93e9d5ae034f1590b"><code>69831f3</code></a>
build(deps): bump actions/checkout from 4 to 5</li>
<li><a
href="https://github.com/stretchr/testify/commit/a53be35c3b0cfcd5189cffcfd75df60ea581104c"><code>a53be35</code></a>
Improve captureTestingT helper</li>
<li><a
href="https://github.com/stretchr/testify/commit/aafb604176db7e1f2c9810bc90d644291d057687"><code>aafb604</code></a>
mock: improve formatting of error message</li>
<li><a
href="https://github.com/stretchr/testify/commit/7218e0390acd2aea3edb18574110ec2753c0aeef"><code>7218e03</code></a>
improve error msg</li>
<li><a
href="https://github.com/stretchr/testify/commit/929a2126c2702df436312656a0304580b526c6e9"><code>929a212</code></a>
Merge pull request <a
href="https://redirect.github.com/stretchr/testify/issues/1758">#1758</a>
from stretchr/dolmen/suite-faster-method-filtering</li>
<li><a
href="https://github.com/stretchr/testify/commit/bc7459ec38128532ff32f23cfab4ea0b725210f2"><code>bc7459e</code></a>
suite: faster filtering of methods (-testify.m)</li>
<li><a
href="https://github.com/stretchr/testify/commit/7d37b5c962954410bcd7a71ff3a77c79514056d1"><code>7d37b5c</code></a>
suite: refactor methodFilter</li>
<li>Additional commits viewable in <a
href="https://github.com/stretchr/testify/compare/v1.10.0...v1.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/stretchr/testify&package-manager=go_modules&previous-version=1.10.0&new-version=1.11.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ethan Dickson <ethan@coder.com>
2025-09-02 03:12:37 +00:00
Ethan a3b81761f1 chore: delete old changelogs from docs (#19631)
A Dependabot PR got blocked by a typo in a 2.10 changelog! I then noticed we're keeping these old changelogs (<= 2.10) around, even though we haven't been updating this directory for many months now. 

I'm putting this PR up as I assume we want to delete those, it seems they'd be more confusing to users than anything. They're not referenced on the website nor in the docs manifest.json. 
If I'm mistaken, and we do want to keep these, feel free to close this PR.
2025-09-02 11:16:57 +10:00
Ethan 98c72c3a25 ci: make blink ci failure prompt a gha variable (#19633)
Got sick of seeing blink create duplicates, so I'm updating the prompt. To make it configurable without committing I'm making it a variable, here's what I've got:

> Investigate this CI failure. Check logs, and figure out what went wrong. Search for existing issues in coder/internal. If an issue for the CI failure does not exist already, create one ONLY in coder/internal. Do NOT create duplicate issues. Use title format \"flake: TestName\" for flaky tests, and assign them to the person from git blame.
If multiple tests fail with the reason `unknown`, the test process exited unexpectedly, perhaps due to a panic.

Once blink supports per-slack-channel contexts, i'll probably just set the variable to the empty string and use that instead.
2025-09-02 11:07:24 +10:00
dependabot[bot] a8f92cb586 chore: bump github.com/golang-migrate/migrate/v4 from 4.18.1 to 4.19.0 (#19662)
Bumps
[github.com/golang-migrate/migrate/v4](https://github.com/golang-migrate/migrate)
from 4.18.1 to 4.19.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/golang-migrate/migrate/releases">github.com/golang-migrate/migrate/v4's
releases</a>.</em></p>
<blockquote>
<h2>v4.19.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Fixed sqlserver not actually getting a lock if lock is already set
by <a href="https://github.com/urbim"><code>@​urbim</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1186">golang-migrate/migrate#1186</a></li>
<li>Bump golang.org/x/oauth2 from 0.18.0 to 0.27.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1299">golang-migrate/migrate#1299</a></li>
<li>Update apt-key to gpg by <a
href="https://github.com/sandhilt"><code>@​sandhilt</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1277">golang-migrate/migrate#1277</a></li>
<li>Update dktest to v0.4.6 for docker vuln fix by <a
href="https://github.com/dhui"><code>@​dhui</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1309">golang-migrate/migrate#1309</a></li>
<li>refactor: Remove go.uber.org/atomic in favor of std sync/atomic by
<a href="https://github.com/romshark"><code>@​romshark</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1303">golang-migrate/migrate#1303</a></li>
<li>Ensure bufferWriter is always closed in Migration.Buffer and
propagate close errors by <a
href="https://github.com/ckantcs"><code>@​ckantcs</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1308">golang-migrate/migrate#1308</a></li>
<li>Add support for Go 1.25 and drop support for 1.23 by <a
href="https://github.com/dhui"><code>@​dhui</code></a> in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1310">golang-migrate/migrate#1310</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/urbim"><code>@​urbim</code></a> made
their first contribution in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1186">golang-migrate/migrate#1186</a></li>
<li><a href="https://github.com/sandhilt"><code>@​sandhilt</code></a>
made their first contribution in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1277">golang-migrate/migrate#1277</a></li>
<li><a href="https://github.com/romshark"><code>@​romshark</code></a>
made their first contribution in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1303">golang-migrate/migrate#1303</a></li>
<li><a href="https://github.com/ckantcs"><code>@​ckantcs</code></a> made
their first contribution in <a
href="https://redirect.github.com/golang-migrate/migrate/pull/1308">golang-migrate/migrate#1308</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/golang-migrate/migrate/compare/v4.18.3...v4.19.0">https://github.com/golang-migrate/migrate/compare/v4.18.3...v4.19.0</a></p>
<h2>v4.18.3</h2>
<h2>Changelog</h2>
<ul>
<li>a4d0a1b Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2</li>
<li>f37ef79 Bump golang.org/x/crypto from 0.31.0 to 0.35.0</li>
<li>5b97c92 Bump golang.org/x/net from 0.33.0 to 0.38.0</li>
<li>e6d84f6 Drop support for Go 1.22 and add support for Go 1.24</li>
<li>fccd197 Mention CLI install instructions in main README</li>
<li>34c2b4a Remove redundant build tags</li>
<li>a868033 Update FAQ.md - typo</li>
<li>7269490 Update golangci-lint version used in GitHub Actions</li>
<li>c5137c4 Update migrate -help output for the readme file</li>
<li>033835a Update to dktest v0.4.5</li>
<li>8b09191 fix: typo limited not limitted</li>
<li>60d73be refactor: replace github.com/pkg/errors with stdlib</li>
<li>36d17ba tests: fix various tests (<a
href="https://redirect.github.com/golang-migrate/migrate/issues/1209">#1209</a>)</li>
</ul>
<h2>v4.18.2</h2>
<h2>Changelog</h2>
<ul>
<li>e145cde Bump github.com/golang-jwt/jwt/v4 from 4.4.2 to 4.5.1</li>
<li>e22d012 Don't output sensitive information on error</li>
<li>e5a152b Drop support for Azure SQL Edge</li>
<li>12c619e Fix CI (<a
href="https://redirect.github.com/golang-migrate/migrate/issues/1222">#1222</a>)</li>
<li>bc06922 Update dktest from v0.4.3 to v0.4.4</li>
<li>7651c8a linter fixes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang-migrate/migrate/commit/8b9c5f77128ef93d65a082208a2009a3911fe6d4"><code>8b9c5f7</code></a>
Merge pull request <a
href="https://redirect.github.com/golang-migrate/migrate/issues/1310">#1310</a>
from dhui/update_go</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/b4ec9bccb14cd7b0eb0510ac9d3d01d4be79324f"><code>b4ec9bc</code></a>
Add support for Go 1.25 and drop support for 1.23</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/ed4bdd4614e991ca8fba606b38a45f6409a9deb6"><code>ed4bdd4</code></a>
Ensure bufferWriter is always closed in Migration.Buffer and propagate
close ...</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/8945e853c4c84a92bfa42572ac4cfd7874e23108"><code>8945e85</code></a>
Merge pull request <a
href="https://redirect.github.com/golang-migrate/migrate/issues/1303">#1303</a>
from romshark/master</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/7108d806dd50c1510510239a161887757f240122"><code>7108d80</code></a>
Merge pull request <a
href="https://redirect.github.com/golang-migrate/migrate/issues/1309">#1309</a>
from dhui/dktest_v0.4.6</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/682016f04c2c0f8faa1d122fd22a62563876f71d"><code>682016f</code></a>
Merge pull request <a
href="https://redirect.github.com/golang-migrate/migrate/issues/1277">#1277</a>
from sandhilt/doc/change-apt-key-to-gpg</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/f3e6b5a737de1b7c79aaf81168395d6f2eb1fbb0"><code>f3e6b5a</code></a>
Replace usage of deprecated docker types</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/0a17402aa2359c8c5cd5a68a0e08a41c4460337f"><code>0a17402</code></a>
Update dktest to v0.4.6 for docker vuln fix</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/5eee0c8030ca227bfd27a425988f9c7c4948e90a"><code>5eee0c8</code></a>
Merge pull request <a
href="https://redirect.github.com/golang-migrate/migrate/issues/1299">#1299</a>
from golang-migrate/dependabot/go_modules/golang.org...</li>
<li><a
href="https://github.com/golang-migrate/migrate/commit/642a24d61bb0a870a15020adceeee3e85d5151c3"><code>642a24d</code></a>
Bump golang.org/x/oauth2 from 0.18.0 to 0.27.0</li>
<li>Additional commits viewable in <a
href="https://github.com/golang-migrate/migrate/compare/v4.18.1...v4.19.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/golang-migrate/migrate/v4&package-manager=go_modules&previous-version=4.18.1&new-version=4.19.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 19:08:03 +00:00
dependabot[bot] d9afbc21ef chore: bump github.com/brianvoe/gofakeit/v7 from 7.4.0 to 7.5.1 (#19661)
Bumps
[github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit)
from 7.4.0 to 7.5.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/c0093afeceb88fc40270917132d79fcbf63079cc"><code>c0093af</code></a>
payment - alias and keyword updates</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/521ca8fadc0efa182334e3e28e9ecc01b55da84d"><code>521ca8f</code></a>
aliases and keywords - completed</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/fe7530dc54e19139d5e1f9b6824d0e7881113d7c"><code>fe7530d</code></a>
aliases and keywords - continue to refine</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/002a6c57e4af7b1e84542e8ff15674bc25cb2dee"><code>002a6c5</code></a>
work in progress</li>
<li>See full diff in <a
href="https://github.com/brianvoe/gofakeit/compare/v7.4.0...v7.5.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/brianvoe/gofakeit/v7&package-manager=go_modules&previous-version=7.4.0&new-version=7.5.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 18:56:00 +00:00
Callum Styan 4fab14b40b fix: limit the scope of the template average build time query to the last 100 (#19648)
This PR should resolve https://github.com/coder/internal/issues/719 by
limiting the `workspace_builds` rows selected by the query to the most
recent 100 builds of a template, as opposed to all builds in the last
30d. For our own internal templates with the most builds (1700-2000 in a
30d period) this should cut the query execution time by about 80%.

Unless we have some restriction on keeping the 30d period, contract
related or otherwise, this seems like a safe change to make. In addition
to the execution speed improvements it also means the memory for the
query is bounded as well.

If we want to keep a 30d time period for the avg build time value I
think it's worth exploring a purpose built solution such as histogram
structures where the build times could be bucketized by template ID as
they're observed.

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-09-01 09:31:21 -07:00
Callum Styan 6574299fcc fix: fix TestExecutorAutostartSkipsWhenNoProvisionersAvailable flake, part 2 (#19649)
This test still flakes occasionally, see
https://github.com/coder/internal/issues/954#issuecomment-3237154735

The cause appears to be related to the assignment of `time.Now()` as the
`LastSeenAt` time when creating a provisioner which can flake with the
calculated scheduled next autostart and the code to set then
`require.Eventually` the updated provisioner LastSeenAt.

Instead we should simply calculate all time values for the stale portion
of the test based on the provisioners LastSeenAt value to avoid such
issues.

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-09-01 08:52:34 -07:00
Mathias Fredriksson 3470632db3 feat(cli): add coder exp task delete (#19644)
Fixes coder/internal#897
2025-09-01 11:14:13 +03:00
Cian Johnston 3ac36b8a1e chore(dogfood): gitconfig: allow email change (#19650) 2025-09-01 08:46:46 +01:00
Dean Sheather 39bf3ba628 chore: replace GetManagedAgentCount query with aggregate table (#19636)
- Removes GetManagedAgentCount query
- Adds new table `usage_events_daily` which stores aggregated usage
events by the type and UTC day
- Adds trigger to update the values in this table when a new row is
inserted into `usage_events`
- Adds a migration that adds `usage_events_daily` rows for existing data
in `usage_events`
- Adds tests for the trigger
- Adds tests for the backfill query in the migration

Since the `usage_events` table is unreleased currently, this migration
will do nothing on real deployments and will only affect preview
deployments such as dogfood.

Closes https://github.com/coder/internal/issues/943
2025-08-30 03:39:37 +10:00
Danielle Maywood 433f9c4a38 refactor: modify task creation endpoint to return a task, not workspace (#19637)
Relates to https://github.com/coder/internal/issues/898

Refactor the `POST /api/experimental/tasks/{user}` endpoint to return a
codersdk.Task instead of a codersdk.Workspace
2025-08-29 16:32:19 +01:00
Atif Ali 6e55ed8d08 chore(docs): update external-workspace image (#19608) 2025-08-29 19:55:02 +05:00
Susana Ferreira 353f5dedc1 fix(coderd): fix logic for reporting prebuilt workspace duration metric (#19641)
## Description

When creating a prebuilt workspace, both `flags.IsPrebuild` and
`flags.IsFirstBuild` are true. Previously, the logic rejected cases with
multiple flags, so `coderd_workspace_creation_duration_seconds` wasn’t
updated for prebuilt creations. This is the only valid scenario where
two flags can be true.

## Changes

* Fix logic to update `coderd_workspace_creation_duration_seconds`
metric for prebuilt workspaces.
* Add prebuild helper functions to coderdenttest (other prebuild tests
can reuse this).
* Update workspace's provisionerdmetric tests to include this metric.

Follow-up: https://github.com/coder/coder/pull/19503
Related to: https://github.com/coder/coder/issues/19528
2025-08-29 15:48:48 +01:00
blink-so[bot] 02ecf32afe docs: replace offline deployments terminology to air-gapped (#19625)
This PR comprehensively updates the offline deployments documentation to
use more precise "air-gapped" terminology and improves consistency
throughout the documentation.

## Changes Made

### Terminology Updates
- **Title**: Changed from "Offline Deployments" to "Air-gapped
Deployments"
- **Summary**: Updated to prioritize "air-gapped" terminology and added
"disconnected" to cover additional deployment scenarios
- **Content**: Updated tutorial references to use "air-gapped" instead
of "offline"
- **Section headers**: 
  - Changed "Offline container images" to "Air-gapped container images"
  - Changed "Offline docs" to "Air-gapped docs"
- **Table headers**: Changed "Offline deployments" to "Air-gapped
deployments"

### Navigation & URL Structure
- **Navigation title**: Updated `docs/manifest.json` to show "Air-gapped
Deployments" in sidebar
- **Navigation description**: Updated to "Run Coder in air-gapped /
disconnected / offline environments"
- **File rename**: `docs/install/offline.md` → `docs/install/airgap.md`
for consistency
- **URL change**: `/install/offline` → `/install/airgap`
- **Subsection anchors**:
  - `/install/offline#offline-docs` → `/install/airgap#airgap-docs`
- `/install/offline#offline-container-images` →
`/install/airgap#airgap-container-images`

### Internal Links & References
Updated all internal documentation links:
- `docs/admin/integrations/index.md`
- `docs/admin/networking/index.md`
- `docs/changelogs/v0.27.0.md` (including anchor reference)
- `docs/tutorials/faqs.md`

### Backward Compatibility
- **Redirects**: Added `docs/_redirects` with 301 redirects:
  - `/install/offline` → `/install/airgap`
  - `/install/offline#offline-docs` → `/install/airgap#airgap-docs`
- `/install/offline#offline-container-images` →
`/install/airgap#airgap-container-images`
- **Content**: Maintains "offline" in the description for broader
understanding
- **Deep links**: All subsection anchors redirect properly to maintain
existing bookmarks

## Rationale

- **"Air-gapped"** is more precise and commonly used in
enterprise/security contexts
- **"Disconnected"** covers additional scenarios where networks may be
temporarily or partially isolated
- **Consistency** ensures filename, URL, navigation, content, and
subsection anchors all align with the same terminology
- **Backward compatibility** maintained through comprehensive redirects
to prevent broken links at any level

## Testing

- [x] Verified all internal links point to the new URL structure
- [x] Confirmed navigation title updates correctly
- [x] Ensured content accuracy is maintained
- [x] Added redirects for backward compatibility (main page +
subsections)
- [x] Updated all cross-references in related documentation
- [x] Verified subsection anchor redirects work properly
- [x] Confirmed no unnecessary .md file redirects

## Result

Complete terminology consistency across:
-  Page title and headers
-  Navigation and breadcrumbs  
-  File names and URL structure
-  Internal documentation links
-  Table headers and section titles
-  Subsection anchors and deep links
-  Backward compatibility via comprehensive redirects

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: david-fraley <67079030+david-fraley@users.noreply.github.com>
2025-08-29 09:34:44 -05:00
Mathias Fredriksson e5ac640e5e feat(coderd): add tasks delete endpoint (#19638)
This change adds a DELETE endpoint for tasks (for now, alias of
workspace build delete transition).

Fixes coder/internal#903
2025-08-29 13:54:54 +00:00
Dean Sheather 605dad8b1f fix: suppress license expiry warning if a new license covers the gap (#19601)
Previously, if you had a new license that would start before the current
one fully expired, you would get a warning. Now, the license validity
periods are merged together, and a warning is only generated based on
the end of the current contiguous period of license coverage.

Closes #19498
2025-08-29 13:53:23 +00:00
Danielle Maywood 29a731375e refactor: untangle workspace creation from http logic (#19639)
Coder Tasks requires us to create a workspace, but we want to be able to
return a `codersdk.Task` instead of a `codersdk.Workspace`. This
requires untangling `createWorkspace` from directly writing to
`http.ResponseWriter`.
2025-08-29 14:17:33 +01:00
Hugo Dutka 7365da1110 chore(coderd/database/dbauthz): migrate TestSystemFunctions to mocked DB (#19301)
Related to https://github.com/coder/internal/issues/869

---------

Signed-off-by: Danny Kopping <danny@coder.com>
Co-authored-by: Danny Kopping <danny@coder.com>
2025-08-29 11:04:11 +02:00
Spike Curtis 192c81e8f9 chore: refactor codersdk to use SessionTokenProvider (#19565)
Refactors `codersdk.Client`'s use of session tokens to use a `SessionTokenProvider`, which abstracts the obtaining and storing of the session token.

The main motiviation is to unify Agent authentication an an upstack PR, which can use cloud instance identity via token exchange, rather than a fixed session token.

However, the abstraction could also allow functionality like obtaining the session token from other external sources like the OS credential manager, or an external secret/key management system like Vault.
2025-08-29 10:41:32 +02:00
Ethan f721f3d9d7 chore: add --disable-direct to coder exp scaletest workspace-traffic --ssh (#19632)
Relates to https://github.com/coder/internal/issues/888

As part of our renewed connection scaletesting efforts, we want to
scaletest coder in a scenario where direct connections aren't available
(relatively common for our customers), and all concurrent connections
are relayed via DERP.

This PR adds a flag, `--disable-direct` that can be included on the
existing`coder exp scaletest workspace-traffic -ssh` to disable direct
connections.
2025-08-29 17:02:13 +10:00
Spike Curtis 71ea919c2c chore: upgrade our tailscale fork to address CVE (#19634)
# Update dependencies: Tailscale and xz compression library

This PR updates two dependencies:
- Bumps our fork of Tailscale from
`v1.1.1-0.20250729141742-067f1e5d9716` to
`v1.1.1-0.20250829055033-3536204c8d21`
- Updates the xz compression library from `v0.5.12` to `v0.5.15`
2025-08-29 10:39:35 +04:00
Callum Styan 321c2b8fce fix: fix flake in TestExecutorAutostartSkipsWhenNoProvisionersAvailable (#19478)
The flake here had two causes:
1. related to usage of time.Now() in MustWaitForProvisionersAvailable
and
2. the fact that UpdateProvisionerLastSeenAt can not use a time that is
further in the past than the current LastSeenAt time

Previously the test here was calling
`coderdtest.MustWaitForProvisionersAvailable` which was using `time.Now`
rather than the next tick time like the real `hasProvisionersAvailable`
function does. Additionally, when using `UpdateProvisionerLastSeenAt`
the underlying db query enforces that the time we're trying to set
`LastSeenAt` to cannot be older than the current value.

I was able to reliably reproduce the flake by executing both the
`UpdateProvisionerLastSeenAt` call and `tickCh <- next` in their own
goroutines, the former with a small sleep to reliably ensure we'd
trigger the autobuild before we set the `LastSeenAt` time. That's when I
also noticed that `coderdtest.MustWaitForProvisionersAvailable` was
using `time.Now` instead of the tick time. When I updated that function
to take in a tick time + added a 2nd call to
`UpdateProvisionerLastSeenAt` to set an original non-stale time, we
could then never get the test to pass because the later call to set the
stale time would not actually modify `LastSeenAt`. On top of that,
calling the provisioner daemons closer in the middle of the function
doesn't really do anything of value in this test.

**The fix for the flake is to keep the go routines, ensuring there would
be a flake if there was not a relevant fix, but to include the fix which
is to ensure that we explicitly wait for the provisioner to be stale
before passing the time to `tickCh`.**

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-28 12:07:50 -07:00
Rafael Rodriguez 95dccf3424 feat: add user filter to templates page to filter by template author (#19561)
## Summary

In this pull request we're adding a user selector dropdown to the
templates page that allows an admin to select a user. The selected user
will be used in the `author:<username>` filter to filter the templates
list by a template author.

Closes: https://github.com/coder/coder/issues/19547

### Changes

Admin View - Can view all users

<img width="1622" height="489" alt="Screenshot 2025-08-26 at 5 24 07 PM"
src="https://github.com/user-attachments/assets/f2ace51e-5834-4bed-bd4f-14c6800816f0"
/>

Admin View - Using the user filter


https://github.com/user-attachments/assets/b4570cca-6dff-45c1-89ab-844f126bdc0f

User view - Cannot view all users

<img width="1617" height="455" alt="Screenshot 2025-08-26 at 5 25 38 PM"
src="https://github.com/user-attachments/assets/f8680acb-d463-4a22-826e-053f0e7dbe21"
/>

### Testing

- Added storybook test for viewing the templates page with a user
dropdown
2025-08-28 13:59:28 -05:00
Danielle Maywood 75b38f12d8 fix(coderd): ignore sub agents when converting a task to workspace (#19624)
Addresses comment raised on previous PR
https://github.com/coder/coder/pull/19619#discussion_r2307943410

We know we can skip sub agents when searching for which agent is related
to the task, as this is not an explicitly supported feature at the
moment. When we come to properly setting up a Task -> Agent relationship
this limitation will be dropped.
2025-08-28 18:27:31 +01:00
Cian Johnston 26e8a35af0 fix(scripts): unset CODER_URL and CODER_SESSION_TOKEN for development server (#19620)
The coder-login module was recently updated to set environment variables
instead of running `coder login`.

This unfortunately broke `develop.sh`:

```
Encountered an error running "coder login", see "coder login --help" for more information
error: Trace=[create api key: ]
```

Unsetting these env vars so that they do not interfere.
2025-08-28 17:42:50 +01:00
Jon Ayers ebfc98df58 chore: move guards to satisfy CodeQL (#19600) 2025-08-28 12:33:51 -04:00
Danielle Maywood 43765864e5 chore: add fields to codersdk.Task (#19619)
Closes https://github.com/coder/internal/issues/949

Adds the following fields to `codersdk.Task`

- OwnerName
- TemplateName
- TemplateDisplayName
- TemplateIcon
- WorkspaceAgentID
- WorkspaceAgentLifecycle
- WorkspaceAgentHealth

The implementation is unfortunately not compatible with multiple agents
as we have no reliable way to tell which agent has the AI task running
in it. For now we just pick the first agent found, but in the future
this will need to be changed.
2025-08-28 17:28:47 +01:00
Brett Kolodny c095e9ca60 fix: set radio item to relative position (#19621)
Closes #19564 


https://github.com/user-attachments/assets/dc70976c-fb46-46ed-92b0-6e0430529fe8
2025-08-28 12:25:40 -04:00
Charlie Voiselle 0aa0986b29 fix: update link to CLI server experiments documentation (#19589)
This pull request makes a minor update to an external documentation link
in the `OverviewPageView` component. The change ensures that users are
directed to the correct reference section for CLI server experiments.

* Updated the `href` attribute in the documentation link to point to
`https://coder.com/docs/reference/cli/server#--experiments` instead of
the previous URL, improving the accuracy of the reference for users.
2025-08-28 12:21:09 -04:00
blink-so[bot] b61a5d7c33 feat: replace the jetbrains-gateway module with the jetbrains toolbox (#19583)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Atif Ali <atif@coder.com>
2025-08-28 20:49:43 +05:00
Bruno Quaresma abc946c5bd fix: don't show prebuild workspaces as tasks (#19572)
Fixes https://github.com/coder/coder/issues/19570

**Before:**

<img width="2776" height="1274" alt="image"
src="https://github.com/user-attachments/assets/bd260dbf-0868-4e4a-9997-b2fd3c99f33c"
/>

**After:**

<img width="1624" height="970" alt="Screenshot 2025-08-27 at 09 11 31"
src="https://github.com/user-attachments/assets/c85489d8-031c-4cbe-8298-6fee04e30b1f"
/>

**Things to notice:**
- There is a task without a prompt at the end, it should not happen
anymore
- There is no test for this because we mock the API function and the fix
was inside of it. It is a temp solution, the API should be ready to be
used by the FE soon
2025-08-28 12:14:53 -03:00
Susana Ferreira 0ab345ca84 feat: add prebuild timing metrics to Prometheus (#19503)
## Description

This PR introduces one counter and two histograms related to workspace
creation and claiming. The goal is to provide clearer observability into
how workspaces are created (regular vs prebuild) and the time cost of
those operations.

### `coderd_workspace_creation_total`

* Metric type: Counter
* Name: `coderd_workspace_creation_total`
* Labels: `organization_name`, `template_name`, `preset_name`

This counter tracks whether a regular workspace (not created from a
prebuild pool) was created using a preset or not.
Currently, we already expose `coderd_prebuilt_workspaces_claimed_total`
for claimed prebuilt workspaces, but we lack a comparable metric for
regular workspace creations. This metric fills that gap, making it
possible to compare regular creations against claims.

Implementation notes:
* Exposed as a `coderd_` metric, consistent with other workspace-related
metrics (e.g. `coderd_api_workspace_latest_build`:
https://github.com/coder/coder/blob/main/coderd/prometheusmetrics/prometheusmetrics.go#L149).
* Every `defaultRefreshRate` (1 minute ), DB query
`GetRegularWorkspaceCreateMetrics` is executed to fetch all regular
workspaces (not created from a prebuild pool).
* The counter is updated with the total from all time (not just since
metric introduction). This differs from the histograms below, which only
accumulate from their introduction forward.

### `coderd_workspace_creation_duration_seconds` &
`coderd_prebuilt_workspace_claim_duration_seconds`

* Metric types: Histogram
* Names:
  * `coderd_workspace_creation_duration_seconds`
* Labels: `organization_name`, `template_name`, `preset_name`, `type`
(`regular`, `prebuild`)
  * `coderd_prebuilt_workspace_claim_duration_seconds`
    * Labels: `organization_name`, `template_name`, `preset_name`

We already have `coderd_provisionerd_workspace_build_timings_seconds`,
which tracks build run times for all workspace builds handled by the
provisioner daemon.
However, in the context of this issue, we are only interested in
creation and claim build times, not all transitions; additionally, this
metric does not include `preset_name`, and adding it there would
significantly increase cardinality. Therefore, separate more focused
metrics are introduced here:
* `coderd_workspace_creation_duration_seconds`: Build time to create a
workspace (either a regular workspace or the build into a prebuild pool,
for prebuild initial provisioning build).
* `coderd_prebuilt_workspace_claim_duration_seconds`: Time to claim a
prebuilt workspace from the pool.

The reason for two separate histograms is that:
* Creation (regular or prebuild): provisioning builds with similar time
magnitude, generally expected to take longer than a claim operation.
* Claim: expected to be a much faster provisioning build.

#### Native histogram usage

Provisioning times vary widely between projects. Using static buckets
risks unbalanced or poorly informative histograms.
To address this, these metrics use [Prometheus native
histograms](https://prometheus.io/docs/specs/native_histograms/):
* First introduced in Prometheus v2.40.0
* Recommended stable usage from v2.45+
* Requires Go client `prometheus/client_golang` v1.15.0+
* Experimental and must be explicitly enabled on the server
(`--enable-feature=native-histograms`)

For compatibility, we also retain a classic bucket definition (aligned
with the existing provisioner metric:
https://github.com/coder/coder/blob/main/provisionerd/provisionerd.go#L182-L189).
* If native histograms are enabled, Prometheus ingests the
high-resolution histogram.
* If not, it falls back to the predefined buckets.

Implementation notes:
* Unlike the counter, these histograms are updated in real-time at
workspace build job completion.
* They reflect data only from the point of introduction forward (no
historical backfill).

## Relates to 

Closes: https://github.com/coder/coder/issues/19528
Native histograms tested in observability stack:
https://github.com/coder/observability/pull/50
2025-08-28 15:00:26 +01:00
Kacper Sawicki 9fd33a7653 chore(docs): set external workspaces as premium feature in manifest.json (#19615) 2025-08-28 14:51:43 +02:00
Cian Johnston 8d6a322344 chore(docs): document automatic task naming (#19614)
Updates our experimental AI docs on how to automatically generate task
names.

---------

Co-authored-by: Ben Potter <ben@coder.com>
2025-08-28 12:58:36 +01:00
Danielle Maywood 347ab5b348 fix(coderd/taskname): ensure generated name is within 32 byte limit (#19612)
The previous logic verified a generated name was valid, _and then
appended a suffix to it_. This was flawed as it would allow a 32
character name, and then append an extra 5 characters to it.

Instead we now append the suffix _and then_ verify it is valid.
2025-08-28 12:58:02 +01:00
Cian Johnston 8c731a087e chore(coderd/database/dbauthz): refactor TestPing, TestNew, TestInTX to use dbmock (#19604)
Part of https://github.com/coder/internal/issues/869
2025-08-28 12:37:13 +01:00
Ethan 43fe44db50 chore: delete scaletest infrastructure (#19603)
We've successfully migrated the latest iteration of our scaletest
infrastructure (`scaletest/terraform/action`) to
https://github.com/coder/scaletest (private repo). This PR removes the
older iterations, and the scriptsfor spinning up & running the load
generators against that infrastructure (`scaletest.sh`). The tooling for
generating load against a Coder deployment remains untouched, as does
the public documentation for that tooling (i.e. `coder exp scaletest`).

If we ever need that old scaletest Terraform code, it's always in the
git history!
2025-08-28 19:07:50 +10:00
Kacper Sawicki 74fb2aaf08 fix: fix flake in TestPatchCancelWorkspaceBuild/User_is_allowed_to_cancel (#19522)
Fixes: https://github.com/coder/internal/issues/885
2025-08-28 10:24:43 +02:00
Kacper Sawicki 33509f2c20 feat(docs): add docs for external workspaces (#19437)
## Description
This PR introduces documentation for recently merged feature: external
workspaces.

https://github.com/coder/coder/pull/19285
https://github.com/coder/coder/pull/19286
https://github.com/coder/coder/pull/19287
https://github.com/coder/coder/pull/19288

---------

Co-authored-by: Atif Ali <atif@coder.com>
2025-08-28 10:12:08 +02:00
Jon Ayers be40b8ca3e chore: set more explicit guards for serving bin files (#19597) 2025-08-27 19:12:05 -07:00
Jon Ayers 0f1fc88d5a chore: pin devcontainer-cli for .devcontainer config (#19594) 2025-08-27 19:26:47 -04:00
Jon Ayers 252f7d461e chore: pin dependencies in Dockerfiles (#19587)
Fixes up some security issues related to lack of pinned dependencies
2025-08-27 18:41:28 -04:00
dependabot[bot] b729c29ab9 chore: bump coder/cursor/coder from 1.3.1 to 1.3.2 in /dogfood/coder (#19593)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.3.1&new-version=1.3.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 22:33:19 +00:00
dependabot[bot] 64c50534e7 chore: bump coder/windsurf/coder from 1.1.1 to 1.2.0 in /dogfood/coder (#19592)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/windsurf/coder&package-manager=terraform&previous-version=1.1.1&new-version=1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 22:27:04 +00:00
dependabot[bot] dbf42612e2 chore: bump coder/coder-login/coder from 1.0.31 to 1.1.0 in /dogfood/coder-envbuilder (#19590)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.31&new-version=1.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 22:06:48 +00:00
dependabot[bot] 58a3cfb9fd chore: bump coder/coder-login/coder from 1.0.31 to 1.1.0 in /dogfood/coder (#19586)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.31&new-version=1.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 21:07:48 +00:00
Bruno Quaresma 491977db90 refactor: remove activity column from workspaces table (#19555)
Fixes https://github.com/coder/coder/issues/19504
2025-08-27 15:52:27 -03:00
Andrew Aquino 6c01a772eb feat: show warning in AppLink if hostname is long enough to break port forwarding (#19506)
closes #15178 

<img width="1840" height="1191" alt="image"
src="https://github.com/user-attachments/assets/26d2002a-fa2f-46eb-9c06-b29420123f0a"
/>
2025-08-27 11:51:41 -07:00
dependabot[bot] fe01ae767e chore: bump github.com/aws/aws-sdk-go-v2/config from 1.30.2 to 1.31.3 (#19582)
Bumps
[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)
from 1.30.2 to 1.31.3.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/e1909a587c354bd1b2962eebaba94c16838669a5"><code>e1909a5</code></a>
Release 2025-08-26</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/2dead494608f76e4d3fe649f643457f224dd434d"><code>2dead49</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/8f87507c4d78351202d05ad1d75dcb8b40ad1882"><code>8f87507</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/9f13166e6c118ee340f5b2e666d44d67141c7327"><code>9f13166</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/92833dd046ba7e5afe1aafc56d0542c6668b4faf"><code>92833dd</code></a>
drop opsworks and opsworkscm (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3172">#3172</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/50d1314f18412311633a2a9d9faec813e3998420"><code>50d1314</code></a>
Release 2025-08-25.2</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/d163c8cb48dcb1bfa07f51c26cb3cbde0d191159"><code>d163c8c</code></a>
Deprecate opsworks/opsworkscm (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3171">#3171</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f0a97a78c219cb6b0ceacfddc8107b850a87aa08"><code>f0a97a7</code></a>
Release 2025-08-25</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/3b73a3be8423cd3e099e3754830ebeefb5518afe"><code>3b73a3b</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/9c6a548460fe2cbd8a830ea5a6ed6bf62b667d82"><code>9c6a548</code></a>
Update endpoints model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/v1.30.2...config/v1.31.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/config&package-manager=go_modules&previous-version=1.30.2&new-version=1.31.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 18:46:28 +00:00
Jakub Domeracki 0b6f353b99 chore: override version of DOMPurify (#19574)
The [DOMPurify](https://github.com/cure53/DOMPurify) version used by the
latest version of
[monaco-editor](https://github.com/microsoft/monaco-editor) contains [at
least one known
CVE](https://security.snyk.io/package/npm/dompurify/3.1.7)
https://github.com/coder/coder/issues/19445
https://github.com/coder/coder/pull/19446

This PR aims to override the version to resolve security issues:
https://www.npmjs.com/package/dompurify/v/3.2.6
2025-08-27 19:55:57 +02:00
Hugo Dutka cc308d1754 chore(coderd/database/dbauthz): migrate TestWorkspace to mocked DB (#19306)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: Cian Johnston <cian@coder.com>
2025-08-27 19:11:28 +02:00
dependabot[bot] 4c0c7de918 chore: bump coder/claude-code/coder from 2.1.0 to 2.2.0 in /dogfood/coder (#19580)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=2.1.0&new-version=2.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 16:49:36 +00:00
Hugo Dutka 2888055782 chore(coderd/database/dbauthz): migrate the ProvisionerJob and Organization tests to mocked DB (#19303)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-27 18:30:04 +02:00
Hugo Dutka 88c0edce24 chore(coderd/database/dbauthz): migrate the Notifications and Prebuilds tests to use mocked DB (#19302)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-27 18:27:35 +02:00
Hugo Dutka a2945b00fd fix: revert github.com/mark3labs/mcp-go to 0.32.0 (#19578)
This PR reverts github.com/mark3labs/mcp-go to 0.32.0, which was the
version used by https://github.com/coder/coder/pull/18670 that
introduced MCP HTTP support in Coder, and ensures dependabot doesn't
upgrade it automatically.

A bug has been introduced in a recent version of mcp-go that causes some
HTTP MCP requests to fail with the error message

```
[erro]  coderd.mcp: Failed to handle sampling response: no active session found for session mcp-session-e3cb7333-284f-46bd-a009-d611f1b690f6
```

The bug may be related to this issue:
https://github.com/mark3labs/mcp-go/issues/554.
2025-08-27 16:05:44 +00:00
Sas Swart 4e9ee80882 feat(enterprise/coderd): allow system users to be added to groups (#19518)
closes https://github.com/coder/coder/issues/18274

This pull request makes system users visible in various group related
queries so that they can be added to and removed from groups. This
allows system user quotas to be configured. System users are still
ignored in certain queries, such as when license seat consumption is
determined.

This pull request further ensures the existence of a
"coder_prebuilt_workspaces" group in any organization that needs
prebuilt workspaces

---------

Co-authored-by: Susana Ferreira <susana@coder.com>
2025-08-27 16:57:59 +02:00
Cian Johnston dbc6c980b9 fix(coderd): filter out non-task workspaces in api.tasksList (#19559)
Quick fix for following issue in CLI:
```
$ go run ./cmd/coder exp task list
Encountered an error running "coder exp task list", see "coder exp task list --help" for more information
error: Trace=[list tasks: ]
Internal error fetching task prompts and states.
workspace 14d548f4-aaad-40dd-833b-6ffe9c9d31bc is not an AI task workspace
exit status 1
```

This occurs in a short time window directly after creating a new task.

I took a stab at writing a test for this, but ran out of time. I'm not
entirely sure what causes non-AI-task workspaces to be returned in the
query but I suspect it's when a workspace build is pending or running.
2025-08-27 15:32:22 +01:00
Susana Ferreira 5f68807713 chore(dogfood): update workspace lifecycle ignore_changes with env and entrypoint (#19571)
Update the dogfood "Write Coder on Coder" template to ignore env and
entrypoint changes in workspace's lifecycle block according to
https://coder.com/docs/admin/templates/extending-templates/prebuilt-workspaces#template-configuration-best-practices

Related to internal thread:
https://codercom.slack.com/archives/C07GRNNRW03/p1756295446304449
Related to Prebuilt claim notifications
<img width="1320" height="980" alt="Screenshot 2025-08-27 at 13 55 21"
src="https://github.com/user-attachments/assets/b475d057-76c8-4e9d-8e6d-559b292aafe1"
/>
2025-08-27 14:23:44 +01:00
Ethan fcef2ec3a5 test: dial socket when testing coder ssh unix socket forwarding (#19563)
Closes https://github.com/coder/internal/issues/942

The flakey test, `RemoteForwardUnixSocket`, was using `netstat` to check if the unix socket was forwarded properly. In the flake, it looks like netstat was hanging. This PR has `RemoteForwardUnixSocket` be rewritten to match the implementation of `RemoteForwardMultipleUnixSockets`, where we send bytes over the socket in-process instead. More importantly, that test hasn't flaked (yet).

Note: The implementation has been copied directly from the other test, comments and all.
2025-08-27 21:30:54 +10:00
Danielle Maywood 5c2022e08c fix(coderd): fix devcontainer mock recreate flaky test (#19568)
Fix https://github.com/coder/internal/issues/826

I wasn't able to recreate the flake, but my underlying assumption (from
reading the logs we have) is that there is a race condition where the
test will begin cleanup before the dev container recreation goroutine
has a chance to call `devcontainer up`.

I've refactored the test slightly and made it so that the test will not
finish until either the context has timed out, or `Up` has been called.
2025-08-27 12:07:47 +01:00
Cian Johnston bd139f3a43 fix(coderd/provisionerdserver): workaround lack of coder_ai_task resource on stop transition (#19560)
This works around the issue where a task may "disappear" on stop.
Re-using the previous value of `has_ai_task` and `sidebar_app_id` on a
stop transition.

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-08-27 10:33:17 +01:00
Cian Johnston 8083d9d5c8 fix(cli): attach org option to task create (#19554)
Attaches the org context options to the exp task create cmd
2025-08-26 19:42:02 +01:00
Callum Styan f0cf0adcc8 feat: log additional known non-sensitive query param fields in the httpmw logger (#19532)
Blink helped here but it's suggestion was to have a set map of sensitive
fields based on predefined constants in various files, such as the api
token string names. For now we'll add additional query param logging for fields we know are safe/that we want to log, such as query pagination/limit fields and ID list counts which may help identify P99 DB query latencies.

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-26 11:14:53 -07:00
Brett Kolodny d274f832b3 chore: improve scroll behavior of DashboardLayout wrapped pages (#19396)
Updates the the `DashboardLayout` to create a singular scroll area
between the top nav bar and the deployment banner on the bottom. Also
improves the scroll behavior of the org settings pages.

<img width="2122" height="1413" alt="CleanShot 2025-08-18 at 13 53 01"
src="https://github.com/user-attachments/assets/a9920509-69e7-471d-ac0d-853cb212fcae"
/>




https://github.com/user-attachments/assets/128be43d-433f-4a0f-af5b-bbfb7d646345
2025-08-26 14:14:44 -04:00
Bruno Quaresma 59525f879b feat: display startup script logs while agent is starting (#19530)
Closes https://github.com/coder/coder/issues/19363

**Screenshot:**

<img width="1318" height="753" alt="Screenshot 2025-08-25 at 11 02 25"
src="https://github.com/user-attachments/assets/6fa1d4c7-dddb-4db9-a9f0-86986b3628d8"
/>

**Demo:**


https://github.com/user-attachments/assets/07a68e30-b776-44f9-b4ca-e2dd8d124281
2025-08-26 12:45:07 -03:00
Bruno Quaresma a1546b5414 refactor: replace task prompt by workspace name in the topbar (#19531)
Fixes https://github.com/coder/coder/issues/19524

**Screenshot:**

<img width="1512" height="773" alt="Screenshot 2025-08-25 at 14 59 11"
src="https://github.com/user-attachments/assets/5d958302-04b3-4cd6-8e59-41a3048798be"
/>

**Demo:**


https://github.com/user-attachments/assets/040490ea-b276-48d7-9f3a-d8261d982bb5

**Changes:**
- Change "View workspace" button to icon + "Workspace"
- Updated the title to use the workspace name instead of the prompt
- Added a prompt button, so the user can see what is the prompt that is
running + copy it easily
2025-08-26 12:24:52 -03:00
Cian Johnston 5baaf2747d feat(cli): implement exp task status command (#19533)
Closes https://github.com/coder/internal/issues/900

- Implements `coder exp task status`
- Adds `testutil.MustURL` helper
2025-08-26 16:01:35 +01:00
Danielle Maywood c19f430f35 fix(cli): display workspace created at time instead of current time (#19553)
Applying a suggestion from
https://github.com/coder/coder/pull/19492#discussion_r2301175791
2025-08-26 15:57:44 +01:00
Steven Masley ef0d74fb75 chore: improve performance of 'GetLatestWorkspaceBuildsByWorkspaceIDs' (#19452)
Closes https://github.com/coder/internal/issues/716

This prevents a scan over the entire `workspace_build` table by removing
a `join`. This is still imperfect as we are still scanning over the
number of builds for the workspaces in the arguments. Ideally we would
have some index or something precomputed. Then we could skip scanning
over the builds for the correct workspaces that are not the latest.
2025-08-26 09:26:11 -05:00
Danielle Maywood 63c1325ad5 feat(cli): add exp task create command (#19492)
Partially implements https://github.com/coder/internal/issues/893

This isn't the full implementation of `coder exp tasks create` as
defined in the issue, but it is the minimum required to create a task.
2025-08-26 15:24:42 +01:00
dependabot[bot] 73544a1cc8 chore: bump github.com/mark3labs/mcp-go from 0.37.0 to 0.38.0 (#19544)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.37.0 to 0.38.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.38.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: resolve stdio transport race condition for concurrent tool
calls by <a href="https://github.com/ezynda3"><code>@​ezynda3</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/529">mark3labs/mcp-go#529</a></li>
<li>fix CallToolResult json marshaling and unmarshaling: need
structuredC… by <a
href="https://github.com/sunfuze"><code>@​sunfuze</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/523">mark3labs/mcp-go#523</a></li>
<li>feat: refactor constants for resource content types by <a
href="https://github.com/CocaineCong"><code>@​CocaineCong</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/489">mark3labs/mcp-go#489</a></li>
<li>feat: add missing SetPrompts, DeleteResources, and SetResources
methods by <a
href="https://github.com/vasayxtx"><code>@​vasayxtx</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/445">mark3labs/mcp-go#445</a></li>
<li>feat: support creating tools using go-struct-style input schema by
<a href="https://github.com/Grivn"><code>@​Grivn</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/534">mark3labs/mcp-go#534</a></li>
<li>fix: remove duplicate methods server.SetPrompts &amp;
server.SetResources by <a
href="https://github.com/matthisholleville"><code>@​matthisholleville</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/542">mark3labs/mcp-go#542</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/sunfuze"><code>@​sunfuze</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/523">mark3labs/mcp-go#523</a></li>
<li><a href="https://github.com/Grivn"><code>@​Grivn</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/534">mark3labs/mcp-go#534</a></li>
<li><a
href="https://github.com/matthisholleville"><code>@​matthisholleville</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/542">mark3labs/mcp-go#542</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.37.0...v0.38.0">https://github.com/mark3labs/mcp-go/compare/v0.37.0...v0.38.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/35ebaa54ae30076f93c4beb1f7269004cf0e90be"><code>35ebaa5</code></a>
Add releases notification</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9f16336f83e17d0659fc49798f233f9dcd910da0"><code>9f16336</code></a>
fix: remove duplicate methods server.SetPrompts &amp;
server.SetResources (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/542">#542</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8a18f594dd9ec9df1daa382aa611d83eba8f809c"><code>8a18f59</code></a>
feat: support creating tools using go-struct-style input schema (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/534">#534</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a3d34d980b9a6bfbbaa78cfc0cfb9c78d9b6f7da"><code>a3d34d9</code></a>
feat: add missing SetPrompts, DeleteResources, and SetResources methods
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/445">#445</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8a88d013b3bf38cc37f0ef7fa0b4d7b957b8a6fc"><code>8a88d01</code></a>
feat:add constants for resource content types (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/489">#489</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9c5d30312932f87f51257af2575936976d1c1622"><code>9c5d303</code></a>
fix CallToolResult json marshaling and unmarshaling: need structuredC…
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/523">#523</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/93935261086dda133e3e4b6447304e24deb56a21"><code>9393526</code></a>
fix: resolve stdio transport race condition for concurrent tool calls
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/529">#529</a>)</li>
<li>See full diff in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.37.0...v0.38.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.37.0&new-version=0.38.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:36:38 +00:00
dependabot[bot] 7b0a2dc2a0 chore: bump github.com/valyala/fasthttp from 1.64.0 to 1.65.0 (#19539)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.64.0 to 1.65.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.65.0</h2>
<h2>‼️ ⚠️ backwards incompatibility! ⚠️ ‼️</h2>
<p>In this version of fasthttp, headers delimited by just
<code>\n</code> (instead of <code>\r\n</code>) are no longer
supported!</p>
<h2>What's Changed</h2>
<ul>
<li>Rewrite header parsing to improve spec compliance by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2030">valyala/fasthttp#2030</a></li>
<li>Simplify Client.Do function and lock usage by <a
href="https://github.com/byte0o"><code>@​byte0o</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2038">valyala/fasthttp#2038</a></li>
<li>chore(deps): bump securego/gosec from 2.22.5 to 2.22.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2039">valyala/fasthttp#2039</a></li>
<li>Fix trailer security by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2043">valyala/fasthttp#2043</a></li>
<li>Fix RequestHeader.ContentLength() if disableSpecialHeader is true by
<a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2042">valyala/fasthttp#2042</a></li>
<li>Add reuseport support for Solaris by <a
href="https://github.com/jwntree"><code>@​jwntree</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2046">valyala/fasthttp#2046</a></li>
<li>test: replace atomic operations with atomic types by <a
href="https://github.com/alexandear"><code>@​alexandear</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2048">valyala/fasthttp#2048</a></li>
<li>chore(deps): bump golang.org/x/net from 0.42.0 to 0.43.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2049">valyala/fasthttp#2049</a></li>
<li>Optimize fs to have 0 allocations by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2052">valyala/fasthttp#2052</a></li>
<li>chore(deps): bump actions/checkout from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2055">valyala/fasthttp#2055</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/jwntree"><code>@​jwntree</code></a> made
their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2046">valyala/fasthttp#2046</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.64.0...v1.65.0">https://github.com/valyala/fasthttp/compare/v1.64.0...v1.65.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/f9d84d7c5242423b3ddac7ce6c671ff817274296"><code>f9d84d7</code></a>
Rewrite header parsing to improve spec compliance (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2030">#2030</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/89010cb2c614d1b0454440ffd4fe54e9d08505b4"><code>89010cb</code></a>
chore(deps): bump actions/checkout from 4 to 5 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2055">#2055</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/1828bd4eee29b489a516b8c01446e621b3a6953e"><code>1828bd4</code></a>
Optimize fs to have 0 allocations (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2052">#2052</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/81ebee8c79ae193cb2e30ed2b326ece3681278a8"><code>81ebee8</code></a>
Fix PeekKeys()</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/c20414a496d520c50299276aab29b43261e54d7c"><code>c20414a</code></a>
Remove BenchmarkCoarseTimeNow</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/3f641c3246225546dc80ffbdffaafb7ac38e4b82"><code>3f641c3</code></a>
chore(deps): bump golang.org/x/net from 0.42.0 to 0.43.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2049">#2049</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/51b494732003f551d59bf466e3927d9986f96eae"><code>51b4947</code></a>
test: replace atomic operations with atomic types (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2048">#2048</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/1d8fe19359b6f308806a2773713bfde7f13ddf29"><code>1d8fe19</code></a>
Add reuseport support for Solaris (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2046">#2046</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/01d533ad1561d9f2b8878f14e2267e12fc37db1a"><code>01d533a</code></a>
Fix RequestHeader.ContentLength() if disableSpecialHeader is true (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2042">#2042</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/a1c842f19eda39be4b4a60b9d5989aa41e0ba166"><code>a1c842f</code></a>
Fix trailer security (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2043">#2043</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/valyala/fasthttp/compare/v1.64.0...v1.65.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.64.0&new-version=1.65.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:14:41 +00:00
dependabot[bot] 2c1406ffe2 chore: bump github.com/brianvoe/gofakeit/v7 from 7.3.0 to 7.4.0 (#19537)
Bumps
[github.com/brianvoe/gofakeit/v7](https://github.com/brianvoe/gofakeit)
from 7.3.0 to 7.4.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/e2348ee0ad38880e92a28467eefeea73e83bea49"><code>e2348ee</code></a>
address - added unit</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/4f7e2ec5cb004701c50b8552eb7a2f7ac4f8453e"><code>4f7e2ec</code></a>
Merge pull request <a
href="https://redirect.github.com/brianvoe/gofakeit/issues/384">#384</a>
from Kzamirtay/fix-iso4217</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/de10081cdaf64c754743d8e16356e8ab49697059"><code>de10081</code></a>
fix wrong codes data currency by iso 4217</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/08d115b2b7886c80aa1024449e6f8f915964f6d0"><code>08d115b</code></a>
readme - added merch link</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/13e15a3392936b0c3f94d408f95562dd991c7577"><code>13e15a3</code></a>
image - merch image</li>
<li><a
href="https://github.com/brianvoe/gofakeit/commit/6b938f8ba0fd43d6f76a4340889c4a3f6ec2b66c"><code>6b938f8</code></a>
readme - added isbn</li>
<li>See full diff in <a
href="https://github.com/brianvoe/gofakeit/compare/v7.3.0...v7.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/brianvoe/gofakeit/v7&package-manager=go_modules&previous-version=7.3.0&new-version=7.4.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:10:15 +00:00
dependabot[bot] 8416882ebb chore: bump go.uber.org/mock from 0.5.0 to 0.6.0 (#19538)
Bumps [go.uber.org/mock](https://github.com/uber/mock) from 0.5.0 to
0.6.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uber/mock/releases">go.uber.org/mock's
releases</a>.</em></p>
<blockquote>
<h2>v0.6.0</h2>
<h2>0.6.0 (18 Aug 2025)</h2>
<h3>Added</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/258">#258</a>[]:
Archive mode: a new mockgen mode that generates mocks out of archive
files.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/276">#276</a>[]:
Fixed mockgen errors with go1.25 due to outdated golang.org/x/tools
dependency.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/258">#258</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/258">uber-go/mock#258</a>
<a href="https://redirect.github.com/uber/mock/issues/276">#276</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/276">uber-go/mock#276</a></p>
<h2>v0.5.2</h2>
<h2>0.5.2 (28 Apr 2025)</h2>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/248">#248</a>[]:
Fixed an issue with type aliases not being included in generated code
correctly.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/248">#248</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/248">uber-go/mock#248</a></p>
<h2>v0.5.1</h2>
<h2>0.5.1 (7 Apr 2025)</h2>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/220">#220</a>[]:
Package mode will now generate code that uses aliases of types
when they are used in the source.</li>
<li><a
href="https://redirect.github.com/uber/mock/issues/219">#219</a>[]:
Fixed a collision between function argument names and package names
in generated code.</li>
<li><a
href="https://redirect.github.com/uber/mock/issues/165">#165</a>[]:
Fixed an issue where aliases specified by <code>-imports</code> were not
being
respected in generated code.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/220">#220</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/220">uber-go/mock#220</a>
<a href="https://redirect.github.com/uber/mock/issues/219">#219</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/219">uber-go/mock#219</a>
<a href="https://redirect.github.com/uber/mock/issues/165">#165</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/165">uber-go/mock#165</a></p>
<p>Thanks to <a
href="https://github.com/mtoader"><code>@​mtoader</code></a> and <a
href="https://github.com/bstncartwright"><code>@​bstncartwright</code></a>
for their contributions to this release.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/uber-go/mock/blob/main/CHANGELOG.md">go.uber.org/mock's
changelog</a>.</em></p>
<blockquote>
<h2>0.6.0 (18 Aug 2025)</h2>
<h3>Added</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/258">#258</a>[]:
Archive mode: a new mockgen mode that generates mocks out of archive
files.</li>
<li><a
href="https://redirect.github.com/uber/mock/issues/262">#262</a>[]:
Support for specifying mock names when using the
<code>_gomock_archive</code> bazel rule.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/276">#276</a>[]:
Fixed mockgen errors with go1.25 due to outdated golang.org/x/tools
dependency.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/258">#258</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/258">uber-go/mock#258</a>
<a href="https://redirect.github.com/uber/mock/issues/262">#262</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/262">uber-go/mock#262</a>
<a href="https://redirect.github.com/uber/mock/issues/276">#276</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/276">uber-go/mock#276</a></p>
<h2>0.5.2 (28 Apr 2025)</h2>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/248">#248</a>[]:
Fixed an issue with type aliases not being included in generated code
correctly.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/248">#248</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/248">uber-go/mock#248</a></p>
<h2>0.5.1 (7 Apr 2025)</h2>
<h3>Fixed</h3>
<ul>
<li><a
href="https://redirect.github.com/uber/mock/issues/220">#220</a>[]:
Package mode will now generate code that uses aliases of types
when they are used in the source.</li>
<li><a
href="https://redirect.github.com/uber/mock/issues/219">#219</a>[]:
Fixed a collision between function argument names and package names
in generated code.</li>
<li><a
href="https://redirect.github.com/uber/mock/issues/165">#165</a>[]:
Fixed an issue where aliases specified by <code>-imports</code> were not
being
respected in generated code.</li>
</ul>
<p><a href="https://redirect.github.com/uber/mock/issues/220">#220</a>:
<a
href="https://redirect.github.com/uber-go/mock/pull/220">uber-go/mock#220</a>
<a href="https://redirect.github.com/uber/mock/issues/219">#219</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/219">uber-go/mock#219</a>
<a href="https://redirect.github.com/uber/mock/issues/165">#165</a>: <a
href="https://redirect.github.com/uber-go/mock/pull/165">uber-go/mock#165</a></p>
<p>Thanks to <a
href="https://github.com/mtoader"><code>@​mtoader</code></a> and <a
href="https://github.com/bstncartwright"><code>@​bstncartwright</code></a>
for their contributions to this release.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/uber-go/mock/commit/2d1c58167e30f380cf78e44a43b100a14767e817"><code>2d1c581</code></a>
Prepare release v0.6.0 (<a
href="https://redirect.github.com/uber/mock/issues/278">#278</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/c65419553997ae71c1542dc7733358c020d03880"><code>c654195</code></a>
Update CI to run 1.24/1.25 (<a
href="https://redirect.github.com/uber/mock/issues/277">#277</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/5900c74f02ff1a28eeb59f3e2a0ef6c27e217148"><code>5900c74</code></a>
update golang.org/x/tools to v0.36.0 (<a
href="https://redirect.github.com/uber/mock/issues/276">#276</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/6a0445c87f2d82e304033c553dadd34d2a1a8120"><code>6a0445c</code></a>
feat(bazel): mock_names flag support in archive mode (<a
href="https://redirect.github.com/uber/mock/issues/262">#262</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/aa11bfcd02f7339576f4cef5b8c697f980f607d2"><code>aa11bfc</code></a>
feat(bazel): support archive mode (<a
href="https://redirect.github.com/uber/mock/issues/259">#259</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/359202c7b2fe16fad86eae73a0ff732f8cb363b9"><code>359202c</code></a>
Support for archive mode (<a
href="https://redirect.github.com/uber/mock/issues/258">#258</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/871d86bb6f8b22d0c4d250ebca1f9d674f6e6d1e"><code>871d86b</code></a>
Back to development (<a
href="https://redirect.github.com/uber/mock/issues/251">#251</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/0b8095f698fe3b6414a8d1321e990100ba8ce5bc"><code>0b8095f</code></a>
Prepare release v0.5.2 (<a
href="https://redirect.github.com/uber/mock/issues/250">#250</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/8ce01ac54df4c2f4443bbe7de345188289af8c4e"><code>8ce01ac</code></a>
Bump go.mod to 1.23 and remove alias replacements (<a
href="https://redirect.github.com/uber/mock/issues/248">#248</a>)</li>
<li><a
href="https://github.com/uber-go/mock/commit/6568d888c79f7c03d45c396af40b608782fae4df"><code>6568d88</code></a>
Back to development. (<a
href="https://redirect.github.com/uber/mock/issues/242">#242</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/uber/mock/compare/v0.5.0...v0.6.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=go.uber.org/mock&package-manager=go_modules&previous-version=0.5.0&new-version=0.6.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:09:46 +00:00
dependabot[bot] df28da677a chore: bump github.com/aws/aws-sdk-go-v2 from 1.37.2 to 1.38.1 (#19536)
Bumps
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
from 1.37.2 to 1.38.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/ba4ee4da236306b260326a7a913f61cb19355110"><code>ba4ee4d</code></a>
Release 2025-08-21</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/40e3d871f1507d7b7a10b101dd65c5c85ec183c2"><code>40e3d87</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/b2be01902dbbdbdec11e3fe7a9ca56aa45c9edcd"><code>b2be019</code></a>
Update partitions file</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/dece4e78c3752a54cc2393bf375672ca7b66b260"><code>dece4e7</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/294af1979f20160f82f273fd00790466bc8f7daa"><code>294af19</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/0df860a876d097b792f61fd35caea13c86247d46"><code>0df860a</code></a>
changelog</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/df2bca243bed6101bdee10478def6146a7f7e647"><code>df2bca2</code></a>
feature(s3/manager): add option to control default checksums (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3151">#3151</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/315de9ca18b06a3bc807313c9f79b56e2956009a"><code>315de9c</code></a>
Release 2025-08-20</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1a9d79d3c8d2dcf70265875f2ed6a8af678454d5"><code>1a9d79d</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/79594120103fbf7a5aa836f8c640b9c255453835"><code>7959412</code></a>
Update endpoints model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/v1.37.2...v1.38.1">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&package-manager=go_modules&previous-version=1.37.2&new-version=1.38.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:02:36 +00:00
dependabot[bot] f008b599f9 chore: bump google.golang.org/grpc from 1.74.2 to 1.75.0 (#19535)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.74.2 to 1.75.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.75.0</h2>
<h1>Behavior Changes</h1>
<ul>
<li>xds: Remove support for GRPC_EXPERIMENTAL_XDS_FALLBACK environment
variable. Fallback support can no longer be disabled. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8482">#8482</a>)</li>
<li>stats: Introduce <code>DelayedPickComplete</code> event, a type
alias of <code>PickerUpdated</code>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8465">#8465</a>)
<ul>
<li>This (combined) event will now be emitted only once per call, when a
transport is successfully selected for the attempt.</li>
<li>OpenTelemetry metrics will no longer have multiple &quot;Delayed LB
pick complete&quot; events in Go, matching other gRPC languages.</li>
<li>A future release will delete the <code>PickerUpdated</code>
symbol.</li>
</ul>
</li>
<li>credentials: Properly apply <code>grpc.WithAuthority</code> as the
highest-priority option for setting authority, above the setting in the
credentials themselves. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8488">#8488</a>)
<ul>
<li>Now that this <code>WithAuthority</code> is available, the
credentials should not be used to override the authority.</li>
</ul>
</li>
<li>round_robin: Randomize the order in which addresses are connected to
in order to spread out initial RPC load between clients. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8438">#8438</a>)</li>
<li>server: Return status code INTERNAL when a client sends more than
one request in unary and server streaming RPC. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8385">#8385</a>)
<ul>
<li>This is a behavior change but also a bug fix to bring gRPC-Go in
line with the gRPC spec.</li>
</ul>
</li>
</ul>
<h1>New Features</h1>
<ul>
<li>dns: Add an environment variable
(<code>GRPC_ENABLE_TXT_SERVICE_CONFIG</code>) to provide a way to
disable TXT lookups in the DNS resolver (by setting it to
<code>false</code>). By default, TXT lookups are enabled, as they were
previously. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8377">#8377</a>)</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>xds: Fix regression preventing empty node IDs in xDS bootstrap
configuration. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8476">#8476</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/davinci26"><code>@​davinci26</code></a></li>
</ul>
</li>
<li>xds: Fix possible panic when certain invalid resources are
encountered. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8412">#8412</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/wooffie"><code>@​wooffie</code></a></li>
</ul>
</li>
<li>xdsclient: Fix a rare panic caused by processing a response from a
closed server. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8389">#8389</a>)</li>
<li>stats: Fix metric unit formatting by enclosing non-standard units
like <code>call</code> and <code>endpoint</code> in curly braces to
comply with UCUM and gRPC OpenTelemetry guidelines. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8481">#8481</a>)</li>
<li>xds: Fix possible panic when clusters are removed from the xds
configuration. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8428">#8428</a>)</li>
<li>xdsclient: Fix a race causing &quot;resource doesn not exist&quot;
when rapidly subscribing and unsubscribing to the same resource. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8369">#8369</a>)</li>
<li>client: When determining the authority, properly percent-encode (if
needed, which is unlikely) when the target string omits the hostname and
only specifies a port
(<code>grpc.NewClient(&quot;:&lt;port-number-or-name&gt;&quot;)</code>).
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8488">#8488</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/b9788ef265596eda98a4391079c70c3992ed47cb"><code>b9788ef</code></a>
Change version to 1.75.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8493">#8493</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/2bd74b28f5a7d464de4ed6927aef4b69abc0d3af"><code>2bd74b2</code></a>
credentials: fix behavior of grpc.WithAuthority and credential handshake
prec...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/9fa3267859958a7fa0141a8180102850f3d5842c"><code>9fa3267</code></a>
xds: remove xds client fallback environment variable (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8482">#8482</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/62ec29fd9b3f9ea3cea6dc08a31e837aa92678b7"><code>62ec29f</code></a>
grpc: Fix cardinality violations in non-client streaming RPCs. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8385">#8385</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/85240a5b02defe7b653ccba66866b4370c982b6a"><code>85240a5</code></a>
stats: change non-standard units to annotations (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8481">#8481</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/ac13172781fae5593fd97ce07c3019c4044a71cd"><code>ac13172</code></a>
update deps (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8478">#8478</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/0a895bc971a89c68c00070f792a28cc533846780"><code>0a895bc</code></a>
examples/opentelemetry: use experimental metrics in example (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8441">#8441</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/8b61e8f7b8fe9b0a4217336f6a4a31731338c3b2"><code>8b61e8f</code></a>
xdsclient: do not process updates from closed server channels (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8389">#8389</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/7238ab1822875fdc2864e06fb224236dc7cbf3bf"><code>7238ab1</code></a>
Allow empty nodeID (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8476">#8476</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/9186ebd774370e3b3232d1b202914ff8fc2c56d6"><code>9186ebd</code></a>
cleanup: use slices.Equal to simplify code (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8472">#8472</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.74.2...v1.75.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.74.2&new-version=1.75.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 21:20:40 +00:00
blink-so[bot] 9b7d41dbea chore: update terraform to 1.13.0 (#19509)
Co-authored-by: Jon Ayers <jon@coder.com>
2025-08-25 10:06:06 -07:00
Bruno Quaresma e7591aa453 chore: preload inter and ibm mono fonts in storybook (#19455)
This aims to solve font rendering issues in Storybook like the
inconsistent snapshot below.

**Inconsistent snapshot:**
<img width="3022" height="1552" alt="image"
src="https://github.com/user-attachments/assets/ad0e1060-89cc-4255-b601-97ed59286080"
/>


**References:**
-
https://www.chromatic.com/docs/troubleshooting-snapshots/#why-are-fonts-in-my-graph-component-rendering-inconsistently
- https://fontsource.org/docs/getting-started/preload
2025-08-25 10:41:16 -03:00
Mathias Fredriksson 836324e641 feat(cli): add coder exp tasks list (#19496)
Fixes coder/internal#892
Fixes coder/internal#896

Example output:

```
❯ coder exp task list
ID                                    NAME                         STATUS   STATE  STATE CHANGED  MESSAGE
a7a27450-ca16-4553-a6c5-9d6f04808569  task-hardcore-herschel-bd08  running  idle   5h22m3s ago    Listed root directory contents, working directory reset
50f92138-f463-4f2b-abad-1816264b065f  task-musing-dewdney-f058     running  idle   6h3m8s ago     Completed arithmetic calculation
```
2025-08-25 13:03:32 +00:00
Ethan cef2904108 chore(scaletest): use random deployment password (#19516)
Closes https://github.com/coder/internal/issues/932
2025-08-25 22:31:54 +10:00
ケイラ d7ee1019c0 feat: add endpoint for retrieving workspace acl (#19375)
Implements `/acl [get]` for workspaces, with tests.
Blocked by experiment enablement
2025-08-25 07:11:18 -05:00
ケイラ 86e401d85a chore: remove kirby button (#19501) 2025-08-25 07:09:55 -05:00
Ethan fe8ca2a440 chore(scaletest): add deployment name to all metrics (#19479)
If multiple of `alpha`, `bravo` or `charlie` are running simultaneously, we'll have trouble differentiating the metrics. To fix this, we'll add that name to all metrics. 
<img width="1051" height="113" alt="image" src="https://github.com/user-attachments/assets/618c0105-0668-46ba-af3f-13cce3d5d512" />
2025-08-25 12:45:31 +10:00
Ethan 6132cd5eba refactor(scaletest): use vpc for networking infrastructure (#19464)
This PR refactors the scaletest infrastructure to use a dedicated VPC for each deployment (i.e. alpha, bravo, charlie). It then peers that VPC with the observability VPC, and the Cloud SQL database. It also sets up subnetting for and within each deployment.

With this deployed, I was able to get the scaletest running with metrics flowing into `scaletest.cdr.dev`.

Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-08-25 12:35:32 +10:00
Ethan 5145cd002d chore(scaletest): add tls to infrastructure (#19412)
Closes https://github.com/coder/internal/issues/850

This PR has the scaletest infrastructure retrieve and use TLS certificates from the persistent observability cluster.

To support creating multiple instances of the infrastructure simultaneously, `var.name` can be set to `alpha`, `bravo` or `charlie`, which retrieves the corresponding certificates.

Also:
- Adds support for wildcard apps.
- Retrieves the Cloudflare token from GCP secrets.
2025-08-25 12:25:09 +10:00
dependabot[bot] 236844e5cc chore: bump coder/cursor/coder from 1.3.0 to 1.3.1 in /dogfood/coder (#19514)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.3.0&new-version=1.3.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 01:33:01 +00:00
dependabot[bot] 3fadf1ae6e chore: bump coder/vscode-web/coder from 1.3.1 to 1.4.1 in /dogfood/coder (#19513)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/vscode-web/coder&package-manager=terraform&previous-version=1.3.1&new-version=1.4.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 01:31:29 +00:00
dependabot[bot] 7977fa87aa chore: bump coder/claude-code/coder from 2.0.7 to 2.1.0 in /dogfood/coder (#19512)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/claude-code/coder&package-manager=terraform&previous-version=2.0.7&new-version=2.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 01:30:33 +00:00
Atif Ali 2b3ae549ca chore: rename docker-compose.yaml to compose.yaml (#19480)
Docker recommends using a `compose.yaml` file.
2025-08-23 11:32:14 +05:00
ケイラ 3b6c85a3f9 chore: add @Parkreiner as site/ CODEOWNER (#19502) 2025-08-22 13:40:24 -06:00
Bruno Quaresma cde5b624f4 feat: display the number of idle tasks in the navbar (#19471)
Depends on: https://github.com/coder/coder/pull/19377

Closes https://github.com/coder/coder/issues/19323

**Screenshot:**

<img width="1511" height="777" alt="Screenshot 2025-08-21 at 11 52 21"
src="https://github.com/user-attachments/assets/be04e507-bf04-47d0-8748-2f71b93b5685"
/>

**Screen recording:**


https://github.com/user-attachments/assets/f70b34fe-952b-427b-9bc9-71961ca23201



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- New Features
- Added a Tasks navigation item showing a badge with the number of idle
tasks and a tooltip: “You have X tasks waiting for input.”

- Improvements
  - Fetches per-user tasks with periodic refresh for up-to-date counts.
- Updated active styling for the Tasks link for clearer navigation
state.
  - User menu now always appears on medium+ screens.

- Tests
- Expanded Storybook with preloaded, user-filtered task scenarios to
showcase idle/task states.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-22 15:24:32 -03:00
DevCats 6fbe777317 chore: add auggie icon (#19500)
add auggie icon
2025-08-22 12:53:33 -05:00
ケイラ 7e23081c2f chore: fix vite types (#19477) 2025-08-22 09:00:03 -06:00
Mathias Fredriksson 427b23f49a feat(coderd): add tasks list and get endpoints (#19468)
Fixes coder/internal#899

Example API response:

```json
{
  "tasks": [
    {
      "id": "a7a27450-ca16-4553-a6c5-9d6f04808569",
      "organization_id": "241e869f-1a61-42c9-ae1e-9d46df874058",
      "owner_id": "9e9b9475-0fc0-47b2-9170-a5b7b9a075ee",
      "name": "task-hardcore-herschel-bd08",
      "template_id": "accab607-bbda-4794-89ac-da3926a8b71c",
      "workspace_id": "a7a27450-ca16-4553-a6c5-9d6f04808569",
      "initial_prompt": "What directory are you in?",
      "status": "running",
      "current_state": {
        "timestamp": "2025-08-22T10:03:27.837842Z",
        "state": "working",
        "message": "Listed root directory contents, working directory reset",
        "uri": ""
      },
      "created_at": "2025-08-22T09:21:39.697094Z",
      "updated_at": "2025-08-22T09:21:39.697094Z"
    },
    {
      "id": "50f92138-f463-4f2b-abad-1816264b065f",
      "organization_id": "241e869f-1a61-42c9-ae1e-9d46df874058",
      "owner_id": "9e9b9475-0fc0-47b2-9170-a5b7b9a075ee",
      "name": "task-musing-dewdney-f058",
      "template_id": "accab607-bbda-4794-89ac-da3926a8b71c",
      "workspace_id": "50f92138-f463-4f2b-abad-1816264b065f",
      "initial_prompt": "What is 1 + 1?",
      "status": "running",
      "current_state": {
        "timestamp": "2025-08-22T09:22:33.810707Z",
        "state": "idle",
        "message": "Completed arithmetic calculation",
        "uri": ""
      },
      "created_at": "2025-08-22T09:18:28.027378Z",
      "updated_at": "2025-08-22T09:18:28.027378Z"
    }
  ],
  "count": 2
}
```
2025-08-22 17:11:31 +03:00
Cian Johnston fe36e9c120 fix(dogfood/coder): allow mutable ai_prompt parameter (#19493) 2025-08-22 15:08:42 +01:00
Edward Angert 49f32d14eb docs: add dev containers and scheduling to prebuilt workspaces known issues (#18816)
closes #18806 

- [x] scheduling limitation
- [x] dev containers limitation
- [x] edit intro


[preview](https://coder.com/docs/@18806-prebuilds-known-limits/admin/templates/extending-templates/prebuilt-workspaces)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Clarified the introduction and administrator responsibilities for
prebuilt workspaces.
* Integrated compatibility information about DevContainers and workspace
scheduling more contextually.
* Added explicit notes on limitations with dev containers integration
and workspace autostart/autostop features.
* Improved configuration examples and clarified scheduling instructions.
* Enhanced explanations of scheduling behavior and lifecycle steps for
better understanding.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Sas Swart <sas.swart.cdk@gmail.com>
Co-authored-by: Susana Ferreira <susana@coder.com>
2025-08-22 15:54:28 +02:00
Cian Johnston 5e49d8c569 chore: reduce execution time of TestProvisionerJobs (#19475)
Note: this commit was partially authored by AI.

- Replaces coderdtest.CreateTemplate/TemplateVersion() with direct dbgen
calls. We do not need a fully functional template for these tests.
- Removes provisioner daemon creation/cleanup. We do not need a running
provisioner daemon here; this functionality is tested elsewhere.
  - Simplifies provisioner job creation test helpers.

This reduces the test runtime by over 50%:

Old:
```
time go test -count=100 ./cli -test.run=TestProvisionerJobs
ok      github.com/coder/coder/v2/cli   50.149s
```

New:
```
time go test -count=100 ./cli -test.run=TestProvisionerJobs
ok      github.com/coder/coder/v2/cli   21.898
```
2025-08-22 13:40:06 +01:00
Danny Kopping 4970da433c chore: remove coderabbit (#19491) 2025-08-22 13:28:40 +02:00
Danny Kopping e549084b7f chore: add pull request template for AI guidelines (#19487) 2025-08-22 12:07:01 +02:00
Cian Johnston 213fffbfa6 chore: add git-config module to dogfood template (#19489)
As a developer, I want to be immediately able to run `git commit` in a
fresh workspace.
2025-08-22 09:37:48 +01:00
Dean Sheather 82f2e15974 chore: add unknown usage event type error (#19436)
- Adds `usagetypes.UnknownEventTypeError` type, which is returned by
`ParseEventWithType`
- Changes `ParseEvent` to not be a generic function since it doesn't
really need it
- Adds `User-Agent` to tallyman requests
2025-08-22 16:32:35 +10:00
Spike Curtis b90bc7c398 feat: use cloud secret for DNS token in scaletest TF (#19466)
Removes the requirement to obtain a Cloudflare DNS token from our scaletest/terraform/action builds. Instead, by default, we pull the token from Google Secrets Manager and use the `scaletest.dev` DNS domain.

Removes cloudflare_email as this was unneeded.  
  
Removes the cloudflare_zone_id and instead pulls it from a data source via the Cloudflare API.  
  
closes https://github.com/coder/internal/issues/839
2025-08-22 07:41:49 +02:00
Ethan a71e5cc8b0 test: add increasing integer to GetRandomNameHyphenated (#19481)
Fixes flakes like the following:
```
workspaces_test.go:4938: 
	Error Trace:	/home/runner/work/coder/coder/coderd/coderdtest/coderdtest.go:1279
											/home/runner/work/coder/coder/coderd/workspaces_test.go:4938
											/home/runner/work/coder/coder/coderd/workspaces_test.go:5044
	Error:      	Received unexpected error:
								POST http://127.0.0.1:42597/api/v2/users/me/workspaces: unexpected status code 409: Workspace "romantic-mcclintock" already exists.
									name: This value is already in use and should be unique.
	Test:       	TestWorkspaceCreateWithImplicitPreset/SinglePresetWithParameters
```

https://github.com/coder/coder/actions/runs/17142665868/job/48633017007?pr=19464
 
Which are caused by insufficient randomness when creating multiple
workspaces with random names. Two words is not enough to avoid flakes.
We have a `testutil.GetRandomName` function that appends a monotonically
increasing integer, but this alternative function that uses hyphens
doesn't add that integer. This PR fixes that by just
`testutil.GetRandomName`
2025-08-22 12:20:03 +10:00
Andrew Aquino 9a872f903e feat: show workspace health error alert above agents in WorkspacePage (#19400)
closes #19338 

<img width="1840" height="1191" alt="image"
src="https://github.com/user-attachments/assets/eeefda13-88d1-4a26-ba57-9749abda3f17"
/>
2025-08-21 17:22:25 -07:00
Rafael Rodriguez ad5e6785f4 feat: add filtering options to provisioners list (#19378)
## Summary

In this pull request we're adding support for additional filtering
options to the `provisioners list` CLI command and the
`/provisionerdaemons` API endpoint.

Resolves: https://github.com/coder/coder/issues/18783

### Changes

#### Added CLI Options

- `--show-offline`: When this option is provided, all provisioner
daemons will be returned. This means that when `--show-offline` is not
provided only `idle` and `busy` provisioner daemons will be returned.
- `--status=<list_of_statuses>`: When this option is provided with a
comma-separated list of valid statuses (`idle`, `busy`, or `offline`)
only provisioner daemons that have these statuses will be returned.
- `--max-age=<duration>`: When this option is provided with a valid
duration value (e.g., `24h`, `30s`) only provisioner daemons with a
`last_seen_at` timestamp within the provided max age will be returned.

#### Query Params

- `?offline=true`: Include offline provisioner daemons in the results.
Offline provisioner daemons will be excluded if `?offline=false` or if
offline is not provided.
- `?status=<list_of_statuses>`: Include provisioner daemons with the
specified statuses.
- `?max_age=<duration>`: Include provisioner daemons with a
`last_seen_at` timestamp within the max age duration.

#### Frontend

- Since offline provisioners will not be returned by default anymore
(`--show-offline` has to be provided to see them), a checkbox was added
to the provisioners list page to allow for offline provisioners to be
displayed
- A revamp of the provisioners page will be done in:
https://github.com/coder/coder/issues/17156, this checkbox change was
just added to maintain currently functionality with the backend updates

Current provisioners page (without checkbox)

<img width="1329" height="574" alt="Screenshot 2025-08-20 at 10 51
00 AM"
src="https://github.com/user-attachments/assets/77b73650-0b62-44f0-a77f-acbe5710809f"
/>

Provisioners page with checkbox (unchecked)

<img width="1314" height="626" alt="Screenshot 2025-08-20 at 10 48
40 AM"
src="https://github.com/user-attachments/assets/7ba164ad-6d3f-417b-bd39-338c0161b145"
/>

Provisioner page with checkbox (checked) and URL updated with query
parameters

<img width="1306" height="597" alt="Screenshot 2025-08-20 at 10 50
14 AM"
src="https://github.com/user-attachments/assets/e78d0986-bbf8-491b-9d56-b682973237a0"
/>

### Show Offline vs Offline Status

To list offline provisioner daemons, users can either:

1. Include the `--show-offline` option

OR

2. Include `offline` in the list of values provided to the `--status`
option
2025-08-21 16:03:34 -04:00
Bruno Quaresma d77c3d0226 feat: filter tasks that are waiting for user input (#19377)
Closes https://github.com/coder/coder/issues/19324

<img width="1624" height="974" alt="Screenshot 2025-08-15 at 14 45 39"
src="https://github.com/user-attachments/assets/a738d9af-f548-413b-a0e7-3f311cb997ee"
/>

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-08-21 15:06:11 -03:00
Callum Styan 014a2d5b0f perf: don't call GetUserByID unnecessarily for Agents metrics loops (#19395)
At the moment, the loop which retrieves and updates the values of the
agents metrics excessively calls `GetUserByID` (a DB query). First it
retrieves a list of all workspaces, filtering out inactive agents (not
entirely clear to me whether this is non-running workspaces, or just
dead agents), and then iterates over those workspaces to get the rest of
the relevant data for the metrics. The next call is `GetUserByID` for
`workspace.OwnerID`. This is unnecessary because the `workspaces_visible` view we pull workspaces from has already been joined with the users table to get the username/name/etc.

This should at least partially resolve
https://github.com/coder/internal/issues/726 
---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-21 11:01:32 -07:00
Bruno Quaresma 8aafbcb3be feat: show workspace build logs during tasks creation (#19413)
This is part of https://github.com/coder/coder/issues/19363

**Screenshot:**
<img width="1610" height="974" alt="Screenshot 2025-08-19 at 12 32 54"
src="https://github.com/user-attachments/assets/c7435b67-49ac-4b88-ae2d-014787cea5f2"
/>


**Video demo:**


https://github.com/user-attachments/assets/2249affd-3d51-4ff0-8a5f-a0358a90d659
2025-08-21 15:01:03 -03:00
Bruno Quaresma 54440af953 fix: fix workspaces pagination (#19448)
Fixes #18707 

**Before:**


https://github.com/user-attachments/assets/6d4fba3e-0f24-4f60-adb6-d48d73b720ff

**After:**


https://github.com/user-attachments/assets/483dad99-3095-4647-990d-8386dd0c4d75
2025-08-21 14:59:37 -03:00
Cian Johnston 86f9bed608 chore: fix TestCheckInactiveUsers flake (#19469)
THIS CODE WAS NOT WRITTEN BY A HUMAN.
Use a fixed time interval to avoid timing flakes.
2025-08-21 16:35:31 +01:00
dependabot[bot] fe289e8824 chore: bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 (#19470)
Bumps
[github.com/go-viper/mapstructure/v2](https://github.com/go-viper/mapstructure)
from 2.3.0 to 2.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-viper/mapstructure/releases">github.com/go-viper/mapstructure/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>refactor: replace interface{} with any by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/115">go-viper/mapstructure#115</a></li>
<li>build(deps): bump github/codeql-action from 3.29.0 to 3.29.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/114">go-viper/mapstructure#114</a></li>
<li>Generic tests by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/118">go-viper/mapstructure#118</a></li>
<li>Fix godoc reference link in README.md by <a
href="https://github.com/peczenyj"><code>@​peczenyj</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/107">go-viper/mapstructure#107</a></li>
<li>feat: add StringToTimeLocationHookFunc to convert strings to
*time.Location by <a
href="https://github.com/ErfanMomeniii"><code>@​ErfanMomeniii</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/117">go-viper/mapstructure#117</a></li>
<li>feat: add back previous StringToSlice as a weak function by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/119">go-viper/mapstructure#119</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/ErfanMomeniii"><code>@​ErfanMomeniii</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/117">go-viper/mapstructure#117</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0">https://github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-viper/mapstructure/commit/b9794a5f0e73d425210d6614ed833067029155f5"><code>b9794a5</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/119">#119</a>
from go-viper/string-to-weak-slice</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/17cdcb0741054e2a33938adf6bd1f2a5c0aa8f30"><code>17cdcb0</code></a>
feat: add back previous StringToSlice as a weak function</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/3caca3614c3ab2c5b5d359c44fdcd72058887b19"><code>3caca36</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/117">#117</a>
from ErfanMomeniii/main</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/9a861bc115f2b54ed4e494662f29c172d9ef046a"><code>9a861bc</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/107">#107</a>
from peczenyj/patch-2</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/86ed5b59da0615fb8c3a413f401cdf0231f1234c"><code>86ed5b5</code></a>
refactor: update</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/ace5b4e8b3dec99468ffa9498e42fb09d177b0a6"><code>ace5b4e</code></a>
chore: add interface any linter</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/1a4f1aef38bfa8549762aaf42c7c18a5d268e76e"><code>1a4f1ae</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/118">#118</a>
from go-viper/generic-tests</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/a2689090ed4348033c36724d866faf1f911a9f63"><code>a268909</code></a>
fix: lint</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/17f1fd44eb7606b109c9bb017c0a1c6d3e93b5cd"><code>17f1fd4</code></a>
test: add more comments</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/b48c8566836bf291bfee2b217d51fc36e8e61f6f"><code>b48c856</code></a>
test: expand tests</li>
<li>Additional commits viewable in <a
href="https://github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-viper/mapstructure/v2&package-manager=go_modules&previous-version=2.3.0&new-version=2.4.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-08-21 15:08:50 +00:00
Callum Styan bcdade7d8c fix: add database constraint to enforce minimum username length (#19453)
Username length and format, via regex, are already enforced at the
application layer, but we have some code paths with database queries
where we could optimize away many of the DB query calls if we could be
sure at the database level that the username is never an empty string.

For example: https://github.com/coder/coder/pull/19395

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-21 07:56:41 -07:00
Spike Curtis 72f58c0483 fix: limit test parallelism in make test (#19465)
In order to get `make test` to reliably pass again on our dogfood
workspaces, we're having to resort to setting parallelism.

It also reworks our CI to call the `make test` target, instead of
rolling a different command.

Behavior changes:
 * sets 8 packages x 8 tests in parallel by default on `make test`
* by default, removes the `-short` flag. In my testing it makes only a
few seconds difference on ~200s, or 1-2%
* by default, removes the `-count=1` flag that busts Go's test cache.
With a fresh cache and no code changes, `make test` executes in ~15
seconds.

Signed-off-by: Spike Curtis <spike@coder.com>
2025-08-21 16:37:31 +04:00
Dean Sheather 8d0bc485df chore: add actionlint and zizmor linters (#19459) 2025-08-21 22:14:43 +10:00
Danny Kopping 338e8b5161 fix: use new http transport for webhook handler (#19462) 2025-08-21 12:08:32 +02:00
Danielle Maywood 2521e732be refactor: generate task name fallback on coderd (#19447)
Instead of generating the fallback task name on the website, we instead
generate it on coderd.
2025-08-21 11:06:30 +01:00
Atif Ali 62fa731b34 chore(dogfood): add IDE selection parameter (#19194)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-21 13:32:45 +05:00
Ethan 444874d9db ci: add check-build job to require make build to pass on prs (#19460)
We've had `build` fail on main one or two times, and it's easily
preventable by just running `make build` on PRs.

I didn't add `build` to required as it's already pretty complex, and
we'd be making it more complex by skipping half of it when not on
coder/coder main.
2025-08-21 17:59:18 +10:00
Spike Curtis 229d05193d fix: speed up GetTailnetTunnelPeerBindings query (#19444)
relates to: https://github.com/coder/internal/issues/718

Optimizes the GetTailnetTunnelPeerBindings query to reduce its execution time.

Before: https://explain.dalibo.com/plan/c2fd53f913aah21c

After: https://explain.dalibo.com/plan/6bc67d323g7afh61

At a high level, we first assemble the total list of peer IDs needed by the query, and only then go into the `tailnet_peers` table to extract their info. This saves us some time instead of hashing the entire `tailnet_peers` table.
2025-08-21 07:53:56 +02:00
Ethan 51d8a05301 test: disable direct connections for a deterministic reachable peers metric (#19458)
closes https://github.com/coder/internal/issues/921

Not sure what I was thinking when I wrote this test case, but it was
relying on the connection being p2p on every ping, which is technically
and evidently not always the case. Instead we'll require a DERP peer,
and block direct connections.
2025-08-21 11:46:56 +10:00
Dean Sheather bfd392b0bf fix: use int64 in publisher delay (#19457) 2025-08-21 11:23:50 +10:00
Rowan Smith baf30679e0 chore: fix typo in clientNetcheckSummary for support bundle command (#19441)
This PR fixes a typo in the original support bundle implementation for
the `clientNetcheckSummary` var.
2025-08-21 10:08:51 +10:00
Brett Kolodny ee789dac9a fix: redirect users to /login if their oauth token is invalid (#19429)
[As mentioned in the
issue](https://github.com/coder/coder/issues/12056#issuecomment-3206975879)
the problem here is the fact this endpoint is returning a 401 instead of
a 200 in this specific case.

Since we actually have enough information before performing this
mutation to know that it'll fail in the case of a bad auth token we'd
ideally re-work the code not to call the mutation on logout and just
perform the local clean up. Unfortunately it seems like the interactions
that this mutation is having with React Query at large is necessary for
our code to work as intended and thus it's not currently possible to
move the local clean up (the code inside of the `onSuccess`) outside of
the mutation. Shout out to @Parkreiner for helping me confirm this.

So until we can re-work the `AuthProvider` to be less brittle this PR
changes `onSuccess` to `onSettled` so that while the mutation still
fails with a 401, the local clean up still runs.

Closes #12056
2025-08-20 15:04:57 -04:00
Benjamin Peinhardt 02fc173df4 fix: fix flake due to two time.Now() calls (#19450)
fixes https://github.com/coder/internal/issues/559

This test is looking to see that after calling `coder schedule extend
<workspace> 10h`, the scheduled stop time of the workspace is updated
appropriately (or at least that the information printed to the terminal
indicates that).

By using two `time.Now()` calls for the current time and the expected
time, there was the possibility that the second call just barely crossed
over the hour mark. This is shown in the error message when the test
would flake: `wanted "2025-04-07T22:"; got " 2025-04-07T23:00:00+05:30
\r\n"` (the 00:00 letting us know we just barely crossed the hour).

Using the same time object to construct the expected time should fix the
issue.
2025-08-20 12:12:02 -05:00
Cian Johnston 9ad124d489 feat(coderd/telemetry): track AI task usage (#19418)
Relates to https://github.com/coder/internal/issues/868
2025-08-20 17:59:09 +01:00
Rafael Rodriguez 5b1e809862 fix: support oidc group allowlist in oss (#19430)
## Summary

In this pull request we're adding support for OIDC allowed groups in the
OSS version as part of work for
https://github.com/coder/coder/issues/17027.

### Changes

- Restored support for parsing group allow list in OSS code

### Testing

- Added tests for OSS code
- Tested allowed/prohibited group OIDC flows in premium and OSS
2025-08-20 10:09:13 -05:00
Steven Masley a19dfa9a0a docs: add generative ai contribution guidelines (#19427)
Initial language that gives us something to point to if needed.
2025-08-20 09:13:40 -05:00
Hugo Dutka d536b91bfc chore(coderd/database/dbauthz): migrate more tests to mocked db (#19300)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-20 14:10:18 +00:00
Jakub Domeracki fc7f53ffce chore: update monaco-editor to resolve DOMPurify CVEs #19445 (#19446)
https://github.com/coder/coder/issues/19445
2025-08-20 16:00:10 +02:00
Susana Ferreira 5b08f8b4a0 fix: change createWorkspace to use dbtime.Time (#19414)
The `createWorkspace` function was updated to use an injected Clock,
which makes it possible to mock time in tests:
https://github.com/coder/coder/pull/19264/files#diff-46f90baab52ea3ad914acbde30d656dbc8e46f5918d19bc056c445a1dc502482R1130
For database operations, however, it is recommended to use `dbtime.Time`
since it rounds to the microsecond, the smallest unit of precision
supported by Postgres.
2025-08-20 14:58:00 +01:00
Dean Sheather 1a601c30ad chore: move usage types to new package (#19103) 2025-08-20 23:48:38 +10:00
Dean Sheather 6eb02d1c2a chore: wire up usage tracking for managed agents (#19096)
Wires up the usage collector and publisher to coderd.

Relates to coder/internal#814
2025-08-20 23:38:09 +10:00
Garrett Delfosse dd867bd743 fix: fix jetbrains toolbox connection tracking (#19348)
Fixes https://github.com/coder/coder/issues/18350

I attempted the route of relying on just the session env vars, in hopes
that this issue was fixed in Toolbox and the process name matching was
no longer need, but it was not a fruitful endeavor and it seems to be
using the same connection logic as it did in gateway, just with new
binary and flag names.
2025-08-20 08:39:08 -04:00
Susana Ferreira 560cf84251 fix: prevent activity bump for prebuilt workspaces (#19263)
## Description

This PR ensures that activity-based deadline extensions ("activity
bumping") are not applied to prebuilt workspaces. Prebuilds are managed
by the reconciliation loop and must not have `deadline` or
`max_deadline` values set or extended, as they are not part of the
regular lifecycle executor path.

## Changes

- Update `ActivityBumpWorkspace` SQL query to discard prebuilt
workspaces
- Update application layer to avoid calling activity bump logic on
prebuilt workspaces

Related with: 
* Issue: https://github.com/coder/coder/issues/18898
* PR: https://github.com/coder/coder/pull/19252
2025-08-20 12:19:14 +01:00
Kacper Sawicki cd1faffeff docs: re-add missing Templates and Modules entries to manifest.json (#19442) 2025-08-20 09:14:41 +00:00
Sas Swart f9a6adc704 feat: claim prebuilds based on workspace parameters instead of preset id (#19279)
Closes https://github.com/coder/coder/issues/18356.

This change finds and selects a matching preset if one was not chosen
during workspace creation. This solidifies the relationship between
presets and parameters.

When a workspace is created without in explicitly chosen preset, it will
now still be eligible to claim a prebuilt workspace if one is available.
2025-08-20 11:02:53 +02:00
Danielle Maywood 5e84d257b7 refactor: convert workspacesdk.AgentConn to an interface (#19392)
Fixes https://github.com/coder/internal/issues/907

We convert `workspacesdk.AgentConn` to an interface and generate a mock
for it. This allows writing `coderd` tests that rely on the agent's HTTP
api to not have to set up an entire tailnet networking stack.
2025-08-20 10:00:44 +01:00
Danielle Maywood 23c494f36b fix(agent/agentcontainers): resolve symlink in tests (#19440)
Fixes https://github.com/coder/internal/issues/917
2025-08-20 09:32:28 +01:00
Dean Sheather 67da780ce4 fix: avoid error when AI usage is zero (#19388)
Fixes a bug that prevents the managed AI agent usage from showing in the
licenses page of the dashboard when the usage is zero. Adds a story with
this case as well.
2025-08-20 07:22:42 +00:00
Ethan c310a3202b ci: ping blink on slack on ci failures (#19435)
im experimenting with getting blink to track flakes for us in
coder/internal, it worked when kyle and I pinged it by hand, so let's
try this too.
2025-08-20 06:19:29 +00:00
dependabot[bot] 60d611fc78 chore: bump github.com/hashicorp/go-getter from 1.7.8 to 1.7.9 (#19433)
Bumps
[github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter)
from 1.7.8 to 1.7.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/go-getter/releases">github.com/hashicorp/go-getter's
releases</a>.</em></p>
<blockquote>
<h2>v1.7.9</h2>
<h2>What's Changed</h2>
<ul>
<li>Speed up XZ decompression by 5x with bufio wrapper by <a
href="https://github.com/vsarunas"><code>@​vsarunas</code></a> in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/520">hashicorp/go-getter#520</a></li>
<li>Fix CI Workflow by <a
href="https://github.com/mohanmanikanta2299"><code>@​mohanmanikanta2299</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/522">hashicorp/go-getter#522</a></li>
<li>test: Remove use of &quot;mitchellh/go-testing-interface&quot; for
stdlib by <a
href="https://github.com/jrasell"><code>@​jrasell</code></a> in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/523">hashicorp/go-getter#523</a></li>
<li>fix: url redact of multiple sshkey by <a
href="https://github.com/dduzgun-security"><code>@​dduzgun-security</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/528">hashicorp/go-getter#528</a></li>
<li>Publish arm binaries by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/525">hashicorp/go-getter#525</a></li>
<li>fix errcheck lint errors and run it as part of pr checks by <a
href="https://github.com/abhijeetviswa"><code>@​abhijeetviswa</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/530">hashicorp/go-getter#530</a></li>
<li>fix additional lint errors and increase linter scope by <a
href="https://github.com/abhijeetviswa"><code>@​abhijeetviswa</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/531">hashicorp/go-getter#531</a></li>
<li>IND-3728 enabling dependabot by <a
href="https://github.com/KaushikiAnand"><code>@​KaushikiAnand</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/529">hashicorp/go-getter#529</a></li>
<li>fix: go-getter subdir paths by <a
href="https://github.com/dduzgun-security"><code>@​dduzgun-security</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/540">hashicorp/go-getter#540</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/vsarunas"><code>@​vsarunas</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/520">hashicorp/go-getter#520</a></li>
<li><a href="https://github.com/jrasell"><code>@​jrasell</code></a> made
their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/523">hashicorp/go-getter#523</a></li>
<li><a href="https://github.com/sethvargo"><code>@​sethvargo</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/525">hashicorp/go-getter#525</a></li>
<li><a
href="https://github.com/abhijeetviswa"><code>@​abhijeetviswa</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/530">hashicorp/go-getter#530</a></li>
<li><a
href="https://github.com/KaushikiAnand"><code>@​KaushikiAnand</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/529">hashicorp/go-getter#529</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hashicorp/go-getter/compare/v1.7.8...v1.7.9">https://github.com/hashicorp/go-getter/compare/v1.7.8...v1.7.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hashicorp/go-getter/commit/e70221100018573cdc74411c95c19b2a372f6728"><code>e702211</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-getter/issues/532">#532</a>
from hashicorp/dependabot/github_actions/actions-8948...</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/df0a14fa67f2921eabff8fbdb51445ac03daeb87"><code>df0a14f</code></a>
[chore] : Bump the actions group with 8 updates</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/87541b2501c00df5eaedea6acc61a2a4a4efa5b7"><code>87541b2</code></a>
fix: go-getter subdir paths (<a
href="https://redirect.github.com/hashicorp/go-getter/issues/540">#540</a>)</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/37130302313c9294df898ac96e2565a65369ec68"><code>3713030</code></a>
[Compliance] - PR Template Changes Required</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/af2dd3ca2764281bf6b7468e05028a8b114c63a7"><code>af2dd3c</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-getter/issues/529">#529</a>
from hashicorp/dependabot-intge</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/bf526297fa4cd429fcf31da9e4a6bf6a0b512026"><code>bf52629</code></a>
updating dependabot.yml</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/1f63e10d3b421544473bf52103b41eb423e2c897"><code>1f63e10</code></a>
changelog added, updated dependabot.yaml</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/45af45918c6958be58f87d1576ac4a0b32f7eb4b"><code>45af459</code></a>
fix additional lint errors and increase linter scope</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/c8c6aba0f7ad4e3937ef7cfcb50627520e498252"><code>c8c6aba</code></a>
fix errcheck lint errors and run it as part of pr checks</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/9b76f983e594375fdef9e231822c805c82ec9ed7"><code>9b76f98</code></a>
copywrite header added</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/go-getter/compare/v1.7.8...v1.7.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/hashicorp/go-getter&package-manager=go_modules&previous-version=1.7.8&new-version=1.7.9)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-08-20 03:11:11 +00:00
Bruno Quaresma c70a786e07 chore: ignore dynamic expiration date on story (#19425)
Fixes https://github.com/coder/coder/issues/19410
2025-08-19 16:09:07 -03:00
DevCats 7bcbb83c7c feat: add amp logo sourced from presskit (#19421)
Added logo sourcegraph-amp.svg to site/static/icon
Add icon to icons.json

Logo is sourced from: https://ampcode.com/press-kit
2025-08-19 13:58:17 -05:00
Cian Johnston c978ab99b5 fix(scripts/check_unstaged.sh): modify shebang (#19419) 2025-08-19 19:24:20 +01:00
Callum Styan f2ee89c36a fix: fix more TestWorkspaceAutobuild flakes (#19417)
made these commits yesterday but apparently I forgot to push so they got
missed in https://github.com/coder/coder/pull/19398

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-19 10:24:40 -07:00
Callum Styan 9e5c83ae0d fix: fix flakes in TestWorkspaceAutobuild due to incorrect tick time (#19398)
we missed these in the previous PR, we find `tickTime2`
and pass it to the `tickCh`, but we were incorrectly passing `tickTime`
to `UpdateProvisionerLastSeenAt` in some places

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-19 09:24:40 -07:00
Phorcys b6abcba942 chore: correct template API docs (#19228) 2025-08-19 15:14:25 +00:00
Danielle Maywood 655377165b feat(coderd): generate task names based on their prompt (#19335)
Closes https://github.com/coder/coder/issues/18159

If an Anthropic API key is available, we call out to Claude to generate
a task name based on the user-provided prompt instead of our random name
generator.
2025-08-19 14:56:37 +01:00
Kacper Sawicki c4290201c3 fix(enterprise): update external agent instructions in cli (#19411)
### Description

The command for agent instructions was incorrectly displayed in the CLI.
2025-08-19 13:54:42 +00:00
Susana Ferreira d79a7797c2 fix: exclude prebuilt workspaces from template-level lifecycle updates (#19265)
## Description

This PR ensures that lifecycle-related changes made via template
schedule updates do **not affect prebuilt workspaces**. Since prebuilds
are managed by the reconciliation loop and do not participate in the
regular lifecycle executor flow, they must be excluded from any updates
triggered by template configuration changes.

This includes changes to TTL, dormant-deletion scheduling, deadline and
autostart scheduling.

## Changes

- Updated SQL query `UpdateWorkspacesTTLByTemplateID` to exclude
prebuilt workspaces
- Updated SQL query `UpdateWorkspacesDormantDeletingAtByTemplateID` to
exclude prebuilt workspaces
- Updated application-layer logic to skip any updates to lifecycle
parameters if a workspace is a prebuild
- Preserved all existing update behavior for regular user workspaces

This change guarantees that only lifecycle-managed workspaces are
affected when template-level configurations are modified, preserving
strict boundaries between prebuild and user workspace lifecycles.

Related with: 
* Issue: https://github.com/coder/coder/issues/18898
* PR: https://github.com/coder/coder/pull/19252
2025-08-19 13:08:01 +01:00
Danielle Maywood e8795269e4 fix: resolve TestAPI/Error/DuringInjection flake (#19407)
Resolves https://github.com/coder/internal/issues/905
2025-08-19 12:23:37 +01:00
Kacper Sawicki c7cfa65961 fix(enterprise): correct order for external agent init cmd (#19408)
### Description

`CODER_AGENT_TOKEN` env variable was incorrectly being passed to the
curl command instead of the executed script during agent initialization.

Fixed the command order to ensure `CODER_AGENT_TOKEN` is properly passed
to the script execution context rather than the download command.
2025-08-19 11:00:40 +00:00
Kacper Sawicki 7f7206770b feat(site): add support for external agents in the UI and extend CodeExample (#19288)
This pull request introduces support for external workspace management, allowing users to register and manage workspaces that are provisioned and managed outside of the Coder.

* Added a new component AgentExternal which shows instructions for connecting external agents.
* Added redacted fields to CodeExample so you can now hide specific parts of the code instead of the full line
* Hides workspace actions if workspace is using external agent.

<img width="1719" height="646" alt="image" src="https://github.com/user-attachments/assets/45b7bfae-7006-461f-a96d-e61f97084819" />
2025-08-19 11:00:32 +02:00
Kacper Sawicki 7b1dcd9846 feat(cli): add enterprise external-workspaces CLI command (#19287)
This pull request introduces support for external workspace management, allowing users to register and manage workspaces that are provisioned and managed outside of the Coder.

* coder external-workspaces create - Creates a new external workspace (this command extends coder create)
  * Example: coder external-workspaces create ext-workspace --template=externally-managed-workspace -y
  * Checks if template has coder_external_agent resource before creating a workspace
* coder external-workspaces list - Lists all external workspaces
* coder external-workspaces agent-instructions <workspace name> <agent name> - Retrieves agent connection instruction
  * Example: coder external-workspaces agent-instructions ext-workspace main --output=json
2025-08-19 10:52:31 +02:00
Kacper Sawicki 9edceef0bf feat(coderd): add support for external agents to API's and provisioner (#19286)
This pull request introduces support for external workspace management, allowing users to register and manage workspaces that are provisioned and managed outside of the Coder.

Depends on: https://github.com/coder/terraform-provider-coder/pull/424

* GET /api/v2/init-script - Gets the agent initialization script
  * By default, it returns a script for Linux (amd64), but with query parameters (os and arch) you can get the init script for different platforms
* GET /api/v2/workspaces/{workspace}/external-agent/{agent}/credentials - Gets credentials for an external agent **(enterprise)**
* Updated queries to filter workspaces/templates by the has_external_agent field
2025-08-19 10:41:33 +02:00
Cian Johnston f085c37af3 fix(dogfood/coder): fix env var for exp mcp configure claude-code (#19404)
`coder exp mcp configure claude-code` will read the API key for
claude-code from the environment variable `CLAUDE_API_KEY`. Claude will
also happily read `ANTHROPIC_API_KEY` but will ask you to confirm first,
which is problematic in an automated setup.

Also bumps claude-code module.
2025-08-19 09:40:49 +01:00
Kacper Sawicki 5e4aa79a9d feat(coderd): add has_external_agent flag to template_versions and workspace_builds (#19285)
This pull request introduces support for external workspace management, allowing users to register and manage workspaces that are provisioned and managed outside of the Coder.

* Added has_external_agent field to workspace builds and template versions
2025-08-19 10:29:51 +02:00
ケイラ e67f0f6f52 chore: convert emotion styles to tailwind (#19347) 2025-08-18 16:16:21 -06:00
Steven Masley 42c4792f24 test: add sub claim field to static id claims in testidp (#19399) 2025-08-18 15:20:10 -05:00
Brett Kolodny 95388f7576 chore: convert emotion styles to tailwind (#19357) 2025-08-18 15:00:58 -04:00
Cian Johnston 3e7c8c9052 feat(scripts): add fixtures.sh to add license to dev deployment (#19374)
Adds `scripts/fixtures.sh` with initial support for adding license.
Future improvements may involve adding + breaking out:
- User creation
- Template creation/import
- Org creation
2025-08-18 17:32:53 +01:00
Dean Sheather c6c8b00b07 chore: require nolint for testutil.RunRetry (#19394) 2025-08-19 00:48:10 +10:00
Dean Sheather e2ba9e7d62 chore: retry TestAgent_Dial subtests (#19387)
Closes https://github.com/coder/internal/issues/595
2025-08-18 13:51:19 +00:00
Danielle Maywood a8c89a120f fix: increase timeout for watch workspace agent devcontainers test (#19390)
Relates to https://github.com/coder/internal/issues/907

The test can take around 10s when it is the only one running, so in a
constrained environment like CI it makes sense that it still hits the 25
second timeout. For now we up the limit to 60 seconds until the test is
rewritten to greatly reduce the time taken.
2025-08-18 09:56:39 +01:00
Ethan fdc9dfae89 test(coderd/database/dbpurge): use mock db in TestPurge (#19386)
Closes https://github.com/coder/internal/issues/906

This test was using dbmem until we removed it. The test just makes sure the background job runs at all, so a mock db continues to be fine here.

No other tests in this package used dbmem, so this is the only test I've changed.
2025-08-18 15:25:52 +10:00
Rowan Smith 0a815029e9 chore: fix incorrect ordering of OS options in docs (#19384)
On https://coder.com/docs/install/uninstall at present we order the top
OS listing as "Linux | macOS | Windows", while in the `Coder settings,
cache, and the optional built-in PostgreSQL database` paragraph towards
the bottom of the page we change to using "macOS | Linux | Windows" for
some reason. This PR moves Linux to be listed first instead of macOS in
the bottom paragraph to match the ordering of the top section.
2025-08-18 14:31:06 +10:00
Dean Sheather 8f9f0cda11 chore: avoid DNS lookups for DERP in tests (#19385)
Closes https://github.com/coder/internal/issues/886
2025-08-18 03:44:37 +00:00
Rowan Smith 93279dff24 chore: change format of key from uuid to string to fix swagger issue (#19380)
ref: https://codercom.slack.com/archives/C014JH42DBJ/p1755192759211289

this change allows api keys to be deleted via swagger
2025-08-18 12:37:51 +10:00
dependabot[bot] 4da0cfbe83 chore: bump coder/jetbrains/coder from 1.0.2 to 1.0.3 in /dogfood/coder (#19383)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/jetbrains/coder&package-manager=terraform&previous-version=1.0.2&new-version=1.0.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 01:05:32 +00:00
dependabot[bot] 95db8d437b chore: bump coder/cursor/coder from 1.2.1 to 1.3.0 in /dogfood/coder (#19382)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.2.1&new-version=1.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 01:05:01 +00:00
dependabot[bot] 29479c28d7 chore: bump coder/zed/coder from 1.0.1 to 1.1.0 in /dogfood/coder (#19381)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/zed/coder&package-manager=terraform&previous-version=1.0.1&new-version=1.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 01:04:46 +00:00
Bruno Quaresma bed4e12b93 chore: fix storybook flakes (#19366)
Close https://github.com/coder/coder/issues/19365
2025-08-15 16:07:33 -03:00
Danielle Maywood 4ca69af867 fix: increase timeout for watch workspace agent devcontainers test (#19376) 2025-08-15 19:11:19 +01:00
Cian Johnston 2ea807fde1 feat(dogfood/coder): integrate tasks support into "Write Coder on Coder" template (#19320)
Updates https://github.com/coder/internal/issues/836

- Adds an optional AI prompt parameter
- Conditionally adds the following resources if "AI Prompt" is provided:
  - `claude-code` module if AI prompt is provided
  - auto-restarting instance of `develop.sh` running in screen
  - a "preview" app that shows the local development server
2025-08-15 17:47:31 +01:00
Callum Styan 6c902a7410 fix: don't create autostart workspace builds with no available provisioners (#19067)
This should fix https://github.com/coder/coder/issues/17941 by introducing a check for whether there are any valid (non-stale provisioners for a job in the autobuild executor code path.

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-08-15 08:50:51 -07:00
Dean Sheather a25d85631b chore: add usage tracking package (#19095)
Not used in coderd yet, see stack.

Adds two new packages:
- `coderd/usage`: provides an interface for the "Collector" as well as a stub implementation for AGPL
- `enterprise/coderd/usage`: provides an interface for the "Publisher" as well as a Tallyman implementation

Relates to https://github.com/coder/internal/issues/814
2025-08-16 01:31:00 +10:00
Steven Masley e92af2b050 chore: set editorconfig to use tabs instead of spaces for sql files (#19344) 2025-08-15 08:02:32 -05:00
Danielle Maywood 205eb29e60 fix: stop reading closed channel for /watch devcontainers endpoint (#19373)
Fixes https://github.com/coder/coder/issues/19372

We increase the read limit to 4MiB (we use this limit elsewhere). We
also make sure to stop sending messages when `containersCh` becomes
closed.
2025-08-15 12:32:33 +01:00
Sas Swart a9f607afd8 test: add an ergonomic way to access the test database for debugging (#19371)
Accessing the database during debugging currently requires either
spinning up a separate PostgreSQL instance or inspecting memory to
retrieve the DSN—both of which add unnecessary friction. While the test
suite already provisions a database by default, connecting to it for
manual inspection or debugging is not straightforward.

This change introduces a clearer and more accessible way to surface the
DSN during debugging sessions, allowing developers to connect to the
test database directly without relying on external infrastructure or ad
hoc methods.

Expected Usage:
1. Debug using dlv or the IDE.
2. Step through line by line and determine that a query isn't doing what
you'd expect
3. No further insight to be gained at the Go level
4. The next place to test is to connect directly to the database while
it is in the exact state that the test has produced just before running
the query
5. Rerun the test with this option enabled and your breakpoint set right
before the questionable query runs
6. Connect to the database and inspect or troubleshoot as you need to
2025-08-15 11:25:20 +02:00
Ethan d7bdb3cdef ci: add paralleltestctx to lint/go (#19369)
Closes https://github.com/coder/internal/issues/884

We're adding this as a `go run` in `lint/go` for now, since adding it to
golangci-lint ourselves involves recompiling golangci-lint and then
running that new binary. I'll look into proposing it being added to the
public golangci-lint linters.

Doesn't appear to cause the lint ci job to take any longer, which is
nice.
2025-08-15 16:16:18 +10:00
Bruno Quaresma 1d1a16ea01 chore: update storybook config to use TS (#19343) 2025-08-14 17:05:16 -06:00
ケイラ ac40c4b828 chore: fix biome when running locally (#19367) 2025-08-14 16:42:45 -06:00
ケイラ bb0e407660 chore: remove some usage of useClassName (#19346) 2025-08-14 15:53:29 -06:00
Bruno Quaresma accdcb8b77 chore: upgrade biome to v2 (#19362)
Guide for migration: https://biomejs.dev/guides/upgrade-to-biome-v2/
2025-08-14 18:25:15 -03:00
ケイラ 167522e5ae fix: fix storybook when using coder desktop (#19364) 2025-08-14 14:13:10 -06:00
Brett Kolodny 362c78a705 fix: ensure deployment banner is always on the bottom (#19361) 2025-08-14 15:35:42 -04:00
Bruno Quaresma 9cde6e6608 chore: remove turbosnap plugin (#19341)
Turbosnap plugin is included by default in Storybook 8, so we can remove
it from our configuration.

> Found 'rollup-plugin-turbosnap' which is now included by default in
Storybook 8.
Removing from your plugins list. Ensure you pass `--stats-json` to
generate stats.

> For more information, see
https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#turbosnap-vite-plugin-is-no-longer-needed
2025-08-14 12:39:13 -03:00
Steven Masley 4926410146 feat: keep original token refresh error in external auth (#19339)
External auth refresh errors lose the original error thrown on the first
refresh. This PR saves that error to the database to be raised on
subsequent refresh attempts
2025-08-14 09:50:31 -05:00
Brett Kolodny 5b5fbbed33 fix: implement proper overflow behavior for workspace history (#19340)
Before:


https://github.com/user-attachments/assets/2f1ff75c-4916-4d0a-a657-004d46691ea0


After:


https://github.com/user-attachments/assets/a8e575b5-84f9-4eea-b318-93d2a3d60aa5

Also converts a lot of emotion components to tailwind
2025-08-14 09:26:20 -04:00
Susana Ferreira 734299de71 fix: disallow lifecycle endpoints for prebuilt workspaces (#19264)
## Description

This PR updates the API to prevent lifecycle configuration endpoints
from being used on prebuilt workspaces. Since prebuilds are managed by
the reconciliation loop and do not participate in the regular workspace
lifecycle, they must not support per-workspace overrides for fields like
deadline, TTL, autostart, or dormancy.

Attempting to use these endpoints on a prebuilt workspace will now
return a clear validation error (`409 Conflict`) with an appropriate
explanation. This prevents accidental misconfiguration and preserves the
lifecycle separation between prebuilds and regular workspaces.

## Changes

The following endpoints now return an error if the target workspace is a
prebuild:

* `PUT /workspaces/{workspace}/extend`
* `PUT /workspaces/{workspace}/ttl`
* `PUT /workspaces/{workspace}/autostart`
* `PUT /workspaces/{workspace}/dormant`

Update endpoints logic to use the API clock in order to allow time
mocking in tests.

Related with: 
* Issue: https://github.com/coder/coder/issues/18898
* PR: https://github.com/coder/coder/pull/19252
2025-08-14 11:30:19 +01:00
Hugo Dutka af97b78e76 chore(coderd/database/dbauthz): migrate TestTemplate to use mocked DB (#19304)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-14 11:32:53 +02:00
Ethan b2b3edf0f1 test(codersdk/toolsdk): skip coder_workspace_bash tool test on windows (#19351)
Fixes flakes on the nightly-gauntlet like:
https://github.com/coder/coder/actions/runs/16955654896
since there's no `bash` on windows...
```
=== Failed
=== FAIL: codersdk/toolsdk  (0.00s)
PASS
The following tools were not tested:
 - coder_workspace_bash
Please ensure that all tools are tested using testTool().
If you just added a new tool, please add a test for it.
NOTE: if you just ran an individual test, this is expected.
FAIL	github.com/coder/coder/v2/codersdk/toolsdk	4.185s
```
2025-08-14 15:49:48 +10:00
Ethan c6d62e2de1 docs: update coder desktop + corporate vpn issue (#19353)
I missed this in my first PR 😮‍💨. We already include the
version requirements for the VPN fix in the `Known Issues` section.
2025-08-14 15:06:41 +10:00
Michael Smith 0c203b0cf8 fix: correct markup for Abbr component (#19317)
Fixes some accidental styling issues introduced in #19242

## Changes made
- Updated styles
- Added support for `className` prop so that we can override the styles
as needed
- Removed the aria-label in favor of injecting the main text directly

## Notes
- This feels like a case where the changes in the previous PR were
actually *correct overall*, but something with our MUI+Tailwind setup
created conflicting styles, and we accidentally introduced an underline
style that shouldn't be there
- Removed the Aria label because I've realized in the past year that
Aria is really easy to misuse, and it's best just to do things with the
base HTML features as much as possible. There's a risk that the old code
had compliance issues with certain types of screen readers (even though
it worked fine when I did manual testing back in 2023). These changes
hopefully remove those risks completely
2025-08-14 00:20:00 -04:00
Ethan 1ffc5a0e97 docs: update status of coder desktop + corporate vpn issue (#19350)
A customer read this on the docs and thought the issue was still
unresolved.
2025-08-14 04:17:25 +00:00
Michael Smith 193c7ce91b fix(site): tighten interface design for various frontend utility functions (#18894)
Precursor to https://github.com/coder/coder/pull/18895
Splitting this off so that the changes are easier to review.

## Changes made
- Improve type-safety for the `withQuery` Storybook decorator
- Centralized almost all queries that deal with template versions to use
a shared, exported query key prefix
- Updated `useFilter` and `usePagination` to have much more strict
return types, and decoupled them from React Router at the interface
level
- Also added some extra input validation and performance optimizations
to `useFilter` and `usePagination`
- Removed a stale data when working with checked workspaces for the
`/workspaces` page
- Removed hacky `useEffect` call for syncing URL state to checked
workspaces, in favor of explicit state syncs
- Did some extra cleanup and removed unused values

## Notes
- Many of the changes here were in service of the main PR. I'll try to
highlight notable areas, but if there's anything that's not clear, feel
free to post a comment in this PR. Ideally you shouldn't really have to
look at the other PR to understand this one, so if something's
confusing, that's a sign that something's wrong

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Improved handling of URL search parameters and state synchronization
in filter and pagination features across multiple pages.
* Centralized and clarified state management for workspace selection and
batch actions on the Workspaces page.
* Enhanced type safety and naming consistency in batch actions and
filter components.
* Updated filter and pagination hooks to accept explicit parameters and
callbacks for better maintainability.
* Streamlined prop naming and menu handling in workspace filter
components for clarity.

* **Bug Fixes**
* Prevented unnecessary state updates when filter values remain
unchanged.

* **Tests**
  * Updated tests for improved type safety and more precise assertions.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-14 00:06:15 -04:00
ケイラ 2180d17f7d chore: upgrade to pnpm 10 (#19327)
pnpm 9 yells pretty loudly about being out of date. also, pnpm 10 no
longer runs untrusted `postinstall`/`prepare` scripts by default, which,
_finally_.
2025-08-13 15:39:10 -04:00
Susana Ferreira 92d505c52b feat(cli): prevent coder schedule command on prebuilt workspaces (#19259)
## Description

This PR adds CLI-side validation to prevent the use of the `coder
schedule` command (including both `start` and `stop` subcommands) on
prebuilt workspaces.

Prebuilt workspaces are scheduled independently by the reconciliation
loop, based on template and preset-level configuration. They do not
participate in the regular user workspace lifecycle, and cannot be
configured via the `coder schedule` CLI command. This change ensures
that attempting to configure scheduling on a prebuilt workspace results
in a clear CLI error.

## Changes

- `coder schedule start` — now returns an error if the target workspace
is a prebuild
- `coder schedule stop` — now returns an error if the target workspace
is a prebuild

Related with: 
* Issue: https://github.com/coder/coder/issues/18898
* **Depends on PR**: https://github.com/coder/coder/pull/19252
2025-08-13 18:15:53 +01:00
Hugo Dutka e10f29c481 chore(coderd/database/dbauthz): migrate File, Group, APIKey, AuditLogs, and ConnectionLogs tests to mocked db (#19299)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-13 09:30:48 -05:00
Jash Ambaliya a556324c93 chore(site): add postgres icon (#19210)
added pgadmin logo as mentioned in review:
<img width="1200" height="394" alt="image"
src="https://github.com/user-attachments/assets/4f536037-e496-4048-b70f-7c915dc82afc"
/>

I have read the CLA Document and I hereby sign the CLA

---------

Co-authored-by: DevCats <christofer@coder.com>
Co-authored-by: ケイラ <mckayla@hey.com>
2025-08-13 09:22:56 -05:00
Susana Ferreira 8567ecbe52 fix: set prebuilds lifecycle parameters on creation and claim (#19252)
## Description

This PR ensures that prebuilt workspaces are properly excluded from the
lifecycle executor and treated as a separate class of workspaces, fully
managed by the prebuild reconciliation loop.

It introduces two lifecycle guarantees:
* When a prebuilt workspace is created (i.e., when the workspace build
completes), all lifecycle-related fields are unset, ensuring the
workspace does not participate in TTL, autostop, autostart, dormancy, or
auto-deletion logic.
* When a prebuilt workspace is claimed, it transitions into a regular
user workspace. At this point, all lifecycle fields are correctly
populated according to template-level configurations, allowing the
workspace to be managed by the lifecycle executor as expected.

## Changes

* Prebuilt workspaces now have all lifecycle-relevant fields unset
during creation
* When a prebuild is claimed:
* Lifecycle fields are set based on template and workspace level
configurations. This ensures a clean transition into the standard
workspace lifecycle flow.
* Updated lifecycle-related SQL update queries to explicitly exclude
prebuilt workspaces.

## Relates 

Related issue: https://github.com/coder/coder/issues/18898

To reduce the scope of this PR and make the review process more
manageable, the original implementation has been split into the
following focused PRs:
* https://github.com/coder/coder/pull/19259
* https://github.com/coder/coder/pull/19263
* https://github.com/coder/coder/pull/19264
* https://github.com/coder/coder/pull/19265

These PRs should be considered in conjunction with this one to
understand the complete set of lifecycle separation changes for prebuilt
workspaces.
2025-08-13 12:45:46 +01:00
Cian Johnston f17ab92798 chore: improve message when running develop.sh multiple times (#19333)
`develop.sh` checks for existing processes listening on port 3000 or
8080.
We can check if it's the development server to avoid confusion.

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-08-13 11:49:00 +01:00
Ethan 791d39c261 test(coderd/database): use seperate context for subtests to fix flake (#19330)
Fixes flakes like
https://github.com/coder/coder/actions/runs/16927282256/job/47965470039

https://coder.com/blog/go-testing-contexts-and-t-parallel

...I'm going to take a stab at turning this into a lint rule. I think
it's possible by just reading the AST?
2025-08-13 14:45:35 +10:00
Rowan Smith 117fa05063 chore: update docs to mention debug logging config explicitly (#19329)
From https://coder.com/docs/admin/monitoring/logs#coderd-logs

It wasn't overly clear what was needed to get debug logs, this PR adds a
mention explaining it.
2025-08-13 14:26:45 +10:00
Jon Ayers e99c33e0d1 chore: restrict who can make releases (#19326)
This PR confines who can run the `Release` action to members with
`maintain` or above
2025-08-12 23:43:28 -04:00
ケイラ 17fa1a4e22 refactor(site): migrate ActiveUserChart from emotion to tailwind styling (#19244) 2025-08-12 15:20:43 -06:00
DevCats ea7025b562 docs(admin/users): add google provider-specific guide (#19309)
## Summary
- Add a provider-specific guide for configuring Google as an OIDC
provider
- Document refresh token setup via CODER_OIDC_AUTH_URL_PARAMS
- Add page to docs navigation under Users → OIDC Authentication

## Test plan
- Docs site builds: `docs/admin/users/oidc-auth/google.md` renders
- Nav shows 'Google' under OIDC Authentication
- Links to OIDC overview and refresh tokens work

Fixes #13508

---------

Co-authored-by: Atif Ali <atif@coder.com>
2025-08-12 13:02:40 -05:00
Steven Masley f4f4e52173 docs: remove beta badge from docs about dynamic parameters (#19325) 2025-08-12 17:59:47 +00:00
Rafael Rodriguez aab2ccdb38 fix!: support empty or default fields when updating templates (#19256)
Breaking change: Field types in `codersdk.UpdateTemplateMeta` for
`Icon`, `Description`, and `DisplayName` moved to `*string`

## Summary

In this pull request we're updating the `UpdateTemplateMeta` struct to
allow `DisplayName`, `Description`, and `Icon` to be set as empty `""`
or default to the value from the template if not provided in an update
call.

Fixes https://github.com/coder/coder/issues/19036

### The bug

The reported bug occurred when clients were attempting to update a
metadata field in a template via an edit call. When the request was
decoded into an `UpdateTemplateMeta` struct the default values for
fields in the struct were used to update the template even if they
weren't provided. This led to fields like `Icon` being set to `""` (the
default value).

### Changes

To allow for specific fields to be set to `""` these fields were updated
to be `*string` as opposed to `string`. This allows for clients to set
these fields as `""` in an update request or they will default to the
template value if they are not provided in the update request (will be
`nil`).

Added tests to confirm empty and nil values and updated other tests that
use these fields.
2025-08-12 11:37:44 -05:00
Jon Ayers 064436a300 chore: fix formdata for apidocgen (#19319) 2025-08-12 12:30:09 -04:00
Danny Kopping 67e1567b47 chore: specify packageManager explicitly to match pinned version in Dockerfile (#19311) 2025-08-12 16:55:59 +02:00
Ethan fb8036a154 ci: fix gcp service accounts (#19312)
Service accounts got deleted, oops
2025-08-12 22:02:56 +10:00
ケイラ 64f0aaa2b4 chore: skip flaking classic parameters test (#19308)
Causing test-js failures on main
2025-08-12 14:38:20 +04:00
Danielle Maywood f349edcc3c refactor: create tasks in coderd instead of frontend (#19280)
Instead of creating tasks with a specialized call to `CreateWorkspace`
on the frontend, we instead lift this to the backend and allow the
frontend to simply call `CreateAITask`.
2025-08-12 11:23:55 +01:00
Hugo Dutka cda1a3a593 chore(coderd/database/dbauthz): migrate TestUser to mocked db (#19305)
Related to https://github.com/coder/internal/issues/869

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-08-12 09:20:12 +00:00
Jaayden Halko 0bfe0d63ae feat: add tests for dynamic parameters (#18679)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for a new testing attribute to the multi-select combobox
component, improving testability.
* Expanded mock data for dynamic parameters, covering a wider range of
input types and validation scenarios.

* **Bug Fixes**
* Improved loader and error handling on the experimental workspace
creation page to better display WebSocket errors.

* **Tests**
* Introduced comprehensive tests for the experimental workspace creation
page, including dynamic parameter updates, error handling, and form
submission scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Michael Smith <throwawayclover@gmail.com>
2025-08-11 15:43:50 -04:00
Andrew Aquino b8c9192d0b fix: generalize password invalid message (#19307)
fixes #19044 

password over 64 characters means it's _too_ strong; now the error
message is applicable to this case
2025-08-11 12:20:02 -07:00
Michael Suchacz 94bf1e3ae2 chore: symlink CLAUDE.md to AGENTS.md for Codex usage (#19298) 2025-08-11 20:32:17 +02:00
dependabot[bot] 4238b38c4c chore: bump github.com/coder/terraform-provider-coder/v2 from 2.9.0 to 2.10.0 (#19296)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.9.0 to 2.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coder/terraform-provider-coder/releases">github.com/coder/terraform-provider-coder/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.10.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(coder-attach): add coder_external_agent resource by <a
href="https://github.com/kacpersaw"><code>@​kacpersaw</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/424">coder/terraform-provider-coder#424</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/kacpersaw"><code>@​kacpersaw</code></a>
made their first contribution in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/424">coder/terraform-provider-coder#424</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.9.0...v2.10.0">https://github.com/coder/terraform-provider-coder/compare/v2.9.0...v2.10.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/e04ea9c09cae938ca568a14aadc5e65e1ac97026"><code>e04ea9c</code></a>
feat(coder-attach): add coder_external_agent resource (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/424">#424</a>)</li>
<li>See full diff in <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.9.0...v2.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coder/terraform-provider-coder/v2&package-manager=go_modules&previous-version=2.9.0&new-version=2.10.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 16:58:46 +00:00
dependabot[bot] 8008c08893 chore: bump cloud.google.com/go/compute/metadata from 0.7.0 to 0.8.0 (#19297)
Bumps
[cloud.google.com/go/compute/metadata](https://github.com/googleapis/google-cloud-go)
from 0.7.0 to 0.8.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/compute/metadata's
releases</a>.</em></p>
<blockquote>
<h2>compute/metadata: v0.8.0</h2>
<h2><a
href="https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.7.0...compute/metadata/v0.8.0">0.8.0</a>
(2025-08-06)</h2>
<h3>Features</h3>
<ul>
<li><strong>compute/metadata:</strong> Add Options.UseDefaultClient (<a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/12657">#12657</a>)
(<a
href="https://github.com/googleapis/google-cloud-go/commit/1a8820900f20e038291c4bb2c5284a449196e81f">1a88209</a>),
refs <a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/11078">#11078</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md">cloud.google.com/go/compute/metadata's
changelog</a>.</em></p>
<blockquote>
<h2>v0.8.0</h2>
<ul>
<li>profiler package added.</li>
<li>storage:
<ul>
<li>Retry Objects.Insert call.</li>
<li>Add ProgressFunc to WRiter.</li>
</ul>
</li>
<li>pubsub: breaking changes:
<ul>
<li>Publish is now asynchronous (<a
href="https://groups.google.com/d/topic/google-api-go-announce/aaqRDIQ3rvU/discussion">announcement</a>).</li>
<li>Subscription.Pull replaced by Subscription.Receive, which takes a
callback (<a
href="https://groups.google.com/d/topic/google-api-go-announce/8pt6oetAdKc/discussion">announcement</a>).</li>
<li>Message.Done replaced with Message.Ack and Message.Nack.</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/e11d9d1a1722e191d3d017c08077f2c15189769a"><code>e11d9d1</code></a>
rpcreplay: file format and I/O</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/f5c3fe2352c8d679cfc47d2f102449571022c323"><code>f5c3fe2</code></a>
profiler: Add Cloud Profiler runtime agent for Go.</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/87cc1d286587530f709063127a1faef4ed8431c5"><code>87cc1d2</code></a>
rpcreplay: package doc</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/b4e9a381a01e953e880e6d2cf7fd02d412977cae"><code>b4e9a38</code></a>
storage: retry Objects.Insert call</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/9a04fc8dc5de830157ea2887ab5565f964c311a7"><code>9a04fc8</code></a>
trace: respond with trace context to report the sampling options</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/e8b5f2cc58266b603c1d7dc9f6ac0f254d1670df"><code>e8b5f2c</code></a>
spanner: Increased the maximum allowed sending and recieving msg size to
100 MB</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/dd88571a2747f25e093c425b9a598db5bec04e57"><code>dd88571</code></a>
bigtable: Fix documentation for timestamp range filters</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/c60d02f3cdeb4bf91d4810e9e505800cad03ce9f"><code>c60d02f</code></a>
pubsub: clarify that Topic is goroutine-safe</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/69931d826ffbbcb4f8451b42d5cf7fc2ac6c7443"><code>69931d8</code></a>
bigquery: get streaming buffer info</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/7d132fead24899d37a2aef0112d06b9d5b891d19"><code>7d132fe</code></a>
bigtable: Fix GCRuleToString when GcRule is nil</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-cloud-go/compare/v0.7.0...v0.8.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cloud.google.com/go/compute/metadata&package-manager=go_modules&previous-version=0.7.0&new-version=0.8.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 16:58:19 +00:00
dependabot[bot] cbcdda25dc ci: bump the github-actions group with 8 updates (#19293)
Bumps the github-actions group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.2.2` |
`4.3.0` |
| [actions/cache](https://github.com/actions/cache) | `4.2.3` | `4.2.4`
|
| [crate-ci/typos](https://github.com/crate-ci/typos) | `1.34.0` |
`1.35.3` |
| [docker/login-action](https://github.com/docker/login-action) |
`3.4.0` | `3.5.0` |
|
[google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud)
| `2.1.5` | `2.2.0` |
|
[actions/download-artifact](https://github.com/actions/download-artifact)
| `4.3.0` | `5.0.0` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `c2ca2493190021783138cb8aac49bcee14b4bb89` |
`f963b3f3562b00b6d2dd25efc390eb04e51ef6c6` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.29.7` | `3.29.8` |

Updates `actions/checkout` from 4.2.2 to 4.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
<li>Prepare release v4.3.0 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2237">actions/checkout#2237</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/motss"><code>@​motss</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li><a href="https://github.com/mouismail"><code>@​mouismail</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li><a href="https://github.com/benwells"><code>@​benwells</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v4...v4.3.0">https://github.com/actions/checkout/compare/v4...v4.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be
<code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<h2>v4.1.4</h2>
<ul>
<li>Disable <code>extensions.worktreeConfig</code> when disabling
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li>
<li>Add dependabot config by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li>
<li>Bump the minor-actions-dependencies group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li>
<li>Bump word-wrap from 1.2.3 to 1.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li>
</ul>
<h2>v4.1.3</h2>
<ul>
<li>Check git version before attempting to disable
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1656">actions/checkout#1656</a></li>
<li>Add SSH user parameter by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1685">actions/checkout#1685</a></li>
<li>Update <code>actions/checkout</code> version in
<code>update-main-version.yml</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1650">actions/checkout#1650</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/08eba0b27e820071cde6df949e0beb9ba4906955"><code>08eba0b</code></a>
Prepare release v4.3.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2237">#2237</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/631c7dc4f80f88219c5ee78fee08c6b62fac8da1"><code>631c7dc</code></a>
Update package dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2236">#2236</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/8edcb1bdb4e267140fa742c62e395cd74f332709"><code>8edcb1b</code></a>
Update CODEOWNERS for actions (<a
href="https://redirect.github.com/actions/checkout/issues/2224">#2224</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/09d2acae674a48949e3602304ab46fd20ae0c42f"><code>09d2aca</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/2194">#2194</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/85e6279cec87321a52edac9c87bce653a07cf6c2"><code>85e6279</code></a>
Adjust positioning of user email note and permissions heading (<a
href="https://redirect.github.com/actions/checkout/issues/2044">#2044</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/009b9ae9e446ad8d9b8c809870b0fbcc5e03573e"><code>009b9ae</code></a>
Documentation update - add recommended permissions to Readme (<a
href="https://redirect.github.com/actions/checkout/issues/2043">#2043</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/cbb722410c2e876e24abbe8de2cc27693e501dcb"><code>cbb7224</code></a>
Update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1977">#1977</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/3b9b8c884f6b4bb4d5be2779c26374abadae0871"><code>3b9b8c8</code></a>
docs: update README.md (<a
href="https://redirect.github.com/actions/checkout/issues/1971">#1971</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...08eba0b27e820071cde6df949e0beb9ba4906955">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/cache` from 4.2.3 to 4.2.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
<li>Upgrade <code>@actions/cache</code> to <code>4.0.5</code> and move
<code>@protobuf-ts/plugin</code> to dev depdencies by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/cache/pull/1634">actions/cache#1634</a></li>
<li>Prepare release <code>4.2.4</code> by <a
href="https://github.com/Link"><code>@​Link</code></a>- in <a
href="https://redirect.github.com/actions/cache/pull/1636">actions/cache#1636</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/nebuk89"><code>@​nebuk89</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1620">actions/cache#1620</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4...v4.2.4">https://github.com/actions/cache/compare/v4...v4.2.4</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.2.4</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.5</li>
</ul>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<h3>4.0.2</h3>
<ul>
<li>Fixed restore <code>fail-on-cache-miss</code> not working.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/0400d5f644dc74513175e3cd8d07132dd4860809"><code>0400d5f</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1636">#1636</a>
from actions/Link-/release-4.2.4</li>
<li><a
href="https://github.com/actions/cache/commit/374a27f26986edd8c430f386d152a856e179c0ae"><code>374a27f</code></a>
Prepare release 4.2.4</li>
<li><a
href="https://github.com/actions/cache/commit/358a7306cd9d78ceffc19271e69cd8528462fccf"><code>358a730</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1634">#1634</a>
from actions/Link-/optimise-deps</li>
<li><a
href="https://github.com/actions/cache/commit/2ee706ef74683b68fd97d45e549070fc28642768"><code>2ee706e</code></a>
Fix with another approach</li>
<li><a
href="https://github.com/actions/cache/commit/94f7b5d9135a3af2d928e87120da293c9a920f90"><code>94f7b5d</code></a>
Fix bundle exec</li>
<li><a
href="https://github.com/actions/cache/commit/c36116c3f4852e9868973e98be949d101f296afa"><code>c36116c</code></a>
Fix the workflow to use licensed from source</li>
<li><a
href="https://github.com/actions/cache/commit/320fe7d56bfd8d9e7b7694dce399643f5b61d580"><code>320fe7d</code></a>
Update the licensed workflow to use the latest version</li>
<li><a
href="https://github.com/actions/cache/commit/d81cc477d92d48462edee5b1e53b15613993e818"><code>d81cc47</code></a>
Add licensed output</li>
<li><a
href="https://github.com/actions/cache/commit/de243982c557f21f36de55f0c01cd6a8e7a6aa71"><code>de24398</code></a>
Add licensed output</li>
<li><a
href="https://github.com/actions/cache/commit/e7b6a9cc9d34d03fd2bf2834b35a8b9e82faa8e5"><code>e7b6a9c</code></a>
<code>@​protobuf-ts/plugin</code> to dev dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/cache/compare/5a3ec84eff668545956fd18022155c47e93e2684...0400d5f644dc74513175e3cd8d07132dd4860809">compare
view</a></li>
</ul>
</details>
<br />

Updates `crate-ci/typos` from 1.34.0 to 1.35.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.35.3</h2>
<h2>[1.35.3] - 2025-08-08</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>ratatui</code> in Rust files</li>
</ul>
<h2>v1.35.2</h2>
<h2>[1.35.2] - 2025-08-07</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>unmarshaling</code></li>
</ul>
<h2>v1.35.1</h2>
<h2>[1.35.1] - 2025-08-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>apostroph</code></li>
<li>Fix typo in correction to <code>cordinate</code></li>
<li>Fix typo in correction to <code>reproduceability</code></li>
<li>Fix typo in correction to <code>revolutionss</code></li>
<li>Fix typo in correction to <code>transivity</code></li>
</ul>
<h2>v1.35.0</h2>
<h2>[1.35.0] - 2025-08-04</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1331">July
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.35.3] - 2025-08-08</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>ratatui</code> in Rust files</li>
</ul>
<h2>[1.35.2] - 2025-08-07</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>unmarshaling</code></li>
</ul>
<h2>[1.35.1] - 2025-08-04</h2>
<h3>Fixes</h3>
<ul>
<li>Fix typo in correction to <code>apostroph</code></li>
<li>Fix typo in correction to <code>cordinate</code></li>
<li>Fix typo in correction to <code>reproduceability</code></li>
<li>Fix typo in correction to <code>revolutionss</code></li>
<li>Fix typo in correction to <code>transivity</code></li>
</ul>
<h2>[1.35.0] - 2025-08-04</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1331">July
2025</a> changes</li>
</ul>
<h2>[1.34.0] - 2025-06-30</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1309">June
2025</a> changes</li>
</ul>
<h2>[1.33.1] - 2025-06-02</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Don't correct <code>wasn't</code> to
<code>wasm't</code></li>
</ul>
<h2>[1.33.0] - 2025-06-02</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/52bd719c2c91f9d676e2aa359fc8e0db8925e6d8"><code>52bd719</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/c6f77dda9e9bf82551f03a500347eb06ce8a90b1"><code>c6f77dd</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/e35d08c453d5ac2a4630b633dbb63e819b129193"><code>e35d08c</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1353">#1353</a>
from Rolv-Apneseth/ratatui</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9d6691bc8cf087436d192d03414b9c2420570343"><code>9d6691b</code></a>
fix: Ignore <code>ratatui</code> in Rust files</li>
<li><a
href="https://github.com/crate-ci/typos/commit/f1231bc2bcc92b2b18da70a877cf89afce08dd42"><code>f1231bc</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/66def6387b9bb7954423333521eed23e75651f6e"><code>66def63</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/623f09b5bc658227e7e051fc494f3af24030d1cf"><code>623f09b</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/1080316783320230c1f65e1c374e44dfc13829c6"><code>1080316</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/442605b52920ac6faab2e457d3bafc0a6d05a5d1"><code>442605b</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1352">#1352</a>
from epage/marshaling</li>
<li><a
href="https://github.com/crate-ci/typos/commit/983f866bac2164c77fc4ad8a06cdb0738c38ddba"><code>983f866</code></a>
fix(dict): Don't correct marshaling</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/392b78fe18a52790c53f42456e46124f77346842...52bd719c2c91f9d676e2aa359fc8e0db8925e6d8">compare
view</a></li>
</ul>
</details>
<br />

Updates `docker/login-action` from 3.4.0 to 3.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/login-action/releases">docker/login-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.5.0</h2>
<ul>
<li>Support dual-stack endpoints for AWS ECR by <a
href="https://github.com/Spacefish"><code>@​Spacefish</code></a> <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/login-action/pull/874">docker/login-action#874</a>
<a
href="https://redirect.github.com/docker/login-action/pull/876">docker/login-action#876</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> to 3.859.0 in <a
href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a>
<a
href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li>
<li>Bump <code>@​aws-sdk/client-ecr-public</code> to 3.859.0 in <a
href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a>
<a
href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.57.0 to 0.62.1 in
<a
href="https://redirect.github.com/docker/login-action/pull/870">docker/login-action#870</a></li>
<li>Bump form-data from 2.5.1 to 2.5.5 in <a
href="https://redirect.github.com/docker/login-action/pull/875">docker/login-action#875</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v3.4.0...v3.5.0">https://github.com/docker/login-action/compare/v3.4.0...v3.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/login-action/commit/184bdaa0721073962dff0199f1fb9940f07167d1"><code>184bdaa</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/878">#878</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="https://github.com/docker/login-action/commit/5c6bc94683baa064818f51e7417087c2ac58b32c"><code>5c6bc94</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/caf405864315c6006c5581b540e5047cf728b4e7"><code>caf4058</code></a>
build(deps): bump the aws-sdk-dependencies group with 2 updates</li>
<li><a
href="https://github.com/docker/login-action/commit/ef38ec311a7df3f01475313e7c5bb584b74b112a"><code>ef38ec3</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/860">#860</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="https://github.com/docker/login-action/commit/d52e8ef81c0de894e9c95bed8de0ee5955ec7eb7"><code>d52e8ef</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/9644ab7025be3206ff4b12f1531a1b6919022b00"><code>9644ab7</code></a>
build(deps): bump the aws-sdk-dependencies group with 2 updates</li>
<li><a
href="https://github.com/docker/login-action/commit/7abd1d512621d8896b31f4ea992d207f15915ad6"><code>7abd1d5</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/875">#875</a>
from docker/dependabot/npm_and_yarn/form-data-2.5.5</li>
<li><a
href="https://github.com/docker/login-action/commit/1a81202c4fda440f3b33eca3381d5d39c7efe85e"><code>1a81202</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/876">#876</a>
from crazy-max/aws-public-dual-stack</li>
<li><a
href="https://github.com/docker/login-action/commit/d1ab30dc54161cbfd704562857677edf4dd7837a"><code>d1ab30d</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/f25ff28d1c8cd9a7c35896711238fed682755e1c"><code>f25ff28</code></a>
support dual-stack for aws public ecr</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/login-action/compare/74a5d142397b4f367a81961eba4e8cd7edddf772...184bdaa0721073962dff0199f1fb9940f07167d1">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/setup-gcloud` from 2.1.5 to 2.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/setup-gcloud/releases">google-github-actions/setup-gcloud's
releases</a>.</em></p>
<blockquote>
<h2>v2.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Introduce an option to skip the tool cache by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/718">google-github-actions/setup-gcloud#718</a></li>
<li>Release: v2.2.0 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/719">google-github-actions/setup-gcloud#719</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/setup-gcloud/compare/v2.1.5...v2.2.0">https://github.com/google-github-actions/setup-gcloud/compare/v2.1.5...v2.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/cb1e50a9932213ecece00a606661ae9ca44f3397"><code>cb1e50a</code></a>
Release: v2.2.0 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/719">#719</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/ef52f8c087fe78d43262625448b746144fe6448c"><code>ef52f8c</code></a>
Introduce an option to skip the tool cache (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/718">#718</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/setup-gcloud/compare/6a7c903a70c8625ed6700fa299f5ddb4ca6022e9...cb1e50a9932213ecece00a606661ae9ca44f3397">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/download-artifact` from 4.3.0 to 5.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/407">actions/download-artifact#407</a></li>
<li>BREAKING fix: inconsistent path behavior for single artifact
downloads by ID by <a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/416">actions/download-artifact#416</a></li>
</ul>
<h2>v5.0.0</h2>
<h3>🚨 Breaking Change</h3>
<p>This release fixes an inconsistency in path behavior for single
artifact downloads by ID. <strong>If you're downloading single artifacts
by ID, the output path may change.</strong></p>
<h4>What Changed</h4>
<p>Previously, <strong>single artifact downloads</strong> behaved
differently depending on how you specified the artifact:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (direct)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/my-artifact/</code> (nested)</li>
</ul>
<p>Now both methods are consistent:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (unchanged)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/</code> (fixed - now direct)</li>
</ul>
<h4>Migration Guide</h4>
<h5> No Action Needed If:</h5>
<ul>
<li>You download artifacts by <strong>name</strong></li>
<li>You download <strong>multiple</strong> artifacts by ID</li>
<li>You already use <code>merge-multiple: true</code> as a
workaround</li>
</ul>
<h5>⚠️ Action Required If:</h5>
<p>You download <strong>single artifacts by ID</strong> and your
workflows expect the nested directory structure.</p>
<p><strong>Before v5 (nested structure):</strong></p>
<pre lang="yaml"><code>- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist
# Files were in: dist/my-artifact/
</code></pre>
<blockquote>
<p>Where <code>my-artifact</code> is the name of the artifact you
previously uploaded</p>
</blockquote>
<p><strong>To maintain old behavior (if needed):</strong></p>
<pre lang="yaml"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/634f93cb2916e3fdff6788551b99b062d0335ce0"><code>634f93c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/416">#416</a>
from actions/single-artifact-id-download-path</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b19ff4302770b82aa4694b63703b547756dacce6"><code>b19ff43</code></a>
refactor: resolve download path correctly in artifact download tests
(mainly ...</li>
<li><a
href="https://github.com/actions/download-artifact/commit/e262cbee4ab8c473c61c59a81ad8e9dc760e90db"><code>e262cbe</code></a>
bundle dist</li>
<li><a
href="https://github.com/actions/download-artifact/commit/bff23f9308ceb2f06d673043ea6311519be6a87b"><code>bff23f9</code></a>
update docs</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fff8c148a8fdd56aa81fcb019f0b5f6c65700c4d"><code>fff8c14</code></a>
fix download path logic when downloading a single artifact by id</li>
<li><a
href="https://github.com/actions/download-artifact/commit/448e3f862ab3ef47aa50ff917776823c9946035b"><code>448e3f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/407">#407</a>
from actions/nebuk89-patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/47225c44b359a5155efdbbbc352041b3e249fb1b"><code>47225c4</code></a>
Update README.md</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/d3f86a106a0bac45b974a628896c90dbdf5c8093...634f93cb2916e3fdff6788551b99b062d0335ce0">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
c2ca2493190021783138cb8aac49bcee14b4bb89 to
f963b3f3562b00b6d2dd25efc390eb04e51ef6c6
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/f963b3f3562b00b6d2dd25efc390eb04e51ef6c6"><code>f963b3f</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.1.0 to 24.2.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2640">#2640</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/f956744105e18d78bba3844a1199ce43d6503017"><code>f956744</code></a>
chore(deps): bump actions/download-artifact from 4.3.0 to 5.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2641">#2641</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9009babdfafec9874564eacad3fb7006205ba31a"><code>9009bab</code></a>
chore(deps): bump yaml from 2.8.0 to 2.8.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2642">#2642</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/2ecafed8a9a7bcf95ff103a3753b27e044af2736"><code>2ecafed</code></a>
chore(deps-dev): bump eslint-plugin-prettier from 5.5.3 to 5.5.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2643">#2643</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/8cdfb7636d150253dee416a80f11c67f5ba7e9be"><code>8cdfb76</code></a>
chore(deps): bump tj-actions/eslint-changed-files from 25.3.1 to 25.3.2
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2638">#2638</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/087c158d0f1269d7ac8571378b39f3130f96a736"><code>087c158</code></a>
chore(deps-dev): bump ts-jest from 29.4.0 to 29.4.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2639">#2639</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/c2ca2493190021783138cb8aac49bcee14b4bb89...f963b3f3562b00b6d2dd25efc390eb04e51ef6c6">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.29.7 to 3.29.8
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.8</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.8 - 08 Aug 2025</h2>
<ul>
<li>Fix an issue where the Action would autodetect unsupported languages
such as HTML. <a
href="https://redirect.github.com/github/codeql-action/pull/3015">#3015</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.8/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.29.8 - 08 Aug 2025</h2>
<ul>
<li>Fix an issue where the Action would autodetect unsupported languages
such as HTML. <a
href="https://redirect.github.com/github/codeql-action/pull/3015">#3015</a></li>
</ul>
<h2>3.29.7 - 07 Aug 2025</h2>
<p>This release rolls back 3.29.6 to address issues with language
autodetection. It is identical to 3.29.5.</p>
<h2>3.29.6 - 07 Aug 2025</h2>
<ul>
<li>The <code>cleanup-level</code> input to the <code>analyze</code>
Action is now deprecated. The CodeQL Action has written a limited amount
of intermediate results to the database since version 2.2.5, and now
automatically manages cleanup. <a
href="https://redirect.github.com/github/codeql-action/pull/2999">#2999</a></li>
<li>Update default CodeQL bundle version to 2.22.3. <a
href="https://redirect.github.com/github/codeql-action/pull/3000">#3000</a></li>
</ul>
<h2>3.29.5 - 29 Jul 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2986">#2986</a></li>
</ul>
<h2>3.29.4 - 23 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.2 - 30 Jun 2025</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.21 - 28 July 2025</h2>
<p>No user facing changes.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/76621b61decf072c1cee8dd1ce2d2a82d33c17ed"><code>76621b6</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3019">#3019</a>
from github/update-v3.29.8-679a40d33</li>
<li><a
href="https://github.com/github/codeql-action/commit/29ac3cefbb645d41622f6f9baa1415e06d73cf06"><code>29ac3ce</code></a>
Add release notes for 3.29.7</li>
<li><a
href="https://github.com/github/codeql-action/commit/737cfdebe687c6e720fb99761f23d89751c3b93a"><code>737cfde</code></a>
Update changelog for v3.29.8</li>
<li><a
href="https://github.com/github/codeql-action/commit/679a40d337fedd9b7318253dd72bfe7dc6d1886c"><code>679a40d</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3014">#3014</a>
from github/henrymercer/rebuild-dispatch</li>
<li><a
href="https://github.com/github/codeql-action/commit/6fe50b283a3d2e5533299f72d99216cd8815500f"><code>6fe50b2</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/3015">#3015</a>
from github/henrymercer/language-autodetection-worka...</li>
<li><a
href="https://github.com/github/codeql-action/commit/6bc91d64f66d435200c8ba85c64878c3cbfad33b"><code>6bc91d6</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/6b4fedca4f3428195d7ba1ca7c7404f9ea472911"><code>6b4fedc</code></a>
Bump Action patch version</li>
<li><a
href="https://github.com/github/codeql-action/commit/5794ffcb4ab0e87e4b8a8446ef048488303db295"><code>5794ffc</code></a>
Fix auto-detection of extractors that aren't languages</li>
<li><a
href="https://github.com/github/codeql-action/commit/bd62bf449cd8695f818546752cc8157693e1716c"><code>bd62bf4</code></a>
Finish in-progress merges</li>
<li><a
href="https://github.com/github/codeql-action/commit/2afb4e6f3c84ec0534284f2b47ae8206dcb401bf"><code>2afb4e6</code></a>
Avoid specifying branch unnecessarily</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/51f77329afa6477de8c49fc9c7046c15b9a4e79d...76621b61decf072c1cee8dd1ce2d2a82d33c17ed">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| crate-ci/typos | [>= 1.30.a, < 1.31] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 16:10:46 +00:00
dependabot[bot] 331f85e0ac chore: bump github.com/chromedp/chromedp from 0.13.3 to 0.14.1 (#19292)
Bumps
[github.com/chromedp/chromedp](https://github.com/chromedp/chromedp)
from 0.13.3 to 0.14.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromedp/chromedp/commit/422fa06290cda228e5712bdda55fbf7a0f6c8466"><code>422fa06</code></a>
fix(allocator): Set --enable-unsafe-swiftshader with --disable-gpu</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/c34c35fb81d21803824f9f298d9eac740bcfde9e"><code>c34c35f</code></a>
Fixing issue with page.Navigate calls</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/c3337896f2239c5b7715a424c13f14d95d3dc4a3"><code>c333789</code></a>
allocator: fix race that causes workgroup panic</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/2f3596f46c773ec5af6eb10e5fdfee9a4b2f6688"><code>2f3596f</code></a>
Run modernize -fix -test ./...</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/743c1e442dd5e0536d46c64bb2d6360bec0ac082"><code>743c1e4</code></a>
Fix CreateTarget call</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/a2c672facedf743ba9f9cea01151358ca30f3be2"><code>a2c672f</code></a>
fix: <a
href="https://redirect.github.com/chromedp/chromedp/issues/1448">#1448</a></li>
<li><a
href="https://github.com/chromedp/chromedp/commit/5a4d7c0955a049d70f219b181d78302525f9ef63"><code>5a4d7c0</code></a>
Updating cdproto</li>
<li>See full diff in <a
href="https://github.com/chromedp/chromedp/compare/v0.13.3...v0.14.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/chromedp/chromedp&package-manager=go_modules&previous-version=0.13.3&new-version=0.14.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 15:37:04 +00:00
dependabot[bot] 39bcd819cc chore: bump github.com/aws/aws-sdk-go-v2/feature/rds/auth from 1.5.1 to 1.6.2 (#19291)
Bumps
[github.com/aws/aws-sdk-go-v2/feature/rds/auth](https://github.com/aws/aws-sdk-go-v2)
from 1.5.1 to 1.6.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/CHANGELOG.md">github.com/aws/aws-sdk-go-v2/feature/rds/auth's
changelog</a>.</em></p>
<blockquote>
<h1>Release (2021-10-11)</h1>
<h2>General Highlights</h2>
<ul>
<li><strong>Dependency Update</strong>: Updated to the latest SDK module
versions</li>
</ul>
<h2>Module Highlights</h2>
<ul>
<li><code>github.com/aws/aws-sdk-go-v2/feature/ec2/imds</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/feature/ec2/imds/CHANGELOG.md#v160-2021-10-11">v1.6.0</a>
<ul>
<li><strong>Feature</strong>: Respect passed in Context
Deadline/Timeout. Updates the IMDS Client operations to not override the
passed in Context's Deadline or Timeout options. If an Client operation
is called with a Context with a Deadline or Timeout, the client will no
longer override it with the client's default timeout.</li>
<li><strong>Bug Fix</strong>: Fix IMDS client's response handling and
operation timeout race. Fixes <a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1253">#1253</a></li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/amplifybackend</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/amplifybackend/CHANGELOG.md#v150-2021-10-11">v1.5.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>

<li><code>github.com/aws/aws-sdk-go-v2/service/applicationautoscaling</code>:
<a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/applicationautoscaling/CHANGELOG.md#v170-2021-10-11">v1.7.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/apprunner</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/apprunner/CHANGELOG.md#v130-2021-10-11">v1.3.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/backup</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/backup/CHANGELOG.md#v160-2021-10-11">v1.6.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/chime</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/chime/CHANGELOG.md#v1110-2021-10-11">v1.11.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/codebuild</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/codebuild/CHANGELOG.md#v1110-2021-10-11">v1.11.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/databrew</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/databrew/CHANGELOG.md#v1100-2021-10-11">v1.10.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/ec2</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/ec2/CHANGELOG.md#v1190-2021-10-11">v1.19.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/efs</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/efs/CHANGELOG.md#v180-2021-10-11">v1.8.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>

<li><code>github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2</code>:
<a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/elasticloadbalancingv2/CHANGELOG.md#v190-2021-10-11">v1.9.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/firehose</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/firehose/CHANGELOG.md#v170-2021-10-11">v1.7.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/frauddetector</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/frauddetector/CHANGELOG.md#v1100-2021-10-11">v1.10.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/fsx</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/fsx/CHANGELOG.md#v1100-2021-10-11">v1.10.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/glue</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/glue/CHANGELOG.md#v1120-2021-10-11">v1.12.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/grafana</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/grafana/CHANGELOG.md#v100-2021-10-11">v1.0.0</a>
<ul>
<li><strong>Release</strong>: New AWS service client module</li>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/iotevents</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/iotevents/CHANGELOG.md#v180-2021-10-11">v1.8.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/kendra</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/kendra/CHANGELOG.md#v1120-2021-10-11">v1.12.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/kms</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/kms/CHANGELOG.md#v170-2021-10-11">v1.7.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/lexmodelsv2</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/lexmodelsv2/CHANGELOG.md#v190-2021-10-11">v1.9.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
<li><code>github.com/aws/aws-sdk-go-v2/service/lexruntimev2</code>: <a
href="https://github.com/aws/aws-sdk-go-v2/blob/service/pi/v1.6.2/service/lexruntimev2/CHANGELOG.md#v160-2021-10-11">v1.6.0</a>
<ul>
<li><strong>Feature</strong>: API client updated</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/26a9df85b9bd8b23a4a0db1bc2f14ef88a1234e7"><code>26a9df8</code></a>
Release 2021-10-11</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/29c9052835b1a9ac5d9f3833a7d549cbd8a50ea4"><code>29c9052</code></a>
update api models (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1455">#1455</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/0d3bd7a3ee7b0eda33531db18f4aa404225381e0"><code>0d3bd7a</code></a>
feature/ec2/imds: Fix Client's response handling and operation timeout
race (...</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f1baf2dc6d42d48d46bc079d574f60f7a92a223b"><code>f1baf2d</code></a>
Update stale_issue.yml (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1447">#1447</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/74bf5cfb9e3108a48d95e23ca00901cb50cdba2f"><code>74bf5cf</code></a>
Update SDK to use shared tooling for changelog and release handling (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1431">#1431</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f7e09fbe15942bd0bcff35620a0c099109e5fdd0"><code>f7e09fb</code></a>
Fix a typo in the Retryer docs (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1441">#1441</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/654440450eb02e128d94dd3aa4ac690a80aabc3a"><code>6544404</code></a>
Release 2021-09-30</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/54c5dd79da51255301812dfabd37f90818a2316c"><code>54c5dd7</code></a>
update endpoint for cloud control (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1444">#1444</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f70d329ff8d41fd0602cd370516d41a5b2c28000"><code>f70d329</code></a>
update models (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/1443">#1443</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/cc132614991d2e36a7b5ca8685aea13bf1337224"><code>cc13261</code></a>
Release 2021-09-24</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/service/pi/v1.5.1...service/pi/v1.6.2">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/feature/rds/auth&package-manager=go_modules&previous-version=1.5.1&new-version=1.6.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 15:34:43 +00:00
dependabot[bot] 894a80b86b chore: bump github.com/mark3labs/mcp-go from 0.36.0 to 0.37.0 (#19290)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.36.0 to 0.37.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.37.0</h2>
<h2>⚠️ Breaking Changes</h2>
<p>The <code>Result.Meta</code> field type has changed from
<code>map[string]any</code> to <code>*Meta</code>. Code that directly
accesses or sets this field will need to be updated:</p>
<pre lang="go"><code>// Before (v0.36.0 and earlier):
result.Meta = map[string]any{&quot;key&quot;: &quot;value&quot;}
<p>// After (v0.37.0):
result.Meta = &amp;mcp.Meta{AdditionalFields:
map[string]any{&quot;key&quot;: &quot;value&quot;}}
</code></pre></p>
<h2>What's Changed</h2>
<ul>
<li>Replace Prompts/Resources/Resource Templates by <a
href="https://github.com/dgageot"><code>@​dgageot</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/518">mark3labs/mcp-go#518</a></li>
<li>Update server.go race condition by <a
href="https://github.com/outofthisworld"><code>@​outofthisworld</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/524">mark3labs/mcp-go#524</a></li>
<li>task: add _meta field to relevant types as defined in MCP
specification by <a
href="https://github.com/buraksenn"><code>@​buraksenn</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/429">mark3labs/mcp-go#429</a></li>
<li>feat: implement sampling support for Streamable HTTP transport by <a
href="https://github.com/andig"><code>@​andig</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/515">mark3labs/mcp-go#515</a></li>
<li>Fix SSE transport not properly handling HTTP/2 NO_ERROR
disconnections by <a
href="https://github.com/okoshi-f"><code>@​okoshi-f</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/509">mark3labs/mcp-go#509</a></li>
<li>feat: add thread-safe <code>SetExpectedState</code> for
cross-request OAuth flows by <a
href="https://github.com/sd2k"><code>@​sd2k</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/500">mark3labs/mcp-go#500</a></li>
<li>feat: allow to set a custom logger in the SSE and STDIO clients by
<a href="https://github.com/caarlos0"><code>@​caarlos0</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/525">mark3labs/mcp-go#525</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/outofthisworld"><code>@​outofthisworld</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/524">mark3labs/mcp-go#524</a></li>
<li><a href="https://github.com/buraksenn"><code>@​buraksenn</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/429">mark3labs/mcp-go#429</a></li>
<li><a href="https://github.com/andig"><code>@​andig</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/515">mark3labs/mcp-go#515</a></li>
<li><a href="https://github.com/okoshi-f"><code>@​okoshi-f</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/509">mark3labs/mcp-go#509</a></li>
<li><a href="https://github.com/caarlos0"><code>@​caarlos0</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/525">mark3labs/mcp-go#525</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.36.0...v0.37.0">https://github.com/mark3labs/mcp-go/compare/v0.36.0...v0.37.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6da5cd164852f4d90c39c4ce70dc3dd0aed906f2"><code>6da5cd1</code></a>
feat: allow to set a custom logger in the SSE and STDIO clients (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/525">#525</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9259d32af54f69fbdc8c69b762c6a9449f0413b1"><code>9259d32</code></a>
feat: add thread-safe <code>SetExpectedState</code> for cross-request
OAuth flows (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/500">#500</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a63f10e5b74cf6cfe2fa59b07b8e3f54a69366b9"><code>a63f10e</code></a>
Fix SSE transport not properly handling HTTP/2 NO_ERROR disconnections
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/509">#509</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/fda6b38ed3a514e7943b46d46fcac27a71204e67"><code>fda6b38</code></a>
feat: implement sampling support for Streamable HTTP transport (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/515">#515</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6e5d6fd976451bc1a1cc32e26cababce562c0ceb"><code>6e5d6fd</code></a>
fix unmarshalling error for Meta property</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/57740b672a283f27346158289449b1d8f0c31a59"><code>57740b6</code></a>
task: add _meta field to relevant types (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/429">#429</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/96de11276c5934385ce4b95f493fcef172f438de"><code>96de112</code></a>
Update server.go race condition (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/524">#524</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/4cca302f5eac488b407d87ac58fffd63517e6af6"><code>4cca302</code></a>
Replace Prompts/Resources/Resource Templates (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/518">#518</a>)</li>
<li>See full diff in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.36.0...v0.37.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.36.0&new-version=0.37.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 15:32:14 +00:00
dependabot[bot] 2a81449b75 chore: bump the x group with 7 updates (#19289)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps the x group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [golang.org/x/crypto](https://github.com/golang/crypto) | `0.40.0` |
`0.41.0` |
| [golang.org/x/mod](https://github.com/golang/mod) | `0.26.0` |
`0.27.0` |
| [golang.org/x/net](https://github.com/golang/net) | `0.42.0` |
`0.43.0` |
| [golang.org/x/sys](https://github.com/golang/sys) | `0.34.0` |
`0.35.0` |
| [golang.org/x/term](https://github.com/golang/term) | `0.33.0` |
`0.34.0` |
| [golang.org/x/text](https://github.com/golang/text) | `0.27.0` |
`0.28.0` |
| [golang.org/x/tools](https://github.com/golang/tools) | `0.35.0` |
`0.36.0` |

Updates `golang.org/x/crypto` from 0.40.0 to 0.41.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/crypto/commit/ef5341b70697ceb55f904384bd982587224e8b0c"><code>ef5341b</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/crypto/commit/b999374650442ee37e9bbd97d6a11ad7ed999b98"><code>b999374</code></a>
acme: fix pebble subprocess output data race</li>
<li><a
href="https://github.com/golang/crypto/commit/c247dead11de7671a21a6c5169555e2aa5313caa"><code>c247dea</code></a>
x509roots/fallback: store bundle certs directly in DER</li>
<li><a
href="https://github.com/golang/crypto/commit/1fda73153feef7b246f24005838c387e354e5e3b"><code>1fda731</code></a>
acme: increase pebble test waitForServer attempts</li>
<li><a
href="https://github.com/golang/crypto/commit/1b4c3d2e8c8be172c6af8f2f72778e69e74d2e78"><code>1b4c3d2</code></a>
x509roots/fallback: update bundle</li>
<li><a
href="https://github.com/golang/crypto/commit/b903b535d3ef82fab12a9cc0fa50fccc396ced55"><code>b903b53</code></a>
acme: capture pebble test subprocess stdout/stderr</li>
<li>See full diff in <a
href="https://github.com/golang/crypto/compare/v0.40.0...v0.41.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/mod` from 0.26.0 to 0.27.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/mod/commit/f8a9fe217cff893cb67f4acad96a0021c13ee6e7"><code>f8a9fe2</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/mod/compare/v0.26.0...v0.27.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/net` from 0.42.0 to 0.43.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/e74bc31d69f225b635e065a602db3fbfa9850f93"><code>e74bc31</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/net/commit/af6926ea18d0703b9f24713074bc7079cf50a744"><code>af6926e</code></a>
http2: remove references to defunct http2.golang.org test server</li>
<li>See full diff in <a
href="https://github.com/golang/net/compare/v0.42.0...v0.43.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sys` from 0.34.0 to 0.35.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sys/commit/5b936e1f126baa13682eff91c2e4d5d9e3a0b71d"><code>5b936e1</code></a>
unix/linux: update to Linux kernel 6.16, Go to 1.24.5</li>
<li><a
href="https://github.com/golang/sys/commit/3a827038f29dfeda71ad5d6fdba5cef0b5720a97"><code>3a82703</code></a>
unix: remove redundant xnu version check for {p}readv/{p}writev</li>
<li><a
href="https://github.com/golang/sys/commit/9920300fc80d500263287b0b4906010f81e3acc4"><code>9920300</code></a>
unix: add missing nft conntrack constants</li>
<li><a
href="https://github.com/golang/sys/commit/ad4e0fcb710c6502fe5d4dba89040508f45ba069"><code>ad4e0fc</code></a>
unix: remove redundant word in comment</li>
<li><a
href="https://github.com/golang/sys/commit/084ad875b3b515f8e782e5bf42ce40e316126e9e"><code>084ad87</code></a>
unix: fix //sys decl after CL 548795</li>
<li>See full diff in <a
href="https://github.com/golang/sys/compare/v0.34.0...v0.35.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/term` from 0.33.0 to 0.34.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/term/commit/a35244d18d7756b12deca31a518c0fa1327d050a"><code>a35244d</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/term/commit/4f53e0cd3924d70667107169374a480bfd208348"><code>4f53e0c</code></a>
term: allow multi-line bracketed paste to not create single line with
verbati...</li>
<li><a
href="https://github.com/golang/term/commit/27f29d8328742b97c08c2186027d32cdc438345c"><code>27f29d8</code></a>
term: remove duplicate flag and add comment on windows</li>
<li>See full diff in <a
href="https://github.com/golang/term/compare/v0.33.0...v0.34.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/text` from 0.27.0 to 0.28.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/425d715b4a85c7698cedf621412bb53794cbda53"><code>425d715</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.27.0...v0.28.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.35.0 to 0.36.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/44d18e11572cd133e1eec6811ba57d78ff20addf"><code>44d18e1</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/52b9c68d0135f3d3c2dd2ebdabdfea7e1891fd20"><code>52b9c68</code></a>
go/ast/inspector: remove obsolete unsafe import</li>
<li><a
href="https://github.com/golang/tools/commit/b155480fce19b20e4598a0b8ca83620f1724b7f2"><code>b155480</code></a>
gopls/doc/features: add &quot;MCP&quot; to index.</li>
<li><a
href="https://github.com/golang/tools/commit/992bf9c2a4c3c32dc19e4e6df9bbc255c1808af0"><code>992bf9c</code></a>
gopls/internal/golang/hover: show alias real type decl for types
only</li>
<li><a
href="https://github.com/golang/tools/commit/861996a8e6524e998ff987217493af5fbd9e5793"><code>861996a</code></a>
go/ssa: pass GOEXPERIMENT=aliastypeparams only on Go 1.23</li>
<li><a
href="https://github.com/golang/tools/commit/528efdabbedbd4f98749aa907b412900f5bc3ee5"><code>528efda</code></a>
gopls/internal/analysis/modernize/forvar: provide fix for second loop
var</li>
<li><a
href="https://github.com/golang/tools/commit/bdddfd54ae82000b66cfeadfe6849bdcfefb35cf"><code>bdddfd5</code></a>
gopls/internal/server: add counters for add and remove struct tags</li>
<li><a
href="https://github.com/golang/tools/commit/23dd839aec5d324ef8d353e1bb7163a9d4e63803"><code>23dd839</code></a>
gopls/internal/filewatcher: fix race condition on watcher shutdown</li>
<li><a
href="https://github.com/golang/tools/commit/3a8978cc911172228fd3f5ecb8205d095fea5f05"><code>3a8978c</code></a>
cmd/digraph: fix bug in allpaths</li>
<li><a
href="https://github.com/golang/tools/commit/bae51bdd6e039c826b91c579f4db0294cfb9a5f7"><code>bae51bd</code></a>
gopls/internal/server: add windsurf and cursor as language client</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.35.0...v0.36.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 15:31:01 +00:00
dependabot[bot] ddf3a50ac0 chore: bump google.golang.org/api from 0.242.0 to 0.246.0 (#19284)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.242.0 to 0.246.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.246.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.245.0...v0.246.0">0.246.0</a>
(2025-08-06)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3261">#3261</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b792200673836a4a042bb48938dff17ee6a0954f">b792200</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>idtoken:</strong> Don't assume DefaultTransport is a
http.Transport (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3263">#3263</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/61fba51991b51d84065a1c66e4a49434462d2c94">61fba51</a>),
refs <a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3260">#3260</a></li>
</ul>
<h2>v0.245.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.244.0...v0.245.0">0.245.0</a>
(2025-08-05)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3252">#3252</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/07167280e3c760ca963632dc541e9c1428c639b9">0716728</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3254">#3254</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/702998a9a8285e1093886fc1b0fdfbcc8112fd6f">702998a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3255">#3255</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0f103667e9560e28646edc7aa03e47e71983aae5">0f10366</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3256">#3256</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/83176a94b64c04b46b4926f41f5f87d7a54f71f6">83176a9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3257">#3257</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/efc337167473eb103dbd70f9b5f9491ec1cff75c">efc3371</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3259">#3259</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/bf38d3ad99d570f956658f9f63209a5143f94703">bf38d3a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>gensupport:</strong> Fix transferChunk race condition by
returning response with non-cancelled context. (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3258">#3258</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/091d42217a08f1a5873cc13cfb51d4275b18e2e6">091d422</a>)</li>
</ul>
<h2>v0.244.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.243.0...v0.244.0">0.244.0</a>
(2025-07-30)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3241">#3241</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c204857ee78454d1e2cafb5df2bc3720fc0afbc">2c20485</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3243">#3243</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/cac72a14582b9675f5889a346f4f195988a2c9b5">cac72a1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3244">#3244</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e6b1c8715fbffd4598a9c80c21c274f858ea2cfe">e6b1c87</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3245">#3245</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c1ff18dfc5f5c9e422ed03c8daf571264eaec4c">2c1ff18</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3247">#3247</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/09e5c0743dfa02b62cf54c797725b5c09744ec65">09e5c07</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3249">#3249</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/214eb4ea568f09bb4b874216e1b4084acb93de49">214eb4e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3250">#3250</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ce50789a30c76512543819a36eb0fb91b86edc44">ce50789</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3251">#3251</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e5c3e1801eaa85fa23ee046f1ffe8193c282b6fd">e5c3e18</a>)</li>
</ul>
<h2>v0.243.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.242.0...v0.243.0">0.243.0</a>
(2025-07-22)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.245.0...v0.246.0">0.246.0</a>
(2025-08-06)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3261">#3261</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b792200673836a4a042bb48938dff17ee6a0954f">b792200</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>idtoken:</strong> Don't assume DefaultTransport is a
http.Transport (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3263">#3263</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/61fba51991b51d84065a1c66e4a49434462d2c94">61fba51</a>),
refs <a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3260">#3260</a></li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.244.0...v0.245.0">0.245.0</a>
(2025-08-05)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3252">#3252</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/07167280e3c760ca963632dc541e9c1428c639b9">0716728</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3254">#3254</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/702998a9a8285e1093886fc1b0fdfbcc8112fd6f">702998a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3255">#3255</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0f103667e9560e28646edc7aa03e47e71983aae5">0f10366</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3256">#3256</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/83176a94b64c04b46b4926f41f5f87d7a54f71f6">83176a9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3257">#3257</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/efc337167473eb103dbd70f9b5f9491ec1cff75c">efc3371</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3259">#3259</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/bf38d3ad99d570f956658f9f63209a5143f94703">bf38d3a</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>gensupport:</strong> Fix transferChunk race condition by
returning response with non-cancelled context. (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3258">#3258</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/091d42217a08f1a5873cc13cfb51d4275b18e2e6">091d422</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.243.0...v0.244.0">0.244.0</a>
(2025-07-30)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3241">#3241</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c204857ee78454d1e2cafb5df2bc3720fc0afbc">2c20485</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3243">#3243</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/cac72a14582b9675f5889a346f4f195988a2c9b5">cac72a1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3244">#3244</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e6b1c8715fbffd4598a9c80c21c274f858ea2cfe">e6b1c87</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3245">#3245</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2c1ff18dfc5f5c9e422ed03c8daf571264eaec4c">2c1ff18</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3247">#3247</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/09e5c0743dfa02b62cf54c797725b5c09744ec65">09e5c07</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3249">#3249</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/214eb4ea568f09bb4b874216e1b4084acb93de49">214eb4e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3250">#3250</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ce50789a30c76512543819a36eb0fb91b86edc44">ce50789</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3251">#3251</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e5c3e1801eaa85fa23ee046f1ffe8193c282b6fd">e5c3e18</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.242.0...v0.243.0">0.243.0</a>
(2025-07-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3233">#3233</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a269dca39e5315e9bfc77cc05b3dbd64af9baa25">a269dca</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3235">#3235</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b656000d19f9627de3e2817451f82c339ce4e4bb">b656000</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/3341cca405908a19792c898b585a27ae245ed368"><code>3341cca</code></a>
chore(main): release 0.246.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3262">#3262</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/61fba51991b51d84065a1c66e4a49434462d2c94"><code>61fba51</code></a>
fix(idtoken): don't assume DefaultTransport is a http.Transport (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3263">#3263</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/b792200673836a4a042bb48938dff17ee6a0954f"><code>b792200</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3261">#3261</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ed4d4caf7f9e4cb29e0d5f629e1b3ab623f0d982"><code>ed4d4ca</code></a>
chore(main): release 0.245.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3253">#3253</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/091d42217a08f1a5873cc13cfb51d4275b18e2e6"><code>091d422</code></a>
fix(gensupport): fix transferChunk race condition by returning response
with ...</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/bf38d3ad99d570f956658f9f63209a5143f94703"><code>bf38d3a</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3259">#3259</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/efc337167473eb103dbd70f9b5f9491ec1cff75c"><code>efc3371</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3257">#3257</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/83176a94b64c04b46b4926f41f5f87d7a54f71f6"><code>83176a9</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3256">#3256</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/0f103667e9560e28646edc7aa03e47e71983aae5"><code>0f10366</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3255">#3255</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/702998a9a8285e1093886fc1b0fdfbcc8112fd6f"><code>702998a</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3254">#3254</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.242.0...v0.246.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.242.0&new-version=0.246.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 15:28:32 +00:00
Mathias Fredriksson 1b66495b70 fix(coderd/prometheusmetrics)!: filter deleted wsbuilds to reduce db load (#19197)
This change removes the `GetLatestWorkspaceBuilds` query which includes
all workspaces for all time (including deleted). This allows us to also
stop using `GetProvisionerJobsByIDs` for said builds as the job status
is included in `GetWorkspaces` called separately.

**BREAKING CHANGE**: The `coderd_api_workspace_latest_build` Prometheus
metric no longer includes builds belonging to deleted workspaces, as
such, this metric will show fewer statuses.

Fixes coder/internal#717
2025-08-11 14:48:31 +03:00
Cian Johnston 060fb57d28 chore(enterprise/coderd): ignore log errors in TestGetCryptoKeys/Unauthorized (#19282)
Fixes https://github.com/coder/internal/issues/797
2025-08-11 12:32:29 +01:00
Jakub Domeracki 5d42b1861e fix: upload the slim binaries from the build directory to the GCS bucket (#19281)
Updated the upload script to copy the slim binaries from the ./build
directory to the GCS bucket (instead of the ./site/out/bin directory)
2025-08-11 12:54:44 +02:00
Thomas Kosiewski b7e026682a fix: skip bash tests on Windows (#19277)
Adds Windows compatibility to toolsdk tests

This PR adds Windows compatibility to the toolsdk tests by:

1. Adding build constraints to exclude bash_test.go from running on
Windows
2. Skipping the WorkspaceSSHExec test on Windows platforms with a clear
message

These changes ensure tests run properly across all supported platforms.

Related to https://github.com/coder/internal/issues/798

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-08-11 11:43:25 +02:00
Rowan Smith dadeab881b docs: fix broken link (#19275)
Fixed a broken link to the coder registry so that it correctly loads
agent modules

https://coder.com/docs/ai-coder/custom-agents
2025-08-11 13:27:30 +10:00
dependabot[bot] ab41e98180 chore: bump coder/slackme/coder from 1.0.30 to 1.0.31 in /dogfood/coder-envbuilder (#19274)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/slackme/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 00:47:58 +00:00
dependabot[bot] 99f252f2d1 chore: bump coder/dotfiles/coder from 1.2.0 to 1.2.1 in /dogfood/coder-envbuilder (#19273)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/dotfiles/coder&package-manager=terraform&previous-version=1.2.0&new-version=1.2.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 00:46:54 +00:00
dependabot[bot] acb38b1a7e chore: bump coder/jetbrains/coder from 1.0.0 to 1.0.2 in /dogfood/coder (#19272)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/jetbrains/coder&package-manager=terraform&previous-version=1.0.0&new-version=1.0.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 00:46:38 +00:00
dependabot[bot] 7b877310b5 chore: bump coder/git-clone/coder from 1.1.0 to 1.1.1 in /dogfood/coder (#19271)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/git-clone/coder&package-manager=terraform&previous-version=1.1.0&new-version=1.1.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 00:46:13 +00:00
ケイラ 4f1db8b866 chore: upgrade to storybook 9 (#18983) 2025-08-08 14:36:27 -06:00
Steven Masley ce935657f6 test: start migrating dbauthz tests to mocked db (#19257)
This PR adds a framework to move to a mocked db. And therefore massively speed up these tests.
2025-08-08 13:46:24 -05:00
Cian Johnston 155c7bbc65 chore(coderd/provisionerdserver): avoid fk error on invalid ai_task_sidebar_app_id (#19253)
This is a workaround for https://github.com/coder/coder/issues/18776

We avoid the foreign key issue by checking the previously inserted
workspace applications before calling UpdateWorkspaceAITask. Now,
affected workspaces will show as "not running an AI task" on the single
task view, which is technically correct.

We also insert a provisioner job log at WARN level to ensure that the
user sees some information that they have run into this issue, as well
as logging on the server side.

Longer term, we plan to modify how the workspace tasks view is
presented. This is a stopgap measure until we solidify that plan.

NOTE: this does **not** address the fact that stopping a workspace with
`has_ai_task: true` will result in the completed stop build no longer
having `has_ai_task: true`, resulting in tasks "disappearing" on stop.
2025-08-08 18:06:32 +01:00
Cian Johnston afb54f6884 chore: revert feat(enterprise/coderd): allow system users to be added to groups (#19254)
This reverts commit b200fc8e67
(https://github.com/coder/coder/pull/18341).
2025-08-08 12:18:07 +01:00
Sas Swart b200fc8e67 feat(enterprise/coderd): allow system users to be added to groups (#18341)
closes https://github.com/coder/coder/issues/18274

This pull request makes system users visible in various group related
queries so that they can be added to and removed from groups. This
allows system user quotas to be configured. System users are still
ignored in certain queries, such as when license seat consumption is
determined.

This pull request further ensures the existence of a
"coder_prebuilt_workspaces" group in any organization that needs
prebuilt workspaces

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
  * Organization and group member listings now include system users.
* **Bug Fixes**
* Updated tests to reflect the inclusion of system users in member and
group queries.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-08-08 11:03:17 +02:00
Rowan Smith bdde9828b4 docs: fix marketplace links for GCP (#19250) 2025-08-08 16:00:09 +10:00
ケイラ 7bb52e1f8a test: add tests for updating workspace acl (#19240) 2025-08-07 17:09:46 -06:00
ケイラ d1e64affd6 refactor: migrate Abbr to Tailwind (#19242) 2025-08-07 15:27:49 -06:00
Michael Smith 5225c5671d fix(site): add tests for createMockWebSocket (#19172)
Needed for https://github.com/coder/coder/pull/19126 and
https://github.com/coder/coder/pull/18679

## Changes made
- Moved `createWebSocket` to dedicated file and addressed edge cases for
making it a reliable mock
- Added test cases to validate mock functionality
2025-08-07 16:54:50 -04:00
Steven Masley 0a3afeddc8 chore: add more pprof labels for various go routines (#19243)
- ReplicaSync
- Notifications
- MetricsAggregator
- DBPurge
2025-08-07 20:05:32 +00:00
Yevhenii Shcherbina c65996a041 feat: add user_secrets table (#19162)
Closes https://github.com/coder/internal/issues/780

## Summary of changes:
- added `user_secrets` table
- `user_secrets` table contains `env_name` and `file_path` fields which
are not used at the moment, but will be used in later PRs
- `user_secrets` table doesn't contain `value_key_id`, I will add it in
a separate migration in a dbcrypt PR
- on one hand I don't want to add fields which are not used (because
it's a risk smth may change in implementation later), on the other hand
I don't want to add too many migrations for user secrets table
- added unique sql indexes
- added sql queries for CRUD operations on user-secrets
- introduced new `ResourceUserSecret` resource
- basic unit-tests for CRUD ops and authorization behavior
- Role updates:
  - owner:
    - remove `ResourceUserSecret` from site-wide perms
    - add `ResourceUserSecret` to user-wide perms
   - orgAdmin
- remove `ResourceUserSecret` from org-wide perms; seems it's not
strictly required, because `ResourceUserSecret` is not tied to
organization in dbauthz wrappers?
   - memberRole
- no need to change memberRole because it implicitly has access to
user-secrets thanks to the `allPermsExcept`
   - is it enough changes to roles?
   
Main questions:
- [ ] We will have 2 migrations for user-secrets:
  - initial migration (in current PR)
  - adding `value_key_id` in dbcrypt PR
  - is this approach reasonable?
- [ ] Are changes to roles's permissions are correct?
- [ ] Are changes in roles_test.go are correct?

---------

Co-authored-by: Steven Masley <Emyrk@users.noreply.github.com>
2025-08-07 15:58:59 -04:00
Steven Masley 34c46c0748 chore: rename service -> coder_service, remove agent_id label (#19241)
Pyroscope uses `service` tag for top level distinction. So move our
`service` -> `coder_service`
2025-08-07 13:58:39 -05:00
Andrew Aquino b8851f03e3 fix: prevent horizontal form section info from overlapping form fields (#19189)
...on screens that are not wide enough to accommodate 2-column layout.

closes #19055 

Sticky positioning on form section info still works as expected on
desktop:


https://github.com/user-attachments/assets/e8f5b364-d20e-4248-acc6-848293947c92

Sticky positioning is no longer applied to form section info on
tablet/mobile:


https://github.com/user-attachments/assets/c52c6b04-7b73-457e-9d9e-0b461fff56ac
2025-08-07 11:08:23 -07:00
Steven Masley 8ba8b4f061 chore: add profiling labels for pprof analysis (#19232)
PProf labels segment the code into groups for determing the source of
cpu/memory profiles. Since the web server and background jobs share a
lot of the same code (eg wsbuilder), it helps to know if the load is
user induced, or background job based.
2025-08-07 11:21:17 -05:00
ケイラ 26458cd6f0 refactor: consolidate template and workspace acl validation (#19192) 2025-08-07 10:14:58 -06:00
Danielle Maywood 02de067d46 refactor(site): remove usage of throw in TaskApps.tsx (#19235) 2025-08-07 17:03:51 +01:00
Danielle Maywood ffbd58336a fix(site): fix render crash when no embedded apps are defined for task (#19215)
Fixes https://github.com/coder/coder/issues/19101

We now gracefully handle the scenario where there are no embedded apps
defined for a task.
2025-08-07 14:24:23 +01:00
Spike Curtis 6ba55213fb test: fix timeout on TestServer_X11_EvictionLRU (#19217)
fixes https://github.com/coder/internal/issues/878

On my dev system it takes 900ms, but looking at timestamps in CI it took
25 seconds. Bumping timeout to 60s.

Also fixes the segfault.
2025-08-07 16:40:38 +04:00
Marcin Tojek 2851d9f3ea fix: return empty array if no option multi-selected (#19224)
Related: https://github.com/coder/coder/issues/19145
2025-08-07 11:37:58 +00:00
Spike Curtis 91780db1fe fix: upgrade to 1.24.6 to fix race in lib/pq queries (#19214)
fixes: https://github.com/coder/internal/issues/731

THIS IS A SECURITY FIX

upgrade to go 1.24.6 to avoid https://github.com/golang/go/issues/74831 (CVE-2025-47907)

Also points to a new version of our lib/pq fork that worked around the Go issue, which should restore better performance.
2025-08-07 13:49:51 +04:00
Dean Sheather 82d5a20762 fix: fix flake in workspace TTL test caused by new constraint (#19213) 2025-08-07 07:16:01 +00:00
Ethan 99d75cc000 fix: use system context for querying workspaces when deleting users (#19211)
Closes #19209.

In `templates.go`, we do this to make sure we count ALL workspaces for a template before we try and delete that template:
https://github.com/coder/coder/blob/dc598856e3be0926573dbbe2ec680e95a139093a/coderd/templates.go#L81-L99

However, we weren't doing the same when attempting to delete users, leading to the linked issue. We can solve the issue the same way as we do for templates.
2025-08-07 16:31:27 +10:00
Dean Sheather 9edca92c74 fix: fix incorrect migration in constraint (#19212) 2025-08-07 06:19:00 +00:00
Dean Sheather dc598856e3 chore: improve build deadline code (#19203)
- Adds/improves a lot of comments to make the autostop calculation code
clearer
- Changes the behavior of the enterprise template schedule store to
match the behavior of the workspace TTL endpoint when the new TTL is
zero
- Fixes a bug in the workspace TTL endpoint where it could unset the
build deadline, even though a max_deadline was specified
- Adds a new constraint to the workspace_builds table that enforces the
deadline is non-zero and below the max_deadline if it is set
- Adds CHECK constraint enum generation to scripts/dbgen, used for
testing the above constraint
- Adds Dean and Danielle as CODEOWNERS for the autostop calculation code
2025-08-07 11:00:31 +10:00
Steven Masley ec3b8cea91 chore: add quick filter option for authored templates (#19206) 2025-08-06 17:26:17 -05:00
Marcin Tojek a7fac302bb feat: implement rich multi-selector (#19201)
Fixes: https://github.com/coder/coder/issues/19182
2025-08-06 23:03:51 +02:00
Stephen Kirby 9505ecc73d feat(docs): promote dynamic parameters doc to GA (#19171) 2025-08-06 14:21:58 -05:00
Steven Masley a2e8aa9c28 chore: update coder/preview to v1.0.3 to fix nil ptr deref (#19205)
Woul happen in empty plans, AKA templates with 0 terraform content
2025-08-06 12:40:09 -05:00
Danielle Maywood 1c70d32ef3 fix(site): hide "Show parent apps" when no running or starting devcontainers (#19200)
Fixes https://github.com/coder/coder/issues/19199

We now hide the "Show parent apps" button when there are no running or
starting devcontainers.
2025-08-06 18:24:38 +01:00
Steven Masley 3024bdebcb chore: support 'me' as the username for template author (#19204)
`author:me` to find my templates. Much nicer than knowing my own
username
2025-08-06 11:45:07 -05:00
Steven Masley 5b80c47e8c feat: add author filter command to template filtering (#19202)
Can do `author:username` to filter templates created by a certain
author. Adding to help clean out some templates that I created on our
dev instance. This makes sorting a bit easier.
2025-08-06 10:41:01 -05:00
Jakub Domeracki 408e19fd98 fix: adjust the condition to actually run this step from release branches (#19187)
fix: adjust the condition to actually run this step from release branches
2025-08-06 10:06:23 +02:00
ケイラ 5c88d93207 chore: update to node 20.19.4 (#19188) 2025-08-06 08:19:02 +02:00
Stephen Kirby a2fc26114c chore(docs): update calendar and helm install docs for v2.25.0 (#19186)
Co-authored-by: M Atif Ali <atif@coder.com>
2025-08-06 02:40:40 +00:00
Steven Masley 4ba93824f9 chore(helm): make coder pprof endpoint available externally (#19185)
PProf is still disabled by default
2025-08-05 14:19:57 -05:00
Danielle Maywood cc609cbd53 fix(site): display tasks link when no templates contain an AI task (#19184)
Fixes https://github.com/coder/coder/issues/19059

This change ensures we always show the "Tasks" link, even when a deployment doesn't yet have a tasks template set up.
2025-08-05 19:30:17 +01:00
Danielle Maywood 760dc8b467 fix(agent/agentcontainers): fix TestDevcontainerDiscovery/AutoStart flake (#19179)
Fixes https://github.com/coder/internal/issues/864
2025-08-05 13:58:55 +01:00
Ethan 8b66a5ad59 chore(codersdk/workspacesdk): make dialer fail fast for authnz errors (#19173)
Closes #18599.

The linked issue was created due to me assuming the dialer didn't fail fast at all. In reality, it does fail fast, but only for a select few status codes. Auth[n|z] errors aren't any of those status codes, despite being 'permanent' in the same way a `400` is.
This PR makes 401* and 403 'permanent' errors, meaning the dialer will give up immediately after receiving them from coderd.

*One reason to receive a 401 is when the supplied resume_token is invalid. These are not permanent errors, and when we encounter those the dialer will retain the existing behaviour of unsetting the resume token and retrying.
2025-08-05 17:52:22 +10:00
Spike Curtis 7eb41193f8 test: fix TestSSHServer_ClosesStdin to handle non-atomic write (#19174)
fixes https://github.com/coder/internal/issues/863

We read an output file in a loop, but this could lead to races where the other process has created the file but not written, or a partial write in progress.  Fix is to retry if the content is shorter than we expect.
2025-08-05 11:36:21 +04:00
Cian Johnston b0ba798f78 chore(coderd/provisionerdserver): remove dangerous usage of dbtestutil.DisableForeignKeysAndTriggers (#19122)
May have caught https://github.com/coder/coder/issues/18776
2025-08-04 21:51:33 +01:00
Jakub Domeracki d05a15cb12 fix: adjust the kubectl exec example (#19148)
Current example fails since kubectl version 1.31:
```sh
$ kubectl exec -it deployment/coder /bin/bash -n coder
error: exec [POD] [COMMAND] is not supported anymore. Use exec [POD] -- [COMMAND] instead
```

The legacy syntax was removed in:
https://github.com/kubernetes/kubernetes/pull/125437
2025-08-04 21:24:09 +02:00
Hugo Dutka c94333d9b5 docs: oauth2-provider fixes (#19170)
Adds the oauth2-provider doc page to the manifest so it's rendered in
the docs, fixes formatting in the oauth2-provider doc, and links to it
from the MCP doc.

To see the formatting issues, visit
https://coder.com/docs/@4bcf44a/admin/integrations/oauth2-provider. To
see the doc after the fixes, visit
https://coder.com/docs/@f05969a/admin/integrations/oauth2-provider.
2025-08-04 21:20:51 +02:00
Thomas Kosiewski 247efc0dcc docs: add OAuth2 provider experimental feature documentation (#19165)
# Add OAuth2 Provider Documentation

This PR adds comprehensive documentation for the experimental OAuth2
Provider feature, which allows Coder to function as an OAuth2
authorization server. The documentation covers:

- Feature overview and experimental status warning
- Setup requirements and enabling the feature
- Methods for creating OAuth2 applications (UI and API)
- Integration patterns including standard OAuth2 and PKCE flows
- Discovery endpoints and token management
- Testing and development guidance
- Troubleshooting common issues
- Security considerations and current limitations

The documentation is marked as experimental and includes appropriate
warnings about production usage.

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-08-04 20:17:47 +02:00
35C4n0r dc395c3b51 chore: add openai icon (#19118)
Co-authored-by: ケイラ <mckayla@hey.com>
2025-08-04 11:42:16 -06:00
Hugo Dutka a02d1c1e59 docs: document how to start a remote MCP Coder server (#19150)
Document how to start a remote MCP Coder server. Addresses
https://github.com/coder/internal/issues/823.
2025-08-04 18:53:12 +02:00
Phorcys 75749efec7 chore: update diagrams to meet new branding (#19164) 2025-08-04 16:52:51 +00:00
Jon Ayers 8a8c13382e feat: update form-data dependency to 4.0.4 (#19128) 2025-08-04 12:42:50 -04:00
dependabot[bot] 06eaa006ea chore: bump github.com/prometheus/client_golang from 1.22.0 to 1.23.0 (#19159)
Bumps
[github.com/prometheus/client_golang](https://github.com/prometheus/client_golang)
from 1.22.0 to 1.23.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/releases">github.com/prometheus/client_golang's
releases</a>.</em></p>
<blockquote>
<h2>v1.23.0 - 2025-07-30</h2>
<ul>
<li>[CHANGE] Minimum required Go version is now 1.23, only the two
latest Go versions are supported from now on. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1812">#1812</a></li>
<li>[FEATURE] Add WrapCollectorWith and WrapCollectorWithPrefix <a
href="https://redirect.github.com/prometheus/client_golang/issues/1766">#1766</a></li>
<li>[FEATURE] Add exemplars for native histograms <a
href="https://redirect.github.com/prometheus/client_golang/issues/1686">#1686</a></li>
<li>[ENHANCEMENT] exp/api: Bubble up status code from writeResponse <a
href="https://redirect.github.com/prometheus/client_golang/issues/1823">#1823</a></li>
<li>[ENHANCEMENT] collector/go: Update runtime metrics for Go v1.23 and
v1.24 <a
href="https://redirect.github.com/prometheus/client_golang/issues/1833">#1833</a></li>
<li>[BUGFIX] exp/api: client prompt return on context cancellation <a
href="https://redirect.github.com/prometheus/client_golang/issues/1729">#1729</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md">github.com/prometheus/client_golang's
changelog</a>.</em></p>
<blockquote>
<h2>1.23.0 / 2025-07-30</h2>
<ul>
<li>[CHANGE] Minimum required Go version is now 1.23, only the two
latest Go versions are supported from now on. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1812">#1812</a></li>
<li>[FEATURE] Add WrapCollectorWith and WrapCollectorWithPrefix <a
href="https://redirect.github.com/prometheus/client_golang/issues/1766">#1766</a></li>
<li>[FEATURE] Add exemplars for native histograms <a
href="https://redirect.github.com/prometheus/client_golang/issues/1686">#1686</a></li>
<li>[ENHANCEMENT] exp/api: Bubble up status code from writeResponse <a
href="https://redirect.github.com/prometheus/client_golang/issues/1823">#1823</a></li>
<li>[ENHANCEMENT] collector/go: Update runtime metrics for Go v1.23 and
v1.24 <a
href="https://redirect.github.com/prometheus/client_golang/issues/1833">#1833</a></li>
<li>[BUGFIX] exp/api: client prompt return on context cancellation <a
href="https://redirect.github.com/prometheus/client_golang/issues/1729">#1729</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prometheus/client_golang/commit/e4b2208dd8cb6d1425f00250db842ec3c1e8749e"><code>e4b2208</code></a>
Cut v1.23.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1848">#1848</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/d9492afd3a6f2e9782a7fc10363281bfd5b743bb"><code>d9492af</code></a>
cut v1.23.0-rc.1 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1842">#1842</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/aeae8a0b4f54a8fa720d19b88638a2d048596f82"><code>aeae8a0</code></a>
Cut v1.23.0-rc.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1837">#1837</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/b157309b723f0b8588ea604bb78dbbba196803f2"><code>b157309</code></a>
Update common Prometheus files (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1832">#1832</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/a704e287f467b79744c30af996b7d710d4c6900d"><code>a704e28</code></a>
build(deps): bump the github-actions group with 3 updates (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1826">#1826</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/c7743110ad2c599de3d8c23682d978a12f9f36d1"><code>c774311</code></a>
Fix errNotImplemented reference (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1835">#1835</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/db4db7bb0065a76c75b7df6f61d2cf183ecfc473"><code>db4db7b</code></a>
Update runtime metrics for Go v1.23 and v1.24 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1833">#1833</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/99d380ebfe865ae2c973c80184bc97ac0d98f083"><code>99d380e</code></a>
Update common Prometheus files (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1831">#1831</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/f3ef320dcde30f31188c577ad71e6480e91bf464"><code>f3ef320</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1828">#1828</a>
from prometheus/dependabot/go_modules/exp/github.com...</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/520c91ae841ff7264b5379fe85e6215fc62734a6"><code>520c91a</code></a>
build(deps): bump github.com/prometheus/common in /exp</li>
<li>Additional commits viewable in <a
href="https://github.com/prometheus/client_golang/compare/v1.22.0...v1.23.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/prometheus/client_golang&package-manager=go_modules&previous-version=1.22.0&new-version=1.23.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:57:47 +00:00
dependabot[bot] 83aafd8238 chore: bump google.golang.org/grpc from 1.73.0 to 1.74.2 (#19158)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.73.0 to 1.74.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.74.2</h2>
<h1>New Features</h1>
<ul>
<li>grpc: introduce new <code>DialOptions</code> and
<code>ServerOptions</code> (<code>WithStaticStreamWindowSize</code>,
<code>WithStaticConnWindowSize</code>,
<code>StaticStreamWindowSize</code>, <code>StaticConnWindowSize</code>)
that force fixed window sizes for all HTTP/2 connections. By default,
gRPC uses dynamic sizing of these windows based upon a BDP estimation
algorithm. The existing options (<code>WithInitialWindowSize</code>,
etc) also disable BDP estimation, but this behavior will be changed in a
following release. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8283">#8283</a>)</li>
</ul>
<h1>API Changes</h1>
<ul>
<li>balancer: add <code>ExitIdle</code> method to <code>Balancer</code>
interface. Earlier, implementing this method was optional. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8367">#8367</a>)</li>
</ul>
<h1>Behavior Changes</h1>
<ul>
<li>xds: Remove the <code>GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST</code>
environment variable that allows disabling the least request balancer
with xDS. Least request was made available by default with xDS in
v1.72.0. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8248">#8248</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/atollena"><code>@​atollena</code></a></li>
</ul>
</li>
<li>server: allow 0s grpc-timeout header values, which older gRPC-Java
versions could send. This restores the behavior of grpc-go before
v1.73.0. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8439">#8439</a>)</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>googledirectpath: avoid logging the error message <code>Attempt to
set a bootstrap configuration...</code> when creating multiple
directpath channels. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8419">#8419</a>)</li>
</ul>
<h1>Performance Improvements</h1>
<ul>
<li>transport: reduce heap allocations by pooling objects and avoiding
method-to-closure conversions. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8361">#8361</a>)</li>
<li>transport: reduce heap allocations by re-using
<code>mem.Reader</code> objects. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8360">#8360</a>)</li>
</ul>
<h1>Documentation</h1>
<ul>
<li>examples: add examples to demonstrate enabling experimental metrics
using the OpenTelemetry plugin. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8388">#8388</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/vinothkumarr227"><code>@​vinothkumarr227</code></a></li>
</ul>
</li>
</ul>
<h2>Release 1.74.1</h2>
<p>Version 1.74.1 retracts release v1.74.0 and itself. Release 1.74.0
was accidentally tagged on the wrong commit and should not be used.
Version 1.73.0 should be used until 1.74.2 is released.</p>
<p>Release 1.74.0 was accidentally tagged on the wrong commit and should
not be used. Version 1.73.0 should be used until 1.74.1 is released.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/e9e00cb28e350d6440145d883d1d6cf675f3c0f3"><code>e9e00cb</code></a>
Change version to 1.74.2 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8470">#8470</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/bd7cb0a95b518e3f987cccbc44b4ba9a0e51eb80"><code>bd7cb0a</code></a>
Change version to 1.74.2-dev (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8461">#8461</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/002a22c03ed5cb1068ab800fc329c1f199037b63"><code>002a22c</code></a>
Change version to 1.74.1 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8455">#8455</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/6e8e7e48d13e1891e0f3b5df22f16746edb6e788"><code>6e8e7e4</code></a>
Retract v1.74.0 and v1.74.1 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8457">#8457</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/48c9e4d1eee9b075a1855dadc24f66157dbf60b3"><code>48c9e4d</code></a>
Change version to 1.74.1-dev (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8408">#8408</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b8b6cffbb2a9c5dc41fd7ab902b4a0cc37c05b19"><code>b8b6cff</code></a>
Change version to 1.74.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8407">#8407</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/077e2c37bd9f14b1300e3d1feedd431d105895c0"><code>077e2c3</code></a>
Cherry-pick <a
href="https://redirect.github.com/grpc/grpc-go/issues/8411">#8411</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8419">#8419</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8422">#8422</a>,
<a href="https://redirect.github.com/grpc/grpc-go/issues/8445">#8445</a>
and <a
href="https://redirect.github.com/grpc/grpc-go/issues/8451">#8451</a> to
v1.74.x (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8454">#8454</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b34f845d7056a2e052ddb4e99d9d691bf69159bf"><code>b34f845</code></a>
server: allow 0s grpc-timeout header values, as java is known to be able
to s...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/1787f9427568898e905841f40798bbb78c8dd52c"><code>1787f94</code></a>
xdsclient: export genericResourceTypeDecoder (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8406">#8406</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/15299ccca32bba47c533b0a8e8ba2564a29d71db"><code>15299cc</code></a>
xdsclient: make a function to return the supported resource type
implementati...</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.73.0...v1.74.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.73.0&new-version=1.74.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:46:34 +00:00
dependabot[bot] 1ae5cac7b6 chore: bump github.com/aws/aws-sdk-go-v2/config from 1.29.14 to 1.30.2 (#19154)
Bumps
[github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2)
from 1.29.14 to 1.30.2.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/383fd26928547348efed0ee1f8914d9e7a1b0287"><code>383fd26</code></a>
Release 2024-07-10</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/4a055f9d9e17eb7ef2206e8e37ba98d661d13e6a"><code>4a055f9</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/e3457953351e6993f57f5ab8e373af8af70be45b"><code>e345795</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/52a10ac239cc1aab2d070fbb004f6445ca0ddcc0"><code>52a10ac</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/adab0de9e4ae75aee4f894c99fd1e2ce2de0035e"><code>adab0de</code></a>
remove unused jmespath dependency from main module (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/2707">#2707</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/0e07cc82b25692dce8f68e0b5bd0d0c5cdbcd279"><code>0e07cc8</code></a>
Release 2024-07-09</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/5e3583451cd8a91dbca2cc22672c2cfa0c7860cf"><code>5e35834</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/a2a28a1eec2a1b6f12f813e4900430a9cc79b6c2"><code>a2a28a1</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/f5489732257180b7c19456abb050214c2f5cac26"><code>f548973</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/e7aad565a65dab9b37da7b49c1c79a699c49d85e"><code>e7aad56</code></a>
Release 2024-07-08</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/config/v1.29.14...v1.30.2">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/config&package-manager=go_modules&previous-version=1.29.14&new-version=1.30.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:34:39 +00:00
dependabot[bot] 181c2f00ae chore: bump github.com/coreos/go-oidc/v3 from 3.14.1 to 3.15.0 (#19156)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc)
from 3.14.1 to 3.15.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.15.0</h2>
<h2>What's Changed</h2>
<ul>
<li>oidc: verify the ID Token's signature before processing claims by <a
href="https://github.com/ericchiang"><code>@​ericchiang</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/464">coreos/go-oidc#464</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.14.1...v3.15.0">https://github.com/coreos/go-oidc/compare/v3.14.1...v3.15.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coreos/go-oidc/commit/8d1e57e7e7fb4db0bac61cc200d43846ba071977"><code>8d1e57e</code></a>
oidc: verify the ID Token's signature before processing claims</li>
<li>See full diff in <a
href="https://github.com/coreos/go-oidc/compare/v3.14.1...v3.15.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coreos/go-oidc/v3&package-manager=go_modules&previous-version=3.14.1&new-version=3.15.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:29:10 +00:00
dependabot[bot] ce9b20867d chore: bump github.com/fergusstrange/embedded-postgres from 1.31.0 to 1.32.0 (#19155)
Bumps
[github.com/fergusstrange/embedded-postgres](https://github.com/fergusstrange/embedded-postgres)
from 1.31.0 to 1.32.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fergusstrange/embedded-postgres/releases">github.com/fergusstrange/embedded-postgres's
releases</a>.</em></p>
<blockquote>
<h2>v1.32.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Ensure target directories exist before extraction and add test for
runtime path creation by <a
href="https://github.com/fergusstrange"><code>@​fergusstrange</code></a>
in <a
href="https://redirect.github.com/fergusstrange/embedded-postgres/pull/158">fergusstrange/embedded-postgres#158</a></li>
<li>Add support for Postgres 17 and update default version by <a
href="https://github.com/fergusstrange"><code>@​fergusstrange</code></a>
in <a
href="https://redirect.github.com/fergusstrange/embedded-postgres/pull/159">fergusstrange/embedded-postgres#159</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fergusstrange/embedded-postgres/compare/v1.31.0...v1.32.0">https://github.com/fergusstrange/embedded-postgres/compare/v1.31.0...v1.32.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fergusstrange/embedded-postgres/commit/0c7d03d6005dda276bcf9041c9be89ebe86c34e1"><code>0c7d03d</code></a>
Add support for Postgres 17 and update default version (<a
href="https://redirect.github.com/fergusstrange/embedded-postgres/issues/159">#159</a>)</li>
<li><a
href="https://github.com/fergusstrange/embedded-postgres/commit/bab016e3d52239a871b12798f6ddbeefc9d2045a"><code>bab016e</code></a>
Ensure target directories exist before extraction and add test for
runtime pa...</li>
<li>See full diff in <a
href="https://github.com/fergusstrange/embedded-postgres/compare/v1.31.0...v1.32.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/fergusstrange/embedded-postgres&package-manager=go_modules&previous-version=1.31.0&new-version=1.32.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:26:10 +00:00
dependabot[bot] b4f241391b chore: bump github.com/aws/aws-sdk-go-v2 from 1.36.4 to 1.37.1 (#19151)
Bumps
[github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2)
from 1.36.4 to 1.37.1.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/67148dbe156c9519ccc35f7e46f1df7367c67b81"><code>67148db</code></a>
Release 2025-07-30</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/b21029eeb2699fcba879fd3639464fbb887c0178"><code>b21029e</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/6c2dde6522c75df1cfeb807e6f7823f644298d78"><code>6c2dde6</code></a>
Update endpoints model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/7b710ac3e2a805dc0c2efa8bead2abb66bfe6169"><code>7b710ac</code></a>
Update API model</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/179df1ca8e873d6374f4739e6bab67f3ed62a3c0"><code>179df1c</code></a>
update CONTRIBUTING.md</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/456e51a2895e2ce6c712cebacebb10ad5a8f359e"><code>456e51a</code></a>
fix changelog</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/4ce8fece3fe625af2d8db3d673fcc8265af50485"><code>4ce8fec</code></a>
Join errors when retry token is unavailable (<a
href="https://redirect.github.com/aws/aws-sdk-go-v2/issues/3121">#3121</a>)</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1eea3dbe07dffcef2fdba6f8e2206b32b91d8a83"><code>1eea3db</code></a>
Release 2025-07-29</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/b63d556f10e3a6a6a48458eeaf5b288feef79c58"><code>b63d556</code></a>
Regenerated Clients</li>
<li><a
href="https://github.com/aws/aws-sdk-go-v2/commit/1258955cdd238d60ed14ed5ce44cedd6e514f41c"><code>1258955</code></a>
Update endpoints model</li>
<li>Additional commits viewable in <a
href="https://github.com/aws/aws-sdk-go-v2/compare/v1.36.4...v1.37.1">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&package-manager=go_modules&previous-version=1.36.4&new-version=1.37.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:21:27 +00:00
Danielle Maywood b8e2344ef5 chore(agent/agentcontainers): disable project autostart by default (#19114)
We disable the logic that allows autostarting discovered devcontainers
by default. We want this behavior to be opt-in rather than opt-out.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-04 16:21:13 +01:00
dependabot[bot] 8f538d4412 chore: bump github.com/mark3labs/mcp-go from 0.34.0 to 0.36.0 (#19152)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.34.0 to 0.36.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.36.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add defs field to ToolsInputSchema by <a
href="https://github.com/ostafen"><code>@​ostafen</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/488">mark3labs/mcp-go#488</a></li>
<li>Remove <code>sampling_server</code> binary file by <a
href="https://github.com/JeffreyCA"><code>@​JeffreyCA</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/512">mark3labs/mcp-go#512</a></li>
<li>chore: remove comments related to JSON-Batching by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/514">mark3labs/mcp-go#514</a></li>
<li>feat: support structured content and output schema by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/460">mark3labs/mcp-go#460</a></li>
<li>Hide error log when it's not useful by <a
href="https://github.com/dgageot"><code>@​dgageot</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/517">mark3labs/mcp-go#517</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ostafen"><code>@​ostafen</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/488">mark3labs/mcp-go#488</a></li>
<li><a href="https://github.com/JeffreyCA"><code>@​JeffreyCA</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/512">mark3labs/mcp-go#512</a></li>
<li><a href="https://github.com/dgageot"><code>@​dgageot</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/517">mark3labs/mcp-go#517</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.35.0...v0.36.0">https://github.com/mark3labs/mcp-go/compare/v0.35.0...v0.36.0</a></p>
<h2>Release v0.35.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Http headers by <a
href="https://github.com/adityamj"><code>@​adityamj</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/480">mark3labs/mcp-go#480</a></li>
<li>fix: check if resp is nil on error for initialize methods by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/492">mark3labs/mcp-go#492</a></li>
<li>Fix race condition in stdio.SendRequest with canceled context by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/503">mark3labs/mcp-go#503</a></li>
<li>Embed client capabilities into the Session by <a
href="https://github.com/ardaguclu"><code>@​ardaguclu</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/491">mark3labs/mcp-go#491</a></li>
<li>enhc(server): allow adding multiple resource templates at once by <a
href="https://github.com/rafaeljusto"><code>@​rafaeljusto</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/483">mark3labs/mcp-go#483</a></li>
<li>Get rid of binary file. by <a
href="https://github.com/wkoszek"><code>@​wkoszek</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/505">mark3labs/mcp-go#505</a></li>
<li>feat: implement protocol version negotiation by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/502">mark3labs/mcp-go#502</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/adityamj"><code>@​adityamj</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/480">mark3labs/mcp-go#480</a></li>
<li><a href="https://github.com/ardaguclu"><code>@​ardaguclu</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/491">mark3labs/mcp-go#491</a></li>
<li><a
href="https://github.com/rafaeljusto"><code>@​rafaeljusto</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/483">mark3labs/mcp-go#483</a></li>
<li><a href="https://github.com/wkoszek"><code>@​wkoszek</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/505">mark3labs/mcp-go#505</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.34.0...v0.35.0">https://github.com/mark3labs/mcp-go/compare/v0.34.0...v0.35.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/cf352645f0aee9b9fb3dc1f735e7c5c9419a1a56"><code>cf35264</code></a>
Merge pull request <a
href="https://redirect.github.com/mark3labs/mcp-go/issues/517">#517</a>
from dgageot/remote-context-cancelled-log</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8f9d5387d8726529763739007590b2baa380bdd2"><code>8f9d538</code></a>
feat: support structured content and output schema (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/460">#460</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a43b1048c0c78263858b33129575e9b6c04dad4c"><code>a43b104</code></a>
chore: remove comments related to JSON-Batching (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/514">#514</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e327695b8b1f5d84c28959fde844f67c432eb3de"><code>e327695</code></a>
Hide error when it's not useful</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/617fcf1f1599ba269e22490d291c77f0fa6a2894"><code>617fcf1</code></a>
Remove <code>sampling_server</code> binary file (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/512">#512</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/5ad6c8d86c75da25113c8a2f843cbbc0a994ba03"><code>5ad6c8d</code></a>
Add defs field to ToolsInputSchema (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/488">#488</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/3964d510cd31aada6eb553fc3d286d4842a28a56"><code>3964d51</code></a>
feat: implement protocol version negotiation (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/502">#502</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/38ac77cf9f42386f1beea4f224fa45eb9b08a926"><code>38ac77c</code></a>
Get rid of binary file. (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/505">#505</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/722d95462707280068b05f33fbd6f5ec5dba6228"><code>722d954</code></a>
enhc(server): allow adding multiple resource templates at once (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/483">#483</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/cc3f765e152630f88f224c4ba3fe867bc5bef598"><code>cc3f765</code></a>
Embed client capabilities into the Session (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/491">#491</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.34.0...v0.36.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.34.0&new-version=0.36.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:21:04 +00:00
dependabot[bot] 5df3bf713c ci: bump the github-actions group with 6 updates (#19149)
Bumps the github-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.12.2` | `2.13.0` |
| [chromaui/action](https://github.com/chromaui/action) | `13.1.2` |
`13.1.3` |
|
[google-github-actions/auth](https://github.com/google-github-actions/auth)
| `2.1.11` | `2.1.12` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `055970845dd036d7345da7399b7e89f2e10f2b04` |
`c2ca2493190021783138cb8aac49bcee14b4bb89` |
| [tj-actions/branch-names](https://github.com/tj-actions/branch-names)
| `8.2.1` | `9.0.2` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.29.3` | `3.29.5` |

Updates `step-security/harden-runner` from 2.12.2 to 2.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Improved job markdown summary</li>
<li>Https monitoring for all domains (included with the enterprise
tier)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.13.0">https://github.com/step-security/harden-runner/compare/v2...v2.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/ec9f2d5744a09debf3a187a3f4f675c53b671911"><code>ec9f2d5</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/565">#565</a>
from step-security/rc-24</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/04bcbc31cfcefe0cf4720832008735021cec5ec4"><code>04bcbc3</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/7c7a56fcaa124ab72fff1cc3e81257f264fd7317"><code>7c7a56f</code></a>
feat: get job summary from API</li>
<li>See full diff in <a
href="https://github.com/step-security/harden-runner/compare/v2.12.2...ec9f2d5744a09debf3a187a3f4f675c53b671911">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromaui/action` from 13.1.2 to 13.1.3
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/58d9ffb36c90c97a02d061544ecc849cc4a242a9"><code>58d9ffb</code></a>
v13.1.3</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/4d8ebd13658d795114f8051e25c28d66f14886c6...58d9ffb36c90c97a02d061544ecc849cc4a242a9">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/auth` from 2.1.11 to 2.1.12
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/auth/releases">google-github-actions/auth's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.12</h2>
<h2>What's Changed</h2>
<ul>
<li>Add retries for getIDToken by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/502">google-github-actions/auth#502</a></li>
<li>Release: v2.1.12 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/503">google-github-actions/auth#503</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2.1.11...v2.1.12">https://github.com/google-github-actions/auth/compare/v2.1.11...v2.1.12</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/auth/commit/b7593ed2efd1c1617e1b0254da33b86225adb2a5"><code>b7593ed</code></a>
Release: v2.1.12 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/503">#503</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/c1ee334b4fb145a02e9d8343bb2e9f0dd06e586b"><code>c1ee334</code></a>
Add retries for getIDToken (<a
href="https://redirect.github.com/google-github-actions/auth/issues/502">#502</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/auth/compare/140bb5113ffb6b65a7e9b937a81fa96cf5064462...b7593ed2efd1c1617e1b0254da33b86225adb2a5">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
055970845dd036d7345da7399b7e89f2e10f2b04 to
c2ca2493190021783138cb8aac49bcee14b4bb89
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/c2ca2493190021783138cb8aac49bcee14b4bb89"><code>c2ca249</code></a>
test: manual triggered workflows (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2637">#2637</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/94d97fe3f88298bf8b2f2db6fa2ab150f3c1ab77"><code>94d97fe</code></a>
chore(deps): bump tj-actions/branch-names from 9.0.1 to 9.0.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2636">#2636</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/18b05b98fcd9dc0bd3870d7a6571535999ba0c3f"><code>18b05b9</code></a>
chore(deps): bump github/codeql-action from 3.29.4 to 3.29.5 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2635">#2635</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/db8d0bfea5a44e51abd5dc1454386c668ae901f9"><code>db8d0bf</code></a>
chore(deps): bump tj-actions/git-cliff from 1.5.0 to 2.0.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2632">#2632</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/0e2e8f70c5c6854ee9ff9f94bc2f1b9e7fcead78"><code>0e2e8f7</code></a>
chore(deps): bump tj-actions/branch-names from 8.2.1 to 9.0.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2633">#2633</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5f2e971c1fcf53fda99e27a542f5e79cff0e7059"><code>5f2e971</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 24.0.15 to 24.1.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2626">#2626</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/498cf3f89140b3c7b8353c5ae1354765717026ad"><code>498cf3f</code></a>
chore(deps-dev): bump jest from 30.0.4 to 30.0.5 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2627">#2627</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/8378ac87b7b199cd230495c133c4f6b19215e757"><code>8378ac8</code></a>
chore(deps): bump github/codeql-action from 3.29.3 to 3.29.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2628">#2628</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4bfe3cb5bd6f0db4dc8668c4d6bef45ccf2b8ab5"><code>4bfe3cb</code></a>
chore(deps): bump nrwl/nx-set-shas from 4.3.0 to 4.3.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2630">#2630</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/a0370f61698fcac830a08949da9fdf96ea0f3ab7"><code>a0370f6</code></a>
chore(deps): bump github/codeql-action from 3.29.2 to 3.29.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2625">#2625</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/changed-files/compare/055970845dd036d7345da7399b7e89f2e10f2b04...c2ca2493190021783138cb8aac49bcee14b4bb89">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/branch-names` from 8.2.1 to 9.0.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/releases">tj-actions/branch-names's
releases</a>.</em></p>
<blockquote>
<h2>v9.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v9.0.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/424">tj-actions/branch-names#424</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v9...v9.0.2">https://github.com/tj-actions/branch-names/compare/v9...v9.0.2</a></p>
<h2>v9.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump tj-actions/git-cliff from 1.5.0 to 2.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/422">tj-actions/branch-names#422</a></li>
<li>build(deps): bump codacy/codacy-analysis-cli-action from 4.4.5 to
4.4.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/421">tj-actions/branch-names#421</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v9.0.0...v9.0.1">https://github.com/tj-actions/branch-names/compare/v9.0.0...v9.0.1</a></p>
<h2>v9.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v8.2.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/417">tj-actions/branch-names#417</a></li>
<li>chore: update action.yml by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/418">tj-actions/branch-names#418</a></li>
<li>Updated README.md by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/419">tj-actions/branch-names#419</a></li>
<li>security: fix unsafe outputs by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/420">tj-actions/branch-names#420</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v8...v9.0.0">https://github.com/tj-actions/branch-names/compare/v8...v9.0.0</a></p>
<h2>v9</h2>
<h1>Changes in v9.0.2</h1>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v9.0.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/424">tj-actions/branch-names#424</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v9...v9.0.2">https://github.com/tj-actions/branch-names/compare/v9...v9.0.2</a></p>
<hr />
<h1>Changes in v9.0.1</h1>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump tj-actions/git-cliff from 1.5.0 to 2.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/422">tj-actions/branch-names#422</a></li>
<li>build(deps): bump codacy/codacy-analysis-cli-action from 4.4.5 to
4.4.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/421">tj-actions/branch-names#421</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v9.0.0...v9.0.1">https://github.com/tj-actions/branch-names/compare/v9.0.0...v9.0.1</a></p>
<hr />
<h1>Changes in v9.0.0</h1>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v8.2.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/417">tj-actions/branch-names#417</a></li>
<li>chore: update action.yml by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/418">tj-actions/branch-names#418</a></li>
<li>Updated README.md by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/419">tj-actions/branch-names#419</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/blob/main/HISTORY.md">tj-actions/branch-names's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v9.0.1...v9.0.2">9.0.2</a>
- (2025-07-31)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Update update-readme.yml (<a
href="https://github.com/tj-actions/branch-names/commit/5250492686b253f06fa55861556d1027b067aeb5">5250492</a>)
- (Tonye Jack)</li>
<li>Update update-readme.yml (<a
href="https://github.com/tj-actions/branch-names/commit/a2bc4958de72a5590a03c317bcb11581ae7866e7">a2bc495</a>)
- (Tonye Jack)</li>
<li>Update README.md (<a
href="https://github.com/tj-actions/branch-names/commit/169ddc10b28b8cbc75996ee56c1dbf4448ca6f06">169ddc1</a>)
- (Tonye Jack)</li>
<li>Update README.md (<a
href="https://github.com/tj-actions/branch-names/commit/4d35052be347a49c829b8a8e9855f40f14a00be6">4d35052</a>)
- (Tonye Jack)</li>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/423">#423</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/branch-names/commit/6be34a848cdd6067dda01ded8bd9b0853bbe3b23">6be34a8</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded from v9.0.0 -&gt; v9.0.1 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/424">#424</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/branch-names/commit/c0714e7ecc0a7baec34a69b87df070fa6a823e7f">c0714e7</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v9.0.0...v9.0.1">9.0.1</a>
- (2025-07-26)</h1>
<h2><!-- raw HTML omitted -->👷 CI/CD</h2>
<ul>
<li><strong>deps:</strong> Bump codacy/codacy-analysis-cli-action from
4.4.5 to 4.4.7 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/421">#421</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/386e117ea34339627a40843704a60a3bc9359234">386e117</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/git-cliff from 1.5.0 to 2.0.2
(<a
href="https://redirect.github.com/tj-actions/branch-names/issues/422">#422</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/2114174008e541048c2313bfc2c296a484785f14">2114174</a>)
- (dependabot[bot])</li>
</ul>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.2.1...v9.0.0">9.0.0</a>
- (2025-07-25)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/419">#419</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/branch-names/commit/f904073f20285d3ff38d2dedb647c7e81ab9ccc6">f904073</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li>Update action.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/418">#418</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/c81796132291bcac45a405bba3ff42c5c0c2a3e2">c817961</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🛡️ Security</h2>
<ul>
<li>Fix unsafe outputs (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/420">#420</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/e497ceb8ccd43fd9573cf2e375216625bc411d1f">e497ceb</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded from v8.2.0 -&gt; v8.2.1 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/417">#417</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot]
&lt;41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.noreply.github.com&gt;
(<a
href="https://github.com/tj-actions/branch-names/commit/46ae71df6d27dd78ff96d2aaf0a59411f9c19e4e">46ae71d</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.2.0...v8.2.1">8.2.1</a>
- (2025-04-11)</h1>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/branch-names/commit/5250492686b253f06fa55861556d1027b067aeb5"><code>5250492</code></a>
Update update-readme.yml</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/a2bc4958de72a5590a03c317bcb11581ae7866e7"><code>a2bc495</code></a>
Update update-readme.yml</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/169ddc10b28b8cbc75996ee56c1dbf4448ca6f06"><code>169ddc1</code></a>
Update README.md</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/4d35052be347a49c829b8a8e9855f40f14a00be6"><code>4d35052</code></a>
Update README.md</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/c0714e7ecc0a7baec34a69b87df070fa6a823e7f"><code>c0714e7</code></a>
Upgraded from v9.0.0 -&gt; v9.0.1 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/424">#424</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/6be34a848cdd6067dda01ded8bd9b0853bbe3b23"><code>6be34a8</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/423">#423</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/386e117ea34339627a40843704a60a3bc9359234"><code>386e117</code></a>
build(deps): bump codacy/codacy-analysis-cli-action from 4.4.5 to 4.4.7
(<a
href="https://redirect.github.com/tj-actions/branch-names/issues/421">#421</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/2114174008e541048c2313bfc2c296a484785f14"><code>2114174</code></a>
build(deps): bump tj-actions/git-cliff from 1.5.0 to 2.0.2 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/422">#422</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/e497ceb8ccd43fd9573cf2e375216625bc411d1f"><code>e497ceb</code></a>
security: fix unsafe outputs (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/420">#420</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/f904073f20285d3ff38d2dedb647c7e81ab9ccc6"><code>f904073</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/419">#419</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/branch-names/compare/dde14ac574a8b9b1cedc59a1cf312788af43d8d8...5250492686b253f06fa55861556d1027b067aeb5">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.29.3 to 3.29.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.5</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.5 - 29 Jul 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2986">#2986</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.5/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.29.4</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.4 - 23 Jul 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.4/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.29.5 - 29 Jul 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2986">#2986</a></li>
</ul>
<h2>3.29.4 - 23 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.2 - 30 Jun 2025</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.21 - 28 July 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.20 - 21 July 2025</h2>
<ul>
<li>Remove support for combining SARIF files from a single upload for
GHES 3.18, see <a
href="https://github.blog/changelog/2024-05-06-code-scanning-will-stop-combining-runs-from-a-single-upload/">the
changelog post</a>. <a
href="https://redirect.github.com/github/codeql-action/pull/2959">#2959</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/51f77329afa6477de8c49fc9c7046c15b9a4e79d"><code>51f7732</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2997">#2997</a>
from github/update-v3.29.5-80a09d7b0</li>
<li><a
href="https://github.com/github/codeql-action/commit/8e90243ddbe0de3f12f4fa361675387b7f94c48d"><code>8e90243</code></a>
Update changelog for v3.29.5</li>
<li><a
href="https://github.com/github/codeql-action/commit/80a09d7b0b5468297f127c81b43cb7335eed0f30"><code>80a09d7</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2996">#2996</a>
from github/dependabot/npm_and_yarn/npm-240ab9fad0</li>
<li><a
href="https://github.com/github/codeql-action/commit/8388115dc8d6af25bf915cc8455a7d6a77253970"><code>8388115</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2994">#2994</a>
from github/mergeback/changelog/v3.28.21</li>
<li><a
href="https://github.com/github/codeql-action/commit/401ecaf503b1a19fc0fbd253cc5afe7759870068"><code>401ecaf</code></a>
Merge branch 'main' into mergeback/changelog/v3.28.21</li>
<li><a
href="https://github.com/github/codeql-action/commit/ab5c0c5fa56442a68c2d51b194ccc93faaaaa639"><code>ab5c0c5</code></a>
Merge branch 'main' into dependabot/npm_and_yarn/npm-240ab9fad0</li>
<li><a
href="https://github.com/github/codeql-action/commit/cd264d4dcdc5ee89d8590821e29c66a1bdcaa968"><code>cd264d4</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2986">#2986</a>
from github/update-bundle/codeql-bundle-v2.22.2</li>
<li><a
href="https://github.com/github/codeql-action/commit/4599055b1e273f63344615ade2c46c852c6d5c63"><code>4599055</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.22.2</li>
<li><a
href="https://github.com/github/codeql-action/commit/fd7ad511e6bd5985ebbc84944e0e173d39a968b8"><code>fd7ad51</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2971">#2971</a>
from github/update-supported-enterprise-server-versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/ac0c9bfe1e34d6a76860325c1b4abe8208ce98a6"><code>ac0c9bf</code></a>
Merge branch 'main' into
update-supported-enterprise-server-versions</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/d6bbdef45e766d081b84a2def353b0055f728d3e...51f77329afa6477de8c49fc9c7046c15b9a4e79d">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 14:57:47 +00:00
Jon Ayers 2a2851e494 chore: check integrity of Go in Dockefile (#19130) 2025-08-04 08:27:27 -04:00
Jon Ayers 40dbc557bd fix: ignore goroutine leak for protocol lookup on windows (#19131) 2025-08-04 08:26:56 -04:00
Hugo Dutka 79cd80e5ca feat: add MCP tools for ChatGPT (#19102)
Addresses https://github.com/coder/internal/issues/772.

Adds the toolset query parameter to the `/api/experimental/mcp/http` endpoint, which, when set to "chatgpt", exposes new `fetch` and `search` tools compatible with ChatGPT, as described in the
[ChatGPT docs](https://platform.openai.com/docs/mcp). These tools are
exposed in isolation because in my usage I found that ChatGPT refuses to
connect to Coder if it sees additional MCP tools.

<img width="1248" height="908" alt="Screenshot 2025-07-30 at 16 36 56"
src="https://github.com/user-attachments/assets/ca31e57b-d18b-4998-9554-7a96a141527a"
/>
2025-08-04 14:11:22 +02:00
Spike Curtis d4b44185da chore: add database dump and dbfake logging (#19144)
relates to  #778

Somehow in `TestWorkspaceAgent` the agent with the test instance identifier is not being added to the database, or is getting deleted.

I'm adding some additional logging to `dbfake` and setting the affected tests to dump postgres on error, to see if we can get to the bottom of the issue.
2025-08-04 13:22:04 +04:00
Spike Curtis e80f91e900 chore: add small scenario to scaletest (#19110)
Relaxes the `terraform` version constraint to be at least 1.9, since
1.12 is installed in our Dogfood image

Adds a `small` scenario to keep costs down while we continue to develop
capabilities.
2025-08-04 10:04:44 +04:00
Ethan b95cf47f99 ci: set valid xcode version in release script (#19143)
16.0.0 was yanked from the macOS runners, so this will likely need cherry picking into the upcoming release branch.

We've already checked everything builds fine on #19125.

In a few releases we'll stop building the dylib and also therefore remove xcode as a dependency on coder/coder altogether.
2025-08-04 15:01:24 +10:00
Ethan decd9b7818 ci: conditionally disable spotlight indexing on nightly gauntlet (#19142)
Same as #19124
2025-08-04 15:01:01 +10:00
dependabot[bot] 719c9cc409 chore: bump coder/filebrowser/coder from 1.1.1 to 1.1.2 in /dogfood/coder-envbuilder (#19140)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/filebrowser/coder&package-manager=terraform&previous-version=1.1.1&new-version=1.1.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:22:36 +00:00
dependabot[bot] c849a9579d chore: bump coder/filebrowser/coder from 1.1.1 to 1.1.2 in /dogfood/coder (#19139)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/filebrowser/coder&package-manager=terraform&previous-version=1.1.1&new-version=1.1.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:14:08 +00:00
dependabot[bot] a512f1a055 chore: bump coder/dotfiles/coder from 1.2.0 to 1.2.1 in /dogfood/coder (#19138)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/dotfiles/coder&package-manager=terraform&previous-version=1.2.0&new-version=1.2.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:14:00 +00:00
dependabot[bot] b605569929 chore: bump coder/slackme/coder from 1.0.30 to 1.0.31 in /dogfood/coder (#19136)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/slackme/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:10:46 +00:00
dependabot[bot] 206b5683f9 chore: bump coder/coder-login/coder from 1.0.30 to 1.0.31 in /dogfood/coder-envbuilder (#19137)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:10:31 +00:00
dependabot[bot] e8ca4f8cf4 chore: bump coder/zed/coder from 1.0.0 to 1.0.1 in /dogfood/coder (#19135)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/zed/coder&package-manager=terraform&previous-version=1.0.0&new-version=1.0.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:07:55 +00:00
dependabot[bot] 369a74a566 chore: bump coder/coder-login/coder from 1.0.30 to 1.0.31 in /dogfood/coder (#19134)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:06:53 +00:00
dependabot[bot] 9626a2bafe chore: bump coder/personalize/coder from 1.0.30 to 1.0.31 in /dogfood/coder-envbuilder (#19133)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/personalize/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:06:14 +00:00
dependabot[bot] 0c761792ae chore: bump coder/personalize/coder from 1.0.30 to 1.0.31 in /dogfood/coder (#19132)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/personalize/coder&package-manager=terraform&previous-version=1.0.30&new-version=1.0.31)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 01:05:17 +00:00
Jon Ayers c9ed0dd927 chore: pin dependencies in Dockerfiles (#19129) 2025-08-03 18:26:41 -04:00
Cian Johnston 0d7cc5c156 ci: bump xcode version to 16.1.0 (#19125) 2025-08-03 20:53:04 +01:00
Cian Johnston 6a35400f67 ci: conditionally disable spotlight indexing (#19124)
Work around for following issue:
```
Run sudo mdutil -a -i off
  sudo mdutil -a -i off
  sudo mdutil -X /
  sudo launchctl bootout system /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
  shell: /bin/bash -e {0}
4 files/directories removed
Boot-out failed: 5: Input/output error
```

This can happen if spotlight has already been disabled.
2025-08-02 18:23:46 +01:00
Garrett Delfosse 6ba4b5bbc9 docs: update module registry URLs to correct path structure (#18681)
## Summary
- Updated documentation references to use the correct registry path
structure
- Changed URLs from incorrect paths to the correct format:
  - Modules main page: registry.coder.com/modules
  - Specific modules: registry.coder.com/modules/coder/{module-name}

## Test plan
- Verify that all documentation links to modules point to the correct
URL structure

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-08-02 06:03:15 +05:00
Danielle Maywood a185d3a2c3 fix(site): ensure notification settings page follows RBAC correctly (#19097)
Ensure template admin and user admins are able to see the correct
notification groups on the notification settings page.

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-07-31 21:20:27 +01:00
Eric Paulsen 8b43503aaf docs: remove deprecated JFrog Xray integration documentation (#19113) 2025-07-31 18:46:39 +01:00
ケイラ 1cffd11619 feat: add workspace sharing page (#19107) 2025-07-31 15:05:09 +00:00
Danielle Maywood ddb5b87815 chore(agent/agentcontainers): test current prebuilds integration (#19074)
As it turns out, prebuilds + devcontainers appear to already work
together. This PR has created a test that simulates a prebuild claim
happening to `agentcontainers.API`, to see how we handle it.
2025-07-31 15:31:44 +01:00
ケイラ ed62ddc38e chore: add workspace-sharing experiment (#19106) 2025-07-31 07:52:57 -06:00
Danielle Maywood cc4f8da6e1 fix(agent/agentcontainers): fix devcontainer integration tests (#19109)
It appears we accidentally merged a change that broke our devcontainer
integration tests https://github.com/coder/coder/pull/18570.
2025-07-31 13:24:23 +01:00
Benjamin Peinhardt e4dc2d9418 fix: add constraint and runtime check for provisioner logs size limit (#18893)
This PR sets a constraint of 1MB on the provisioner job logs written to
the database. This is consistent with the constraint we place on
workspace agent logs:
https://github.com/coder/coder/blob/4ac6be6d835dc36c242e35a26b584b784040bf28/coderd/database/dump.sql#L2030

It also adds a message printed to the front end about the provisioner
log overflow, and updates the message printed to the front end when
workspace startup logs exceed the max, as it was causing some customers
to think their startup script had failed to run.
2025-07-30 19:09:53 -05:00
ケイラ eeb0bbefb9 feat: implement acl for workspaces (#19094) 2025-07-30 17:02:51 -06:00
Callum Styan d736af1fa3 fix: handle potential DB conflict due to concurrent upload requests in postFile (#19005)
This issue manifests when users have multiple templates which rely on
the same files, for example see:
https://github.com/coder/coder/issues/17442

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-07-30 13:55:30 -07:00
Callum Styan ffbfaf2a6f feat: allow bypassing current CORS magic based on template config (#18706)
Solves https://github.com/coder/coder/issues/15096

This is a slight rework/refactor of the earlier PRs from @dannykopping
and @Emyrk:
- https://github.com/coder/coder/pull/15669
- https://github.com/coder/coder/pull/15684
- https://github.com/coder/coder/pull/17596

Rather than having a per-app CORS behaviour setting and additionally a
template level setting for ports, this PR adds a single template level
CORS behaviour setting that is then used by all apps/ports for
workspaces created from that template.

The main changes are in `proxy.go` and `request.go` to:
a) get the CORS behaviour setting from the template
b) have `HandleSubdomain` bypass the CORS middleware handler if the
selected behaviour is `passthru`
c) in `proxyWorkspaceApp`, do not modify the response if the selected
behaviour is `passthru`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for configuring CORS behavior ("simple" or "passthru")
at the template level for all shared ports.
* Introduced a new "CORS Behavior" setting in the template creation and
settings forms.
* API endpoints and responses now include the optional `cors_behavior`
property for templates.
* Workspace apps and proxy now honor the specified CORS behavior,
enabling conditional CORS middleware application.
* Enhanced workspace app tests with comprehensive scenarios covering
CORS behaviors and authentication states.

* **Bug Fixes**
  * None.

* **Documentation**
* Updated API and admin documentation to describe the new
`cors_behavior` property and its usage.
* Added examples and schema references for CORS behavior in relevant API
docs.

* **Tests**
* Extended automated tests to cover different CORS behavior scenarios
for templates and workspace apps.

* **Chores**
* Updated audit logging to track changes to the `cors_behavior` field on
templates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-07-30 13:42:39 -07:00
Susana Ferreira 96e32d60a2 chore(site): add preset combobox to dynamic parameters page (#19100)
## Description

This PR updates the `CreateWorkspacePageViewExperimental` page to use
the `Combobox` React component for preset selection. This aligns it with
the implementation used in the standard `CreateWorkspacePageView`,
ensuring consistency in UI behavior and component usage across both
pages.

<img width="2084" height="792" alt="Screenshot 2025-07-30 at 13 58 23"
src="https://github.com/user-attachments/assets/b8e4ed37-9c59-499f-b4e3-7aaca847eaa1"
/>

Related to `CreateWorkspacePageView` changes:
https://github.com/coder/coder/pull/19063
2025-07-30 18:02:59 +01:00
Edward Angert 998fbdfbb3 docs: use CODER_LOG_FILTER instead of CODER_VERBOSE (#19105)
closes #18833

replace suggestions to use the now-deprecated `CODER_VERBOSE` with more
specific `CODER_LOG_FILTER`

thanks @UnicornyRainbow!

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-30 12:35:45 -04:00
Edward Angert 428ec351fe docs: add code-server/vs code web comparison table (#19104)
closes #18815 

adds a doc with comparison table and links to main documentation for
code-server


[preview](https://coder.com/docs/@18815-code-server-vs/user-guides/workspace-access/code-server)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-30 12:35:27 -04:00
Sas Swart f256a23a77 feat: validate presets on template import (#18844)
Typos and other errors often result in invalid presets in a template.
Coder would import these broken templates and present them to users when
they create workspaces. An unsuspecting user who chooses a broken preset
would then experience a failed workspace build with no obvious error
message.

This PR adds additional validation beyond what is possible in the
Terraform provider schema. Coder will now present a more helpful error
message to template authors when they upload a new template version:

<img width="1316" height="286" alt="Screenshot 2025-07-14 at 12 22 49"
src="https://github.com/user-attachments/assets/7f5f778f-d9ae-487a-95e2-f6f1ca604a9c"
/>

The frontend warning is less helpful right now, but I'd like to address
that in a follow-up since I need frontend help:

<img width="1102" height="616" alt="image"
src="https://github.com/user-attachments/assets/e838ffc8-ef4f-428d-9280-74fa0c491666"
/>

closes https://github.com/coder/coder/issues/17333


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Improved validation and error reporting for template presets,
providing clearer feedback when presets cannot be parsed or reference
undefined parameters.

* **Bug Fixes**
* Enhanced error handling during template version creation to better
detect and report issues with presets.

* **Tests**
* Added new tests to verify validation of both valid and invalid
Terraform presets during template version creation.
* Improved test reliability by enabling dynamic control over error
injection in database-related tests.

* **Chores**
* Updated a dependency to the latest version for improved stability and
features.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-30 15:28:56 +02:00
Cian Johnston 26d232da6f fix(site): hide preset selector in TasksPage if no presets available (#19099) 2025-07-30 11:18:12 +01:00
Susana Ferreira 101351f502 chore: update dogfood coder template presets with description and icon (#19084)
## Description

This PR updates the dogfood template presets to include a description
and a icon.
Requires [terraform-provider-coder
v2.9.0](https://github.com/coder/terraform-provider-coder/releases/tag/v2.9.0).

Related to:
* https://github.com/coder/coder/pull/18977
* https://github.com/coder/coder/pull/19063
2025-07-30 11:00:33 +01:00
Susana Ferreira 44d9356985 fix(site): remove redundant alt text to prevent duplicated accessible names (#19087)
## Description

Removes the redundant `alt` text in the `Combobox` component to prevent
screen readers from announcing duplicated names (e.g. "Rust Rust").

## Changes
* Remove redundant `alt` text from `Combobox` `ExternalImage`
* Update `Combobox` tests accordingly

Related to:
https://github.com/coder/coder/pull/19063#discussion_r2240459424
2025-07-30 09:54:43 +01:00
ケイラ 4bced62bf1 chore: add site/ CODEOWNERS (#19086) 2025-07-29 12:26:32 -06:00
Atif Ali 3a3972c44d chore: add catalog-info.yaml for backstage integration (#19085) 2025-07-29 22:56:53 +05:00
Asher 558e25d591 feat: support shift+enter in terminal (#19021)
It acts the same alt+enter, but is more familiar to users.

Closes #18864
2025-07-29 09:27:11 -08:00
Susana Ferreira 71738f6db9 feat(site): support icon and description in preset (#19063)
## Description

This PR updates the `CreateWorkspacePageView` to use the `Combobox`
React component instead of `SelectFilter` for the Preset selection.

## Changes

* Updated `CreateWorkspacePageView` to use the `Combobox` component in
place of `SelectFilter`.
* Modified the `Combobox` component to render preset icons using
`ExternalImage` instead of `Avatar`.

<img width="2172" height="1138" alt="Screenshot 2025-07-29 at 12 27 14"
src="https://github.com/user-attachments/assets/2ef8342f-7927-4430-bf87-bc93c47d2980"
/>

<img width="2176" height="1112" alt="Screenshot 2025-07-29 at 12 27 21"
src="https://github.com/user-attachments/assets/863089a6-dcfd-46ed-8b85-68838ee04f28"
/>

Follow-up from: https://github.com/coder/coder/pull/18977

---------

Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
2025-07-29 17:45:32 +01:00
Danielle Maywood 219d1b4101 chore(agent/agentcontainers): skip part of test if on darwin (#19081) 2025-07-29 17:06:17 +01:00
Ethan 6147da58dd chore: add vpn-daemon run command for macos (#19080)
Continues to address https://github.com/coder/coder-desktop-macos/issues/201

Identical to the windows command, except we don't write to stdio. We're retaining the system we have for logging on macOS, where we push logs over the tunnel and use the OS logger. 

I've tested that a build with this command works end-to-end with my new version of Coder Desktop macOS.

Also brings in the soft net isolation changes from `main` of coder/tailscale.
2025-07-30 02:03:20 +10:00
Susana Ferreira 4e7331a9c4 feat(cli): support description in create and presets list CLI commands (#19079)
## Description

This PR improves the `coder templates presets` and `coder create` CLI
commands to include preset descriptions.

## Changes

* Added a `description` column to the `coder templates presets list` CLI
command.
* Fixed the `-o json` output for `coder templates presets list` to
correctly include and format data.
* Updated the `coder create` CLI command to display the preset's
description in the selection menu.

Follow-up from: 
* https://github.com/coder/coder/pull/18910 
* https://github.com/coder/coder/pull/18912
* https://github.com/coder/coder/pull/18977
2025-07-29 16:59:26 +01:00
Ethan 415273f648 ci: sign macos slim binaries on dogfood builds (#19077)
This will be necessary for future versions of Coder Desktop to connect to dogfood.
2025-07-30 01:22:16 +10:00
35C4n0r 0ef7720f8c feat: add tmux and gemini icons (#19031)
Related PRs: #246 #229

---------

Co-authored-by: DevCats <christofer@coder.com>
2025-07-29 19:49:17 +05:00
Cian Johnston 812d72c5bb fix: sanitize app status summary (#19075)
Fixes https://github.com/coder/coder/issues/18875
2025-07-29 15:24:11 +01:00
Jaayden Halko 29486f9d4e fix: fix e2e tests (#19076)
Closes https://github.com/coder/internal/issues/824
2025-07-29 10:23:57 -04:00
Hugo Dutka b666d52171 feat(codersdk/toolsdk): add MCP workspace bash background parameter (#19034)
Addresses coder/internal#820

---------

Signed-off-by: Thomas Kosiewski <tk@coder.com>
Co-authored-by: Thomas Kosiewski <tk@coder.com>
2025-07-29 16:20:02 +02:00
Dean Sheather bf78966256 chore: remove soft isolation configurability (#19069)
Undoes a lot of the changes in 5319d47dfa

Keeps the `netns.SetCoderSoftIsolation()` call, but always sets it to
`true` when using a TUN device.
2025-07-29 22:30:17 +10:00
Jaayden Halko 1320b8d5be feat: make dynamic parameters opt-in by default for new templates (#19006)
resolves #18975 

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
2025-07-28 20:41:49 -05:00
Austen Bruhn faac75389b feat(helm): add pod-level securityContext support for certificate mounting (#19041)
**Add pod-level securityContext support to Coder Helm chart**

Adds `coder.podSecurityContext` field to enable pod-level security
settings, primarily to solve TLS certificate mounting permission issues.

**Problem**: When mounting TLS certificates from Kubernetes secrets, the
Coder process (UID 1000) cannot read the files due to restrictive
permissions.

**Solution**: Setting `podSecurityContext.fsGroup: 1000` ensures
Kubernetes sets group ownership of mounted volumes to GID 1000, allowing
the Coder process to read certificate files.

**Changes**:
- Added `podSecurityContext` field to values.yaml with documentation
- Updated `_coder.yaml` template to include pod-level security context
- Added test case and golden files
- Maintains backward compatibility (opt-in feature)

**Usage**:
```yaml
coder:
  podSecurityContext:
    fsGroup: 1000  # Enables TLS cert access
```

Fixes #19038
2025-07-28 20:41:32 -04:00
Andrew Aquino 72b8ab530e fix(docs): add missing GFM alert directives to blockquotes (#19042)
I just added support for rendering GFM alerts inside of numbered lists
in coder.com (see https://github.com/coder/coder.com/pull/328), and
noticed that these plain blockquotes should probably be alerts.

This should cover all the missing alerts. I found them by searching for
the regex `^\s*>\s` within docs/**/*.md

Is `[!NOTE]` the correct type for these? Or do we want to use
tip/important/etc?

- @mtojek CONTRIBUTING.md
- @johnstcn support-bundle.md
- @matifali gateway.md
2025-07-28 15:00:56 -07:00
Michael Suchacz 36d2e01471 chore: add managed ai usage consumption to license view (#18934)
Customers with licenses not supporting managed AI agents will receive
the following information:
<img width="597" height="261" alt="image"
src="https://github.com/user-attachments/assets/b794a9f2-bca8-494e-a8d1-cc6e6bc43bfe"
/>

Customers with active licenes for managed AI agents will see:
<img width="604" height="293" alt="image"
src="https://github.com/user-attachments/assets/7ce8931c-05c6-4e64-a5a1-2e9364e99de2"
/>

Closes https://github.com/coder/internal/issues/813

---------

Co-authored-by: McKayla Washburn <mckayla@hey.com>
2025-07-28 20:27:49 +02:00
Susana Ferreira 0672bf5084 feat: support icon and description in preset (#18977)
## Description 

This PR adds support for `description` and `icon` fields to
`template_version_presets`. These fields will allow displaying richer
information for presets in the UI, improving the user experience when
creating a workspace.
Both fields are optional, non-nullable, and default to empty strings.

## Changes

* Database migration with the addition of `description VARCHAR(128)` and
`icon VARCHAR(256)` columns to the `template_version_presets` table.
* Updated the `CreateWorkspacePageView` in the UI

Note: UI changes will be addressed in a separate PR
2025-07-28 15:02:26 +01:00
Jaayden Halko 58123e17ca fix: fix to display tooltip on hover (#19058) 2025-07-28 10:00:41 -04:00
Susana Ferreira b975d6d9b3 feat(cli): add CLI support for creating a workspace with preset (#18912)
## Description 

This PR introduces a `--preset` flag for the `create` command to allow
users to apply a predefined preset to their workspace build.

## Changes

- The `--preset` flag on the `create` command integrates with the
parameter resolution logic and takes precedence over other sources
(e.g., CLI/env vars, last build, etc.).
- Added internal logic to ensure that preset parameters override
parameters values during resolution.
- Updated tests and added new ones to cover these flows.

## Implementation logic

* If a template has presets and includes a default, the CLI will
automatically use the default when `--preset` is not specified.
* If a template has presets but no default, the CLI will prompt the user
to select one when `--preset` is not specified.
* If a template does not have presets, the CLI will not prompt the user
for a preset.
* If the user specifies a preset using the `--preset` flag, that preset
will be used.
* If the user passes `--preset None`, no preset will be applied.

This logic aligns with the behavior in the UI for consistency.

```
> coder create --help

USAGE:
  coder create [flags] [workspace]

  Create a workspace

    - Create a workspace for another user (if you have permission):

        $ coder create <username>/<workspace_name>

OPTIONS:
      (...)

      --preset string, $CODER_PRESET_NAME
          Specify the name of a template version preset. Use 'none' to explicitly indicate that no preset should be used.

      (...)

  -y, --yes bool
          Bypass prompts.
```

## Breaking change

**Note:** This is a breaking change to the create CLI command. If a
template includes presets and the user does not provide a `--preset`
flag, the CLI will now prompt the user to select one. This behavior may
break non-interactive scripts or automated workflows.


Relates to PR: https://github.com/coder/coder/pull/18910 - please
consider both PRs together as they’re part of the same workflow
Relates to issue: https://github.com/coder/coder/issues/16594
2025-07-28 14:46:04 +01:00
Danielle Maywood 66cf90c736 feat(agent/agentcontainers): allow auto start for discovered containers (#19040)
Closes https://github.com/coder/internal/issues/711

When a `devcontainer.json` has been found and it has `.customizations.coder.autoStart = true`, we will now auto start this dev container.
2025-07-28 12:30:52 +01:00
Thomas Kosiewski 398e80f003 feat: add timeout support to workspace bash tool (#19035)
# Add timeout support to workspace bash tool

This PR adds a timeout feature to the workspace bash tool, allowing
users to specify a maximum execution time for commands. Key changes
include:

- Added a `timeout_ms` parameter to control command execution time
(defaults to 60 seconds, with a maximum of 5 minutes)
- Implemented a new `executeCommandWithTimeout` function that properly
handles command timeouts
- Added proper output capturing during timeout scenarios, returning all
output collected before the timeout
- Updated documentation to explain the timeout feature and provide usage
examples
- Added comprehensive tests for the timeout functionality, including
integration tests

When a command times out, the tool now returns all captured output up to
that point along with a cancellation message, making it clear to users
what happened.

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-28 11:25:43 +02:00
Thomas Kosiewski d1595781e1 fix: fix nil pointer dereference in ReportTask (#19045)
This pull request addresses a bug related to a nil pointer dereference
in the task reporting functionality.

### Bug Fixes and Error Handling:

* Updated `RegisterTools` in `mcp.go` to skip registering the
`ReportTask` tool in the remote MCP context when a task reporter is not
configured, preventing potential nil pointer dereference panics.
* Added a check in `toolsdk.go` to ensure task reporting dependencies
are available before invoking the reporter, returning an appropriate
error if not.

### Test Coverage:

* Added `TestReportTaskNilPointerDeref` in `toolsdk_test.go` to verify
that the system does not panic when task reporting dependencies are
missing and instead returns a clear error message.
* Added `TestReportTaskWithReporter` in `toolsdk_test.go` to validate
correct behavior when a task reporter is configured, ensuring the
handler processes the request as expected.

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-28 11:23:29 +02:00
Cian Johnston 6bf2ec3eb1 chore: fix unbound variable in develop.sh (#19043)
Missed this in https://github.com/coder/coder/pull/18991
2025-07-28 09:20:35 +01:00
Dean Sheather 2a430ab435 fix: avoid duplicating logs on Coder Connect Windows (#19052)
The sinks are already added to the logger above, so they're just getting duplicated
2025-07-28 14:02:00 +10:00
dependabot[bot] 8d6cc51da9 chore: bump coder/code-server/coder from 1.3.0 to 1.3.1 in /dogfood/coder-envbuilder (#19050)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)



[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/code-server/coder&package-manager=terraform&previous-version=1.3.0&new-version=1.3.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 00:32:41 +00:00
dependabot[bot] d0a7d84191 chore: bump coder/cursor/coder from 1.2.0 to 1.2.1 in /dogfood/coder (#19047)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.2.0&new-version=1.2.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 00:32:32 +00:00
dependabot[bot] 10b8610045 chore: bump coder/code-server/coder from 1.3.0 to 1.3.1 in /dogfood/coder (#19049)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/code-server/coder&package-manager=terraform&previous-version=1.3.0&new-version=1.3.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 00:32:24 +00:00
dependabot[bot] 355dd9c119 chore: bump coder/vscode-web/coder from 1.3.0 to 1.3.1 in /dogfood/coder (#19048)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/vscode-web/coder&package-manager=terraform&previous-version=1.3.0&new-version=1.3.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 00:32:15 +00:00
dependabot[bot] c2a271ffda chore: bump coder/windsurf/coder from 1.1.0 to 1.1.1 in /dogfood/coder (#19046)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/windsurf/coder&package-manager=terraform&previous-version=1.1.0&new-version=1.1.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 00:32:08 +00:00
Steven Masley 38755e204d chore: remove actDef function, had no value (#19019) 2025-07-24 14:52:03 -05:00
Cian Johnston 9a05a8a28a feat: add preset selector in TasksPage (#19012)
* Adds a preset selector in TasksPage with the default preset pre-selected and at the top of the list.
* If no default preset exists, the user is prompted to select one.
* If a preset defines an AI Prompt, it will override the textarea.
2025-07-24 20:19:33 +01:00
ケイラ 5c31b983e5 chore: update logo in index.html (#19017) 2025-07-24 09:48:05 -06:00
Susana Ferreira 931b97caab feat(cli): add CLI support for listing presets (#18910)
## Description 

This PR introduces a new `list presets` command to display the presets
associated with a given template.
By default, it displays the presets for the template's active version,
unless a `--template-version` flag is provided.

## Changes

* Added a new `list presets` command under `coder templates presets` to
display presets associated with a template.
* By default, the command lists presets from the template’s active
version.
* Users can override the default behavior by providing the
`--template-version` flag to target a specific version.

```
> coder templates versions presets list --help

USAGE:
  coder templates presets list [flags] <template>

  List all presets of the specified template. Defaults to the active template version.

OPTIONS:
  -O, --org string, $CODER_ORGANIZATION
          Select which organization (uuid or name) to use.

  -c, --column [name|parameters|default|desired prebuild instances] (default: name,parameters,default,desired prebuild instances)
          Columns to display in table output.

  -o, --output table|json (default: table)
          Output format.

      --template-version string
          Specify a template version to list presets for. Defaults to the active version.
```

Related PR: https://github.com/coder/coder/pull/18912 - please consider
both PRs together as they’re part of the same workflow
Relates to issue: https://github.com/coder/coder/issues/16594

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added CLI commands to manage and list presets for specific template
versions, supporting tabular and JSON output.
* Introduced a new CLI subcommand group for template version presets,
including detailed help and documentation.
* Added support for displaying and managing the desired number of
prebuild instances for presets in CLI, API, and UI.

* **Documentation**
* Updated and expanded CLI and API documentation to describe new
commands, options, and the desired prebuild instances field in presets.
* Added new help output and reference files for template version presets
commands.

* **Bug Fixes**
* Ensured correct handling and display of the desired prebuild instances
property for presets across CLI, API, and UI.

* **Tests**
* Introduced end-to-end tests for listing template version presets,
covering scenarios with and without presets.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-24 16:44:36 +01:00
Susana Ferreira 070178c454 chore: bump github.com/coder/terraform-provider-coder/v2 from 2.8.0 to 2.9.0 (#19032)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.8.0 to 2.9.0.

Release:
https://github.com/coder/terraform-provider-coder/releases/tag/v2.9.0
2025-07-24 12:17:21 +01:00
Danielle Maywood 25d70ce7bc fix(agent/agentcontainers): respect ignore files (#19016)
Closes https://github.com/coder/coder/issues/19011

We now use
[go-git](https://pkg.go.dev/github.com/go-git/go-git/v5@v5.16.2/plumbing/format/gitignore)'s
`gitignore` plumbing implementation to parse the `.gitignore` files and
match against the patterns generated. We use this to ignore any ignored
files in the git repository.

Unfortunately I've had to slightly re-implement some of the interface
exposed by `go-git` because they use `billy.Filesystem` instead of
`afero.Fs`.
2025-07-24 12:12:05 +01:00
Ethan 5c1bf1d46c test(coderd/database): use seperate context for subtests to fix flake (#19029)
Fixes flakes like https://github.com/coder/coder/actions/runs/16487670478/job/46615625141, caused by the issue described in https://coder.com/blog/go-testing-contexts-and-t-parallel

It'd be cool if we could lint for this? That a context from an outer test isn't used in a subtest if that subtest calls `t.Parallel`.
2025-07-24 20:07:54 +10:00
Dean Sheather 9a05b4679b chore: fix TestManagedAgentLimit flake (#19026)
Closes https://github.com/coder/internal/issues/812
2025-07-24 05:13:15 +00:00
Dean Sheather 5319d47dfa chore: add support for tailscale soft isolation in VPN (#19023) 2025-07-24 04:18:29 +00:00
blink-so[bot] 28789d7204 feat: add View Source button for template administrators in workspace creation (#18951) 2025-07-23 11:16:53 -06:00
Cian Johnston bb83071b5f chore: override codersdk.SessionTokenCookie in develop.sh (#18991)
Updates `develop.sh`, `coder-dev.sh` and `build_go.sh` to conditionally override `codersdk.SessionTokenCookie` for usage in nested development scenario.
2025-07-23 12:48:15 +01:00
Danielle Maywood f41275eb39 feat(agent/agentcontainers): auto detect dev containers (#18950)
Relates to https://github.com/coder/internal/issues/711

This PR implements a project discovery mechanism that searches for any
dev container projects and makes them visible in the UI so that they can
be started. To make the wording on the site more clear, "Rebuild" has
been changed to "Start" when there is no container associated with a
known dev container configuration. I've also made it so that site will
show the dev container config path when there is no other name
available.

### Design decisions

Just want to ensure my explanation for a few design decisions are noted
down:
- We only search for dev container configurations inside git
repositories
- We only search for these git repositories if they're at the top level
or a direct child of the agent directory.

This limited approach is to reduce the amount of files we ultimately
walk when trying to find these projects. It makes sense to limit it to
only the agent directory, although I'm open to expanding how deep we
search.
2025-07-22 19:02:43 +01:00
Thomas Kosiewski c6efe64a65 fix: handle nil writer in bash MCP tool (#18978)
- Refactors the bash tool to use `io.Discard` instead of nil to avoid panics.

- Enhances panic recovery in `codersdk/toolsdk/toolsdk.go` by adding stack trace information in development builds. When a panic occurs in a tool handler:
   - In development builds: The error includes the full stack trace for easier debugging
   - In production builds: A simpler error message is shown without the stack trace
2025-07-22 18:03:26 +02:00
Jaayden Halko dd2fb896eb fix: debounce slider to avoid laggy behavior (#18980)
resolves #18856 
resolves coder/internal#753
2025-07-22 11:15:43 -04:00
Steven Masley 99adb4a15b chore: update codeowners to include emyrk specific features (#18974) 2025-07-22 08:56:56 -05:00
Dean Sheather 62dc8310d1 fix: use httponly flag on coder_signed_app_token cookie (#18989) 2025-07-22 22:44:20 +10:00
Cian Johnston c4b69bbe63 fix: prioritise human-initiated builds over prebuilds (#18933)
Continues from https://github.com/coder/coder/pull/18882

- Reverts extraneous changes
- Adds explicit `ORDER BY initiator_id = $PREBUILDS_USER_ID` to
`AcquireProvisionerJob`
- Improves test added for above PR

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: kylecarbs <7122116+kylecarbs@users.noreply.github.com>
2025-07-22 13:03:50 +01:00
Marcin Tojek e98dce7f99 fix: mute Claude API key warning if Bedrock in use (#18988)
Fixes: https://github.com/coder/coder/issues/17402
2025-07-22 13:56:20 +02:00
Kacper Sawicki 482463c51a feat: extend workspace build reasons to track connection types (#18827)
This PR introduces new build reason values to identify what type of
connection triggered a workspace build, helping to troubleshoot
workspace-related issues.

## Database Migration
Added migration 000349_extend_workspace_build_reason.up.sql that extends
the build_reason enum with new values:
```
dashboard, cli, ssh_connection, vscode_connection, jetbrains_connection
```

## Implementation
The build reason is specified through the API when creating new
workspace builds:

- Dashboard: Automatically sets reason to `dashboard` when users start
workspaces via the web interface
- CLI `start` command: Sets reason to `cli` when workspaces are started
via the command line
- CLI `ssh` command: Sets reason to ssh_connection when workspaces are
started due to SSH connections
- VS Code connections: Will be set to `vscode_connection` by the VS Code
extension through CLI hidden flag
(https://github.com/coder/vscode-coder/pull/550)
- JetBrains connections: Will be set to `jetbrains_connection` by the
Jetbrains Toolbox
(https://github.com/coder/coder-jetbrains-toolbox/pull/150) and
Jetbrains Gateway extension
(https://github.com/coder/jetbrains-coder/pull/561)

## UI Changes:
* Tooltip with reason in Build history
<img width="309" height="457" alt="image"
src="https://github.com/user-attachments/assets/bde8440b-bf3b-49a1-a244-ed7e8eb9763c"
/>

* Reason in Audit Logs Row tooltip
<img width="906" height="237" alt="image"
src="https://github.com/user-attachments/assets/ebbb62c7-cf07-4398-afbf-323c83fb6426"
/>

<img width="909" height="188" alt="image"
src="https://github.com/user-attachments/assets/1ddbab07-44bf-4dee-8867-b4e2cd56ae96"
/>
2025-07-22 13:11:27 +02:00
Dean Sheather 0ebd4356a0 fix: use system context for managed agent count query (#18985) 2025-07-22 06:03:35 +00:00
Dean Sheather 9a6dd73f68 feat: add managed agent license limit checks (#18937)
- Adds a query for counting managed agent workspace builds between two
timestamps
- The "Actual" field in the feature entitlement for managed agents is
now populated with the value read from the database
- The wsbuilder package now validates AI agent usage against the limit
when a license is installed

Closes coder/internal#777
2025-07-22 13:39:26 +10:00
blink-so[bot] aa1a985381 docs: update DX integration title from 'DX Data Cloud' to 'DX' (#18981)
Simplifies the title to reduce customer confusion as requested by
@kylejaggi.

The DX platform covers all products, not just Data Cloud. This change
makes the documentation clearer for customers who might get confused
about which DX product the integration refers to.

**Changes:**
- Updated page title from "DX Data Cloud" to "DX" in
`docs/admin/integrations/dx-data-cloud.md`

**Testing:**
- Verified the markdown renders correctly
- No functional changes, documentation-only update

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
2025-07-21 22:02:44 +00:00
ケイラ 19afeda98a feat: improve workspace upgrade flow when template parameters change (#18917) 2025-07-21 15:42:04 -06:00
Jaayden Halko d7b12535db chore: remove beta labels for dynamic parameters (#18976)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Style**
* Removed the "beta" badge from various workspace and template settings
pages. The "Dynamic parameters" feature no longer displays a beta label
in the interface.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-21 16:16:33 -04:00
Thomas Kosiewski 326c02459f feat: add workspace SSH execution tool for AI SDK (#18924)
# Add SSH Command Execution Tool for Coder Workspaces

This PR adds a new AI tool `coder_workspace_ssh_exec` that allows executing commands in Coder workspaces via SSH. The tool provides functionality similar to the `coder ssh <workspace> <command>` CLI command.

Key features:
- Executes commands in workspaces via SSH and returns the output and exit code
- Automatically starts workspaces if they're stopped
- Waits for the agent to be ready before executing commands
- Trims leading and trailing whitespace from command output
- Supports various workspace identifier formats:
  - `workspace` (uses current user)
  - `owner/workspace`
  - `owner--workspace`
  - `workspace.agent` (specific agent)
  - `owner/workspace.agent`

The implementation includes:
- A new tool definition with schema and handler
- Helper functions for workspace and agent discovery
- Workspace name normalization to handle different input formats
- Comprehensive test coverage including integration tests

This tool enables AI assistants to execute commands in user workspaces, making it possible to automate tasks and provide more interactive assistance.

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

* **New Features**
  * Introduced the ability to execute bash commands inside a Coder workspace via SSH, supporting multiple workspace identification formats.
* **Tests**
  * Added comprehensive unit and integration tests for executing bash commands in workspaces, including input validation, output handling, and error scenarios.
* **Chores**
  * Registered the new bash execution tool in the global tools list.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-21 21:24:00 +02:00
blink-so[bot] 75c124013f fix: remove remaining v prefixes from all module versions in dogfood directory (#18971)
This PR completes the fix for Dependabot version prefix issues by
removing the remaining `v` prefixes that weren't caught in the previous
merge.

**Fixed modules:**

**dogfood/coder-envbuilder/main.tf:**
- slackme: `v1.0.30` → `1.0.30`
- dotfiles: `v1.2.0` → `1.2.0` 
- personalize: `v1.0.30` → `1.0.30`
- code-server: `v1.3.0` → `1.3.0`
- filebrowser: `v1.1.1` → `1.1.1`
- coder-login: `v1.0.30` → `1.0.30`

**dogfood/coder/main.tf:**
- dotfiles: `v1.2.0` → `1.2.0`
- git-clone: `v1.1.0` → `1.1.0`
- vscode-web: `v1.3.0` → `1.3.0`
- coder-login: `v1.0.30` → `1.0.30`
- cursor: `v1.2.0` → `1.2.0`

Now **all** modules in the dogfood directory use consistent version
formatting without the `v` prefix.

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-07-21 13:45:04 -05:00
Thomas Kosiewski 1db096d8f9 chore: fix CodeRabbit config to disable review status (#18973)
Disable review status in CodeRabbit configuration

Change-Id: I0ee266e0b284832b65762a4f7a3f26d56af53e86
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-21 20:26:01 +02:00
Steven Masley aedc019b4e feat: include template variables in dynamic parameter rendering (#18819)
Closes https://github.com/coder/coder/issues/18671

Template variables now loaded into dynamic parameters.
2025-07-21 13:02:31 -05:00
Jon Ayers 40a6367d4b chore: update CLAUDE.md to discourage time.Sleep (#18967) 2025-07-21 12:55:16 -04:00
blink-so[bot] 6d335910ea Update dogfood envbuilder template to use dev.registry.coder.com (#18968)
Updates the dogfood envbuilder template to pull modules from
`dev.registry.coder.com` instead of `registry.coder.com` to match the
regular dogfood template.

This ensures consistency between both dogfood templates and uses the
development registry for testing new module versions.

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-07-21 16:51:05 +00:00
dependabot[bot] b181644930 chore: bump coder/coder-login/coder from 1.0.15 to v1.0.30 in /dogfood/coder-envbuilder (#18962)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.15&new-version=v1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:32:01 +00:00
dependabot[bot] 1a3c1d0533 chore: bump coder/dotfiles/coder from 1.0.29 to v1.2.0 in /dogfood/coder-envbuilder (#18965)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/dotfiles/coder&package-manager=terraform&previous-version=1.0.29&new-version=v1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:31:55 +00:00
dependabot[bot] 56c6b0f939 chore: bump coder/filebrowser/coder from 1.0.31 to v1.1.1 in /dogfood/coder-envbuilder (#18963)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/filebrowser/coder&package-manager=terraform&previous-version=1.0.31&new-version=v1.1.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:31:47 +00:00
dependabot[bot] 9d60acbfc3 chore: bump coder/code-server/coder from 1.2.0 to v1.3.0 in /dogfood/coder-envbuilder (#18960)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/code-server/coder&package-manager=terraform&previous-version=1.2.0&new-version=v1.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:27:18 +00:00
dependabot[bot] b05574ba53 chore: bump coder/windsurf/coder from 1.0.0 to 1.1.0 in /dogfood/coder (#18958)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/windsurf/coder&package-manager=terraform&previous-version=1.0.0&new-version=1.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:27:13 +00:00
dependabot[bot] 235bb5b279 chore: bump coder/personalize/coder from 1.0.2 to v1.0.30 in /dogfood/coder-envbuilder (#18959)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)



[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/personalize/coder&package-manager=terraform&previous-version=1.0.2&new-version=v1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:27:06 +00:00
dependabot[bot] 90eb5c3d6f chore: bump coder/slackme/coder from 1.0.2 to 1.0.30 in /dogfood/coder (#18956)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/slackme/coder&package-manager=terraform&previous-version=1.0.2&new-version=1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:27:02 +00:00
dependabot[bot] 8c68961a1c chore: bump coder/slackme/coder from 1.0.2 to v1.0.30 in /dogfood/coder-envbuilder (#18961)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/slackme/coder&package-manager=terraform&previous-version=1.0.2&new-version=v1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:26:56 +00:00
dependabot[bot] 847373aba1 chore: bump coder/personalize/coder from 1.0.2 to 1.0.30 in /dogfood/coder (#18957)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/personalize/coder&package-manager=terraform&previous-version=1.0.2&new-version=1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 16:26:44 +00:00
ケイラ a9b110df68 chore: remove site/ CODEOWNERS entry (#18954) 2025-07-21 10:04:44 -06:00
dependabot[bot] e6b3b5900f chore: bump github.com/go-chi/chi/v5 from 5.1.0 to 5.2.2 (#18475) 2025-07-21 17:53:28 +02:00
Thomas Kosiewski 4ac6be6d83 chore: add CodeRabbit config with disabled auto-reviews (#18949) 2025-07-21 15:51:48 +01:00
dependabot[bot] b235f8cfeb chore: bump coder/git-clone/coder from 1.0.18 to v1.1.0 in /dogfood/coder (#18947)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/git-clone/coder&package-manager=terraform&previous-version=1.0.18&new-version=v1.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:40:23 +00:00
dependabot[bot] be672682f5 chore: bump coder/vscode-web/coder from 1.2.0 to v1.3.0 in /dogfood/coder (#18946)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/vscode-web/coder&package-manager=terraform&previous-version=1.2.0&new-version=v1.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:40:12 +00:00
dependabot[bot] d86dcdbb92 chore: bump coder/cursor/coder from 1.1.0 to v1.2.0 in /dogfood/coder (#18944)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/cursor/coder&package-manager=terraform&previous-version=1.1.0&new-version=v1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:39:58 +00:00
dependabot[bot] dc5399d261 chore: bump coder/dotfiles/coder from 1.0.29 to v1.2.0 in /dogfood/coder (#18943)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/dotfiles/coder&package-manager=terraform&previous-version=1.0.29&new-version=v1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:39:48 +00:00
dependabot[bot] 79f4d262a6 chore: bump coder/coder-login/coder from 1.0.15 to v1.0.30 in /dogfood/coder (#18945)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=coder/coder-login/coder&package-manager=terraform&previous-version=1.0.15&new-version=v1.0.30)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:39:42 +00:00
dependabot[bot] a10f25659c chore: bump google.golang.org/api from 0.241.0 to 0.242.0 (#18941)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.241.0 to 0.242.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.242.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.241.0...v0.242.0">0.242.0</a>
(2025-07-16)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3226">#3226</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9bd47c484b01476118eee059103a36373a6e560b">9bd47c4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3228">#3228</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2ee2e31870227ca989696c35f57be0b616a4fea2">2ee2e31</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3229">#3229</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6fdc3ebb204a9a3275ccca159be884ec387848ac">6fdc3eb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3230">#3230</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d5fa61e954f9ccd53074a67b223a5af0a6446970">d5fa61e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3231">#3231</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/96d4d98a3d73775fa606b8dbdc6f900287f335be">96d4d98</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3232">#3232</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2ab275bbcb1a8c206099ca7b2e66bd5d0c0b9eac">2ab275b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.241.0...v0.242.0">0.242.0</a>
(2025-07-16)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3226">#3226</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9bd47c484b01476118eee059103a36373a6e560b">9bd47c4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3228">#3228</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2ee2e31870227ca989696c35f57be0b616a4fea2">2ee2e31</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3229">#3229</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6fdc3ebb204a9a3275ccca159be884ec387848ac">6fdc3eb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3230">#3230</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/d5fa61e954f9ccd53074a67b223a5af0a6446970">d5fa61e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3231">#3231</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/96d4d98a3d73775fa606b8dbdc6f900287f335be">96d4d98</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3232">#3232</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2ab275bbcb1a8c206099ca7b2e66bd5d0c0b9eac">2ab275b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/16277b75e6b0b8146ea1f462a5f007b9f76fbe6b"><code>16277b7</code></a>
chore(main): release 0.242.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3227">#3227</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2ab275bbcb1a8c206099ca7b2e66bd5d0c0b9eac"><code>2ab275b</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3232">#3232</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/96d4d98a3d73775fa606b8dbdc6f900287f335be"><code>96d4d98</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3231">#3231</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/d5fa61e954f9ccd53074a67b223a5af0a6446970"><code>d5fa61e</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3230">#3230</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/6fdc3ebb204a9a3275ccca159be884ec387848ac"><code>6fdc3eb</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3229">#3229</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2ee2e31870227ca989696c35f57be0b616a4fea2"><code>2ee2e31</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3228">#3228</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/9bd47c484b01476118eee059103a36373a6e560b"><code>9bd47c4</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3226">#3226</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f1d0fc0610cf1185bb9a705b04bdd4e8a26c5963"><code>f1d0fc0</code></a>
test(transport): replaced deprecated grpc.WithInsecure code</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.241.0...v0.242.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.241.0&new-version=0.242.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:33:16 +00:00
Cian Johnston 198d50dbc2 chore: replace original GetPrebuiltWorkspaces with optimized version (#18832)
Fixes https://github.com/coder/internal/issues/715

Follow-up from https://github.com/coder/coder/pull/18717

Now that we've determined the updated query is safe, remove the duplication.
2025-07-21 15:31:11 +01:00
dependabot[bot] af01562e35 chore: bump golang.org/x/tools from 0.34.0 to 0.35.0 in the x group (#18942)
Bumps the x group with 1 update:
[golang.org/x/tools](https://github.com/golang/tools).

Updates `golang.org/x/tools` from 0.34.0 to 0.35.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/50ec2f15fda46d8960c1d871856265127b4dcce5"><code>50ec2f1</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/197c6c1b47160df25b9cd6598d88525c27a01e5a"><code>197c6c1</code></a>
gopls/internal/mcp: more tuning of tools and prompts</li>
<li><a
href="https://github.com/golang/tools/commit/9563af690255d5b5f7802773c0853f1176130da4"><code>9563af6</code></a>
gopls/internal/mcp: include module paths in workspace summaries</li>
<li><a
href="https://github.com/golang/tools/commit/88a4eb3018821e07f501b483e0f6f4eac4146198"><code>88a4eb3</code></a>
gopls/internal/cmd: wait for startup log in TestMCPCommandHTTP</li>
<li><a
href="https://github.com/golang/tools/commit/4738c7c0b1a53ae0c0fa248a8c31d2a07922dc9b"><code>4738c7c</code></a>
gopls/internal/cmd: avoid the use of channels in the sessions API</li>
<li><a
href="https://github.com/golang/tools/commit/ae1841752658d1d164b5926e72b2b0751fe5db17"><code>ae18417</code></a>
gopls/internal/filewatcher: skip test for unsupported OS</li>
<li><a
href="https://github.com/golang/tools/commit/8391b17713e95ac9bc23d8de7c0303b11c4a190b"><code>8391b17</code></a>
gopls/doc: document Zed editor</li>
<li><a
href="https://github.com/golang/tools/commit/778fe21d5d9f021763cced9defde671c6329d921"><code>778fe21</code></a>
gopls/internal/util/tokeninternal: move from internal/tokeninternal</li>
<li><a
href="https://github.com/golang/tools/commit/0343b7064dcefd5b28e53395fa70768990cc71fb"><code>0343b70</code></a>
internal/jsonrpc2/stack: move from internal/stack</li>
<li><a
href="https://github.com/golang/tools/commit/8c9f4cc0c2a00d508755a558cf73e0dab8d78863"><code>8c9f4cc</code></a>
gopls/internal/filewatcher: refactor filewatcher to pass in handler
func</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.34.0...v0.35.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golang.org/x/tools&package-manager=go_modules&previous-version=0.34.0&new-version=0.35.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:21:53 +00:00
dependabot[bot] e4c2099031 chore: bump github.com/valyala/fasthttp from 1.63.0 to 1.64.0 (#18940)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.63.0 to 1.64.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.64.0</h2>
<h2>⚠️ Deprecation warning! ⚠️</h2>
<p>In the next version of fasthttp headers delimited by just
<code>\n</code> (instead of <code>\r\n</code>) are no longer
supported!</p>
<h2>What's Changed</h2>
<ul>
<li>Add warning for deprecated newline separator by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2031">valyala/fasthttp#2031</a></li>
<li>refact: eliminate duplication in Request/Response via struct
embedding by <a
href="https://github.com/ksw2000"><code>@​ksw2000</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2027">valyala/fasthttp#2027</a></li>
<li>chore(deps): bump golang.org/x/sys from 0.33.0 to 0.34.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2034">valyala/fasthttp#2034</a></li>
<li>chore(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2036">valyala/fasthttp#2036</a></li>
<li>chore(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2035">valyala/fasthttp#2035</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.63.0...v1.64.0">https://github.com/valyala/fasthttp/compare/v1.63.0...v1.64.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/b1a54c8de5720d048bc2cc9aef47903bda171a9e"><code>b1a54c8</code></a>
chore(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2035">#2035</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/7ac856f71f3b3f8a0df682af0d3d09c88bf0519b"><code>7ac856f</code></a>
chore(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2036">#2036</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/2a917b661a90127b84796d80fc30d4e70845ecfa"><code>2a917b6</code></a>
chore(deps): bump golang.org/x/sys from 0.33.0 to 0.34.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2034">#2034</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/a3c9dab7573946aa0afcee62d94fbfb58e3c4c2c"><code>a3c9dab</code></a>
Add warning for deprecated newline separator (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2031">#2031</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/eb1f908d9764ef1a355bab13ed83ce7cfc5e793e"><code>eb1f908</code></a>
refact: eliminate duplication in Request/Response via struct embedding
(<a
href="https://redirect.github.com/valyala/fasthttp/issues/2027">#2027</a>)</li>
<li>See full diff in <a
href="https://github.com/valyala/fasthttp/compare/v1.63.0...v1.64.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.63.0&new-version=1.64.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:16:42 +00:00
dependabot[bot] 4c1a46150b chore: bump github.com/mark3labs/mcp-go from 0.33.0 to 0.34.0 (#18939)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.33.0 to 0.34.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>v0.34.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(streamable_http): ensure graceful shutdown to prevent close
reque… by <a
href="https://github.com/sunerpy"><code>@​sunerpy</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/477">mark3labs/mcp-go#477</a></li>
<li>fix(streamble_http) SendNotification not work bug by <a
href="https://github.com/Robin-ZMH"><code>@​Robin-ZMH</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/473">mark3labs/mcp-go#473</a></li>
<li>refactor: replace fmt.Errorf with TransportError wrapper by <a
href="https://github.com/AdamShannag"><code>@​AdamShannag</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/486">mark3labs/mcp-go#486</a></li>
<li>fix <code>Content-Type: application/json; charset=utf-8</code> error
by <a href="https://github.com/oldweipro"><code>@​oldweipro</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/478">mark3labs/mcp-go#478</a></li>
<li>feat: Inprocess sampling support by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/487">mark3labs/mcp-go#487</a></li>
<li>feat: support in tool result handling &amp; update example by <a
href="https://github.com/CocaineCong"><code>@​CocaineCong</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/467">mark3labs/mcp-go#467</a></li>
<li>feat(logging): add support for send log message notifications and
implemented the <code>SessionWithLogging</code> interface on
<code>streamableHttpSession</code> by <a
href="https://github.com/sunerpy"><code>@​sunerpy</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/484">mark3labs/mcp-go#484</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/sunerpy"><code>@​sunerpy</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/477">mark3labs/mcp-go#477</a></li>
<li><a href="https://github.com/Robin-ZMH"><code>@​Robin-ZMH</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/473">mark3labs/mcp-go#473</a></li>
<li><a
href="https://github.com/AdamShannag"><code>@​AdamShannag</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/486">mark3labs/mcp-go#486</a></li>
<li><a href="https://github.com/oldweipro"><code>@​oldweipro</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/478">mark3labs/mcp-go#478</a></li>
<li><a
href="https://github.com/CocaineCong"><code>@​CocaineCong</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/467">mark3labs/mcp-go#467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.33.0...v0.34.0">https://github.com/mark3labs/mcp-go/compare/v0.33.0...v0.34.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/ffea75ff8133a2efec8ae549f0a5bc25cd27f8a4"><code>ffea75f</code></a>
feat(logging): add support for send log message notifications and
implemented...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e859847efc844f904dac49f8220cb5c911ffed91"><code>e859847</code></a>
feat: support in tool result handling &amp; update example (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/467">#467</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9c352bd3f37f776d3390b22957da4ad114f114b1"><code>9c352bd</code></a>
feat: Inprocess sampling support (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/487">#487</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/78eb7a3c790dc7de26b9d61039a9527ef4022833"><code>78eb7a3</code></a>
fix <code>Content-Type: application/json; charset=utf-8</code> error (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/478">#478</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c8c52a8c25536b4cdc1ad7725338a5b0d336f13f"><code>c8c52a8</code></a>
refactor: replace fmt.Errorf with TransportError wrapper (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/486">#486</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/65df1b095c8274f7cb0997fbd1a7bdbf12a2fc43"><code>65df1b0</code></a>
fix(streamble_http) SendNotification not work bug (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/473">#473</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/2d479bb4995a6279223c524f27ad94bf7e7a30cd"><code>2d479bb</code></a>
Merge pull request <a
href="https://redirect.github.com/mark3labs/mcp-go/issues/477">#477</a>
from sunerpy/main</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/bee9f90bab8622796cb7e9348acdaaebcc3cd7ed"><code>bee9f90</code></a>
fix(streamable_http): ensure graceful shutdown to prevent close request
errors</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/56f25011a0a97b4bb60e7742f017ce0ce098ae66"><code>56f2501</code></a>
fix quick-start</li>
<li>See full diff in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.33.0...v0.34.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.33.0&new-version=0.34.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 14:13:04 +00:00
dependabot[bot] 6b141d76de ci: bump the github-actions group with 6 updates (#18938)
Bumps the github-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.12.2` | `2.13.0` |
|
[google-github-actions/auth](https://github.com/google-github-actions/auth)
| `2.1.10` | `2.1.11` |
|
[google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud)
| `2.1.4` | `2.1.5` |
|
[google-github-actions/get-gke-credentials](https://github.com/google-github-actions/get-gke-credentials)
| `2.3.3` | `2.3.4` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.29.2` | `3.29.3` |
|
[umbrelladocs/action-linkspector](https://github.com/umbrelladocs/action-linkspector)
| `1.3.6` | `1.3.7` |

Updates `step-security/harden-runner` from 2.12.2 to 2.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Improved job markdown summary</li>
<li>Https monitoring for all domains (included with the enterprise
tier)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.13.0">https://github.com/step-security/harden-runner/compare/v2...v2.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/ec9f2d5744a09debf3a187a3f4f675c53b671911"><code>ec9f2d5</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/565">#565</a>
from step-security/rc-24</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/04bcbc31cfcefe0cf4720832008735021cec5ec4"><code>04bcbc3</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/7c7a56fcaa124ab72fff1cc3e81257f264fd7317"><code>7c7a56f</code></a>
feat: get job summary from API</li>
<li>See full diff in <a
href="https://github.com/step-security/harden-runner/compare/6c439dc8bdf85cadbbce9ed30d1c7b959517bc49...ec9f2d5744a09debf3a187a3f4f675c53b671911">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/auth` from 2.1.10 to 2.1.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/auth/releases">google-github-actions/auth's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.11</h2>
<h2>What's Changed</h2>
<ul>
<li>Update troubleshooting docs for Python by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/488">google-github-actions/auth#488</a></li>
<li>Add linters by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/499">google-github-actions/auth#499</a></li>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/500">google-github-actions/auth#500</a></li>
<li>Release: v2.1.11 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/501">google-github-actions/auth#501</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2.1.10...v2.1.11">https://github.com/google-github-actions/auth/compare/v2.1.10...v2.1.11</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/auth/commit/140bb5113ffb6b65a7e9b937a81fa96cf5064462"><code>140bb51</code></a>
Release: v2.1.11 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/501">#501</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/ab3132e2ad698521ee1355566103fa838732e48c"><code>ab3132e</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/auth/issues/500">#500</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/25b96bac992fdf64486c6fd3fd3d9c4cddb3a812"><code>25b96ba</code></a>
Add linters (<a
href="https://redirect.github.com/google-github-actions/auth/issues/499">#499</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/0920706a19e9d22c3d0da43d1db5939c6ad837a8"><code>0920706</code></a>
Update troubleshooting docs for Python (<a
href="https://redirect.github.com/google-github-actions/auth/issues/488">#488</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/auth/compare/ba79af03959ebeac9769e648f473a284504d9193...140bb5113ffb6b65a7e9b937a81fa96cf5064462">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/setup-gcloud` from 2.1.4 to 2.1.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/setup-gcloud/releases">google-github-actions/setup-gcloud's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>security: bump undici from 5.28.5 to 5.29.0 in the npm_and_yarn
group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/711">google-github-actions/setup-gcloud#711</a></li>
<li>Update linters by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/715">google-github-actions/setup-gcloud#715</a></li>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/716">google-github-actions/setup-gcloud#716</a></li>
<li>Release: v2.1.5 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/setup-gcloud/pull/717">google-github-actions/setup-gcloud#717</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/setup-gcloud/compare/v2.1.4...v2.1.5">https://github.com/google-github-actions/setup-gcloud/compare/v2.1.4...v2.1.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/6a7c903a70c8625ed6700fa299f5ddb4ca6022e9"><code>6a7c903</code></a>
Release: v2.1.5 (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/717">#717</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/e838bc6edfe3907980c74d5aad506fd6e173b0d6"><code>e838bc6</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/716">#716</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/98d8f78fcc2354c736499a506ad9e7be3f4c2640"><code>98d8f78</code></a>
Update linters (<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/715">#715</a>)</li>
<li><a
href="https://github.com/google-github-actions/setup-gcloud/commit/a8b58010a5b2a061afd605f50e88629c9ec7536b"><code>a8b5801</code></a>
security: bump undici from 5.28.5 to 5.29.0 in the npm_and_yarn group
(<a
href="https://redirect.github.com/google-github-actions/setup-gcloud/issues/711">#711</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/setup-gcloud/compare/77e7a554d41e2ee56fc945c52dfd3f33d12def9a...6a7c903a70c8625ed6700fa299f5ddb4ca6022e9">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/get-gke-credentials` from 2.3.3 to 2.3.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/get-gke-credentials/releases">google-github-actions/get-gke-credentials's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.4</h2>
<h2>What's Changed</h2>
<ul>
<li>security: bump undici from 5.28.5 to 5.29.0 in the npm_and_yarn
group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/333">google-github-actions/get-gke-credentials#333</a></li>
<li>Update linters by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/334">google-github-actions/get-gke-credentials#334</a></li>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/335">google-github-actions/get-gke-credentials#335</a></li>
<li>Release: v2.3.4 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/336">google-github-actions/get-gke-credentials#336</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.3...v2.3.4">https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.3...v2.3.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/8e574c49425fa7efed1e74650a449bfa6a23308a"><code>8e574c4</code></a>
Release: v2.3.4 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/336">#336</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/820551c1d9b3734a98590d5020e3a479a3600019"><code>820551c</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/335">#335</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/503071673e50fd4fe5973d69174dc780288d61e9"><code>5030716</code></a>
Update linters (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/334">#334</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/36f99de330d5a168c801b87721b96719a0a9ada0"><code>36f99de</code></a>
security: bump undici from 5.28.5 to 5.29.0 in the npm_and_yarn group
(<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/333">#333</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/d0cee45012069b163a631894b98904a9e6723729...8e574c49425fa7efed1e74650a449bfa6a23308a">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.29.2 to 3.29.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.3</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.3/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.29.3 - 21 Jul 2025</h2>
<p>No user facing changes.</p>
<h2>3.29.2 - 30 Jun 2025</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.20 - 21 July 2025</h2>
<ul>
<li>Remove support for combining SARIF files from a single upload for
GHES 3.18, see <a
href="https://github.blog/changelog/2024-05-06-code-scanning-will-stop-combining-runs-from-a-single-upload/">the
changelog post</a>. <a
href="https://redirect.github.com/github/codeql-action/pull/2959">#2959</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/d6bbdef45e766d081b84a2def353b0055f728d3e"><code>d6bbdef</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2977">#2977</a>
from github/update-v3.29.3-7710ed11e</li>
<li><a
href="https://github.com/github/codeql-action/commit/210cc9bfa2103f4b7c4701ee383183b944c62578"><code>210cc9b</code></a>
Update changelog for v3.29.3</li>
<li><a
href="https://github.com/github/codeql-action/commit/7710ed11e398ea99c7f7004c2b2e0f580458db42"><code>7710ed1</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2970">#2970</a>
from github/cklin/diff-informed-feature-enable</li>
<li><a
href="https://github.com/github/codeql-action/commit/6a49a8cbce6ecbd74ea251a48dbc84e64ce3be4d"><code>6a49a8c</code></a>
build: refresh js files</li>
<li><a
href="https://github.com/github/codeql-action/commit/3aef4108d1730e17b6fd24f8b9c49d8fcc87d46d"><code>3aef410</code></a>
Add diff-informed-analysis-utils.test.ts</li>
<li><a
href="https://github.com/github/codeql-action/commit/614b64c6ec97a4ad54f7c99c5becbf593144dbfb"><code>614b64c</code></a>
Diff-informed analysis: disable for GHES below 3.19</li>
<li><a
href="https://github.com/github/codeql-action/commit/aefb854fe5563f4650638224c839c6e9b33c25b5"><code>aefb854</code></a>
Feature.DiffInformedQueries: default to true</li>
<li><a
href="https://github.com/github/codeql-action/commit/03a2a17e75d20e4ff461b43f161fb2b52165f632"><code>03a2a17</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2967">#2967</a>
from github/cklin/overlay-feature-flags</li>
<li><a
href="https://github.com/github/codeql-action/commit/07455ed3c36f739ad76d1c4e55f8b49550f74344"><code>07455ed</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2972">#2972</a>
from github/koesie10/ghes-satisfies</li>
<li><a
href="https://github.com/github/codeql-action/commit/3fb562ddcce3ca92b83ea1bb7abaa579a1ab882d"><code>3fb562d</code></a>
build: refresh js files</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/181d5eefc20863364f96762470ba6f862bdef56b...d6bbdef45e766d081b84a2def353b0055f728d3e">compare
view</a></li>
</ul>
</details>
<br />

Updates `umbrelladocs/action-linkspector` from 1.3.6 to 1.3.7
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/umbrelladocs/action-linkspector/releases">umbrelladocs/action-linkspector's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.3.7</h2>
<p>v1.3.7: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/47">#47</a>
- Update linkspector version to 0.4.7</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/874d01cae9fd488e3077b08952093235bd626977"><code>874d01c</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/47">#47</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/bfc5bc55f5a8fc268165639b78b3ce6ae64915ad"><code>bfc5bc5</code></a>
Update linkspector version to 0.4.7</li>
<li>See full diff in <a
href="https://github.com/umbrelladocs/action-linkspector/compare/3a951c1f0dca72300c2320d0eb39c2bafe429ab1...874d01cae9fd488e3077b08952093235bd626977">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 13:21:37 +00:00
Hugo Dutka ceb4b973b4 chore: run full macos and windows pg tests in the nightly gauntlet (#18787)
This PR starts running the full test suite on Windows and macOS in the
nightly gauntlet, since the regular CI only runs agent and cli tests.
The full suite is too slow to be run on every PR.
2025-07-21 15:18:49 +02:00
Danielle Maywood f751f81052 fix(coderd): fix flake in TestAPI/ModifyAutostopWithRunningWorkspace (#18932)
Fixes https://github.com/coder/internal/issues/521

This happened due to a race condition present in how
`AwaitWorkspaceBuildJobCompleted` works.

`AwaitWorkspaceBuildJobCompleted` works by waiting until
`/api/v2/workspacesbuilds/{workspacebuild}/` returns a workspace build
with `.Job.CompletedAt != nil`. The issue here is that _sometimes_ the
returned `codersdk.WorkspaceBuild` can contain a build from _before_ a
provisioner job completed, but contain the provisioner job from _after_
it completed.

Let me demonstrate:

Here we query the database for `database.WorkspaceBuild`.

https://github.com/coder/coder/blob/a3f64f74f794c733126ad21cd1feb0801caf67c4/coderd/coderd.go#L1409-L1415

Inside of the `workspaceBuild` route handler, we call
`workspaceBuildsData`

https://github.com/coder/coder/blob/a3f64f74f794c733126ad21cd1feb0801caf67c4/coderd/workspacebuilds.go#L54

This then calls `GetProvisionerJobsByIDsWithQueuePosition`

https://github.com/coder/coder/blob/a3f64f74f794c733126ad21cd1feb0801caf67c4/coderd/workspacebuilds.go#L852-L856

As these two calls happen _outside of a transaction_, the state of the
world can change underneath. This can result in an in-progress workspace
build having a completed provisioner job attached to it.
2025-07-21 13:04:28 +01:00
Thomas Kosiewski 0d3b7703f7 docs: remove dbmem references from documentation files (#18861)
Change-Id: Ic33bc383d00d0e354c25a0dd6080a4307d9862b6
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-21 11:21:58 +02:00
dependabot[bot] 7c66dcd238 chore: bump terraform-google-modules/container-vm/google from 3.0.0 to 3.2.0 in /examples/templates/gcp-vm-container (#18925)
Bumps
[terraform-google-modules/container-vm/google](https://github.com/terraform-google-modules/terraform-google-container-vm)
from 3.0.0 to 3.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/releases">terraform-google-modules/container-vm/google's
releases</a>.</em></p>
<blockquote>
<h2>v3.2.0</h2>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.1.1...v3.2.0">3.2.0</a>
(2024-08-29)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> Update Terraform Google Provider to v6
(major) (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/138">#138</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b8065338e38b51230f06aec573a2f8027c30c566">b806533</a>)</li>
</ul>
<h2>v3.1.1</h2>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.1.0...v3.1.1">3.1.1</a>
(2024-01-08)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> lint updates for cft/developer-tools v1.18
(<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/123">#123</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/2d57bef2f9ff75f5ca0a0b7f5d21985b823be1a6">2d57bef</a>)</li>
<li>upgraded versions.tf to include minor bumps from tpg v5 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/118">#118</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/14fcdf3463b254098a5bc4a6e01003b3eee2d75c">14fcdf3</a>)</li>
</ul>
<h2>v3.1.0</h2>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.0.1...v3.1.0">3.1.0</a>
(2022-09-19)</h2>
<h3>Features</h3>
<ul>
<li>expose cos_project variable (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/91">#91</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b32263d30cf2a61d20ddbca94733bf3abfb7a446">b32263d</a>)</li>
</ul>
<h2>v3.0.1</h2>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.0.0...v3.0.1">3.0.1</a>
(2022-07-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>restart policy kills konlet-startup container fix for the value
Never (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/87">#87</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/fcbdafa2d5b00792c388dcda1e1715f5e2a615e6">fcbdafa</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/blob/main/CHANGELOG.md">terraform-google-modules/container-vm/google's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.1.1...v3.2.0">3.2.0</a>
(2024-08-29)</h2>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> Update Terraform Google Provider to v6
(major) (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/138">#138</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b8065338e38b51230f06aec573a2f8027c30c566">b806533</a>)</li>
</ul>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.1.0...v3.1.1">3.1.1</a>
(2024-01-08)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> lint updates for cft/developer-tools v1.18
(<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/123">#123</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/2d57bef2f9ff75f5ca0a0b7f5d21985b823be1a6">2d57bef</a>)</li>
<li>upgraded versions.tf to include minor bumps from tpg v5 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/118">#118</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/14fcdf3463b254098a5bc4a6e01003b3eee2d75c">14fcdf3</a>)</li>
</ul>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.0.1...v3.1.0">3.1.0</a>
(2022-09-19)</h2>
<h3>Features</h3>
<ul>
<li>expose cos_project variable (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/91">#91</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b32263d30cf2a61d20ddbca94733bf3abfb7a446">b32263d</a>)</li>
</ul>
<h2><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.0.0...v3.0.1">3.0.1</a>
(2022-07-20)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>restart policy kills konlet-startup container fix for the value
Never (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/87">#87</a>)
(<a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/fcbdafa2d5b00792c388dcda1e1715f5e2a615e6">fcbdafa</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/ceba2c777b5fbdc74debcbad63b02f94b6abcb60"><code>ceba2c7</code></a>
chore(master): release 3.2.0 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/139">#139</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b8065338e38b51230f06aec573a2f8027c30c566"><code>b806533</code></a>
feat(deps): Update Terraform Google Provider to v6 (major) (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/138">#138</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/b9c7fdd2cd0bd09942440ac372fdee47bde57db9"><code>b9c7fdd</code></a>
chore(deps): Update cft/developer-tools Docker tag to v1.22 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/136">#136</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/5efa4d20a97b4b30c4392bbf5d788e65f0dd51c7"><code>5efa4d2</code></a>
chore(deps): Update cft/developer-tools Docker tag to v1.21 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/131">#131</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/d9045637650a82354f11b4d170b96f20b2a00167"><code>d904563</code></a>
chore(deps): Update Terraform
terraform-google-modules/project-factory/google...</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/30b7909f74ef3228daac07c771366e910059e9f5"><code>30b7909</code></a>
chore(deps): Update Terraform terraform-google-modules/vm/google to v11
(<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/129">#129</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/5dc397e54a63e9ae63bc165a80e35b2a18ff6d99"><code>5dc397e</code></a>
chore(deps): Update cft/developer-tools Docker tag to v1.19 (<a
href="https://redirect.github.com/terraform-google-modules/terraform-google-container-vm/issues/128">#128</a>)</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/aefea73c5602277b4876e3b0d14f7aaa90151bcc"><code>aefea73</code></a>
chore: update .github/workflows/lint.yaml</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/924324901e4219d7e4d72d8168b2f90dbc1d923b"><code>9243249</code></a>
chore: update CODEOWNERS</li>
<li><a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/commit/8361f4d105e415b166c1ddcbcc080ff31360058b"><code>8361f4d</code></a>
chore: update .github/workflows/stale.yml</li>
<li>Additional commits viewable in <a
href="https://github.com/terraform-google-modules/terraform-google-container-vm/compare/v3.0.0...v3.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=terraform-google-modules/container-vm/google&package-manager=terraform&previous-version=3.0.0&new-version=3.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 09:05:33 +00:00
Thomas Kosiewski fcd361d374 feat: add logo SVG and replace inline SVG with image reference (#18930)
# Replace SVG with external logo file in OAuth2 authorization page

This PR replaces the inline SVG logo in the OAuth2 authorization page with a reference to an external SVG file. The change:

1. Adds a new `logo.svg` file in the static directory with the Coder logo
2. Updates the OAuth2 authorization page to use this external file instead of embedding the SVG directly

This approach improves maintainability by centralizing the logo in a single file and reduces duplication in the codebase.
2025-07-21 11:04:21 +02:00
blink-so[bot] f3c1353322 docs: fix typo 'protyping' to 'prototyping' in AI Coding Agents page (#18928)
Fixes #18926

Simple typo fix: changed 'protyping' to 'prototyping' in the AI Coding
Agents documentation page.

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
2025-07-20 20:16:19 +00:00
Thomas Kosiewski 7b06fc77ae refactor: simplify OAuth2 authorization flow and use 302 redirects (#18923)
# Refactor OAuth2 Provider Authorization Flow

This PR refactors the OAuth2 provider authorization flow by:

1. Removing the `authorizeMW` middleware and directly implementing its functionality in the `ShowAuthorizePage` handler
2. Simplifying function signatures by removing unnecessary parameters:
   - Removed `db` parameter from `ShowAuthorizePage`
   - Removed `accessURL` parameter from `ProcessAuthorize`
3. Changing the redirect status code in `ProcessAuthorize` from 307 (Temporary Redirect) to 302 (Found) to improve compatibility with external OAuth2 apps and browsers. (Technical explanation: we replied with a 307 to a POST request, thus the browser performs a redirect to that URL as a POST request, but we need it to be a GET request to be compatible. Thus, we use the 302 redirect so that browsers turn it into a GET request when redirecting back to the redirect_uri.)

The changes maintain the same functionality while simplifying the code and improving compatibility with external systems.
2025-07-20 16:22:52 +02:00
Thomas Kosiewski 071383bbe8 feat: add RFC 9728 OAuth2 resource metadata support (#18920)
# Enhanced OAuth2 and MCP Compliance for API Authentication

This PR improves OAuth2 and MCP (Microsoft Cloud for Sovereignty)
compliance by:

1. Adding RFC 9728 compliant `WWW-Authenticate` headers with resource
metadata URLs
2. Passing the configured `AccessURL` to API key middleware for proper
audience validation
3. Creating specialized CORS handling for OAuth2 and MCP endpoints with
appropriate headers
4. Making the `state` parameter optional in OAuth2 authorization
requests

These changes ensure proper OAuth2 token audience validation against the
configured access URL and improve interoperability with OAuth2 clients
by providing better error responses and metadata discovery.

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-19 22:05:15 +02:00
Michael Smith f47efc62ee fix(site): speed up state syncs and validate input for debounce hook logic (#18877)
No issue to link – I'm basically pushing some updates upstream from the
version of the hook I copied over for the Registry website.

## Changes made
- Updated debounce functions to have input validation for timeouts
- Updated `useDebouncedValue` to flush state syncs immediately if
timeout value is `0`
- Updated tests to reflect changes
- Cleaned up some comments and parameter names to make things more clear
2025-07-17 18:15:42 -04:00
DevCats 6746e16502 docs: add contribution documentation for modules and templates (#18820)
draft: add contribution docs for modules and templates individually to
be referenced in coder docs manifest.

---------

Co-authored-by: Atif Ali <atif@coder.com>
2025-07-17 16:23:42 -05:00
Dean Sheather 183a6ebbdf chore: add managed_agent_limit licensing feature (#18876)
Note that enforcement and checking usage will come in a future PR.

This feature is implemented differently than existing features in a few
ways.

It's highly recommended that reviewers read:
- This document which outlines the methods we could've used for license
enforcement:
https://www.notion.so/coderhq/AI-Agent-License-Enforcement-21ed579be59280c088b9c1dc5e364ee8
- Phase 0 of the actual RFC document:
https://www.notion.so/coderhq/Usage-based-Billing-AI-b-210d579be592800eb257de7eecd2d26d

### Multiple features in the license, a single feature in codersdk

Firstly, the feature is represented as a single feature in the codersdk
world, but is represented with multiple features in the license.

E.g. in the license you may have:

    {
      "features": {
        "managed_agent_limit_soft": 100,
        "managed_agent_limit_hard": 200
      }
    }

But the entitlements endpoint will return a single feature:

    {
      "features": {
        "managed_agent_limit": {
          "limit": 200,
          "soft_limit": 100
        }
      }
    }

This is required because of our rigid parsing that uses a
`map[string]int64` for features in the license. To avoid requiring all
customers to upgrade to use new licenses, the decision was made to just
use two features and merge them into one. Older Coder deployments will
parse this feature (from new licenses) as two separate features, but
it's not a problem because they don't get used anywhere obviously.

The reason we want to differentiate between a "soft" and "hard" limit is
so we can show admins how much of the usage is "included" vs. how much
they can use before they get hard cut-off.

### Usage period features will be compared and trump based on license
issuance time

The second major difference to other features is that "usage period"
features such as `managed_agent_limit` will now be primarily compared by
the `iat` (issued at) claim of the license they come from. This differs
from previous features. The reason this was done was so we could reduce
limits with newer licenses, which the current comparison code does not
allow for.

This effectively means if you have two active licenses:
- `iat`: 2025-07-14, `managed_agent_limit_soft`: 100,
`managed_agent_limit_hard`: 200
- `iat`: 2025-07-15, `managed_agent_limit_soft`: 50,
`managed_agent_limit_hard`: 100

Then the resulting `managed_agent_limit` entitlement will come from the
second license, even though the values are smaller than another valid
license. The existing comparison code would prefer the first license
even though it was issued earlier.

### Usage period features will count usage between the start and end
dates of the license

Existing limit features, like the user limit, just measure the current
usage value of the feature. The active user count is a gauge that goes
up and down, whereas agent usage can only be incremented, so it doesn't
make sense to use a continually incrementing counter forever and ever
for managed agents.

For managed agent limit, we count the usage between `nbf` (not before)
and `exp` (expires at) of the license that the entitlement comes from.
In the example above, we'd use the issued at date and expiry of the
second license as this date range.

This essentially means, when you get a new license, the usage resets to
zero.

The actual usage counting code will be implemented in a follow-up PR.

### Managed agent limit has a default entitlement value

Temporarily (until further notice), we will be providing licenses with
`feature_set` set to `premium` a default limit.
- Soft limit: `800 * user_limit`
- Hard limit: `1000 * user_limit`

"Enterprise" licenses do not get any default limit and are not entitled
to use the feature.

Unlicensed customers (e.g. OSS) will be permitted to use the feature as
much as they want without limits. This will be implemented when the
counting code is implemented in a follow-up PR.

Closes https://github.com/coder/internal/issues/760
2025-07-17 20:19:01 +10:00
Dean Sheather a1b87a67c6 fix: use client preferred URL for the default DERP (#18911)
The agentsdk currently does a remap of the DERP map to change the
EmbeddedRelay node's URL to match the agent's access URL.

This PR makes changes to the `workspacesdk` (used by clients like the
CLI) and `vpn` (used by Coder Desktop) to match this behavior.

This enables us the ability to try Coder clients in dogfood over a VPN
without changing the global access URL.
2025-07-17 20:17:44 +10:00
Danielle Maywood fb00cd2c1a fix(agent/agentcontainers): fix TestAPI/NoUpdaterLoopLogspam flake (#18905) 2025-07-17 10:59:02 +01:00
Atif Ali aae5fc243a chore(dogfood): add JetBrains fleet ide module (#18817)
We need to dogfood this new fleet module.

> [!NOTE]
> Only works if Coder CLI or Coder Desktop is installed
2025-07-17 10:17:38 +05:00
Edward Angert d304fb4f2d docs: hotfix mainline version number in docs/install/releases to 2.24.2 (#18906)
hotfix

[preview](https://coder.com/docs/@2-24-mainline/install/releases)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-17 10:16:59 +05:00
Danielle Maywood bfb9aa464d fix(site): only attempt to watch when dev containers enabled (#18892) 2025-07-17 00:03:59 +01:00
Atif Ali ca6b5e3415 docs: update port forwarding docs to include Coder Desktop (#18870)
Noticed that Coder Desktop was missing from port-forwarding docs which
is kind of a big feature for Coder Connect.


[preview](https://coder.com/docs/@atif%2Fdesktop-ports/user-guides/workspace-access/port-forwarding)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-07-16 19:57:55 +00:00
Marcin Tojek b4c9725443 chore: update ascii logo (#18899)
This PR updates the ASCII logo in the HTML output.
2025-07-16 14:33:46 -03:00
ケイラ 0cdcf89069 chore: update CODEOWNERS (#18891) 2025-07-15 14:52:05 -06:00
ケイラ 9774264928 chore: add image style for kiro.svg (#18889)
The `whiteWithColor` style gives this image a more appropriate treatment
on light themes
2025-07-15 14:09:00 -06:00
blink-so[bot] e76115c67d chore: add kiro: protocol to external app whitelist (#18884)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-07-15 18:45:16 +00:00
Atif Ali 5758594ff7 chore: add kiro icon (#18881) 2025-07-15 23:41:21 +05:00
ケイラ 52c4b61391 feat: add search to parameter dropdowns (#18729) 2025-07-15 11:23:49 -06:00
Susana Ferreira dad033ee3d fix(site): exclude workspace schedule settings for prebuilt workspaces (#18826)
## Description

This PR updates the UI to avoid rendering workspace schedule settings
(autostop, autostart, etc.) for prebuilt workspaces. Instead, it
displays an informational message with a link to the relevant
documentation.

## Changes

* Introduce `IsPrebuild` parameter to `convertWorkspace` to indicate
whether the workspace is a prebuild.
* Prevent the Workspace Schedule settings form from rendering in the UI
for prebuilt workspaces.
* Display an info alert with a link to documentation when viewing a
prebuilt workspace.

<img width="2980" height="864" alt="Screenshot 2025-07-10 at 13 16 13"
src="https://github.com/user-attachments/assets/5f831c21-50bb-4e05-beea-dbeb930ddff8"
/>


Relates with: https://github.com/coder/coder/pull/18762

---------

Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2025-07-15 14:11:04 +01:00
Jakub Domeracki e4d3453e2b feat: publish CLI binaries and detached signatures to releases.coder.com (#18874)
Starting with version `2.24.X `, Coder CLI binaries & corresponding
detached signatures will get published to the GCS bucket
releases.coder.com.
2025-07-15 13:15:58 +02:00
Danielle Maywood 089f9603ed fix(site): only attempt to watch containers when agent connected (#18873)
This PR ensures we do not attempt to call `containers/watch` on the
agent _before_ it is connected.
2025-07-15 11:16:14 +01:00
dependabot[bot] 43546336c9 chore: bump github.com/gohugoio/hugo from 0.147.0 to 0.148.1 (#18852)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.147.0 to 0.148.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.148.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix assignment to entry in nil map 6f42cfbc9 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13853">#13853</a></li>
<li>deps: Downgrade github.com/niklasfasching/go-org v1.9.0 =&gt; v1.8.0
a84beee42 <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13846">#13846</a></li>
</ul>
<h2>v0.148.0</h2>
<blockquote>
<p>[!NOTE]<br />
There's some minor breaking changes in this release. Please <a
href="https://discourse.gohugo.io/t/breaking-changes-in-v0-148-0/55257">read
this</a> thread for more information.</p>
</blockquote>
<h2>Note</h2>
<ul>
<li>Fix some uglyURLs issues for home, section and taxonomy kind (note)
b8ba33ca9 <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/4428">#4428</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/7497">#7497</a></li>
<li>Fix branch paths when OutputFormat.Path is configured (note)
f967212b7 <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13829">#13829</a></li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>resources/page: Allow full datetime prefix in filenames 1b4c42366 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13830">#13830</a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>Add Ancestors (plural) method to GitInfo, rename Ancestor field to
Parent 3e2f1cdfd <a href="https://github.com/bep"><code>@​bep</code></a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13839">#13839</a></li>
<li>Allow creating home pages from content adapters bba6996e1 <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>Remove the internal GitInfo type and make Page.GitInf() return a
pointer 90d397b14 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/5693">#5693</a></li>
<li>source: Expose Ancestor in GitInfo 61e6c730d <a
href="https://github.com/jenbroek"><code>@​jenbroek</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/5693">#5693</a></li>
<li>config: Increase test coverage 266d46dcc <a
href="https://github.com/pixel365"><code>@​pixel365</code></a></li>
<li>markup/goldmark: Change link and image render hook enablement to
enums 84b31721b <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13535">#13535</a></li>
<li>hugolib: Honor implicit &quot;page&quot; type during template
selection cfc8d315b <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13826">#13826</a></li>
<li>deploy: walkLocal worker pool for performance dd6e2c872 <a
href="https://github.com/davidejones"><code>@​davidejones</code></a></li>
</ul>
<h2>Dependency Updates</h2>
<ul>
<li>build(deps): bump github.com/evanw/esbuild from 0.25.5 to 0.25.6
0a5b87028 <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump github.com/olekukonko/tablewriter from 1.0.7 to
1.0.8 94e2c276a <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump github.com/niklasfasching/go-org from 1.8.0 to
1.9.0 e77b2ad8f <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump github.com/alecthomas/chroma/v2 from 2.18.0 to
2.19.0 9487acf6a <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump golang.org/x/tools from 0.32.0 to 0.34.0 1e9a0b93e
<a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
</ul>
<h2>v0.147.9</h2>
<h2>Improvements and fixes</h2>
<ul>
<li>Remove WARN with false negatives 6a4a3ab8f <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13806">#13806</a></li>
<li>resources/page: Make sure a map is always initialized 36f6f987a <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13810">#13810</a></li>
<li>tpl/tplimpl: Copy embedded HTML table render hook to each output
format 18a9ca7d7 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13351">#13351</a></li>
<li>tpl/tplimpl: Change resources.GetRemote errors to suppressible
warnings b6c8dfa9d <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13803">#13803</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/98ba786f2f5dca0866f47ab79f394370bcb77d2f"><code>98ba786</code></a>
releaser: Bump versions for release of 0.148.1</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/6f42cfbc9b80a6e1639e3c0661f530e84590fa6a"><code>6f42cfb</code></a>
Fix assignment to entry in nil map</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/a84beee429d3b0297b1a97b191d641154f7c2e81"><code>a84beee</code></a>
deps: Downgrade github.com/niklasfasching/go-org v1.9.0 =&gt;
v1.8.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/65893efd8d1f52d50bd589d84a4c9031d96e7d8d"><code>65893ef</code></a>
releaser: Prepare repository for 0.149.0-DEV</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/c0d9bebacc6bf42a91a74d8bb0de7bc775c8e573"><code>c0d9beb</code></a>
releaser: Bump versions for release of 0.148.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/3e2f1cdfdbeb8a1470b216bfb28b78ab14b8c0f4"><code>3e2f1cd</code></a>
Add Ancestors (plural) method to GitInfo, rename Ancestor field to
Parent</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/0a5b870281a47d1045443c081968fc96f8d5e06f"><code>0a5b870</code></a>
build(deps): bump github.com/evanw/esbuild from 0.25.5 to 0.25.6</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/bba6996e15570e542193a043054de3b00cd96e18"><code>bba6996</code></a>
Allow creating home pages from content adapters</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/94e2c276a8592488eedc07e259147425ddf91c2b"><code>94e2c27</code></a>
build(deps): bump github.com/olekukonko/tablewriter from 1.0.7 to
1.0.8</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/90d397b14299b1cb03a6b3a3e9e1ce6dfc36cdad"><code>90d397b</code></a>
Remove the internal GitInfo type and make Page.GitInf() return a
pointer</li>
<li>Additional commits viewable in <a
href="https://github.com/gohugoio/hugo/compare/v0.147.0...v0.148.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.147.0&new-version=0.148.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 09:27:09 +00:00
Susana Ferreira f1eec2d267 fix(cli): scope context per subtest to fix flake test in prebuilt workspace delete (#18872)
## Description

This PR fixes a flaky test in
`TestDelete/Prebuilt_workspace_delete_permissions`:
https://github.com/coder/internal/issues/764

Previously, all subtests used the same context created at the top level.
Since the subtests run in parallel, they could run for too long and
cause the shared context to expire. This sometimes led to context
deadline exceeded errors, especially during the `testutil.Eventually`
check for running prebuilt workspaces.

The fix is to create a fresh context per subtest, ensuring they are
isolated and not prematurely cancelled due to other subtests' durations.
2025-07-15 10:21:11 +01:00
dependabot[bot] c643214b47 chore: bump google.golang.org/api from 0.231.0 to 0.241.0 (#18849)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.231.0 to 0.241.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.241.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.240.0...v0.241.0">0.241.0</a>
(2025-07-09)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3219">#3219</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/987e4abe1e113ac37f42f378bb05eac44c65e448">987e4ab</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3221">#3221</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7e31abbe694798ee20645793367f57ecf9f3740b">7e31abb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3222">#3222</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3346ebb0706a0fce703f5ada0182522b7a1d6dc8">3346ebb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3223">#3223</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f94c92cafe32e768ec48307db9924d8b746b3d25">f94c92c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3224">#3224</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3f1f756570d556a0e26f7594bcc3353eabc0a5ea">3f1f756</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3225">#3225</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8799cd8e4cadab9c6dad2c63a8c199cd1e0e3f2e">8799cd8</a>)</li>
</ul>
<h2>v0.240.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.239.0...v0.240.0">0.240.0</a>
(2025-07-02)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3210">#3210</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c0efdb50d507feb4340e7b1ad2be61eaa9960ba7">c0efdb5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3212">#3212</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c699558a9c2b574bdda5d9d697c7fadaeb65b3c1">c699558</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3214">#3214</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7b435988338692bdfcae2c174f41a8bb71c4abb1">7b43598</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3215">#3215</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/22e2c3806882276b2437288c2ebf84204cb7c077">22e2c38</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3216">#3216</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e8c35043996ce513a5cd829da72a79c1c46206ad">e8c3504</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3217">#3217</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/604190c29e745ca177927b465d3855008b1e1902">604190c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3218">#3218</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0a46af7bb3db597ef1d459191b3bc55345c61692">0a46af7</a>)</li>
</ul>
<h2>v0.239.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.238.0...v0.239.0">0.239.0</a>
(2025-06-25)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3199">#3199</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2bdd042ac9a9b4115ea14239f4ffc6d947b3ead8">2bdd042</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3201">#3201</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8eff56f43f278eb7072da807eb492969d9b6ec00">8eff56f</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3202">#3202</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f7c299e9c00588b68e02e6fa464ab92a7d7f70d4">f7c299e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3203">#3203</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/459c5a8db5a2262fa9d4fd5031f8bd81569fe751">459c5a8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3205">#3205</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ca610d5390bb286d5f815ee8d296a7cdf7dd4baa">ca610d5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3206">#3206</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/98b739881e1fd09b2f2b7c0122b675fb02625b7c">98b7398</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3207">#3207</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/71fe287d9c34180ed81ede37531b37b23a7c11dc">71fe287</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3209">#3209</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/27d1aa43d1fb592c0273a5617af68d397d1c9ac7">27d1aa4</a>)</li>
</ul>
<h2>v0.238.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.237.0...v0.238.0">0.238.0</a>
(2025-06-17)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3192">#3192</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3ad311895f95da734942ad4bc527f32412d1ad4f">3ad3118</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3196">#3196</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8cb55ce5040dbcc0de4436f1d47de876bebf607a">8cb55ce</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.240.0...v0.241.0">0.241.0</a>
(2025-07-09)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3219">#3219</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/987e4abe1e113ac37f42f378bb05eac44c65e448">987e4ab</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3221">#3221</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7e31abbe694798ee20645793367f57ecf9f3740b">7e31abb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3222">#3222</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3346ebb0706a0fce703f5ada0182522b7a1d6dc8">3346ebb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3223">#3223</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f94c92cafe32e768ec48307db9924d8b746b3d25">f94c92c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3224">#3224</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3f1f756570d556a0e26f7594bcc3353eabc0a5ea">3f1f756</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3225">#3225</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8799cd8e4cadab9c6dad2c63a8c199cd1e0e3f2e">8799cd8</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.239.0...v0.240.0">0.240.0</a>
(2025-07-02)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3210">#3210</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c0efdb50d507feb4340e7b1ad2be61eaa9960ba7">c0efdb5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3212">#3212</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c699558a9c2b574bdda5d9d697c7fadaeb65b3c1">c699558</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3214">#3214</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7b435988338692bdfcae2c174f41a8bb71c4abb1">7b43598</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3215">#3215</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/22e2c3806882276b2437288c2ebf84204cb7c077">22e2c38</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3216">#3216</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e8c35043996ce513a5cd829da72a79c1c46206ad">e8c3504</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3217">#3217</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/604190c29e745ca177927b465d3855008b1e1902">604190c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3218">#3218</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0a46af7bb3db597ef1d459191b3bc55345c61692">0a46af7</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.238.0...v0.239.0">0.239.0</a>
(2025-06-25)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3199">#3199</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2bdd042ac9a9b4115ea14239f4ffc6d947b3ead8">2bdd042</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3201">#3201</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8eff56f43f278eb7072da807eb492969d9b6ec00">8eff56f</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3202">#3202</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f7c299e9c00588b68e02e6fa464ab92a7d7f70d4">f7c299e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3203">#3203</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/459c5a8db5a2262fa9d4fd5031f8bd81569fe751">459c5a8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3205">#3205</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ca610d5390bb286d5f815ee8d296a7cdf7dd4baa">ca610d5</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3206">#3206</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/98b739881e1fd09b2f2b7c0122b675fb02625b7c">98b7398</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3207">#3207</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/71fe287d9c34180ed81ede37531b37b23a7c11dc">71fe287</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3209">#3209</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/27d1aa43d1fb592c0273a5617af68d397d1c9ac7">27d1aa4</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.237.0...v0.238.0">0.238.0</a>
(2025-06-17)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3192">#3192</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3ad311895f95da734942ad4bc527f32412d1ad4f">3ad3118</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3196">#3196</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8cb55ce5040dbcc0de4436f1d47de876bebf607a">8cb55ce</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3197">#3197</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/98994c400492542ca9f7d89e608dccbdb89caa11">98994c4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3198">#3198</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/582459736e746998eecb609b0d23ddce778d5d8c">5824597</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.236.0...v0.237.0">0.237.0</a>
(2025-06-12)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f942bc9f863a4851f9d67e0aea8ce7fcafb635e2"><code>f942bc9</code></a>
chore(main): release 0.241.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3220">#3220</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/8799cd8e4cadab9c6dad2c63a8c199cd1e0e3f2e"><code>8799cd8</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3225">#3225</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/3f1f756570d556a0e26f7594bcc3353eabc0a5ea"><code>3f1f756</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3224">#3224</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f94c92cafe32e768ec48307db9924d8b746b3d25"><code>f94c92c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3223">#3223</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/3346ebb0706a0fce703f5ada0182522b7a1d6dc8"><code>3346ebb</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3222">#3222</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/7e31abbe694798ee20645793367f57ecf9f3740b"><code>7e31abb</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3221">#3221</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/987e4abe1e113ac37f42f378bb05eac44c65e448"><code>987e4ab</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3219">#3219</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/9f7dd0d6600833ed29eb7dcefe7e9ad1f203ba36"><code>9f7dd0d</code></a>
chore(main): release 0.240.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3211">#3211</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/0a46af7bb3db597ef1d459191b3bc55345c61692"><code>0a46af7</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3218">#3218</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/604190c29e745ca177927b465d3855008b1e1902"><code>604190c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3217">#3217</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.231.0...v0.241.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.231.0&new-version=0.241.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 09:16:22 +00:00
dependabot[bot] bfdacae286 chore: bump the x group across 1 directory with 9 updates (#18851)
Bumps the x group with 4 updates in the / directory:
[golang.org/x/crypto](https://github.com/golang/crypto),
[golang.org/x/mod](https://github.com/golang/mod),
[golang.org/x/net](https://github.com/golang/net) and
[golang.org/x/oauth2](https://github.com/golang/oauth2).

Updates `golang.org/x/crypto` from 0.39.0 to 0.40.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/crypto/commit/459a9db11b9c43bb1d61722bfd371751d6de05c9"><code>459a9db</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/crypto/commit/74e709ad8a8068445173aa5f3e8d7c89caf510c3"><code>74e709a</code></a>
ssh: add AlgorithmNegotiationError</li>
<li><a
href="https://github.com/golang/crypto/commit/b3790b8d914304c8187dc2c86800101c329d77cd"><code>b3790b8</code></a>
acme: fix TLSALPN01ChallengeCert for IP address identifiers</li>
<li><a
href="https://github.com/golang/crypto/commit/1dc4269656dd23b2c4e71c51b8af6bc2b63eecb7"><code>1dc4269</code></a>
acme: add Pebble integration testing</li>
<li><a
href="https://github.com/golang/crypto/commit/97bf78725562ce22e18036873215f2203b3e0e1e"><code>97bf787</code></a>
blake2b: implement hash.XOF</li>
<li><a
href="https://github.com/golang/crypto/commit/952517d181d424f6c77f7460bf728205cb048411"><code>952517d</code></a>
x509roots/fallback: update bundle</li>
<li><a
href="https://github.com/golang/crypto/commit/c6fce028266aa1271946a7dfde94cd71cf077d5e"><code>c6fce02</code></a>
ssh: refuse to parse certificates that use a certificate as signing
key</li>
<li><a
href="https://github.com/golang/crypto/commit/0ae49b8145643036e0e6c266cf4edc0f543ea9e0"><code>0ae49b8</code></a>
ssh: reject certificate keys used as signature keys for SSH certs</li>
<li>See full diff in <a
href="https://github.com/golang/crypto/compare/v0.39.0...v0.40.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/mod` from 0.25.0 to 0.26.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/mod/commit/ea04085b103002db3b0d02d6ebbd97a0ffa29202"><code>ea04085</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/mod/compare/v0.25.0...v0.26.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/net` from 0.41.0 to 0.42.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/76358aa57e0c5fa267fe08795631a173d0cec833"><code>76358aa</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/net/compare/v0.41.0...v0.42.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/oauth2` from 0.29.0 to 0.30.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/oauth2/commit/cf1431934151b3a93e0b3286eb6798ca08ea3770"><code>cf14319</code></a>
oauth2: fix expiration time window check</li>
<li><a
href="https://github.com/golang/oauth2/commit/32d34ef364e670a650fe59267b92301ff7ed08f1"><code>32d34ef</code></a>
internal: include clientID in auth style cache key</li>
<li><a
href="https://github.com/golang/oauth2/commit/2d34e3091be3f4b4700842fb663dad98a10ddfb6"><code>2d34e30</code></a>
oauth2: replace a magic number with AuthStyleUnknown</li>
<li><a
href="https://github.com/golang/oauth2/commit/696f7b31289a98558822be146698b7834e477e63"><code>696f7b3</code></a>
all: modernize with doc links and any</li>
<li><a
href="https://github.com/golang/oauth2/commit/471209bbe29fc1e3bf8d4ca3ca89d67f8817d521"><code>471209b</code></a>
oauth2: drop dependency on go-cmp</li>
<li><a
href="https://github.com/golang/oauth2/commit/6968da209b8fd816452d22ad1b4faca197a5b974"><code>6968da2</code></a>
oauth2: sync Token.ExpiresIn from internal Token</li>
<li><a
href="https://github.com/golang/oauth2/commit/d2c4e0a6256426212864554628e234ebe6005347"><code>d2c4e0a</code></a>
oauth2: context instead of golang.org/x/net/context in doc</li>
<li><a
href="https://github.com/golang/oauth2/commit/883dc3c9d87d538c301ebff2ccdcc8b6a0b92890"><code>883dc3c</code></a>
endpoints: add various endpoints from stale CLs</li>
<li><a
href="https://github.com/golang/oauth2/commit/1c06e8705ef848db9c7553a78b630b9b9f138a87"><code>1c06e87</code></a>
all: make use of oauth.Token.ExpiresIn</li>
<li>See full diff in <a
href="https://github.com/golang/oauth2/compare/v0.29.0...v0.30.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sync` from 0.15.0 to 0.16.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sync/commit/7fad2c9213e0821bd78435a9c106806f2fc383f1"><code>7fad2c9</code></a>
errgroup: revert propagation of panics</li>
<li>See full diff in <a
href="https://github.com/golang/sync/compare/v0.15.0...v0.16.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sys` from 0.33.0 to 0.34.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sys/commit/751c3c6ac2a644645976e8e7f3db0b75c87d32c6"><code>751c3c6</code></a>
unix: add missing NFT_PAYLOAD_* consts on linux</li>
<li><a
href="https://github.com/golang/sys/commit/0c740cc0f8b112e19e255caefb622a53779c0481"><code>0c740cc</code></a>
unix: update Go to 1.24.3</li>
<li><a
href="https://github.com/golang/sys/commit/d62d31c6166a69390ea553149bf921e215216610"><code>d62d31c</code></a>
unix: update Linux constants and types to v6.14</li>
<li>See full diff in <a
href="https://github.com/golang/sys/compare/v0.33.0...v0.34.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/term` from 0.32.0 to 0.33.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/term/commit/30da5dd58fc835bf6704fa7464ac3d23202d8685"><code>30da5dd</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/term/compare/v0.32.0...v0.33.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/text` from 0.26.0 to 0.27.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/text/commit/b6d26456dd3ff554a56f10b1e388db0f8ca862d1"><code>b6d2645</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/text/compare/v0.26.0...v0.27.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.33.0 to 0.34.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/578c1213983a83e6411536ddf6bbf3a1faf97aea"><code>578c121</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/f114dcf97d4f35feb86030bb9e1c5c8fc6fd8942"><code>f114dcf</code></a>
gopls/internal/protocol: refine DocumentURI Clean method and its
usages</li>
<li><a
href="https://github.com/golang/tools/commit/82ee0fd1228b85b95daadd1901e83a9200d661e6"><code>82ee0fd</code></a>
internal/mcp: change paginateList to a generic helper</li>
<li><a
href="https://github.com/golang/tools/commit/64bfecc32e163d2684a85b73472919e02da50180"><code>64bfecc</code></a>
gopls/internal/golang: fix extract bug with anon functions</li>
<li><a
href="https://github.com/golang/tools/commit/4546fbd0b20190ede82382b293ae4440923ecaea"><code>4546fbd</code></a>
internal/mcp: unify json tag parsing</li>
<li><a
href="https://github.com/golang/tools/commit/82473ce934847055bec96f8a96e4d1fc38ecefa9"><code>82473ce</code></a>
gopls/doc/release: tweak v0.19</li>
<li><a
href="https://github.com/golang/tools/commit/f3c581ff0cb8b4b87129f04094005c4b0f962bf9"><code>f3c581f</code></a>
gopls/internal/protocol: add DocumentURI.Base accessor</li>
<li><a
href="https://github.com/golang/tools/commit/d9bacab54dfed6ac3f871f422bb0b2cb5eb5c428"><code>d9bacab</code></a>
gopls/internal/server: improve &quot;editing generated file&quot;
warning</li>
<li><a
href="https://github.com/golang/tools/commit/1afeefa8150f171e0a8f0948015513b31d59d2f3"><code>1afeefa</code></a>
internal/mcp: unexport FileResourceHandler</li>
<li><a
href="https://github.com/golang/tools/commit/33d59880f345d37e4262f5f8e504ddfb6818266b"><code>33d5988</code></a>
gopls/internal/server: Organize Imports of generated files</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.33.0...v0.34.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ethan Dickson <ethan@coder.com>
2025-07-15 09:04:20 +00:00
Danielle Maywood bd3d0ea482 fix(agent/agentcontainers): fix TestAPI/IgnoreCustomization flake (#18863) 2025-07-15 10:01:04 +01:00
blink-so[bot] 87e5365f79 docs: add cloud-specific database instance recommendations (#18862)
Enhances the Performance efficiency section in the validated
architectures documentation with specific instance type recommendations
for AWS, Azure, and GCP.

**Changes:**
- Added recommended instance types for small, medium, and large
deployments across all three major cloud providers
- Included guidance on avoiding burstable instances (t-family, B-series)
for production workloads
- Added note about CPU baseline limitations for burstable instances

This addresses customer questions about appropriate database instance
sizing.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: dannykopping <373762+dannykopping@users.noreply.github.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
2025-07-15 09:53:34 +01:00
Ethan de4a270316 docs: improve audit logs copy (#18807)
Many of the issues with the copy on #18739 were because I blindly copied from the audit logs page. This PR adds Edward's copy suggestions from that PR to the audit logs page.

[preview](https://coder.com/docs/@ethan-improve-audit-logs-copy/admin/security/audit-logs)

I've included this in the PR stack, as the previous PR modifies the auto-gen docs for audit logs.
2025-07-15 16:14:30 +10:00
Ethan ef807e41ce chore: mark workspace apps and workspace agents as unaudited (#18761)
The main goal of this PR is to remove Workspace Apps and Workspace Agents from the auto-generated audit log documentation, that incorrectly claims they are audited resources (no longer true with the addition of the connection log).

Though I believe we haven't touched any codepaths for returning audit logs, this PR also adds a test that ensures we continue to return *existing* connection, disconnect and open events correctly from the audit log API.
2025-07-15 16:08:42 +10:00
Ethan 6b17aee425 docs: add connection logs page (#18739)
This is the final PR for moving connection logs out of the audit log and into the new connection logs page.

This PR documents the feature.

[preview](https://coder.com/docs/@ethan%2Fdocs-add-connection-logs/admin/monitoring/connection-logs)
2025-07-15 15:52:41 +10:00
Ethan f42de9fe12 chore!: delete old connection events from audit log (#18735)
### Breaking change (changelog note):
>With new connection events appearing in the Connection Log, connection events older than 90 days will now be deleted from the Audit Log. If you require this legacy data, we recommend querying it from the REST API or making a backup of the database/these events before upgrading your Coder deployment. Please see the PR for details on what exactly will be deleted. 
Of note is that there are currently no plans to delete connection events from the Connection Log.


### Context

This is the fifth PR for moving connection events out of the audit log.

In previous PRs:
- **New** connection logs have been routed to the `connection_logs` table. They will *not* appear in the audit log.
- These new connection logs are served from the new `/api/v2/connectionlog` endpoint.

In this PR:
- We'll now clean existing connection events out of the audit log, if they are older than 90 days, We do this in batches of 1000, every 10 minutes.

The criteria for deletion is simple:
```
WHERE
(
     action = 'connect'
     OR action = 'disconnect'
     OR action = 'open'
     OR action = 'close'
)
AND "time" < @before_time::timestamp with time zone
```
where `@before_time` is currently configured to 90 days in the past.


Future PRs:
- Write documentation for the endpoint / feature
2025-07-15 15:45:36 +10:00
Ethan b5260d5699 feat(site): add connection log page (#18708)
This is the fourth PR for moving connection events out of the audit log.

This PR adds `/connectionlog` to the frontend. This page is identical in structure to the audit log, but with different filters and contents.

The connection log lists sessions, and the time they start. If we support tracking the end time of a session, and we've received a disconnect event for that session, the end timestamp is also included.
       
Demo:


https://github.com/user-attachments/assets/e0fff799-0ed6-45f7-a8c0-237839659ef9



<img width="346" alt="image" src="https://github.com/user-attachments/assets/6de29945-55c2-4fe5-9a4f-d42e476ded25" />
<img width="184" alt="image" src="https://github.com/user-attachments/assets/e83234bc-4d9d-4f71-b668-9256a600659c" />


Since the styling is identical to that of the audit log, I've continued to use MUI table components. When the audit log is migrated off MUI/restyled, this table can be too, relatively easily.

Future PRs:
- Write a query to delete old events from the audit log, call it from dbpurge.
- Write documentation for the endpoint / feature
2025-07-15 15:11:31 +10:00
Cian Johnston 1ee6b8d5b1 chore: fix flake in TestWorkspaceBuildsProvisionerState (#18839)
Fixes https://github.com/coder/internal/issues/761
2025-07-15 15:07:13 +10:00
Ethan 7c077d39c5 chore: populate connectionlog count using a separate query (#18629)
This is the third PR for moving connection events out of the audit log.

This PR populates `count` on `ConnectionLogResponse` using a separate query, to preemptively mitigate the issue described in #17689. It's structurally identical to a portion of https://github.com/coder/coder/pull/18600, but for the connection log instead of the audit log.
       
Future PRs:
- Implement a table in the Web UI for viewing connection logs.
- Write a query to delete old events from the audit log, call it from dbpurge.
- Write documentation for the endpoint / feature
2025-07-15 15:03:30 +10:00
Ethan 7a339a1ffe feat: add connectionlogs API (#18628)
This is the second PR for moving connection events out of the audit log.

This PR:
- Adds the `/api/v2/connectionlog` endpoint
- Adds filtering for `GetAuthorizedConnectionLogsOffset` and thus the endpoint. 
There's quite a few, but I was aiming for feature parity with the audit log.
  1. `organization:<id|name>`
  2. `workspace_owner:<username>`
  3. `workspace_owner_email:<email>`
  4. `type:<ssh|vscode|jetbrains|reconnecting_pty|workspace_app|port_forwarding>`
  5. `username:<username>` 
     - Only includes web-based connection events (workspace apps, web port forwarding) as only those include user metadata.
  6. `user_email:<email>`
  7. `connected_after:<time>`
  8. `connected_before:<time>`
  9. `workspace_id:<id>`
  10. `connection_id:<id>`
      - If you have one snapshot of the connection log, and some sessions are ongoing in that snapshot, you could use this filter to check if they've been closed since.
  11. `status:<connected|disconnected>`
       - If `connected` only sessions with a null `close_time` are returned, if `disconnected`, only those with a non-null `close_time`. If filter is omitted, both are returned.
       
Future PRs:
- Populate `count` on `ConnectionLogResponse` using a seperate query (to preemptively mitigate the issue described in #17689)
- Implement a table in the Web UI for viewing connection logs.
- Write a query to delete old events from the audit log, call it from dbpurge.
- Write documentation for the endpoint / feature (including these filters)
2025-07-15 14:55:34 +10:00
Ethan 08e17a07fc chore!: route connection logs to new table (#18340)
### Breaking Change (changelog note):
> User connections to workspaces, and the opening of workspace apps or ports will no longer create entries in the audit log. Those events will now be included in the 'Connection Log'.
Please see the 'Connection Log' page in the dashboard, and the Connection Log [documentation](https://coder.com/docs/admin/monitoring/connection-logs) for details. Those with permission to view the Audit Log will also be able to view the Connection Log. The new Connection Log has the same licensing restrictions as the Audit Log, and requires a Premium Coder deployment.

### Context

This is the first PR of a few for moving connection events out of the audit log, and into a new database table and web UI page called the 'Connection Log'.

This PR:
- Creates the new table
- Adds and tests queries for inserting and reading, including reading with an RBAC filter.
- Implements the corresponding RBAC changes, such that anyone who can view the audit log can read from the table
- Implements, under the enterprise package, a `ConnectionLogger` abstraction to replace the `Auditor` abstraction for these logs. (No-op'd in AGPL, like the `Auditor`)
- Routes SSH connection and Workspace App events into the new `ConnectionLogger`
- Updates all existing tests to check the values of the `ConnectionLogger` instead of the `Auditor`.

Future PRs:
- Add filtering to the query
- Add an enterprise endpoint to query the new table
- Write a query to delete old events from the audit log, call it from dbpurge.
- Implement a table in the Web UI for viewing connection logs.


> [!NOTE]
> The PRs in this stack obviously won't be (completely) atomic. Whilst they'll each pass CI, the stack is designed to be merged all at once. I'm splitting them up for the sake of those reviewing, and so changes can be reviewed as early as possible.  Despite this, it's really hard to make this PR any smaller than it already is. I'll be keeping it in draft until it's actually ready to merge.
2025-07-15 14:36:06 +10:00
Danielle Maywood 43b0bb7f61 feat(site): use websocket connection for devcontainer updates (#18808)
Instead of polling every 10 seconds, we instead use a WebSocket
connection for more timely updates.
2025-07-14 21:35:35 +01:00
Edward Angert 7cf3263fbd docs: document issue with macos coder desktop behind vpn (#18855)
docs for https://github.com/coder/coder-desktop-macos/issues/201 and
https://github.com/coder/coder-desktop-windows/issues/147

> If the logged in Coder deployment requires a VPN to connect, Coder
Connect can't establish communication through the VPN,
> and will time out.


[preview](https://coder.com/docs/@201-desktop-mac-vpn/user-guides/desktop)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-07-14 12:33:48 -04:00
Spike Curtis 4980f18022 ci: remove retries/reruns (#18788)
Removes retries / reruns from our CI as they are masking flaky tests
that don't get fixed.

Also limits the Windows and macOS postgresql tests to the CLI and Agent
for now, since we don't officially support coderd on these platforms and
they are particularly flaky.
2025-07-14 17:40:33 +02:00
dependabot[bot] 2e34a1e404 chore: bump github.com/hashicorp/hcl/v2 from 2.23.0 to 2.24.0 (#18854)
Bumps [github.com/hashicorp/hcl/v2](https://github.com/hashicorp/hcl)
from 2.23.0 to 2.24.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/hcl/releases">github.com/hashicorp/hcl/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.24.0</h2>
<h3>Enhancements</h3>
<ul>
<li>Add support for decoding block and attribute source ranges when
using <code>gohcl</code>. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/703">#703</a>)</li>
<li>hclsyntax: Detect and reject invalid nested splat result. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/724">#724</a>)</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li>Correct handling of unknown objects in Index function. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/763">#763</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/hcl/blob/main/CHANGELOG.md">github.com/hashicorp/hcl/v2's
changelog</a>.</em></p>
<blockquote>
<h2>v2.24.0 (July 7, 2025)</h2>
<h3>Enhancements</h3>
<ul>
<li>Add support for decoding block and attribute source ranges when
using <code>gohcl</code>. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/703">#703</a>)</li>
<li>hclsyntax: Detect and reject invalid nested splat result. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/724">#724</a>)</li>
</ul>
<h3>Bugs Fixed</h3>
<ul>
<li>Correct handling of unknown objects in Index function. (<a
href="https://redirect.github.com/hashicorp/hcl/pull/763">#763</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hashicorp/hcl/commit/6b5068090eef06b1f127f61529db5ba0be7ed343"><code>6b50680</code></a>
Update CHANGELOG.md (<a
href="https://redirect.github.com/hashicorp/hcl/issues/764">#764</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/77ef278eaae165adbe82d39a1b8e7707ad7d501a"><code>77ef278</code></a>
ops: handle unknown objects correctly when looking up by index (<a
href="https://redirect.github.com/hashicorp/hcl/issues/763">#763</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/dfa124f3c93ff1764fda03702a7a9aa8c9db48d8"><code>dfa124f</code></a>
[Compliance] - PR Template Changes Required (<a
href="https://redirect.github.com/hashicorp/hcl/issues/761">#761</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/6b5c4c2bac7140d1f676d294e99ff5d696b8fbf9"><code>6b5c4c2</code></a>
fix errors thrown by errcheck linter (<a
href="https://redirect.github.com/hashicorp/hcl/issues/755">#755</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/61bd79dedd738d45edd16f6eb0ca405d0484a7b7"><code>61bd79d</code></a>
suppress and fix lint errors by unused (<a
href="https://redirect.github.com/hashicorp/hcl/issues/754">#754</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/8b8cb9c9fa85c1f91083ee866c0ca3d1b910404b"><code>8b8cb9c</code></a>
build(deps): bump golangci/golangci-lint-action</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/aa4e44796409371ce1f3d452c81b334d7bbdbfcc"><code>aa4e447</code></a>
build(deps): bump actions/setup-go</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/72443636fe97ebb2e1ce1aa2bfa87dd426d8a88f"><code>7244363</code></a>
Update go-cty to latest (<a
href="https://redirect.github.com/hashicorp/hcl/issues/749">#749</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/b4e27ae471da2b5a30329239713f7f3ed630c2dc"><code>b4e27ae</code></a>
test_suite: refactor schema validation of diagnostic file range, pos (<a
href="https://redirect.github.com/hashicorp/hcl/issues/750">#750</a>)</li>
<li><a
href="https://github.com/hashicorp/hcl/commit/314d2366eadcbd243f2988a535587d7fea94442e"><code>314d236</code></a>
fix staticcheck lint errors</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/hcl/compare/v2.23.0...v2.24.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/hashicorp/hcl/v2&package-manager=go_modules&previous-version=2.23.0&new-version=2.24.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 14:57:09 +00:00
dependabot[bot] b56c6a1d2d ci: bump the github-actions group with 3 updates (#18853)
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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 14:53:45 +00:00
dependabot[bot] b2cf55fd71 chore: bump github.com/mark3labs/mcp-go from 0.32.0 to 0.33.0 (#18850)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.32.0 to 0.33.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.33.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(server): Fix the logic of the WithStateLess function by <a
href="https://github.com/dcsunny"><code>@​dcsunny</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/387">mark3labs/mcp-go#387</a></li>
<li>fix(srv/stream): correct handleGet status code to 200 by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/379">mark3labs/mcp-go#379</a></li>
<li>Add an example of an in process client by <a
href="https://github.com/edwardcqian"><code>@​edwardcqian</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/371">mark3labs/mcp-go#371</a></li>
<li>feat: add type-safe array items helper functions by <a
href="https://github.com/davidleitw"><code>@​davidleitw</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/396">mark3labs/mcp-go#396</a></li>
<li>Issue 400 fix by <a
href="https://github.com/ozzyozbourne"><code>@​ozzyozbourne</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/406">mark3labs/mcp-go#406</a></li>
<li>fix(client/transport/stream): check for nil pointer by <a
href="https://github.com/dinistavares"><code>@​dinistavares</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/404">mark3labs/mcp-go#404</a></li>
<li>feat: add ResourceLink type and parsing support by <a
href="https://github.com/chenmingyong0423"><code>@​chenmingyong0423</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/407">mark3labs/mcp-go#407</a></li>
<li>Fix docs by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/430">mark3labs/mcp-go#430</a></li>
<li>feat: client-side streamable-http transport supports continuously
listening by <a
href="https://github.com/leavez"><code>@​leavez</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/317">mark3labs/mcp-go#317</a></li>
<li>feature: add support ResourceTemplates to mcptest package by <a
href="https://github.com/Slach"><code>@​Slach</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/449">mark3labs/mcp-go#449</a></li>
<li>Add support for MCP host session management by <a
href="https://github.com/C0deKing"><code>@​C0deKing</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/466">mark3labs/mcp-go#466</a></li>
<li>docs: Fix unused import in readme example by <a
href="https://github.com/Squiry"><code>@​Squiry</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/469">mark3labs/mcp-go#469</a></li>
<li>Support creating an <code>Stdio</code> client with options by <a
href="https://github.com/peteski22"><code>@​peteski22</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/457">mark3labs/mcp-go#457</a></li>
<li>Implement sampling in Stdio by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/461">mark3labs/mcp-go#461</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/dcsunny"><code>@​dcsunny</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/387">mark3labs/mcp-go#387</a></li>
<li><a
href="https://github.com/edwardcqian"><code>@​edwardcqian</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/371">mark3labs/mcp-go#371</a></li>
<li><a
href="https://github.com/davidleitw"><code>@​davidleitw</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/396">mark3labs/mcp-go#396</a></li>
<li><a
href="https://github.com/ozzyozbourne"><code>@​ozzyozbourne</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/406">mark3labs/mcp-go#406</a></li>
<li><a
href="https://github.com/dinistavares"><code>@​dinistavares</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/404">mark3labs/mcp-go#404</a></li>
<li><a
href="https://github.com/chenmingyong0423"><code>@​chenmingyong0423</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/407">mark3labs/mcp-go#407</a></li>
<li><a href="https://github.com/Slach"><code>@​Slach</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/449">mark3labs/mcp-go#449</a></li>
<li><a href="https://github.com/C0deKing"><code>@​C0deKing</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/466">mark3labs/mcp-go#466</a></li>
<li><a href="https://github.com/Squiry"><code>@​Squiry</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/469">mark3labs/mcp-go#469</a></li>
<li><a href="https://github.com/peteski22"><code>@​peteski22</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/457">mark3labs/mcp-go#457</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.32.0...v0.33.0">https://github.com/mark3labs/mcp-go/compare/v0.32.0...v0.33.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6a54215f5b4cdeb1ab9ed602bcf87ebb0222e691"><code>6a54215</code></a>
Implement sampling in Stdio (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/461">#461</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/656a7b4cab77cb913b5f9613c547859596499d6a"><code>656a7b4</code></a>
Support creating an <code>Stdio</code> client with options (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/457">#457</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/01e802f3854d9591f791a39fc148e57768681267"><code>01e802f</code></a>
Fix unused import in readme example (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/469">#469</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d0fa06e9209195f89bb22b3c952ec038f7d1905a"><code>d0fa06e</code></a>
Add support for MCP host session management (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/466">#466</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/251da138d6b5ade77bb2155e0aa294843cb16337"><code>251da13</code></a>
feature: add support ResourceTemplates to mcptest package (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/449">#449</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/1eddde7bd69b760f745a1b4064969cffcf97e935"><code>1eddde7</code></a>
feat: client-side streamable-http transport supports continuously
listening ...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8f5b048218f6d044c3322f16b8cb0b08e10bf5d0"><code>8f5b048</code></a>
Fix docs (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/430">#430</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/0fdb1974c5728a74ae061e650d25bf90c5c43437"><code>0fdb197</code></a>
feat: add ResourceLink type and parsing support (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/407">#407</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d807ae7b7ac1c2b3c24347d1d602506b9cdcd998"><code>d807ae7</code></a>
fix(client/transport/stream): check for nil pointer (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/404">#404</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/93176e8a70cffc2886bd446fe8464badcd5035da"><code>93176e8</code></a>
fixed nil error (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/406">#406</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.32.0...v0.33.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.32.0&new-version=0.33.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-14 14:31:57 +00:00
Edward Angert 78af5e0f53 docs: add note about incompatible immutable parameters behavior to parameters doc (#18814)
closes #18370 

workspace creation page checks for

1. required parameters
2. incompatible immutable parameters

and if there's an issue, disables the **Create workspace** button until
it's resolved


[preview](https://coder.com/docs/@18370-immutable-params/admin/templates/extending-templates/parameters#mutability)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-14 11:43:43 +00:00
Atif Ali 3126f21d87 revert: "docs: add coder registry link to docs sidebar" (#18837) 2025-07-11 16:09:23 +00:00
Atif Ali c25e666d12 docs: add coder registry link to docs sidebar (#18585)
I am not sure if this works

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-07-11 08:12:09 -04:00
Edward Angert 040fa30aba docs: update screenshots with new logo (#18830)
stage 1 of many

- new login screenshot
- remove unused platforms screenshots
- update [screenshots
doc](https://coder.com/docs/@2025-screenshots/about/screenshots)
- update [quickstart
doc](https://coder.com/docs/@2025-screenshots/tutorials/quickstart)

closes #18813 

<details><summary>list of screenshots with old logo or that are
outdated</summary>

|docs/images/|notes?|
|--|--|
|logo-black.png| |
|jupyter-notebook.png| |
|platforms/docker/login.png| |
|platforms/docker/create-workspace.png| |
|platforms/docker/ides.png| |
|platforms/gcp/marketplace.png| |
|platforms/gcp/start.png| |
|platforms/aws/aws-linux.png| |
|platforms/aws/marketplace.png| |
|platforms/kubernetes/template-variables.png| |
|platforms/kubernetes/region-picker.png| |
|platforms/kubernetes/starter-template.png| |
|install/windows-installer.png| |
|install/homebrew.png| |
|screenshots/create-template.png| |
|screenshots/login.png| |
|screenshots/starter_templates.png| |
|screenshots/settings.png| |
|screenshots/audit.png| |
|screenshots/workspace-running-with-topbar.png| |
|screenshots/workspaces_listing.png| |
|screenshots/templates_listing.png| |
|screenshots/welcome-create-admin-user.png| |
|screenshots/workspace_launch.png| |
|screenshots/templates_insights.png| |
|screenshots/healthcheck.png| |
|screenshots/terraform.png| |
|deploy-pr-manually.png| |
|workspace-update.png| |
|custom-app.png| |
|code-server.png| |
|networking/annotatedports.png| |
|networking/portsharingmax.png| |
|networking/portforwarddashboard.png| |
|networking/listeningports.png| |
|agent-metadata.png| |
|jupyter.png| |
|admin/service-banner-maintenance.png| |
|admin/provisioner-tags.png| |
|admin/github-app-register.png| |
|admin/licenses/licenses-screen.png| |
|admin/licenses/licenses-nolicense.png| |
|admin/licenses/add-license-ui.png| |
|admin/service-banner-config.png| |
|admin/group-allowlist.png| |
|admin/networking/workspace-proxies/ws-proxy-picker.png| |
|admin/setup/appearance/application-name-logo-url.png| |
|admin/setup/appearance/announcement_banner_settings.png| |
|admin/setup/appearance/support-links.png| |
|admin/setup/appearance/service-banner-secret.png| |
|admin/quota-buildlog.png| |
|admin/integrations/kube-region-picker.png| |
|admin/integrations/coder-logstream-kube-logs-wrong-image.png| |
|admin/integrations/coder-logstream-kube-logs-pod-crashed.png| |
|admin/integrations/coder-logstream-kube-logs-normal.png| |
|admin/integrations/coder-logstream-kube-logs-quota-exceeded.png| |
|admin/git-auth-template.png| |
|admin/github-app-install.png| |
|admin/users/organizations/role-sync.png| |
|admin/users/organizations/group-sync-empty.png| |
|admin/users/organizations/workspace-list.png| |
|admin/users/organizations/new-organization.png| |
|admin/users/organizations/role-sync-empty.png| |
|admin/users/organizations/template-org-picker.png| |
|admin/users/organizations/organization-members.png| |
|admin/users/organizations/org-dropdown-create.png| |
|admin/users/organizations/default-organization-settings.png| |
|admin/users/organizations/group-sync.png| |
|admin/users/organizations/idp-org-sync.png| |
|admin/users/organizations/admin-settings-orgs.png| |
|admin/users/organizations/custom-roles.png| |
|admin/users/quotas/quota-groups.png| |
|admin/users/create-token.png| |
|admin/users/headless-user.png| |
|admin/provisioners/provisioner-jobs.png| |
|admin/github-app-permissions.png| |
|admin/templates/coder-apps-ui.png| |
|admin/templates/starter-templates.png| |
|admin/templates/create-template.png| |
|admin/templates/schedule/template-schedule-settings.png| |
|admin/templates/schedule/user-quiet-hours.png| |
|admin/templates/coder-metadata-ui.png| |
|admin/templates/duplicate-menu.png| |
|admin/templates/agent-metadata-ui.png| |
|admin/templates/troubleshooting/workspace-build-timings-ui.png| |
|admin/templates/duplicate-page.png| |
|admin/templates/new-duplicate-template.png| |
|admin/templates/import-template.png| |

|admin/templates/extend-templates/prebuilt/replacement-notification.png|
|
|admin/templates/extend-templates/prebuilt/prebuilt-workspaces.png| |

|admin/templates/extend-templates/dyn-params/dynamic-params-compare.png|
|

|admin/templates/extend-templates/dyn-params/enable-dynamic-parameters.png|
|
|admin/templates/extend-templates/template-preset-dropdown.png| |
|admin/monitoring/health-check.png| |
|admin/monitoring/logstream-kube.png| |
|admin/monitoring/notifications/user-notification-preferences.png| |
|admin/monitoring/notifications/notification-admin-prefs.png| |
|admin/workspace-proxy-picker.png| |
|admin/admin-settings-general.png| |
|admin/deployment-id-copy-clipboard.png| |
|icons-gallery.png| |
|start/setup-page.png| |
|start/workspace-schedule-settings.png| |
|start/build-template.png| |
|start/starter-templates.png| |
|start/create-template.png| |
|start/create-workspace.png| |
|start/template-preview.png| |
|start/blank-workspaces.png| |
|start/template-source-code.png| |
|start/first-template.png| |
|start/workspace-ready.png| |
|start/template-edit-source-code.png| |
|start/template-publish.png| |
|start/starter-templates-annotated.png| |
|display-apps.png| |
|workspace-automatic-updates.png| |
|workspaces/autostop.png| |
|workspaces/autostart.png| |
|create-workspace-from-templates-ui.png| |
|ide-row.png| |
|editors.png| |
|delete-template.png| |
|logo-white.png| |
|template-rbac.png| |
|coderapp-port-forward.png| |
|user-guides/terminal-access.png| |
|user-guides/workspace-bulk-actions.png| |
|user-guides/devcontainers/devcontainer-agent-ports.png| |
|user-guides/devcontainers/devcontainer-web-terminal.png| |
|user-guides/create-workspace-ui.png| |
|user-guides/workspace-view-connection-annotated.png| |
|user-guides/remote-desktops/web-rdp-demo.png| |
|user-guides/remote-desktops/amazon-dcv-windows-demo.png| |
|user-guides/desktop/coder-desktop-file-sync-add.png| |
|user-guides/desktop/coder-desktop-session-token.png| |
|user-guides/desktop/coder-desktop-win-pre-sign-in.png| |
|user-guides/desktop/coder-desktop-file-sync-conflicts-mouseover.png| |
|user-guides/desktop/coder-desktop-mac-pre-sign-in.png| |
|user-guides/desktop/coder-desktop-file-sync-watching.png| |
|user-guides/desktop/coder-desktop-win-enable-coder-connect.png| |
|user-guides/desktop/coder-desktop-sign-in.png| |
|user-guides/desktop/coder-desktop-file-sync.png| |
|user-guides/desktop/coder-desktop-file-sync-staging.png| |
|user-guides/desktop/chrome-insecure-origin.png| |
|user-guides/desktop/coder-desktop-workspaces.png| |
|user-guides/jetbrains/toolbox/workspaces.png| |
|user-guides/jetbrains/toolbox/install.png| |
|user-guides/jetbrains/toolbox/login-token.png| |
|user-guides/jetbrains/toolbox/login-url.png| |
|user-guides/schedule-settings-workspace.png| |
|user-guides/dotfiles-module.png| |
|user-guides/workspace-list-ui.png| |
|user-guides/workspace-settings-location.png| |
|template-variables.png| |
|ides/code-web-extensions.png| |
|ides/copilot.png| |
|architecture-multi-region.png| |
|external-apps.png| |
|guides/ai-agents/tasks-ui.png| |
|guides/ai-agents/duplicate.png| |
|guides/ai-agents/landing.png| |
|guides/ai-agents/workspace-page.png| |
|guides/ai-agents/realworld-ui.png| |
|guides/xray-integration/example.png| |
|guides/using-organizations/workspace-list.png| |
|guides/using-organizations/new-organization.png| |
|guides/using-organizations/template-org-picker.png| |
|guides/using-organizations/deployment-organizations.png| |
|guides/using-organizations/organization-members.png| |
|readme-logos.png| |
|metadata-ui.png| |
|secret-metadata-ui.png| |
|projector-intellij.png| |
|schedule.png| |
|ssh-keys.png| |
|template-scheduling.png| |
|templates/general-settings.png| |
|templates/build-template.png| |
|templates/update.png| |
|templates/starter-templates.png| |
|templates/create-template.png| |
|templates/select-template.png| |
|templates/pre-filled-parameters.png| |
|templates/source-code.png| |
|templates/upload-create-your-first-template.png| |
|templates/create-workspace.png| |
|templates/edit-source-code.png| |
|templates/permissions.png| |
|templates/coder-session-token.png| |
|templates/starter-templates-button.png| |
|templates/template-tour.png| |
|templates/edit-files.png| |
|templates/workspace-ready.png| |
|templates/template-menu-settings.png| |
|templates/workspace-apps.png| |
|templates/coder-login-web.png| |
|templates/new-workspace.png| |
|templates/template-variables.png| |
|templates/use-template.png| |
|templates/healthy-workspace-agent.png| |
|templates/update-policies.png| |
|templates/upload-create-template-form.png| |
|templates/develop-in-docker-template.png| |
|templates/publish.png| |
|templates/devcontainers.png| |
|templates/create-template-permissions.png| |
|port-forward-dashboard.png| |
|creating-workspace-ui.png| |
|parameters.png| |
|best-practice/build-timeline.png| |
|file-browser.png| |
|architecture-single-region.png| |
|gateway/plugin-settings-marketplace.png| |
|gateway/plugin-session-token.png| |
|gateway/plugin-connect-to-coder.png| |
|gateway/plugin-select-ide.png| |
|gateway/plugin-ide-list.png| |
|hero-image.png| |

</details>

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-10 16:01:20 -04:00
Ethan c1b2304d18 test(agent/agentssh): use fish shell compatible exit status checking (#18824)
This (week-old) test was failing in my workspace because I use fish shell. 
I really do not like that Fish shell does not support `$?`, but I also do like Fish shell! We have a few people at Coder who use it who would appreciate this change.
2025-07-10 19:50:30 +10:00
Edward Angert b882d46d91 docs: fix relative links in about/contributing (#18818)
hotfix

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-09 20:04:48 +00:00
Bruno Quaresma 5a8a19be70 feat: auto reconnect the terminal (#18796)
**Changes:**
- Use [websocket-ts](https://www.npmjs.com/package/websocket-ts) to have
auto reconnection out of the box 🙏
- Update the disconnected alert message to "Trying to connect..." since
the connection is always trying to reconnect
- Remove `useWithRetry` because it is not necessary anymore

**Other topics:**
- The disconnected alert is displaying a simple message, but we can
include more info such as the number of attemtps
- The reconnection feature is in a good state and adding value. IMO, any
improvement can be done after getting this merged

Closes https://github.com/coder/internal/issues/659
2025-07-09 15:04:24 -03:00
Steven Masley 00ba0278d2 chore: modify parameter dynamic immutability behavior (#18583)
Immutability behavior is determined by the current build, not affected by the previous
2025-07-09 08:45:24 -06:00
Bruno Quaresma 9c61ef82b0 test: fix DeploymentSidebarView stories (#18812) 2025-07-09 10:09:10 -04:00
Cian Johnston 0367dbac43 chore: optimize GetPrebuiltWorkspaces query (#18717)
* Adds GetRunningPrebuiltWorkspacesOptimized query
* Runs both original and updated query side-by-side and logs diffs
2025-07-09 11:30:42 +01:00
Jakub Domeracki dc0919da33 feat: sign coder binaries with the release key using GPG (#18774)
### Description
This PR introduces GPG signing for all Coder *slim-binaries*.
Detached signatures will allow users to verify the integrity and
authenticity of the binaries they download.

### Changes
  * `scripts/sign_with_gpg.sh`: New script to sign a given binary
     using GPG. It imports the release key, signs the binary, and
     verifies the signature.
   * `scripts/build_go.sh`: Updated to call `sign_with_gpg.sh` when the
     `CODER_SIGN_GPG` environment variable is set to 1.
   * `.github/workflows/release.yaml`: The` CODER_SIGN_GPG` environment
     variable is now set to 1 during the release build, enabling GPG
     signing for all release binaries.
   * `.github/workflows/ci.yaml`: The `CODER_SIGN_GPG` environment
     variable is now set to 1 during the CI build, enabling GPG
     signing for all CI binaries.
* `Makefile`: Detached signatures are moved to the `/site/out/bin/
`directory
2025-07-09 11:53:27 +02:00
Hugo Dutka 3c2f3d640b chore: remove dbmem (#18803)
Remove the in-memory database. Addresses #15109.
2025-07-09 09:46:31 +02:00
Steven Masley 1319ae293f chore: support zip filetypes in the file cache (#18750) 2025-07-08 15:46:39 -06:00
Atif Ali 79d1465e23 chore: update module sources for Windsurf, Zed and JetBrains (#18759) 2025-07-08 20:33:34 +00:00
blink-so[bot] 39ed0c32e6 docs: simplify PostgreSQL setup by using 'postgresql' as release name (#18754)
Fixes #18751

Use `postgresql` as the Helm release name instead of `coder-db` to make
the service name more intuitive and eliminate confusion entirely.

## Changes
- Changed `helm install coder-db bitnami/postgresql` to `helm install
postgresql bitnami/postgresql`
- Updated PostgreSQL URLs from
`coder-db-postgresql.coder.svc.cluster.local` to
`postgresql.coder.svc.cluster.local`
- Removed explanatory notes about service naming (no longer needed)

## Benefits
 Makes examples work out-of-the-box for most users
 Uses the most straightforward and intuitive release name
 Eliminates confusion about service naming entirely
 Simpler documentation without complex explanations

## Testing
- Verified that `helm install postgresql bitnami/postgresql` creates
service named `postgresql`
- Confirmed this approach works with the connection URL
`postgresql.coder.svc.cluster.local`

Suggested by @EdwardAngert as a cleaner solution than explaining the
service naming dependency.

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-07-08 13:20:15 -04:00
Allen Conlon 10c1e36fff feat: add publishing of helm charts to ghcr registry (#18316) 2025-07-08 22:19:12 +05:00
Mathias Fredriksson 6c4db7a2bc feat(cli): replace open vscode container with devcontainer subagent (#18765)
This change allows a devcontainer to be opened via the agent syntax,
`coder open vscode <workspace>.<agent>` and removes the `--container`
option to simplify the subcommand. Accessing the subagent will behave
similarly to how the `--container` option behaved.

Fixes coder/internal#748
2025-07-08 19:21:41 +03:00
Mathias Fredriksson 5f50dcce5a feat(cli): improve devcontainer support for coder show (#18793)
Fixes coder/internal#747
2025-07-08 16:16:00 +00:00
Hugo Dutka 2f50b3b7bb chore(site): remove dbmem from tests (#18802)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 15:28:48 +00:00
Hugo Dutka 8e038db463 chore(enterprise/replicasync): remove dbmem from tests (#18801)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 15:25:01 +00:00
Hugo Dutka 5e9cbe8a1b chore(coderd): remove dbmem from tests (#18800)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 15:19:14 +00:00
Hugo Dutka 66e490986f chore(enterprise/trialer): remove dbmem from tests (#18798)
Related to https://github.com/coder/coder/issues/15109.
2025-07-09 01:17:14 +10:00
Hugo Dutka b65e133a17 chore(enterprise/coderd): remove dbmem from tests (#18797)
Related to https://github.com/coder/coder/issues/15109.
2025-07-09 01:16:46 +10:00
Susana Ferreira 0dc36127c0 chore(dogfood): update filebrowser module to version 1.1.1 (#18799)
Workspaces with `Write Coder on Coder` template are failing with an
error in the agent related to File Browser:
```
2025/07/08 14:00:29 Using database: /home/coder/filebrowser.db  
2025/07/08 14:00:29 password is too short, minimum length is 12
```
Updating filebrowser module version to 1.1.1:
https://github.com/coder/registry/pull/173
2025-07-08 16:13:36 +01:00
Hugo Dutka 733d3f1287 chore(enterprise/cli): remove dbmem from tests (#18795)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 14:59:03 +00:00
Hugo Dutka f147ebf37d chore(enterprise/audit): remove dbmem from tests (#18794)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 14:39:02 +00:00
Hugo Dutka 7f681910e9 chore(coderd/updatecheck): remove dbmem from tests (#18792)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 14:32:46 +00:00
Hugo Dutka e0fb15eeff chore(coderd/searchquery): remove dbmem from tests (#18791)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 14:32:24 +00:00
Hugo Dutka 321396d9d6 chore(coderd/rbac/rolestore): remove dbmem from tests (#18789)
Related to https://github.com/coder/coder/issues/15109
2025-07-08 16:31:20 +02:00
Hugo Dutka ac4be155d9 chore(coderd/runtimeconfig): remove dbmem from tests (#18790)
Related to https://github.com/coder/coder/issues/15109.
2025-07-08 14:31:05 +00:00
Spike Curtis bf0271fd65 chore: stop running postgres-only tests if DB is not set (#18784)
Fixes https://github.com/coder/internal/issues/695

PostgreSQL tests are getting run in a non-postgres CI job because the tests don't get skipped if the `DB=` env is unset. This PR adds a skip for them.

They are flaking in the `test-go-race` CI job. They run fine in the `test-go-race-pg` job, which pre-creates the postgres server, so the flakiness is almost certainly related to spinning up the database server.
2025-07-08 15:56:22 +04:00
Susana Ferreira 211393a69c fix: exclude prebuilt workspaces from lifecycle executor (#18762)
## Description

This PR updates the lifecycle executor to explicitly exclude prebuilt
workspaces from being considered for lifecycle operations such as
`autostart`, `autostop`, `dormancy`, `default TTL` and `failure TTL`.

Prebuilt workspaces (i.e., those owned by the prebuild system user) are
handled separately by the prebuild reconciliation loop. Including them
in the lifecycle executor could lead to unintended behavior such as
incorrect scheduling or state transitions.

## Changes

* Updated the lifecycle executor query
`GetWorkspacesEligibleForTransition` to exclude workspaces with
`owner_id = 'c42fdf75-3097-471c-8c33-fb52454d81c0'` (prebuilds).
* Added tests to verify prebuilt workspaces are not considered in:
  * Autostop
  * Autostart
  * Default TTL
  * Dormancy
  * Failure TTL

Fixes: https://github.com/coder/coder/issues/18740
Related to: https://github.com/coder/coder/issues/18658
2025-07-08 11:35:28 +01:00
Danielle Maywood 0118e75009 fix(agent): disable dev container integration inside sub agents (#18781)
It appears we accidentally broke this logic in a previous PR. This
should now correctly disable the agent api as we'd expect.
2025-07-08 11:05:30 +01:00
Cian Johnston 1195f31025 chore(site): reduce fetch interval on workspaces page (#18725)
Relates to https://github.com/coder/internal/issues/720

* Reduces workspaces data refetch interval if no builds are pending
* Sets `refetchOnWindowFocus: always` to mitigate impact of reduced polling duration
2025-07-08 11:00:05 +01:00
Kacper Sawicki 8202514ce0 feat!: add ability to cancel pending workspace build (#18713)
Closes #17791 

This PR adds ability to cancel workspace builds that are in "pending"
status.

Breaking changes:
- CancelWorkspaceBuild method in codersdk now accepts an optional
request parameter

API:
- Added `expect_status` query parameter to the cancel workspace build
endpoint
- This parameter ensures the job hasn't changed state before canceling
- API returns `412 Precondition Failed` if the job is not in the
expected status
- Valid values: `running` or `pending`
- Wrapped the entire cancel method in a database transaction

UI:
- Added confirmation dialog to the `Cancel` button, since it's a
destructive operation

![image](https://github.com/user-attachments/assets/437aa5f4-5669-45b6-82a0-e46f277114bf)

![image](https://github.com/user-attachments/assets/423b5cb1-a4fb-4a10-933b-c1c73f4b838c)


- Enabled cancel action for pending workspaces (`expect_status=pending`
is sent if workspace is in pending status)

![image](https://github.com/user-attachments/assets/32d35ff1-12e6-4f7b-9f6c-fde9da9de6cf)

---------

Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-07-08 11:02:58 +02:00
Edward Angert 2f42b64182 docs: update dynamic parameters for beta release (#18512)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Stephen Kirby <kirby@coder.com>
Co-authored-by: Stephen Kirby <58410745+stirby@users.noreply.github.com>
Co-authored-by: Atif Ali <atif@coder.com>
Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
Co-authored-by: Steven Masley <Emyrk@users.noreply.github.com>
Co-authored-by: Thomas Kosiewski <tk@coder.com>
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
Co-authored-by: Bruno Quaresma <bruno@coder.com>
Co-authored-by: BrunoQuaresma <3165839+BrunoQuaresma@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
Co-authored-by: kylecarbs <7122116+kylecarbs@users.noreply.github.com>
Co-authored-by: Ben Potter <ben@coder.com>
Co-authored-by: Hugo Dutka <hugo@coder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ケイラ <mckayla@hey.com>
2025-07-07 19:46:34 -05:00
blink-so[bot] 83192e2462 docs: restore missing AI agent images to fix 404 errors (#18780)
Fixes #18767

This PR restores the missing `landing.png` and `duplicate.png` images
that were accidentally deleted in commit
b26c9e2432.

## Problem
The images were deleted during a documentation restructure, but external
links and cached website content are still referencing these image URLs,
causing 404 errors:
-
`https://raw.githubusercontent.com/coder/coder/main/docs/images/guides/ai-agents/landing.png`
-
`https://raw.githubusercontent.com/coder/coder/main/docs/images/guides/ai-agents/duplicate.png`

## Solution
Restore the original images from the git history to maintain backward
compatibility for external references while preserving the current
documentation structure.

## Testing
 Verified images are restored to correct location
 Confirmed file sizes match original images
 No conflicts with current documentation structure

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: kylecarbs <7122116+kylecarbs@users.noreply.github.com>
2025-07-07 19:48:10 -04:00
Thomas Kosiewski 3dcd2acf1d fix: return 404 instead of 401 for missing OAuth2 apps (#18755)
## Problem

Users were being automatically logged out when deleting OAuth2
applications.

## Root Cause

1. User deletes OAuth2 app successfully
2. React Query automatically refetches the app data  
3. Management API incorrectly returned **401 Unauthorized** for the
missing app
4. Frontend axios interceptor sees 401 and calls `signOut()`
5. User gets logged out unexpectedly

## Solution

- Change management API to return **404 Not Found** for missing OAuth2
apps
- OAuth2 protocol endpoints continue returning 401 per RFC 6749
- Rename `writeInvalidClient` to `writeClientNotFound` for clarity

## Additional Changes

- Add conditional OAuth2 navigation when experiment is enabled or in dev
builds
- Add `isDevBuild()` utility and `buildInfo` to dashboard context
- Minor improvements to format script and warning dialogs

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-07 19:57:32 +02:00
ケイラ f2983164f5 chore: fix some small groups and acl typos (#18732)
- Add `format:"uri"` to `Group.AvatarURL` (matches `User.AvatarURL`
field)
- `<user_id>` and `<group_id>` were backwards in the `example:` tags
- The `@Success` annotation for `/acl [get]` had an incorrect type
2025-07-07 11:01:17 -06:00
dependabot[bot] 935bd340b1 chore: bump github.com/valyala/fasthttp from 1.62.0 to 1.63.0 (#18771)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.62.0 to 1.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.63.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump securego/gosec from 2.22.3 to 2.22.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2007">valyala/fasthttp#2007</a></li>
<li>fix: removed resolved issue link from readme file, issue no longer
ex… by <a
href="https://github.com/viralkansarav"><code>@​viralkansarav</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2008">valyala/fasthttp#2008</a></li>
<li>feat: Add iter.Seq2 iterator by <a
href="https://github.com/ksw2000"><code>@​ksw2000</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2011">valyala/fasthttp#2011</a></li>
<li>Removed old information from main documentation as these functions
does not exist by <a
href="https://github.com/viralkansarav"><code>@​viralkansarav</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2012">valyala/fasthttp#2012</a></li>
<li>Proposal : To add Unsafe Zero-Allocation Conversions Sections in
main documentation by <a
href="https://github.com/viralkansarav"><code>@​viralkansarav</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2013">valyala/fasthttp#2013</a></li>
<li>chore(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2018">valyala/fasthttp#2018</a></li>
<li>Drop support before go1.20 by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2022">valyala/fasthttp#2022</a></li>
<li>chore(deps): bump securego/gosec from 2.22.4 to 2.22.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2025">valyala/fasthttp#2025</a></li>
<li>Implement io.StringWriter on some more types by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2023">valyala/fasthttp#2023</a></li>
<li>chore(deps): bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2029">valyala/fasthttp#2029</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/viralkansarav"><code>@​viralkansarav</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2008">valyala/fasthttp#2008</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.62.0...v1.63.0">https://github.com/valyala/fasthttp/compare/v1.62.0...v1.63.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/8b512b7dae68ffb700b3240bcb81bed5f5c9e6e8"><code>8b512b7</code></a>
chore(deps): bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2029">#2029</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/d356cacd848d92e7f25f06ec64c29f43e033e369"><code>d356cac</code></a>
Implement io.StringWriter on some more types (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2023">#2023</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/641dd96586089dd225652745cb1f67492509dd1c"><code>641dd96</code></a>
chore(deps): bump securego/gosec from 2.22.4 to 2.22.5 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2025">#2025</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/28ebbd9bf1300bc7d763a0f02facad70ee60190f"><code>28ebbd9</code></a>
Drop support before go1.20 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2022">#2022</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/75d2192d37d5cd444850d9d857437fc83165e351"><code>75d2192</code></a>
chore(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2018">#2018</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/46ae933953a610c389f33c1058b8c2b901113e55"><code>46ae933</code></a>
Proposal : To add Unsafe Zero-Allocation Conversions Sections in main
docume...</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/74f3d4cfc825c095c1c1630bd69e0b8da3cd8755"><code>74f3d4c</code></a>
Removed old information from main documentation as these functions does
not e...</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/a1783ffacc6269de7d37a3a99da1005f404a7a82"><code>a1783ff</code></a>
feat: Add iter.Seq2 iterator <a
href="https://redirect.github.com/valyala/fasthttp/issues/2010">#2010</a>
(<a
href="https://redirect.github.com/valyala/fasthttp/issues/2011">#2011</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/246634464811c0389369f7a5bd298b85f63670e4"><code>2466344</code></a>
Remove unused file</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/d856840619aa61cff3274ad8403a8f34f15957c7"><code>d856840</code></a>
fix: removed resolved issue link from readme file, issue no longer
exists (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2">#2</a>...</li>
<li>Additional commits viewable in <a
href="https://github.com/valyala/fasthttp/compare/v1.62.0...v1.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.62.0&new-version=1.63.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 13:59:45 +00:00
dependabot[bot] 52ff531d1f chore: bump github.com/go-playground/validator/v10 from 10.26.0 to 10.27.0 (#18772)
Bumps
[github.com/go-playground/validator/v10](https://github.com/go-playground/validator)
from 10.26.0 to 10.27.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-playground/validator/releases">github.com/go-playground/validator/v10's
releases</a>.</em></p>
<blockquote>
<h2>Release 10.27.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix Release version badge on README page by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1406">go-playground/validator#1406</a></li>
<li>fix russian E.164 error message by <a
href="https://github.com/prigornitskiy"><code>@​prigornitskiy</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1349">go-playground/validator#1349</a></li>
<li>chore: remove unnecessary statement by <a
href="https://github.com/qshuai"><code>@​qshuai</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1200">go-playground/validator#1200</a></li>
<li>Re-enable several linters by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1412">go-playground/validator#1412</a></li>
<li>add support to tag validateFn by <a
href="https://github.com/peczenyj"><code>@​peczenyj</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1363">go-playground/validator#1363</a></li>
<li>Bump golang.org/x/crypto from 0.33.0 to 0.35.0 in
/_examples/validate_fn by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1418">go-playground/validator#1418</a></li>
<li>Bump golang.org/x/net from 0.34.0 to 0.38.0 in
/_examples/validate_fn by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1419">go-playground/validator#1419</a></li>
<li>Align required_without with the contract stated in the documentation
by <a href="https://github.com/jmfrees"><code>@​jmfrees</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1422">go-playground/validator#1422</a></li>
<li>Add translation example by <a
href="https://github.com/cxlblm"><code>@​cxlblm</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1394">go-playground/validator#1394</a></li>
<li>doc(errors): mention RegisterTagNameFunc for FieldError.Field by <a
href="https://github.com/khan-ajamal"><code>@​khan-ajamal</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1358">go-playground/validator#1358</a></li>
<li>Bump golangci/golangci-lint-action from 7 to 8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1425">go-playground/validator#1425</a></li>
<li>feat(translation): add en translation for urn_rfc2141 by <a
href="https://github.com/ryanmalesic"><code>@​ryanmalesic</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1431">go-playground/validator#1431</a></li>
<li>fix: panics when private field is validated by <a
href="https://github.com/ykalchevskiy"><code>@​ykalchevskiy</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1423">go-playground/validator#1423</a></li>
<li>Fix: support validation for map values with struct types by <a
href="https://github.com/JunaidIslam2105"><code>@​JunaidIslam2105</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1433">go-playground/validator#1433</a></li>
<li>Omitzero does not work with slice and map bug by <a
href="https://github.com/JunaidIslam2105"><code>@​JunaidIslam2105</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1436">go-playground/validator#1436</a></li>
<li>Fix: Validator panics when 'nil' is used along with required if for
slices and maps by <a
href="https://github.com/JunaidIslam2105"><code>@​JunaidIslam2105</code></a>
in <a
href="https://redirect.github.com/go-playground/validator/pull/1442">go-playground/validator#1442</a></li>
<li>docs: typos by <a
href="https://github.com/eqsdxr"><code>@​eqsdxr</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1440">go-playground/validator#1440</a></li>
<li>fix: make &quot;file://&quot; fail <code>url</code> validation by <a
href="https://github.com/bfabio"><code>@​bfabio</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1444">go-playground/validator#1444</a></li>
<li>disable way too aggressive and disagreeable linters by <a
href="https://github.com/deankarn"><code>@​deankarn</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1445">go-playground/validator#1445</a></li>
<li>use golangci lint file for disables by <a
href="https://github.com/deankarn"><code>@​deankarn</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1447">go-playground/validator#1447</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/prigornitskiy"><code>@​prigornitskiy</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1349">go-playground/validator#1349</a></li>
<li><a href="https://github.com/qshuai"><code>@​qshuai</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1200">go-playground/validator#1200</a></li>
<li><a href="https://github.com/peczenyj"><code>@​peczenyj</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1363">go-playground/validator#1363</a></li>
<li><a href="https://github.com/jmfrees"><code>@​jmfrees</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1422">go-playground/validator#1422</a></li>
<li><a href="https://github.com/cxlblm"><code>@​cxlblm</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1394">go-playground/validator#1394</a></li>
<li><a
href="https://github.com/khan-ajamal"><code>@​khan-ajamal</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1358">go-playground/validator#1358</a></li>
<li><a
href="https://github.com/ryanmalesic"><code>@​ryanmalesic</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1431">go-playground/validator#1431</a></li>
<li><a
href="https://github.com/ykalchevskiy"><code>@​ykalchevskiy</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1423">go-playground/validator#1423</a></li>
<li><a
href="https://github.com/JunaidIslam2105"><code>@​JunaidIslam2105</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1433">go-playground/validator#1433</a></li>
<li><a href="https://github.com/eqsdxr"><code>@​eqsdxr</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1440">go-playground/validator#1440</a></li>
<li><a href="https://github.com/bfabio"><code>@​bfabio</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1444">go-playground/validator#1444</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-playground/validator/compare/v10.26.0...v10.27.0">https://github.com/go-playground/validator/compare/v10.26.0...v10.27.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-playground/validator/commit/bc77d03bfbd951ad1299267754e230b0af36a5aa"><code>bc77d03</code></a>
use golangci lint file for disables (<a
href="https://redirect.github.com/go-playground/validator/issues/1447">#1447</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/4a1bc2f2628506a2cab2e3fe88d0cb57ccedbb6a"><code>4a1bc2f</code></a>
disable way too aggressive and disagreeable linters (<a
href="https://redirect.github.com/go-playground/validator/issues/1445">#1445</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/cf2267f30e617916a42e6217cd5d3c837100b374"><code>cf2267f</code></a>
fix: make &quot;file://&quot; fail <code>url</code> validation (<a
href="https://redirect.github.com/go-playground/validator/issues/1444">#1444</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/3fd4678e4a0346d57ac1ebcb81ceb86a87ed59f0"><code>3fd4678</code></a>
docs: typos (<a
href="https://redirect.github.com/go-playground/validator/issues/1440">#1440</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/ec374ef02d93322f9d337c47678fbb45ac055323"><code>ec374ef</code></a>
Fix: Validator panics when 'nil' is used along with required if for
slices an...</li>
<li><a
href="https://github.com/go-playground/validator/commit/0e3e2f997385102062275f226e825b4a109f4833"><code>0e3e2f9</code></a>
Omitzero does not work with slice and map bug (<a
href="https://redirect.github.com/go-playground/validator/issues/1436">#1436</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/dfc7ccd4d817cfd6f065273e37d83f7ae7815cce"><code>dfc7ccd</code></a>
Fix: support validation for map values with struct types (<a
href="https://redirect.github.com/go-playground/validator/issues/1433">#1433</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/5b9542b93487972cdfa75ed03ebe4286c3f44c01"><code>5b9542b</code></a>
fix: panics when private field is validated (<a
href="https://redirect.github.com/go-playground/validator/issues/1423">#1423</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/f9a5a1fa1e61028e09df895cd92dfd31673e245f"><code>f9a5a1f</code></a>
feat(translation): add en translation for urn_rfc2141 (<a
href="https://redirect.github.com/go-playground/validator/issues/1431">#1431</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/20f7df64bdd443294349535a5da244ad0b2af71a"><code>20f7df6</code></a>
Bump golangci/golangci-lint-action from 7 to 8 (<a
href="https://redirect.github.com/go-playground/validator/issues/1425">#1425</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/go-playground/validator/compare/v10.26.0...v10.27.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-playground/validator/v10&package-manager=go_modules&previous-version=10.26.0&new-version=10.27.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 13:59:25 +00:00
Edward Angert e3627fd562 docs: fix markdown in Windsurf doc (#18753)
hotfix


[preview](https://coder.com/docs/@18705-windsurf-md/user-guides/workspace-access/windsurf)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-07 18:52:19 +05:00
dependabot[bot] ededcd0c37 chore: bump go.nhat.io/otelsql from 0.15.0 to 0.16.0 (#18768)
Bumps [go.nhat.io/otelsql](https://github.com/nhatthm/otelsql) from
0.15.0 to 0.16.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nhatthm/otelsql/releases">go.nhat.io/otelsql's
releases</a>.</em></p>
<blockquote>
<h2>v0.16.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump the otel group with 7 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/334">nhatthm/otelsql#334</a></li>
<li>Bump golang.org/x/net from 0.23.0 to 0.33.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/335">nhatthm/otelsql#335</a></li>
<li>Bump github.com/go-sql-driver/mysql from 1.8.1 to 1.9.0 in
/tests/mysql by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/336">nhatthm/otelsql#336</a></li>
<li>Bump github.com/prometheus/client_golang from 1.20.5 to 1.21.0 in
/tests/suite by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/337">nhatthm/otelsql#337</a></li>
<li>Bump github.com/prometheus/client_golang from 1.21.0 to 1.21.1 in
/tests/suite by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/338">nhatthm/otelsql#338</a></li>
<li>Bump the otel group with 7 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/339">nhatthm/otelsql#339</a></li>
<li>Bump golang.org/x/net from 0.33.0 to 0.36.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/340">nhatthm/otelsql#340</a></li>
<li>Bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 in
/tests/mssql by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/342">nhatthm/otelsql#342</a></li>
<li>Bump github.com/go-sql-driver/mysql from 1.9.0 to 1.9.1 in
/tests/mysql by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/341">nhatthm/otelsql#341</a></li>
<li>Bump github.com/jackc/pgx/v5 from 5.7.2 to 5.7.3 in /tests/postgres
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/343">nhatthm/otelsql#343</a></li>
<li>Bump dependencies by <a
href="https://github.com/nhatthm"><code>@​nhatthm</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/347">nhatthm/otelsql#347</a></li>
<li>Bump github.com/jackc/pgx/v5 from 5.7.3 to 5.7.4 in /tests/postgres
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/344">nhatthm/otelsql#344</a></li>
<li>Bump github.com/go-sql-driver/mysql from 1.9.1 to 1.9.2 in
/tests/mysql by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/345">nhatthm/otelsql#345</a></li>
<li>Bump golang.org/x/net from 0.36.0 to 0.38.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/348">nhatthm/otelsql#348</a></li>
<li>Bump the otel group with 7 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/350">nhatthm/otelsql#350</a></li>
<li>Bump github.com/jackc/pgx/v5 from 5.7.4 to 5.7.5 in /tests/postgres
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/349">nhatthm/otelsql#349</a></li>
<li>Bump github.com/bool64/sqluct from 0.2.4 to 0.2.5 in /tests/suite by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/nhatthm/otelsql/pull/351">nhatthm/otelsql#351</a></li>
<li>Bump github.com/bool64/sqluct from 0.2.5 to 0.2.6 in /tests/suite by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/nhatthm/otelsql/pull/353">nhatthm/otelsql#353</a></li>
<li>Bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3 in
/tests/mysql by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/352">nhatthm/otelsql#352</a></li>
<li>avoid allocating attributes when the span is not recording by <a
href="https://github.com/boekkooi-impossiblecloud"><code>@​boekkooi-impossiblecloud</code></a>
in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/354">nhatthm/otelsql#354</a></li>
<li>Bump the otel group with 7 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/nhatthm/otelsql/pull/355">nhatthm/otelsql#355</a></li>
<li>Bump github.com/bool64/sqluct from 0.2.6 to 0.2.7 in /tests/suite by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/nhatthm/otelsql/pull/356">nhatthm/otelsql#356</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/nhatthm/otelsql/compare/v0.15.0...v0.16.0">https://github.com/nhatthm/otelsql/compare/v0.15.0...v0.16.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nhatthm/otelsql/commit/9213586ccd31a41f9a70507245f1970397502d00"><code>9213586</code></a>
Bump github.com/bool64/sqluct from 0.2.6 to 0.2.7 in /tests/suite (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/356">#356</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/ff42240692792e9aa1277be17324937d8bbe0f6e"><code>ff42240</code></a>
Bump the otel group with 7 updates (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/355">#355</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/324b3bc0c37ff441deddfb4b1c02840f02c45cae"><code>324b3bc</code></a>
avoid allocating attributes when the span is not recording (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/354">#354</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/7cf081467d8c0457fe3c4528654a81084b8b569a"><code>7cf0814</code></a>
Bump github.com/go-sql-driver/mysql from 1.9.2 to 1.9.3 in /tests/mysql
(<a
href="https://redirect.github.com/nhatthm/otelsql/issues/352">#352</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/c5bf99ad7971c12f4909f103bd026b3592675e0b"><code>c5bf99a</code></a>
Bump github.com/bool64/sqluct from 0.2.5 to 0.2.6 in /tests/suite (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/353">#353</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/f7d72a363f1fa3db072c9e6e02955a4221fcc3d7"><code>f7d72a3</code></a>
Bump github.com/bool64/sqluct from 0.2.4 to 0.2.5 in /tests/suite (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/351">#351</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/ff0e5865586ec909643aff7cbbccb90d61bbbcbf"><code>ff0e586</code></a>
Bump github.com/jackc/pgx/v5 from 5.7.4 to 5.7.5 in /tests/postgres (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/349">#349</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/fb7f15c94a1309d85f67db46114f5a52e6677606"><code>fb7f15c</code></a>
Bump the otel group with 7 updates (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/350">#350</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/00a194983cdd2f291e8106da75a210249c5b5ff8"><code>00a1949</code></a>
Bump golang.org/x/net from 0.36.0 to 0.38.0 (<a
href="https://redirect.github.com/nhatthm/otelsql/issues/348">#348</a>)</li>
<li><a
href="https://github.com/nhatthm/otelsql/commit/ebcac0a7fc58469868c9dbfaa8b7ad7cb8fbf0e6"><code>ebcac0a</code></a>
Bump github.com/go-sql-driver/mysql from 1.9.1 to 1.9.2 in /tests/mysql
(<a
href="https://redirect.github.com/nhatthm/otelsql/issues/345">#345</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/nhatthm/otelsql/compare/v0.15.0...v0.16.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=go.nhat.io/otelsql&package-manager=go_modules&previous-version=0.15.0&new-version=0.16.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 13:45:01 +00:00
dependabot[bot] 3477ed67a5 ci: bump the github-actions group with 6 updates (#18769)
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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 13:44:06 +00:00
Hugo Dutka 1e715e2f66 chore: add suggestions to the tasks docs (#18766) 2025-07-07 09:15:53 -04:00
Ben Potter b26c9e2432 feat: update tasks docs (#18659)
Preview: https://coder.com/docs/@tasks-docs/ai-coder

---------

Co-authored-by: Hugo Dutka <hugo@coder.com>
2025-07-07 08:21:59 -04:00
blink-so[bot] 65809710e5 feat: make readinessProbe and livenessProbe initialDelaySeconds configurable (#18756)
Makes `initialDelaySeconds` configurable for both `readinessProbe` and
`livenessProbe` in the Helm chart.

**Changes:**
- Added `coder.readinessProbe.initialDelaySeconds` and
`coder.livenessProbe.initialDelaySeconds` to `values.yaml`
- Updated `_coder.tpl` template to use these configurable values
- Defaults to 0 seconds to maintain existing behavior

**Testing:**
- Verified template rendering with default values (0)
- Verified template rendering with custom values (30, 60)
- Both probes correctly use the configured `initialDelaySeconds`

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: kylecarbs <7122116+kylecarbs@users.noreply.github.com>
2025-07-07 08:37:19 +01:00
Ethan a1c77e36be fix: handle sql/driver.Valuer types properly in json logs (#18760)
This bumps `slog` to incorporate https://github.com/coder/slog/pull/219.

Before:
```json
{
  "fields": {
      "Code": "{Int32:0 Valid:false}",
      "ValidCode": "{Int32:12 Valid:true}"
  }
}
```

After:
```json
{
  "fields": {
      "Code": null,
      "ValidCode": 12
  }
}
```
2025-07-07 13:39:18 +10:00
Atif Ali aad14b8a6b docs: add RDP desktop button gif (#18758)
Forgot to add this in #18716
2025-07-06 20:15:37 +05:00
Atif Ali ca13b58d57 docs: reorganize remote desktop docs (#18716)
- Reorganize each option in two sections: Web and Desktop Client
- Moves the warning about UDP connections to the bottom
- Move Coder Desktop as the first option
- Links the Coder Desktop RDP module

Preview:
https://coder.com/docs/@remote-desktop-module/user-guides/workspace-access/remote-desktops
2025-07-06 15:46:15 +05:00
Edward Angert 02372caf92 docs: align feature stages for July release (#18752)
some of these changes might also be in other PRs, but hopefully this
doesn't cause any merge conflicts

closes #18197

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-07-04 09:34:49 -04:00
Bruno Quaresma 369bccd52a feat: establish terminal reconnection foundation (#18693)
Adds a new hook called `useWithRetry` as part of
https://github.com/coder/internal/issues/659

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: BrunoQuaresma <3165839+BrunoQuaresma@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-03 17:49:52 -03:00
blink-so[bot] 5ad1847c42 fix: add manual confirmation for release calendar update (#18748)
Add a confirmation dialog to the release script that prompts the user to
manually update the release calendar documentation before proceeding
with the release.

## Changes

- Added a confirmation prompt that asks users to update the release
calendar documentation
- Provides the URL to the documentation
(https://coder.com/docs/install/releases#release-schedule)
- Suggests running the `./scripts/update-release-calendar.sh` script
- Requires explicit confirmation before proceeding with the release
- Exits the script if the user hasn't updated the documentation

## Testing

- [x] Script syntax validation passes (`bash -n scripts/release.sh`)
- [x] Changes are placed at the appropriate point in the release flow
(after release notes editing, before actual release creation)

This addresses the issue where the release calendar documentation was
getting out of date. While automation can be added later, this ensures
users manually confirm the documentation is updated before each release.

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
2025-07-03 19:45:12 +00:00
Steven Masley a099a8a25c feat: use preview to compute workspace tags from terraform (#18720)
If using dynamic parameters, workspace tags are extracted using
`coder/preview`.
2025-07-03 14:35:44 -05:00
Thomas Kosiewski 4607e5113b refactor: organize OAuth2 provider tests into dedicated packages (#18747)
# OAuth2 Provider Code Reorganization

This PR reorganizes the OAuth2 provider code to improve separation of concerns and maintainability. The changes include:

1. Migrating OAuth2 provider app validation tests from `coderd/oauth2_test.go` to `oauth2provider/provider_test.go`
2. Moving OAuth2 client registration validation tests to `oauth2provider/validation_test.go`
3. Adding new comprehensive test files for metadata and validation edge cases
4. Renaming `OAuth2ProviderAppSecret` to `AppSecret` for better naming consistency
5. Simplifying the main integration test in `oauth2_test.go` to focus on core functionality

The PR maintains all existing test coverage while organizing the code more logically, making it easier to understand and maintain the OAuth2 provider implementation. This reorganization will help with future enhancements to the OAuth2 provider functionality.
2025-07-03 20:41:47 +02:00
Thomas Kosiewski c65013384a refactor: move OAuth2 provider code to dedicated package (#18746)
# Refactor OAuth2 Provider Code into Dedicated Package

This PR refactors the OAuth2 provider functionality by moving it from the main `coderd` package into a dedicated `oauth2provider` package. The change improves code organization and maintainability without changing functionality.

Key changes:

- Created a new `oauth2provider` package to house all OAuth2 provider-related code
- Moved existing OAuth2 provider functionality from `coderd/identityprovider` to the new package
- Refactored handler functions to follow a consistent pattern of returning `http.HandlerFunc` instead of being handlers directly
- Split large files into smaller, more focused files organized by functionality:
  - `app_secrets.go` - Manages OAuth2 application secrets
  - `apps.go` - Handles OAuth2 application CRUD operations
  - `authorize.go` - Implements the authorization flow
  - `metadata.go` - Provides OAuth2 metadata endpoints
  - `registration.go` - Handles dynamic client registration
  - `revoke.go` - Implements token revocation
  - `secrets.go` - Manages secret generation and validation
  - `tokens.go` - Handles token issuance and validation

This refactoring improves code organization and makes the OAuth2 provider functionality more maintainable while preserving all existing behavior.
2025-07-03 20:24:45 +02:00
Thomas Kosiewski 7fbb3ced5b feat: add MCP HTTP server experiment and improve experiment middleware (#18712)
# Add MCP HTTP Server Experiment

This PR adds a new experiment flag `mcp-server-http` to enable the MCP HTTP server functionality. The changes include:

1. Added a new experiment constant `ExperimentMCPServerHTTP` with the value "mcp-server-http"
2. Added display name and documentation for the new experiment
3. Improved the experiment middleware to:
   - Support requiring multiple experiments
   - Provide better error messages with experiment display names
   - Add a development mode bypass option
4. Applied the new experiment requirement to the MCP HTTP endpoint
5. Replaced the custom OAuth2 middleware with the standard experiment middleware

The PR also improves the `Enabled()` method on the `Experiments` type by using `slices.Contains()` for better readability.
2025-07-03 20:09:18 +02:00
Thomas Kosiewski 15551541e8 feat: add OAuth2 provider functionality as an experiment (#18692)
# Add OAuth2 Provider Functionality as an Experiment

This PR adds a new experiment flag `oauth2` that enables OAuth2 provider functionality in Coder. When enabled, this experiment allows Coder to act as an OAuth2 provider.

The changes include:
- Added the new `ExperimentOAuth2` constant with appropriate documentation
- Updated the OAuth2 provider middleware to check for the experiment flag
- Modified the error message to indicate that the OAuth2 provider requires enabling the experiment
- Added the new experiment to the known experiments list in the SDK

Previously, OAuth2 provider functionality was only available in development mode. With this change, it can be enabled in production environments by activating the experiment.
2025-07-03 19:44:29 +02:00
blink-so[bot] 2c95a1dd71 chore: update gofumpt from v0.4.0 to v0.8.0 (#18652) 2025-07-03 11:28:00 -06:00
Thomas Kosiewski 494dccc510 feat: implement MCP HTTP server endpoint with authentication (#18670)
# Add MCP HTTP server with streamable transport support

- Add MCP HTTP server with streamable transport support
- Integrate with existing toolsdk for Coder workspace operations
- Add comprehensive E2E tests with OAuth2 bearer token support
- Register MCP endpoint at /api/experimental/mcp/http with authentication
- Support RFC 6750 Bearer token authentication for MCP clients

Change-Id: Ib9024569ae452729908797c42155006aa04330af
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-03 19:27:41 +02:00
Thomas Kosiewski 60b08f0960 fix: remove unique constraint on OAuth2 provider app names (#18669)
# Remove unique constraint on OAuth2 provider app names

This PR removes the unique constraint on the `name` field in the `oauth2_provider_apps` table to comply with RFC 7591, which only requires unique client IDs, not unique client names.

Changes include:
- Removing the unique constraint from the database schema
- Adding migration files for both up and down migrations
- Removing the name uniqueness check in the in-memory database implementation
- Updating the unique constraint constants

Change-Id: Iae7a1a06546fbc8de541a52e291f8a4510d57e8a
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-03 19:13:13 +02:00
Jaayden Halko 90a875d916 chore: implement tests for dynamic parameter component (#18745) 2025-07-03 13:09:59 -04:00
Thomas Kosiewski 4dcf0c3e7e docs: add comprehensive development documentation (#18646)
# Organize Development Documentation into Separate Files

This PR reorganizes the development documentation by splitting the monolithic CLAUDE.md file into multiple focused documents. The main file now provides a concise overview with essential commands and critical patterns, while importing detailed content from specialized guides.

Key improvements:
- Created separate documentation files for specific domains:
  - Database development patterns
  - OAuth2 implementation guidelines
  - Testing best practices
  - Troubleshooting common issues
  - Development workflows and guidelines
- Restructured the main CLAUDE.md to be more scannable with improved formatting
- Added quick-reference tables for common commands
- Maintained all existing content while making it more accessible
- Highlighted critical patterns that must be followed

This organization makes the documentation more maintainable and easier to navigate, allowing developers to quickly find relevant information for their specific tasks.
2025-07-03 18:51:23 +02:00
Thomas Kosiewski 74e1d5c4b6 feat: implement OAuth2 dynamic client registration (RFC 7591/7592) (#18645)
# Implement OAuth2 Dynamic Client Registration (RFC 7591/7592)

This PR implements OAuth2 Dynamic Client Registration according to RFC 7591 and Client Configuration Management according to RFC 7592. These standards allow OAuth2 clients to register themselves programmatically with Coder as an authorization server.

Key changes include:

1. Added database schema extensions to support RFC 7591/7592 fields in the `oauth2_provider_apps` table
2. Implemented `/oauth2/register` endpoint for dynamic client registration (RFC 7591)
3. Added client configuration management endpoints (RFC 7592):
   - GET/PUT/DELETE `/oauth2/clients/{client_id}`
   - Registration access token validation middleware

4. Added comprehensive validation for OAuth2 client metadata:
   - URI validation with support for custom schemes for native apps
   - Grant type and response type validation
   - Token endpoint authentication method validation

5. Enhanced developer documentation with:
   - RFC compliance guidelines
   - Testing best practices to avoid race conditions
   - Systematic debugging approaches for OAuth2 implementations

The implementation follows security best practices from the RFCs, including proper token handling, secure defaults, and appropriate error responses. This enables third-party applications to integrate with Coder's OAuth2 provider capabilities programmatically.
2025-07-03 18:33:47 +02:00
Steven Masley 699dd8e554 chore: create interface for pkgs to return codersdk errors (#18719)
This interface allows it to create rich codersdk errors and pass them up to the `wsbuilder` error handling.
2025-07-03 08:33:45 -05:00
Mathias Fredriksson 7d412c2272 feat(examples/templates): add docker-devcontainer template and rename envbuilder template (#18741)
This change adds a new `docker-devcontainer` template which allows you
to provision a workspace running in Docker, that also creates workspaces
via Docker running inside (DinD).

- **chore(examples/templates): rename `docker-devcontainer` to
`docker-envbuilder`**
- **feat(examples/templates): add `docker-devcontainer` example
template**
2025-07-03 15:50:08 +03:00
Mathias Fredriksson 8b6d70bf1f fix(site): update vs code dev container button URLs (#18696) 2025-07-03 15:03:05 +03:00
Atif Ali 351745752b docs: update release calendar with 2.24 release (#18742) 2025-07-03 11:20:16 +00:00
Jaayden Halko 61b6562f9a feat: display descriptions in multi-select component (#18730)
<img width="528" alt="Screenshot 2025-07-02 at 23 06 51"
src="https://github.com/user-attachments/assets/d6223d99-bc1b-4325-8eb6-d87a687bcec8"
/>
2025-07-03 05:55:20 -04:00
Atif Ali db8ed007f9 chore: add rdp icon (#18736) 2025-07-03 08:22:02 +02:00
Ethan 7500aa4d6c fix(cli): calculate coder ping max correctly (#18734)
Embarassing mistake I made months ago 😦 

*Doesn't effect schmoder, since we don't parse that max, it calculates it itself
2025-07-03 13:22:54 +10:00
Rowan Smith 6db6f48300 chore: fix broken link in docs (#18733)
Fixes the "Helm README" link on
https://coder.com/docs/install/kubernetes so it goes to the right path.

Side note: I don't see any content in
https://coder.com/docs/about/contributing/documentation about to whom
such a PR should be assigned, if any. Edward was suggested and I see
you've worked on other PR's with the `docs` label, so going with that.
2025-07-02 22:34:29 -04:00
Thomas Kosiewski 09c50559f3 feat: implement RFC 6750 Bearer token authentication (#18644)
# Add RFC 6750 Bearer Token Authentication Support

This PR implements RFC 6750 Bearer Token authentication as an additional authentication method for Coder's API. This allows clients to authenticate using standard OAuth 2.0 Bearer tokens in two ways:

1. Using the `Authorization: Bearer <token>` header
2. Using the `access_token` query parameter

Key changes:

- Added support for extracting tokens from both Bearer headers and access_token query parameters
- Implemented proper WWW-Authenticate headers for 401/403 responses with appropriate error descriptions
- Added comprehensive test coverage for the new authentication methods
- Updated the OAuth2 protected resource metadata endpoint to advertise Bearer token support
- Enhanced the OAuth2 testing script to verify Bearer token functionality

These authentication methods are added as fallback options, maintaining backward compatibility with Coder's existing authentication mechanisms. The existing authentication methods (cookies, session token header, etc.) still take precedence.

This implementation follows the OAuth 2.0 Bearer Token specification (RFC 6750) and improves interoperability with standard OAuth 2.0 clients.
2025-07-02 19:14:54 +02:00
Hugo Dutka eade5b019b fix: handle null response from the template presets endpoint (#18723)
The template presets endpoint returns a null response when a template
version does not define any presets.
2025-07-02 19:08:33 +02:00
Thomas Kosiewski 33bbf18a4b feat: add OAuth2 protected resource metadata endpoint for RFC 9728 (#18643)
# Add OAuth2 Protected Resource Metadata Endpoint

This PR implements the OAuth2 Protected Resource Metadata endpoint according to RFC 9728. The endpoint is available at `/.well-known/oauth-protected-resource` and provides information about Coder as an OAuth2 protected resource.

Key changes:
- Added a new endpoint at `/.well-known/oauth-protected-resource` that returns metadata about Coder as an OAuth2 protected resource
- Created a new `OAuth2ProtectedResourceMetadata` struct in the SDK
- Added tests to verify the endpoint functionality
- Updated API documentation to include the new endpoint

The implementation currently returns basic metadata including the resource identifier and authorization server URL. The `scopes_supported` field is empty until a scope system based on RBAC permissions is implemented. The `bearer_methods_supported` field is omitted as Coder uses custom authentication methods rather than standard RFC 6750 bearer tokens.

A TODO has been added to implement RFC 6750 bearer token support in the future.
2025-07-02 18:58:41 +02:00
Thomas Kosiewski 1b73b1a12f docs: add Go LSP MCP configs and tools guide for code navigation (#18613)
# Add Code Navigation and Investigation Guide for Go LSP Tools

Added a new section to the CLAUDE.md documentation that explains how to use Go Language Server Protocol (LSP) tools when working with the Coder codebase. The guide includes:

- Commands for finding function definitions, symbol references, and getting symbol information
- Examples of LSP usage with specific commands
- Guidance on when to use LSP versus other tools like grep or bash
- A structured investigation strategy for navigating the codebase, starting with route registration and tracing through to implementations

This documentation helps developers more efficiently explore and understand the codebase structure.
2025-07-02 18:43:35 +02:00
Cian Johnston 630804ec92 chore: fix duplicate migration 000345 (#18721)
Fixes duplicate migration introduced by
https://github.com/coder/coder/pull/18575
2025-07-02 16:15:10 +00:00
Thomas Kosiewski f0c9c4dbcd feat: oauth2 - add RFC 8707 resource indicators and audience validation (#18575)
This pull request implements RFC 8707, Resource Indicators for OAuth 2.0 (https://datatracker.ietf.org/doc/html/rfc8707), to enhance the security of our OAuth 2.0 provider. 

This change enables proper audience validation and binds access tokens to their intended resource, which is crucial
  for preventing token misuse in multi-tenant environments or deployments with multiple resource servers.

##  Key Changes:


   * Resource Parameter Support: Adds support for the resource parameter in both the authorization (`/oauth2/authorize`) and token (`/oauth2/token`) endpoints, allowing clients to specify the intended resource server.
   * Audience Validation: Implements server-side validation to ensure that the resource parameter provided during the token exchange matches the one from the authorization request.
   * API Middleware Enforcement: Introduces a new validation step in the API authentication middleware (`coderd/httpmw/apikey.go`) to verify that the audience of the access token matches the resource server being accessed.
   * Database Schema Updates:
       * Adds a `resource_uri` column to the `oauth2_provider_app_codes` table to store the resource requested during authorization.
       * Adds an `audience` column to the `oauth2_provider_app_tokens` table to bind the issued token to a specific audience.
   * Enhanced PKCE: Includes a minor enhancement to the PKCE implementation to protect against timing attacks.
   * Comprehensive Testing: Adds extensive new tests to `coderd/oauth2_test.go` to cover various RFC 8707 scenarios, including valid flows, mismatched resources, and refresh token validation.

##  How it Works:


   1. An OAuth2 client specifies the target resource (e.g., https://coder.example.com) using the resource parameter in the authorization request.
   2. The authorization server stores this resource URI with the authorization code.
   3. During the token exchange, the server validates that the client provides the same resource parameter.
   4. The server issues an access token with an audience claim set to the validated resource URI.
   5. When the client uses the access token to call an API endpoint, the middleware verifies that the token's audience matches the URL of the Coder deployment, rejecting any tokens intended for a different resource.


  This ensures that a token issued for one Coder deployment cannot be used to access another, significantly strengthening our authentication security.

---

Change-Id: I3924cb2139e837e3ac0b0bd40a5aeb59637ebc1b
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-02 17:49:00 +02:00
Sas Swart 01163ea57b feat: allow users to pause prebuilt workspace reconciliation (#18700)
This PR provides two commands:
* `coder prebuilds pause`
* `coder prebuilds resume`

These allow the suspension of all prebuilds activity, intended for use
if prebuilds are misbehaving.
2025-07-02 15:05:42 +00:00
Steven Masley 4072d228c5 feat: support dynamic parameters on create template request (#18636)
Future work is to add this checkbox to the UI to opt into dynamic
parameters from the first template create.
2025-07-02 09:44:01 -05:00
blink-so[bot] 91aa583ea4 docs: mention Windsurf module in Windsurf documentation (#18715)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: bpmct <22407953+bpmct@users.noreply.github.com>
2025-07-02 19:13:35 +05:00
Spike Curtis 59c8b560fa test: add test that we close stdin on SSH session close (#18711)
closes #18519

Adds a unit test that verifies that we close the stdin to a non-TTY process when the SSH session connected to it exits.

c.f. https://github.com/coder/coder/issues/18519#issuecomment-3027609871

Validates that we match OpenSSH behavior.
2025-07-02 16:23:07 +04:00
Mathias Fredriksson 8a69f6af17 fix(agent/agentcontainers): avoid logspam in API updaterLoop (#18710)
Fixes #18709
2025-07-02 14:29:45 +03:00
Atif Ali 0b8ed9c2bd docs: move the duplicate Coder Desktop install warning to Troubleshooting (#18691)
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-07-02 11:22:58 +00:00
ケイラ 0b82f41a24 feat: allow masking workspace parameter inputs (#18595) 2025-07-01 16:27:43 -06:00
ケイラ d22ac1cf65 chore: don't cache errors in file cache (#18555) 2025-07-01 13:50:37 -06:00
Edward Angert ab254adfb9 docs: add section about how to disable path based apps to security best practices (#18419)
add a new section specifically about how to disable path-based apps to
the security best practices doc

## todo

- [x] copy review
- [x] cross-linking

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-07-01 13:18:47 -04:00
Garrett Delfosse d14e9be0fe feat: add Coder registry links to template creation and editing (#18680)
## Summary
- Add "Browse Templates" card to starter templates page
- Add "Browse Modules" button to template editor topbar
- Both link to https://registry.coder.com as requested in #18141

<img width="1248" alt="Screenshot 2025-07-01 at 9 29 26 AM"
src="https://github.com/user-attachments/assets/2295e45c-2056-41cd-a39e-48d4379295be"
/>
<img width="943" alt="Screenshot 2025-07-01 at 9 29 45 AM"
src="https://github.com/user-attachments/assets/e0652b76-43bf-4794-825d-72b4fe7c5e5f"
/>



🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-01 13:18:27 -04:00
Mathias Fredriksson 1158ca25bf fix(dogfood/coder): run go clean cache at workspace shutdown (#18685)
The Go build cache has a tendency to accumulate and waste space
(typically in the realm of 10-70 GB). This change automatically cleans
up the cache on shutdown to prevent accumulation.
2025-07-01 15:22:26 +01:00
Thomas Kosiewski 6f2834f62a feat: oauth2 - add authorization server metadata endpoint and PKCE support (#18548)
## Summary

  This PR implements critical MCP OAuth2 compliance features for Coder's authorization server, adding PKCE support, resource parameter handling, and OAuth2 server metadata discovery. This brings Coder's OAuth2 implementation significantly closer to production readiness for MCP (Model Context Protocol)
  integrations.

  ## What's Added

  ### OAuth2 Authorization Server Metadata (RFC 8414)
  - Add `/.well-known/oauth-authorization-server` endpoint for automatic client discovery
  - Returns standardized metadata including supported grant types, response types, and PKCE methods
  - Essential for MCP client compatibility and OAuth2 standards compliance

  ### PKCE Support (RFC 7636)
  - Implement Proof Key for Code Exchange with S256 challenge method
  - Add `code_challenge` and `code_challenge_method` parameters to authorization flow
  - Add `code_verifier` validation in token exchange
  - Provides enhanced security for public clients (mobile apps, CLIs)

  ### Resource Parameter Support (RFC 8707)
  - Add `resource` parameter to authorization and token endpoints
  - Store resource URI and bind tokens to specific audiences
  - Critical for MCP's resource-bound token model

  ### Enhanced OAuth2 Error Handling
  - Add OAuth2-compliant error responses with proper error codes
  - Use standard error format: `{"error": "code", "error_description": "details"}`
  - Improve error consistency across OAuth2 endpoints

  ### Authorization UI Improvements
  - Fix authorization flow to use POST-based consent instead of GET redirects
  - Remove dependency on referer headers for security decisions
  - Improve CSRF protection with proper state parameter validation

  ## Why This Matters

  **For MCP Integration:** MCP requires OAuth2 authorization servers to support PKCE, resource parameters, and metadata discovery. Without these features, MCP clients cannot securely authenticate with Coder.

  **For Security:** PKCE prevents authorization code interception attacks, especially critical for public clients. Resource binding ensures tokens are only valid for intended services.

  **For Standards Compliance:** These are widely adopted OAuth2 extensions that improve interoperability with modern OAuth2 clients.

  ## Database Changes

  - **Migration 000343:** Adds `code_challenge`, `code_challenge_method`, `resource_uri` to `oauth2_provider_app_codes`
  - **Migration 000343:** Adds `audience` field to `oauth2_provider_app_tokens` for resource binding
  - **Audit Updates:** New OAuth2 fields properly tracked in audit system
  - **Backward Compatibility:** All changes maintain compatibility with existing OAuth2 flows

  ## Test Coverage

  - Comprehensive PKCE test suite in `coderd/identityprovider/pkce_test.go`
  - OAuth2 metadata endpoint tests in `coderd/oauth2_metadata_test.go`
  - Integration tests covering PKCE + resource parameter combinations
  - Negative tests for invalid PKCE verifiers and malformed requests

  ## Testing Instructions

  ```bash
  # Run the comprehensive OAuth2 test suite
  ./scripts/oauth2/test-mcp-oauth2.sh

  Manual Testing with Interactive Server

  # Start Coder in development mode
  ./scripts/develop.sh

  # In another terminal, set up test app and run interactive flow
  eval $(./scripts/oauth2/setup-test-app.sh)
  ./scripts/oauth2/test-manual-flow.sh
  # Opens browser with OAuth2 flow, handles callback automatically

  # Clean up when done
  ./scripts/oauth2/cleanup-test-app.sh

  Individual Component Testing

  # Test metadata endpoint
  curl -s http://localhost:3000/.well-known/oauth-authorization-server | jq .

  # Test PKCE generation
  ./scripts/oauth2/generate-pkce.sh

  # Run specific test suites
  go test -v ./coderd/identityprovider -run TestVerifyPKCE
  go test -v ./coderd -run TestOAuth2AuthorizationServerMetadata
```

  ### Breaking Changes

  None. All changes maintain backward compatibility with existing OAuth2 flows.

---

Change-Id: Ifbd0d9a543d545f9f56ecaa77ff2238542ff954a
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-07-01 15:39:29 +02:00
Cian Johnston dbfbef6ecb chore(cli): increase reconciliation interval to 1 minute (#18690)
Increase prebuilds reconciliation and backoff interval to 1 minute by
default.
2025-07-01 14:35:02 +01:00
Susana Ferreira 57a6d59d8d docs: add warning about prebuilds incompatibility with certain features (#18689)
## Description

This PR adds a warning to the prebuilds documentation about
incompatibility with Workspace schedule (autostart/autostop), dormancy,
and DevContainers. These configurations can interfere with prebuild
behavior and should be avoided for now.

Preview:
![Screenshot 2025-07-01 at 12 58
02](https://github.com/user-attachments/assets/e1a837de-b66c-4414-bd0b-471474b43b84)
2025-07-01 13:59:07 +01:00
Cian Johnston 4e95b1d20e fix: revert changes to GetRunningPrebuiltWorkspaces (#18688)
… (#18588)"

This reverts commit 258a839d27.
2025-07-01 10:11:43 +00:00
Hugo Dutka 3d22e27f4e fix: handle task sidebar app health check disabled correctly (#18687)
Previously, by mistake, the task sidebar would not display workspace
apps that don't have a health check configured.
2025-07-01 12:01:17 +02:00
Danielle Maywood 7e372f7a35 fix(agent/agentcontainers): reset error at start of rebuild (#18686)
Reset the error associated with a devcontainer when a rebuild is requested.
2025-07-01 10:57:43 +01:00
Cian Johnston 258a839d27 chore(coderd/database): optimize GetRunningPrebuiltWorkspaces (#18588)
Fixes https://github.com/coder/internal/issues/715

After this change, the only use of the `workspace_prebuilds` view is the
`ClaimPrebuiltWorkspace` query. A subsequent PR will update the view.

Before: ~44ms https://explain.dalibo.com/plan/76cbe21d1a4c9329#plan

After: 7.3ms https://explain.dalibo.com/plan/5abbdf926315677e#plan
2025-07-01 09:42:01 +01:00
Danny Kopping 0f56f0029b chore: add which-release script (#18657) 2025-07-01 08:05:44 +00:00
Kacper Sawicki 695de6e0c0 chore(coderd/database): optimize AuditLogs queries (#18600)
Closes #17689

This PR optimizes the audit logs query performance by extracting the
count operation into a separate query and replacing the OR-based
workspace_builds with conditional joins.

## Query changes
* Extracted count query to separate one
* Replaced single `workspace_builds` join with OR conditions with
separate conditional joins
* Added conditional joins
* `wb_build` for workspace_build audit logs (which is a direct lookup)
    * `wb_workspace` for workspace create audit logs (via workspace)

Optimized AuditLogsOffset query:
https://explain.dalibo.com/plan/4g1hbedg4a564bg8

New CountAuditLogs query:
https://explain.dalibo.com/plan/ga2fbcecb9efbce3
2025-07-01 07:31:14 +02:00
Perdjesk 74e1953619 docs: bitnami/postgresql primary prefix for persistence.size config key (#18446)
The `bitnami/postgresql`chart doesn't have a value with key
`persistence.size`. The correct value key which control the size of the
PVC is `primary.persistence.size`.

See:
-
https://github.com/bitnami/charts/blob/postgresql/16.7.12/bitnami/postgresql/values.yaml
- The JSON schema,
[`values.schema.json`](https://github.com/bitnami/charts/blob/postgresql/16.7.12/bitnami/postgresql/values.schema.json)
of the
[`values.yaml`](https://github.com/bitnami/charts/blob/postgresql/16.7.12/bitnami/postgresql/values.yaml)
included in the chart is out of sync.
https://github.com/bitnami/readme-generator-for-helm/issues/142
2025-06-30 16:55:57 -04:00
Danielle Maywood 4756080eb2 feat(site): display devcontainer start error (#18637)
Fixes https://github.com/coder/internal/issues/705

Surface errors on the UI when a devcontainer agent is unable to be
injected.
2025-06-30 21:34:29 +01:00
Asher fc7700a62f fix: improve reliability of app statuses (#18622)
We were discarding all "working" updates from the screen watcher because
we cannot tell the difference between the agent or user changing the
screen, but it makes sense to accept it as the very first update,
because the agent could be working but neglected to report that fact, so
you would never get an initial "working" update (it would just
eventually go straight to "idle").

Also messages can start at zero, so I made a fix for that as well,
although the first message will be from the LLM and we ignore
those anyway, so this probably has no actual effect, but seems more
technically correct.

And it seems I forgot to actually update the last message ID, which 
also does not actually matter for user messages (since I think the
SSE endpoint will not re-emit a user message it has already emitted),
but seems more technically correct to check.

Lastly, if we have the screen watcher, ignore the agent's self-reported
state and always use "working" since it is unreliable.  The idle state will
eventually be caught by the watcher.
2025-06-30 12:12:20 -08:00
Jaayden Halko ad6773360c fix: display error message on delete workspace error (#18654)
resolves coder/preview#155

When deleting a workspace, show an error dialog if deleting the
workspace is not possible.

![Screenshot 2025-06-28 at 10 06
47](https://github.com/user-attachments/assets/650bfb54-6ed9-4f41-a410-1333afeee0a4)
2025-06-30 15:09:51 -04:00
Hugo Dutka 22c5e84a7e fix: handle health status when displaying task apps (#18675)
Previously, we displayed apps in iframes on the task page without
waiting for them to initialize. This would result in 502 errors shown to
the user. This PR makes sure that we only display the app after it
initializes.

### Before
<img width="1920" alt="Screenshot 2025-06-30 at 14 59 07 (2)"
src="https://github.com/user-attachments/assets/63564ac9-abce-4a0c-b58e-b988772fae82"
/>
2025-06-30 20:46:28 +02:00
Spike Curtis b7cb275d7e fix: stop tearing down non-TTY processes on SSH session end (#18673)
(possibly temporary) fix for #18519

Matches OpenSSH for non-tty sessions, where we don't actively terminate
the process.

Adds explicit tracking to the SSH server for these processes so that if
we are shutting down we terminate them: this ensures that we can shut
down quickly to allow shutdown scripts to run. It also ensures our tests
don't leak system resources.
2025-06-30 22:06:05 +04:00
Mathias Fredriksson 9ccaf86099 fix(agent/agentcontainers): always derive devcontainer name from workspace folder (#18666) 2025-06-30 20:56:39 +03:00
Vladislav Rudskoy 715c7b0c24 chore: correct RD limitation comment (#18668)
subj
2025-06-30 22:46:00 +05:00
Atif Ali b1e8d5d5e0 docs: remove beta label from Coder Desktop (#18651)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-06-30 21:23:09 +05:00
dependabot[bot] 851cda55d6 ci: bump the github-actions group with 3 updates (#18665)
Bumps the github-actions group with 3 updates:
[step-security/harden-runner](https://github.com/step-security/harden-runner),
[fluxcd/flux2](https://github.com/fluxcd/flux2) and
[github/codeql-action](https://github.com/github/codeql-action).

Updates `step-security/harden-runner` from 2.12.1 to 2.12.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.12.2</h2>
<h2>What's Changed</h2>
<p>Added HTTPS Monitoring for additional destinations -
*.githubusercontent.com
Bug fixes:</p>
<ul>
<li>Implicitly allow local multicast, local unicast and broadcast IP
addresses in block mode</li>
<li>Increased policy map size for block mode</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.12.2">https://github.com/step-security/harden-runner/compare/v2...v2.12.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/6c439dc8bdf85cadbbce9ed30d1c7b959517bc49"><code>6c439dc</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/562">#562</a>
from step-security/rc-22</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/bf5688696d0b2cf8221eadb38e4232386015763a"><code>bf56886</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/5436dac7b5fa76a1a179168f5f4de86c00e22c84"><code>5436dac</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/88d305a3530acfa6d1939000baaa571e520df9c8"><code>88d305a</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b976878278dbe3bc16039f7165b8faf809c50297"><code>b976878</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/875cc92db280a03598e7492a3e6c165c689f7af6"><code>875cc92</code></a>
Update agent</li>
<li>See full diff in <a
href="https://github.com/step-security/harden-runner/compare/002fdce3c6a235733a90a27c80493a3241e56863...6c439dc8bdf85cadbbce9ed30d1c7b959517bc49">compare
view</a></li>
</ul>
</details>
<br />

Updates `fluxcd/flux2` from 2.6.2 to 2.6.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fluxcd/flux2/releases">fluxcd/flux2's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.3</h2>
<h2>Highlights</h2>
<p>Flux v2.6.3 is a patch release that comes with various fixes. Users
are encouraged to upgrade for the best experience.</p>
<p>Fixes:</p>
<ul>
<li>Fix for <code>rsa-sha2-512</code> and <code>rsa-sha2-256</code>
algorithms not being prioritized for <code>ssh-rsa</code> host keys in
source-controller, image-automation-controller and Flux CLI
bootstrap.</li>
</ul>
<h2>Components changelog</h2>
<ul>
<li>source-controller <a
href="https://github.com/fluxcd/source-controller/blob/v1.6.2/CHANGELOG.md">v1.6.2</a></li>
<li>image-automation-controller <a
href="https://github.com/fluxcd/image-automation-controller/blob/v0.41.2/CHANGELOG.md">v0.41.2</a></li>
</ul>
<h2>CLI changed</h2>
<ul>
<li>[release/v2.6.x] Update toolkit components by <a
href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in <a
href="https://redirect.github.com/fluxcd/flux2/pull/5427">fluxcd/flux2#5427</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fluxcd/flux2/compare/v2.6.2...v2.6.3">https://github.com/fluxcd/flux2/compare/v2.6.2...v2.6.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fluxcd/flux2/commit/bda4c8187e436462be0d072e728b67afa215c593"><code>bda4c81</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5427">#5427</a>
from fluxcd/backport-5426-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/3f281da7381e3984913244d78b9768e4fa5fbb65"><code>3f281da</code></a>
Fix: Prioritize sha2-512 and sha2-256 for ssh-rsa host keys</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/963e99188cb0a77dfbe70a3db7a34c0f6e159dd3"><code>963e991</code></a>
Update toolkit components</li>
<li>See full diff in <a
href="https://github.com/fluxcd/flux2/compare/a48f81a66c4ca9fbd993233ab99dd03a7cfbe09a...bda4c8187e436462be0d072e728b67afa215c593">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.29.0 to 3.29.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.1</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.1/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<ul>
<li>Experimental: When the <code>quality-queries</code> input for the
<code>init</code> action is provided with an argument, separate
<code>.quality.sarif</code> files are produced and uploaded for each
language with the results of the specified queries. Do not use this in
production as it is part of an internal experiment and subject to change
at any time. <a
href="https://redirect.github.com/github/codeql-action/pull/2935">#2376</a></li>
</ul>
<h2>3.29.1 - 27 Jun 2025</h2>
<ul>
<li>Fix bug in PR analysis where user-provided <code>include</code>
query filter fails to exclude non-included queries. <a
href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li>
<li>Update default CodeQL bundle version to 2.22.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li>
</ul>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/39edc492dbe16b1465b0cafca41432d857bdb31a"><code>39edc49</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2953">#2953</a>
from github/update-v3.29.1-428aea55f</li>
<li><a
href="https://github.com/github/codeql-action/commit/27c4fb1eef772029c0bbeed96d8538a2af79e541"><code>27c4fb1</code></a>
Update changelog for v3.29.1</li>
<li><a
href="https://github.com/github/codeql-action/commit/428aea55f52aac0db14530fe4e5c97462c533f7d"><code>428aea5</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2952">#2952</a>
from github/redsun82/fix-swift-test</li>
<li><a
href="https://github.com/github/codeql-action/commit/973250f3d233f50890a597fef853ae3b2a538a31"><code>973250f</code></a>
Swift: recreate a default Swift package to fix test</li>
<li><a
href="https://github.com/github/codeql-action/commit/8ef17824cfb2a3f40cbc7f41bac7e055e53b8164"><code>8ef1782</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2950">#2950</a>
from github/update-bundle/codeql-bundle-v2.22.1</li>
<li><a
href="https://github.com/github/codeql-action/commit/f3bfb9860305f6e80e048f4785d6bee33bf77356"><code>f3bfb98</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/2b4afc20b636de8884609ee2a501a68a67766f26"><code>2b4afc2</code></a>
Update default bundle to codeql-bundle-v2.22.1</li>
<li><a
href="https://github.com/github/codeql-action/commit/9b02dc2f60288b463e7a66e39c78829b62780db7"><code>9b02dc2</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2928">#2928</a>
from github/update-supported-enterprise-server-versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/7ab92d0295a9b09eb653169acdb2c24f7c43614a"><code>7ab92d0</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2948">#2948</a>
from github/mbg/copilot-instructions</li>
<li><a
href="https://github.com/github/codeql-action/commit/2cae828745579fc9309404e09440d23bba2f7b79"><code>2cae828</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2947">#2947</a>
from github/dependency-proxy/codeql-bundle-v2.22.0</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/ce28f5bb42b7a9f2c824e633a3f6ee835bab6858...39edc492dbe16b1465b0cafca41432d857bdb31a">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 15:37:51 +00:00
dependabot[bot] 7f23be3874 chore: bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0 (#18661)
Bumps
[github.com/andybalholm/brotli](https://github.com/andybalholm/brotli)
from 1.1.1 to 1.2.0.
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/andybalholm/brotli/commit/676a02057d90cd1e75ede54cdfa79d4cdb574dae"><code>676a020</code></a>
Pathfinder: improve cost calculation, and use it in NewWriterV2</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/fc701daacf9eec30cae7a5cec6e5e38827894d4c"><code>fc701da</code></a>
Pathfinder: change how literals are represented in arrivals.</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/10cf712196eeb5358c7c2dddf1f53c08b6500f38"><code>10cf712</code></a>
Pathfinder: enable starting in the middle of a match</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/d6b3fe07ed7eb3cfe0c42ab708781034a326d7fa"><code>d6b3fe0</code></a>
Pathfinder: separate searching and parsing</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/199839b04846152833e2446e39cf6234712163a2"><code>199839b</code></a>
Pathfinder: pre-compute hash chain (and use 32 bits)</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/e819531509efd8c7d5e79efd9fcabc655c7fbebc"><code>e819531</code></a>
Start experimenting with an optimizing MatchFinder</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/18ac46a8c3d6664cd158ad14ca2fb6ba29752377"><code>18ac46a</code></a>
M4: use 32-bit hash chain</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/1383db2f0e5a87e62c33bb5adf22351ee2acf50a"><code>1383db2</code></a>
M4: When shortening a match, look for a closer option</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/c036c35cb06f667df542773635b0972cd794d2ea"><code>c036c35</code></a>
M4: look for repeat matches</li>
<li><a
href="https://github.com/andybalholm/brotli/commit/6a1a95ec91781f0eedba50cd865eb822ba7e90c7"><code>6a1a95e</code></a>
Add arm64 to GOARCH switches</li>
<li>Additional commits viewable in <a
href="https://github.com/andybalholm/brotli/compare/v1.1.1...v1.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/andybalholm/brotli&package-manager=go_modules&previous-version=1.1.1&new-version=1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 14:08:44 +00:00
dependabot[bot] c8bc8d3865 chore: bump github.com/moby/moby from 28.2.2+incompatible to 28.3.0+incompatible (#18660)
Bumps [github.com/moby/moby](https://github.com/moby/moby) from
28.2.2+incompatible to 28.3.0+incompatible.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>28.3.0</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.3.0">docker/cli,
28.3.0 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.3.0">moby/moby,
28.3.0 milestone</a></li>
<li>Deprecated and removed features, see <a
href="https://github.com/docker/cli/blob/v28.3.0/docs/deprecated.md">Deprecated
Features</a>.</li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v28.3.0/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<h3>New</h3>
<ul>
<li>Add support for AMD GPUs in <code>docker run --gpus</code>. <a
href="https://redirect.github.com/moby/moby/pull/49952">moby/moby#49952</a></li>
<li>Use <code>DOCKER_AUTH_CONFIG</code> as a credential store. <a
href="https://redirect.github.com/docker/cli/pull/6008">docker/cli#6008</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Ensure that the state of the container in the daemon database (used
by <a
href="https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerList">/containers/json</a>
API) is up to date when the container is stopped using the <a
href="https://docs.docker.com/reference/api/engine/version/v1.49/#tag/Container/operation/ContainerStop">/containers/{id}/stop</a>
API (before response of API). <a
href="https://redirect.github.com/moby/moby/pull/50136">moby/moby#50136</a></li>
<li>Fix <code>docker image inspect inspect</code> omitting empty fields.
<a
href="https://redirect.github.com/moby/moby/pull/50135">moby/moby#50135</a></li>
<li>Fix <code>docker images --tree</code> not marking images as in-use
when the containerd image store is disabled. <a
href="https://redirect.github.com/docker/cli/pull/6140">docker/cli#6140</a></li>
<li>Fix <code>docker pull/push</code> hang in non-interactive when
authentication is required caused by prompting for login credentials. <a
href="https://redirect.github.com/docker/cli/pull/6141">docker/cli#6141</a></li>
<li>Fix a potential resource leak when a node leaves a Swarm. <a
href="https://redirect.github.com/moby/moby/pull/50115">moby/moby#50115</a></li>
<li>Fix a regression where a login prompt on <code>docker pull</code>
would show Docker Hub-specific hints when logging in on other
registries. <a
href="https://redirect.github.com/docker/cli/pull/6135">docker/cli#6135</a></li>
<li>Fix an issue where all new tasks in the Swarm could get stuck in the
PENDING state forever after scaling up a service with placement
preferences. <a
href="https://redirect.github.com/moby/moby/pull/50211">moby/moby#50211</a></li>
<li>Remove an undocumented, hidden, top-level <code>docker remove</code>
command that was accidentally introduced in Docker 23.0. <a
href="https://redirect.github.com/docker/cli/pull/6144">docker/cli#6144</a></li>
<li>Validate registry-mirrors configuration as part of <code>dockerd
--validate</code> and improve error messages for invalid mirrors. <a
href="https://redirect.github.com/moby/moby/pull/50240">moby/moby#50240</a></li>
<li><code>dockerd-rootless-setuptool.sh</code>: Fix the script from
silently returning with no error message when subuid/subgid system
requirements are not satisfied. <a
href="https://redirect.github.com/moby/moby/pull/50059">moby/moby#50059</a></li>
<li>containerd image store: Fix <code>docker push</code> not creating a
tag on the remote repository. <a
href="https://redirect.github.com/moby/moby/pull/50199">moby/moby#50199</a></li>
<li>containerd image store: Improve handling of errors returned by the
token server during <code>docker pull/push</code>. <a
href="https://redirect.github.com/moby/moby/pull/50176">moby/moby#50176</a></li>
</ul>
<h3>Packaging updates</h3>
<ul>
<li>Allow customizing containerd service name for OpenRC. <a
href="https://redirect.github.com/moby/moby/pull/50156">moby/moby#50156</a></li>
<li>Update BuildKit to <a
href="https://github.com/moby/buildkit/releases/tag/v0.23.1">v0.23.1</a>.
<a
href="https://redirect.github.com/moby/moby/pull/50243">moby/moby#50243</a></li>
<li>Update Buildx to <a
href="https://github.com/docker/buildx/releases/tag/v0.25.0">v0.25.0</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1217">docker/docker-ce-packaging#1217</a></li>
<li>Update Compose to <a
href="https://github.com/docker/compose/releases/tag/v2.37.2">v2.37.2</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1219">docker/docker-ce-packaging#1219</a></li>
<li>Update Docker Model CLI plugin to <a
href="https://github.com/docker/model-cli/releases/tag/v0.1.30">v0.1.30</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1218">docker/docker-ce-packaging#1218</a></li>
<li>Update Go runtime to <a
href="https://go.dev/doc/devel/release#go1.24.4">1.24.4</a>. <a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1213">docker/docker-ce-packaging#1213</a>,
<a
href="https://redirect.github.com/moby/moby/pull/50153">moby/moby#50153</a>,
<a
href="https://redirect.github.com/docker/cli/pull/6124">docker/cli#6124</a></li>
</ul>
<h3>Networking</h3>
<ul>
<li>Revert Swarm related changes added in 28.2.x builds, due to a
regression reported in <a
href="https://redirect.github.com/moby/moby/issues/50129">moby/moby#50129</a>.
<a
href="https://redirect.github.com/moby/moby/pull/50169">moby/moby#50169</a>
<ul>
<li>Revert: Fix an issue where <code>docker network inspect
--verbose</code> could sometimes crash the daemon (<a
href="https://redirect.github.com/moby/moby/pull/49937">moby/moby#49937</a>).</li>
<li>Revert: Fix an issue where the load-balancer IP address for an
overlay network would not be released in certain cases if the Swarm was
lacking an ingress network (<a
href="https://redirect.github.com/moby/moby/pull/49948">moby/moby#49948</a>).</li>
<li>Revert: Improve the reliability of NetworkDB in busy clusters and
lossy networks (<a
href="https://redirect.github.com/moby/moby/pull/49932">moby/moby#49932</a>).</li>
<li>Revert: Improvements to the reliability and convergence speed of
NetworkDB (<a
href="https://redirect.github.com/moby/moby/pull/49939">moby/moby#49939</a>).</li>
</ul>
</li>
<li>Fix an issue that could cause container startup to fail, or lead to
failed UDP port mappings, when some container ports are mapped to
<code>0.0.0.0</code> and others are mapped to specific host addresses.
<a
href="https://redirect.github.com/moby/moby/pull/50054">moby/moby#50054</a></li>
<li>The <code>network inspect</code> response for an overlay network now
reports that <code>EnableIPv4</code> is true. <a
href="https://redirect.github.com/moby/moby/pull/50147">moby/moby#50147</a></li>
<li>Windows: Improve daemon startup time in cases where the host has
networks of type <code>&quot;Mirrored&quot;</code>. <a
href="https://redirect.github.com/moby/moby/pull/50155">moby/moby#50155</a></li>
<li>Windows: Make sure <code>docker system prune</code> and <code>docker
network prune</code> only remove networks created by Docker. <a
href="https://redirect.github.com/moby/moby/pull/50154">moby/moby#50154</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/265f709647947fb5a1adf7e4f96f2113dcc377bd"><code>265f709</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50247">#50247</a>
from vvoland/50245-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/b2a9318a1e70deabdf9cda8c08caabd492b6b581"><code>b2a9318</code></a>
docs: cut api docs for v1.51</li>
<li><a
href="https://github.com/moby/moby/commit/b3e2e22b2adee0cff0a20134559074b9481ba2ba"><code>b3e2e22</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50244">#50244</a>
from vvoland/50177-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/c571cd85133c8e25ce9c9b7eb3a1c8c54f88346e"><code>c571cd8</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50243">#50243</a>
from vvoland/50238-28.x</li>
<li><a
href="https://github.com/moby/moby/commit/8c713c1af4ad61a9faf8b55e7710b8a17e081275"><code>8c713c1</code></a>
gha: lower timeouts on &quot;build&quot; and &quot;merge&quot;
steps</li>
<li><a
href="https://github.com/moby/moby/commit/539c115023eb01f1dd65b019cd5d50dd36d34188"><code>539c115</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50240">#50240</a>
from thaJeztah/28.x_backport_validate_mirrors</li>
<li><a
href="https://github.com/moby/moby/commit/8e7ea470cf0720f1988fe9a0af6342d550d86cc3"><code>8e7ea47</code></a>
vendor: update buildkit to v0.23.1</li>
<li><a
href="https://github.com/moby/moby/commit/222baf4ccbcb216fe812ad0300d02dfec3f28a70"><code>222baf4</code></a>
vendor: github.com/moby/buildkit v0.23.0</li>
<li><a
href="https://github.com/moby/moby/commit/1627e828d7e5566ead2c69f63d661ef47f96e61a"><code>1627e82</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50241">#50241</a>
from thaJeztah/28.x_backport_update_cgroups</li>
<li><a
href="https://github.com/moby/moby/commit/4070ebda88cb8f6448d0725633dc40394e563705"><code>4070ebd</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50242">#50242</a>
from thaJeztah/28.x_backport_fix_event_ordering</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v28.2.2...v28.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=28.2.2+incompatible&new-version=28.3.0+incompatible)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 14:03:08 +00:00
Danny Kopping f89e057c4c chore: add beta badge to tasks (#18656) 2025-06-30 10:51:42 +02:00
Mathias Fredriksson d814fdfa1c fix(.devcontainer): add home volume and fix code-server and filebrowser (#18648) 2025-06-30 09:32:17 +01:00
Spike Curtis e97540afbd chore: work around race in lib/pq (#18655)
Upgrade our lib/pq fork to work around the data race identified here:
https://github.com/coder/internal/issues/731
2025-06-30 12:00:46 +04:00
Bruno Quaresma 4095330041 fix: use only template version ID to create task workspace (#18642)
When creating a new task, the following error was getting returned:

**Error:**
```json
{
    "message": "Validation failed.",
    "validations": [
        {
            "field": "template_id",
            "detail": "Validation failed for tag \"excluded_with\" with value: \"42205a38-845c-4186-8475-f002e0936d53\""
        },
        {
            "field": "template_version_id",
            "detail": "Validation failed for tag \"excluded_with\" with value: \"22b1c4b7-432d-4eb5-9341-cd8efacb8f46\""
        }
    ]
}
```

Caused by https://github.com/coder/coder/pull/18623
2025-06-27 15:07:54 -03:00
ケイラ d4208d23aa refactor: show icons for multi-select parameter options (#18594) 2025-06-27 10:54:47 -06:00
dependabot[bot] 5ae21517e0 chore: bump github.com/go-viper/mapstructure/v2 from 2.2.1 to 2.3.0 (#18647)
Bumps
[github.com/go-viper/mapstructure/v2](https://github.com/go-viper/mapstructure)
from 2.2.1 to 2.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-viper/mapstructure/releases">github.com/go-viper/mapstructure/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/46">go-viper/mapstructure#46</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/47">go-viper/mapstructure#47</a></li>
<li>[enhancement] Add check for <code>reflect.Value</code> in
<code>ComposeDecodeHookFunc</code> by <a
href="https://github.com/mahadzaryab1"><code>@​mahadzaryab1</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/52">go-viper/mapstructure#52</a></li>
<li>build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/51">go-viper/mapstructure#51</a></li>
<li>build(deps): bump actions/checkout from 4.2.0 to 4.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/50">go-viper/mapstructure#50</a></li>
<li>build(deps): bump actions/setup-go from 5.1.0 to 5.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/55">go-viper/mapstructure#55</a></li>
<li>build(deps): bump actions/setup-go from 5.2.0 to 5.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/58">go-viper/mapstructure#58</a></li>
<li>ci: add Go 1.24 to the test matrix by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/74">go-viper/mapstructure#74</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.5.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/72">go-viper/mapstructure#72</a></li>
<li>build(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/76">go-viper/mapstructure#76</a></li>
<li>build(deps): bump actions/setup-go from 5.3.0 to 5.4.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/78">go-viper/mapstructure#78</a></li>
<li>feat: add decode hook for netip.Prefix by <a
href="https://github.com/tklauser"><code>@​tklauser</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/85">go-viper/mapstructure#85</a></li>
<li>Updates by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/86">go-viper/mapstructure#86</a></li>
<li>build(deps): bump github/codeql-action from 2.13.4 to 3.28.15 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/87">go-viper/mapstructure#87</a></li>
<li>build(deps): bump actions/setup-go from 5.4.0 to 5.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/93">go-viper/mapstructure#93</a></li>
<li>build(deps): bump github/codeql-action from 3.28.15 to 3.28.17 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/92">go-viper/mapstructure#92</a></li>
<li>build(deps): bump github/codeql-action from 3.28.17 to 3.28.19 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/97">go-viper/mapstructure#97</a></li>
<li>build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/96">go-viper/mapstructure#96</a></li>
<li>Update README.md by <a
href="https://github.com/peczenyj"><code>@​peczenyj</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/90">go-viper/mapstructure#90</a></li>
<li>Add omitzero tag. by <a
href="https://github.com/Crystalix007"><code>@​Crystalix007</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/98">go-viper/mapstructure#98</a></li>
<li>Use error structs instead of duplicated strings by <a
href="https://github.com/m1k1o"><code>@​m1k1o</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/102">go-viper/mapstructure#102</a></li>
<li>build(deps): bump github/codeql-action from 3.28.19 to 3.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/101">go-viper/mapstructure#101</a></li>
<li>feat: add common error interface by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/105">go-viper/mapstructure#105</a></li>
<li>update linter by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/106">go-viper/mapstructure#106</a></li>
<li>Feature allow unset pointer by <a
href="https://github.com/rostislaved"><code>@​rostislaved</code></a> in
<a
href="https://redirect.github.com/go-viper/mapstructure/pull/80">go-viper/mapstructure#80</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/tklauser"><code>@​tklauser</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/85">go-viper/mapstructure#85</a></li>
<li><a href="https://github.com/peczenyj"><code>@​peczenyj</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/90">go-viper/mapstructure#90</a></li>
<li><a
href="https://github.com/Crystalix007"><code>@​Crystalix007</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/98">go-viper/mapstructure#98</a></li>
<li><a
href="https://github.com/rostislaved"><code>@​rostislaved</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-viper/mapstructure/pull/80">go-viper/mapstructure#80</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0">https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-viper/mapstructure/commit/8c61ec1924fcfa522f9fc6b4618c672db61d1a38"><code>8c61ec1</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/80">#80</a>
from rostislaved/feature-allow-unset-pointer</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/df765f469ad16a1996fd0f0ae6a32b20535b966a"><code>df765f4</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/106">#106</a>
from go-viper/update-linter</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/5f34b05aa12639380ef7c2af69eb6f8fd629dbd0"><code>5f34b05</code></a>
update linter</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/36de1e1d74f55681536097ff8467a8ce952ef183"><code>36de1e1</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/105">#105</a>
from go-viper/error-refactor</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/6a283a390ee7bc0f9331f58199db234902e0739f"><code>6a283a3</code></a>
chore: update error type doc</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/599cb73236404c044abcf278a45c3928d7480dd0"><code>599cb73</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/101">#101</a>
from go-viper/dependabot/github_actions/github/codeql...</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/ed3f92181528ff776a0324107b8b55026e93766a"><code>ed3f921</code></a>
feat: remove value from error messages</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/a3f8b227dcdae324c070d389152837f0aa635f4b"><code>a3f8b22</code></a>
revert: error message change</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/9661f6d07c319da00ae0508d99df5f3f0c3953bd"><code>9661f6d</code></a>
feat: add common error interface</li>
<li><a
href="https://github.com/go-viper/mapstructure/commit/f12f6c76fe743c8e4cc6465c6a9f16fcd8cede57"><code>f12f6c7</code></a>
Merge pull request <a
href="https://redirect.github.com/go-viper/mapstructure/issues/102">#102</a>
from m1k1o/prettify-errors2</li>
<li>Additional commits viewable in <a
href="https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-viper/mapstructure/v2&package-manager=go_modules&previous-version=2.2.1&new-version=2.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-06-27 16:52:24 +00:00
blink-so[bot] ff3ff0170a chore: update logo description to specify maximum 3:1 aspect ratio (#18641)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-06-27 16:38:44 +00:00
Bruno Quaresma 8eebb4fa4c feat: make task panels resizable (#18590)
**Demo:**

https://github.com/user-attachments/assets/cc80b768-197e-42a0-9326-f30c9d9038e3
2025-06-27 13:34:04 -03:00
Mathias Fredriksson 0f3a1e9849 fix(agent/agentcontainers): split Init into Init and Start for early API responses (#18640)
Previously in #18635 we delayed the containers API `Init` to avoid producing
errors due to Docker and `@devcontainers/cli` not yet being installed by startup
scripts. This had an adverse effect on the UX via UI responsiveness as the
detection of devcontainers was greatly delayed.

This change splits `Init` into `Init` and `Start` so that we can immediately
after `Init` start serving known devcontainers (defined in Terraform), improving
the UX.

Related #18635
Related #18640
2025-06-27 19:01:50 +03:00
Mathias Fredriksson e46d892c29 fix(.devcontainer): remove double slash from zed path (#18639) 2025-06-27 18:34:08 +03:00
Mathias Fredriksson b4aa643dfa fix(agent/agentcontainers): ensure proper channel closure for updateTrigger (#18631) 2025-06-27 18:05:48 +03:00
Bruno Quaresma 6d305df67d fix: use default preset when creating a workspace for task (#18623) 2025-06-27 12:01:21 -03:00
Bruno Quaresma 29ef3a8ed6 feat: redirect to the task page after creation (#18626)
Close https://github.com/coder/coder/issues/18184
2025-06-27 14:45:42 +00:00
Bruno Quaresma 1c87796b33 refactor: show the apps as soon as possible (#18625)
Close https://github.com/coder/coder/issues/18617
2025-06-27 14:00:18 +00:00
Mathias Fredriksson 8ee2668b39 fix(agent): fix script filtering for devcontainers (#18635) 2025-06-27 16:59:31 +03:00
Bruno Quaresma 59a65415b4 refactor: move required external auth buttons to the submit side (#18586)
**Before:**
![Screenshot 2025-06-25 at 14 40
16](https://github.com/user-attachments/assets/cbc558f5-6eee-4133-afc9-2474f04a8a67)

**After:**
![Screenshot 2025-06-25 at 14 53
53](https://github.com/user-attachments/assets/3a638f60-d1e4-40a4-a066-8d69fe96c198)
2025-06-27 10:44:39 -03:00
Bruno Quaresma 2d44add81f feat: add task link in the workspace page when it is running a task (#18591)
![image](https://github.com/user-attachments/assets/4db64031-17a9-405c-a233-df2b758ddef5)
2025-06-27 10:32:57 -03:00
Spike Curtis f0251dfc91 chore: retry postgres connection on reset by peer in tests (#18632)
Fixes https://github.com/coder/internal/issues/695

Retries initial connection to postgres in testing up to 3 seconds if we
see "reset by peer", which probably means that some other test proc just
started the container.

---------

Co-authored-by: Hugo Dutka <hugo@coder.com>
2025-06-27 13:03:32 +00:00
Edward Angert d26d0fc269 docs: edit descriptions in ai-coder section (#18373)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-27 12:09:02 +00:00
Spike Curtis a02d5a69e7 chore: update X11 forward session usage when there is a connection (#18567)
fixes #18263

Adds support to bump `usedAt` for X11 forwarding sessions whenever an application connects over the TCP socket. This should help avoid evicting sessions that are actually in use.
2025-06-27 15:41:45 +04:00
Spike Curtis 73c742a3ce chore: test eviction with used ports (#18566)
relates to #18263

Modifies the eviction unit test to include a port that is already claimed by an external process.
2025-06-27 15:27:38 +04:00
Spike Curtis 66f22d7588 chore: add unit test for X11 eviction (#18565)
relates to #18263


Adds a unit test for X11 listener eviction when all ports in the allowed range are in use.
2025-06-27 15:13:30 +04:00
Mathias Fredriksson 7e99fb7d7e fix(agent): delay containerAPI init to ensure startup scripts run before (#18630) 2025-06-27 14:10:35 +03:00
Susana Ferreira 3cb9b20b11 chore: improve rbac and add benchmark tooling (#18584)
## Description

This PR improves the RBAC package by refactoring the policy, enhancing
documentation, and adding utility scripts.

## Changes

* Refactored `policy.rego` for clarity and readability
* Updated README with OPA section
* Added `benchmark_authz.sh` script for authz performance testing and
comparison
* Added `gen_input.go` to generate input for `opa eval` testing
2025-06-27 12:05:34 +01:00
Spike Curtis a5bfb200fc chore: refactor TestServer_X11 to use inproc networking (#18564)
relates to #18263


Refactors the x11Forwarder to accept a networking `interface` that we can fake out for testing. This isolates the unit tests from other processes listening in the port range used by X11 forwarding. This will become extremely important in up-stack PRs where we listen on every port in the range and need to control which ports have conflicts.
2025-06-27 14:56:33 +04:00
Spike Curtis abcf3df71a chore: move InProcNet to testutil (#18563)
Moves `InProcNet` to `testutil` so that it can be reused by X11 forwarding tests (see up stack PRs).
2025-06-27 14:42:22 +04:00
Spike Curtis 6bebfd0ec6 fix: use memmap file system for TestServer_X11 (#18562)
Changes the TestServer_X11 test to use a memmapped file system, so we don't pollute the XAuthority file of the person running the test.
2025-06-27 14:24:07 +04:00
Spike Curtis 9e1cf1693b fix: cap max X11 forwarding ports and evict old (#18561)
partial for #18263

Caps the X11 forwarding sessions at a maximum port of 6200, and evicts the oldest session if we create new sessions while at the max.

Unit tests included higher in the stack.
2025-06-27 14:05:42 +04:00
Ethan 9ab9c52de8 chore(site): set server.allowedHosts in storybook config to .coder (#18598)
This lets you browse storybook using a Coder Desktop hostname (i.e. `workspace.coder:6006`). The default configuration (including `localhost`) will still work.
2025-06-27 12:59:58 +10:00
Asher 05f6d69455 chore: parse app status link (#18439)
No actual exploit here as far as I can tell, but doing a string check
without parsing was flagged by a scanner.
2025-06-26 13:04:11 -08:00
Mathias Fredriksson d5e34195b0 revert: fix(agent/agentcontainers): refresh containers before status change (#18624)
Reverts coder/coder#18620

This fix exacerbated the problem, reverting until a better fix can be made.
2025-06-26 20:51:06 +00:00
Mathias Fredriksson 7b0b6498fb fix(.devcontainer): start docker and install devcontainer CLI (#18621)
This change starts the Docker daemon in the devcontainer and install
`@devcontainers/cli`.
2025-06-26 20:17:59 +00:00
Mathias Fredriksson 73879056f9 fix(agent/agentcontainers): refresh containers before status change (#18620)
The previous method of refreshing after we change the devcontainer
status introduced an intermediary state where the devcontainer might not
yet have been assigned a container and will flicker as stopped before
going into running.
2025-06-26 20:12:50 +00:00
Jon Ayers 7a3a6d4d26 chore: update README logos (#18619) 2025-06-26 19:27:17 +00:00
Mathias Fredriksson 4f44dd08a9 fix(agent/agentcontainers): prevent reassigning proc.agent until successful (#18609) 2025-06-26 21:30:21 +03:00
ケイラ 09cc906981 chore: remove unnecessary redeclarations in for loops (part 2) (#18593) 2025-06-26 12:28:00 -06:00
Mathias Fredriksson e03d13211c test(agent): fix TestAgent_DevcontainerRecreate (#18618) 2025-06-26 17:50:53 +00:00
Thomas Kosiewski 1b1d09158d fix: pin Nix version to 2.28.4 to avoid JSON type error (#18612)
Pin Nix version to 2.28.4 in dogfood workflow

Pins the Nix version in the dogfood workflow to 2.28.4 to avoid a JSON type error that occurs with Nix 2.29 and above.

Change-Id: Ie024d5070dbe5901952fc52463c6602363ef8886
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-06-26 18:33:44 +02:00
Danielle Maywood 98c77fece5 fix(agent/agentcontainers): stop logging empty lines (#18605)
This PR makes the devcontainer logs have fewer whitespace lines.
2025-06-26 15:58:10 +00:00
Danielle Maywood 5ae320e79e fix(agent/agentcontainers): chown coder binary (#18611)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-26 16:42:43 +01:00
Mathias Fredriksson 87d052ea93 feat(.devcontainer): add cursor, filebrowser, windsurf and zed (#18608) 2025-06-26 14:09:31 +00:00
Sas Swart c6e0ba12d3 feat: graduate prebuilds to general availability (#18607)
This PR removes the prebuilds experiment and allows the use of prebuilds
without opting into an experiment.
2025-06-26 15:54:52 +02:00
Mathias Fredriksson 872aef3af9 feat(.devcontainer): install dotfiles if present (#18606) 2025-06-26 12:49:58 +00:00
Danielle Maywood f2d229eed3 fix!: use devcontainer ID when rebuilding a devcontainer (#18604)
This PR replaces the use of the **container** ID with the
**devcontainer** ID. This is a breaking change. This allows rebuilding a
devcontainer when there is no valid container ID.
2025-06-26 11:41:57 +01:00
Mathias Fredriksson eca6381314 feat(agent/agentcontainers): add more envs to readconfig for app URL building (#18603) 2025-06-26 09:33:58 +00:00
Sas Swart 634144f94a fix: hide the preset parameter visibility switch when it has no effect (#18574)
When no preset is selected:
<img width="1097" alt="Screenshot 2025-06-25 at 15 49 51"
src="https://github.com/user-attachments/assets/96f1244a-58f1-4e59-b6ac-9319339c764f"
/>

When a preset is selected:
<img width="1097" alt="Screenshot 2025-06-25 at 15 50 00"
src="https://github.com/user-attachments/assets/d0853169-ff93-4b1a-beaf-11012a9a02fb"
/>

Existing frontend stories provide enough validation to cover this
feature. No further testing is required.

---------

Co-authored-by: Susana Ferreira <susana@coder.com>
2025-06-26 11:23:10 +02:00
Atif Ali fb0e7a21a7 docs: add Coder Desktop to remote desktop docs (#18326)
Co-authored-by: Spike Curtis <spike@coder.com>
2025-06-26 11:16:41 +05:00
Bruno Quaresma fdf458eb19 refactor: remove beta label from 'select a preset' menu (#18538) 2025-06-25 17:09:49 -03:00
Mathias Fredriksson 09e1a8ad99 feat(.devcontainer): add code-server feature to devcontainer.json (#18589) 2025-06-25 21:35:43 +03:00
Asher 48bb534a51 chore: fix idle state icon when disabled (#18554)
When the workspace is off, we set a disabled text/stroke color, but for
the idle icon that also needs a fill, this only changed the outline
making it look weird. Instead, move the disabled logic into the
component so we can apply a matching fill.

I felt it looked too thick with both the outline and fill, so I also
removed the outline.

Really I think maybe the workspace status should be a separate column
rather than disabling these icons, but this maintains the status quo.


Before with mismatching stroke and fill color:


![screenshot](https://github.com/user-attachments/assets/961014b7-1e26-49f0-aa87-834f2f367618)


After with disabled fill and stroke removal:


![screenshot](https://github.com/user-attachments/assets/205e4515-dc01-4437-87ec-a0f8a546da3b)


Enabled fill and stroke removal:


![screenshot](https://github.com/user-attachments/assets/04f5914e-f96c-4c75-8873-e3fc9c854d95)
2025-06-25 10:06:57 -08:00
Danielle Maywood 6c713d5c20 fix(coderd/agentapi): make sub agent slugs more unique (#18581)
The incorrect assumption that slugs were unique per-agent was made when
the subagent API was implemented. Whilst this PR doesn't completely
enforce that, we instead compute a stable hash to prefix the slug that
should provide a reasonable level of probability that the slug will be
unique.
2025-06-25 17:36:23 +01:00
dependabot[bot] aef101ffd3 chore: bump google.golang.org/genai from 0.7.0 to 1.12.0 (#18496)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/genai&package-manager=go_modules&previous-version=0.7.0&new-version=1.12.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-25 16:01:53 +00:00
dependabot[bot] 9d2f8dc274 chore: bump github.com/openai/openai-go from 0.1.0-beta.10 to 1.6.0 (#18493)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/openai/openai-go&package-manager=go_modules&previous-version=0.1.0-beta.10&new-version=1.6.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-25 16:01:29 +00:00
Danny Kopping 8e0b6f8157 chore: upgrade aisdk-go lib, remove vestigial code (#18577) 2025-06-25 17:47:42 +02:00
Steven Masley e396b06c25 feat: allow new immutable parameters for existing workspaces (#18579)
Closes https://github.com/coder/coder/issues/18578
2025-06-25 15:41:53 +00:00
Edward Angert 072c81cd73 docs: remove nested alerts (#18580)
hotfix

removes nested gfm alerts, which is a known ~issue~ feature
https://github.com/orgs/community/discussions/16925#discussioncomment-12043928

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-25 15:17:49 +00:00
Mathias Fredriksson 3c4d9206bc feat(agent/agentcontainers): add feature options as envs (#18576) 2025-06-25 14:41:36 +00:00
Danny Kopping 688d2ee3eb chore: remove chats experiment (#18535) 2025-06-25 13:03:32 +00:00
Mathias Fredriksson 9fde8353ad test(agent/agentcontainers): add is a test ignore label to integration tests (#18570) 2025-06-25 11:20:14 +00:00
Mathias Fredriksson 434b54657a fix(agent/agentcontainers): filter out "is test run" devcontainers (#18568) 2025-06-25 11:06:20 +00:00
Cian Johnston 42fd1c1291 ci: cache embedded postgres downloaded binaries (#18477)
Updates CI job definitions to cache downloaded binaries for embedded-postgres.
2025-06-25 12:00:20 +01:00
Danielle Maywood c4e4fe85f9 fix(agent): start devcontainers through agentcontainers package (#18471)
Fixes https://github.com/coder/internal/issues/706

Context for the implementation here
https://github.com/coder/internal/issues/706#issuecomment-2990490282

Synchronously starts dev containers defined in terraform with our
`DevcontainerCLI` abstraction, instead of piggybacking off of our
`agentscripts` package. This gives us more control over logs, instead of
being reliant on packages which may or may not exist in the
user-provided image.
2025-06-25 11:52:50 +01:00
Marcin Tojek f6d9765daf fix(site): storybook: move spyOn to beforeEach (#18559)
Fixes: https://github.com/coder/internal/issues/741
2025-06-25 08:45:55 +00:00
Atif Ali b5316d2b42 docs: fix a warning alert type on toolbox docs (#18560) 2025-06-25 08:21:12 +00:00
Emmanuel Ferdman 312d2a46b4 docs: update Claude's guide (#18523)
## PR Summary
Commit 5df70a613d added by mistake the the
following old line to `CLAUDE.md`:
```
For building Frontend refer to [this document](docs/contributing/frontend.md)
```
This PR removes it.

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-06-25 05:39:26 +00:00
Ethan 79c666bf08 fix(vpn): avoid setting session token header twice (#18524)
`coderd` currently does not handle a session token header value of the form `token1, token2`. However, it does handle multiple instances of the token header by simply taking the first. This is the default behaviour of `http.Header.Get`.

So, setting the token header twice causes issues when Coder is behind a proxy that merges duplicate headers, such as [Apache](https://httpd.apache.org/docs/2.4/mod/mod_headers.html#:~:text=list%20of%20values.-,When%20a%20new%20value%20is%20merged%20onto%20an%20existing%20header,format%20specifiers%20have%20been%20processed).


This PR ensures we don't set it twice by not sharing one slice between the `HTTPClient` and the `websocket.DialerOptions`. It also adds a regression test.
2025-06-25 11:27:35 +10:00
Asher 288ec7709d feat: add workspace build status to task page (#18520)
While a workspace is starting, display the build status and a progress bar.
2025-06-24 13:17:12 -08:00
Michael Smith a8e2c75239 chore: update Coder icons to reflect new branding (#18517)
Addresses part of the frontend changes needed for
https://github.com/coder/coder/issues/18516
2025-06-24 17:15:05 -04:00
Steven Masley fe22b2cc92 chore: update coder/preview dependency to v1.0.1 (#18550) 2025-06-24 20:46:50 +00:00
Jaayden Halko 25f1b76624 fix: handle empty strings for Select component (#18553)
resolve #18361

Its possible for a dynamic parameter option value to be an empty string
which will cause the following error in the Radix Select component. The
solution is to handle empty strings so that they are not set directly in
the component.


`Uncaught Error: A <Select.Item /> must have a value prop that is not an
empty string. This is because the Select value can be set to an empty
string to clear the selection and show the placeholder.`


```
data "coder_parameter" "radio" {
  name         = "radio"
  display_name = "An example of a radio input"
  description  = "The next parameter supports a single value."
  type         = "string"
  form_type    = "dropdown"
  order        = 1
  default      = ""

  option {
    name = "Empty"
    value = "" 
  }
}

```
2025-06-24 16:44:52 -04:00
Asher 6ed22046af chore: use pause icon for app idle state (#18546) 2025-06-24 11:04:27 -08:00
Cian Johnston b93db1ceda fix: site: replace CirclePlayIcon with PlayIcon (#18549) 2025-06-24 19:56:54 +01:00
Mathias Fredriksson e443f8624d feat(agent/agentcontainers): implement ignore customization for devcontainers (#18530)
Fixes coder/internal#737
2025-06-24 18:52:05 +00:00
Steven Masley 06c997a100 chore: make telemetry use_classic_parameter_flow nullable (#18547) 2025-06-24 13:38:12 -05:00
Susana Ferreira b9e32c8eaf refactor: remove unused enterprise prebuilds id.go (#18543)
## Description

Remove unused `enterprise/coderd/prebuilds/id.go` file.
Note: PR https://github.com/coder/coder/pull/18333 moved `SystemUserID`
constant from `coderd/prebuilds/id.go` to the database package
`PrebuildsSystemUserID` to resolve an import cycle:
https://github.com/coder/coder/blob/main/coderd/database/constants.go
2025-06-24 19:28:41 +01:00
Cian Johnston 7070e47489 fix: update workspace table icons in WorkspacesTable (#18525)
Updates icons in WorkspacesTable to better differentiate between "start"
and "update and start".

Note: the logic I'm currently using is as follows:
* Workspace does not require active version and is outdated -> cloud
icon
* Workspace requires active version and is outdated -> circle play icon

I also, on a whim, updated the stories for the component to make the
workspace names more identifiably reflect their content.


![Screenshot 2025-06-24 at 11 49
17](https://github.com/user-attachments/assets/682183fc-2171-44ee-80c4-914932718163)
2025-06-24 19:23:59 +01:00
Mathias Fredriksson 99d124e276 feat(agent): enable devcontainers by default (#18533) 2025-06-24 21:17:04 +03:00
Danielle Maywood fcf93719c9 feat(agent/agentcontainers): retry with longer name on failure (#18513)
Closes https://github.com/coder/internal/issues/732

We now try (up to 5 times) when attempting to create an agent using the
workspace folder as the name.

It is important to note this flow is only ever ran when attempting to
create an agent using the workspace folder as the name. If a deployment
uses terraform or the devcontainer customization, we do not fall back to
this approach.
2025-06-24 19:04:16 +01:00
Hugo Dutka 4fd0312776 feat: use backend-supplied sidebar app id on the /task/$id page (#18458)
Related to https://github.com/coder/coder/issues/18454. It will close
https://github.com/coder/internal/issues/734.
2025-06-24 19:28:39 +02:00
Mathias Fredriksson 64a221489f fix(agent/agentcontainers): remove shellquote in favor of %q (#18544) 2025-06-24 17:18:28 +00:00
Hugo Dutka b6c493d0dc fix: correct hasAITaskResources logic for child modules (#18542) 2025-06-24 19:14:44 +02:00
Jaayden Halko b2009b2a86 chore: add a claude.md markdown file focusing on the frontend (#18510)
This adds additional context for frontend related work
2025-06-24 12:58:07 -04:00
Jaayden Halko ccf294eaf8 chore: improve visuals of dynamic parameters (#18537)
<img width="343" alt="Screenshot 2025-06-24 at 16 43 22"
src="https://github.com/user-attachments/assets/dc554f63-b825-4e59-896a-d078bae51c4a"
/>
<img width="837" alt="Screenshot 2025-06-24 at 16 43 37"
src="https://github.com/user-attachments/assets/e9e88164-0c87-43b5-9eb1-63fd6ea85095"
/>
2025-06-24 12:57:41 -04:00
Steven Masley e5eb2a8322 fix: prebuild user without ssh key when fetching owner ctx (#18541) 2025-06-24 16:49:36 +00:00
Bruno Quaresma cd484db872 fix: only override img size for direct button children (#18540)
The issue was causing the select menu, that uses an avatar inside of the
button, to have a wrong size.

Before:
<img width="191" alt="Screenshot 2025-06-24 at 13 18 51"
src="https://github.com/user-attachments/assets/4cc20bbc-daa6-44b0-802c-a1846740beb5"
/>

After:
<img width="191" alt="Screenshot 2025-06-24 at 13 18 41"
src="https://github.com/user-attachments/assets/107083f9-ef51-4d7d-84c3-c5d3e82307c8"
/>
2025-06-24 13:28:58 -03:00
Hugo Dutka dc24922039 fix: use the correct key for tasks tab visibility in embedded metadata (#18539)
The backend (introduced in https://github.com/coder/coder/pull/18401)
actually puts the value under the `tasks-tab-visible` key instead of the
`tasksTabVisible`:
2025-06-24 18:25:53 +02:00
Susana Ferreira f44969b689 chore: reorder prebuilt workspace authorization logic (#18506)
## Description

Follow-up from PR https://github.com/coder/coder/pull/18333
Related with:
https://github.com/coder/coder/pull/18333#discussion_r2159300881

This changes the authorization logic to first try the normal workspace
authorization check, and only if the resource is a prebuilt workspace,
fall back to the prebuilt workspace authorization check. Since prebuilt
workspaces are a subset of workspaces, the normal workspace check is
more likely to succeed. This is a small optimization to reduce
unnecessary prebuilt authorization calls.
2025-06-24 16:33:21 +01:00
Steven Masley 341b54e604 fix: allow dynamic parameters without requiring org membership (#18531) 2025-06-24 10:33:10 -05:00
Hugo Dutka 5816455207 fix: remove reference to a deleted variable (#18532)
git merge for https://github.com/coder/coder/pull/18511 went wrong on
main.
2025-06-24 15:02:37 +00:00
Sas Swart a4f1c64a9b fix: allow dynamic parameters to consider the prebuilds user an owner (#18529)
This Pull request allows dynamic parameters to list system users in its
search for workspace owners. This is necessary to allow prebuilds to
reconcile prebuilt workspaces and to delete them.
2025-06-24 16:47:01 +02:00
Hugo Dutka 1d2b96b01f feat: implement efficient backend querying on the tasks page (#18488)
Use the `/workspaces?q=has-ai-task=true`,
`/templates?q=has-ai-task=true` and `/aitasks/prompts` endpoints to
fetch Task templates and workspaces on the `/tasks` page.

Also:
- remove documentation link placeholders: the documentation is not in
place yet and is not going to be available before the June 24th code
freeze
- load workspaces and templates in parallel
- replace loading spinners with content skeletons

Related to https://github.com/coder/coder/issues/18454 and
https://github.com/coder/internal/issues/660.
2025-06-24 16:25:52 +02:00
Hugo Dutka 4ff2254e5f chore: remove ai tasks from experiment (#18511)
Closes https://github.com/coder/internal/issues/661
2025-06-24 16:24:01 +02:00
Steven Masley 45ab265df2 chore: add permissions to autobuilder & prebuilder to run wsbuild (#18527)
Read organization member and read files is now required for dynamic
param building.
2025-06-24 08:45:41 -05:00
Jaayden Halko 403f1c38fb fix: add bottom padding back (#18476)
This PR removed the bottom padding from the dashboard layout causing to
bottom areas of some workspaces and templates page to appear too close
to the footer. https://github.com/coder/coder/pull/17981

For now, this fix adds back the bottom padding until a more
comprehensive fix can be done for workspace and templates pages.


<img width="1164" alt="Screenshot 2025-06-20 at 18 00 55"
src="https://github.com/user-attachments/assets/fa1d703b-aa9d-4835-a3f9-16cdf21efa2c"
/>
<img width="1005" alt="Screenshot 2025-06-20 at 18 01 12"
src="https://github.com/user-attachments/assets/d247948b-8286-41f8-be9f-404f5d28fc73"
/>
<img width="732" alt="Screenshot 2025-06-20 at 18 02 31"
src="https://github.com/user-attachments/assets/aa361491-5316-4468-bc47-59a63a3328ec"
/>
2025-06-24 09:04:03 -04:00
Jaayden Halko 31d0c6fb33 feat: add better error display for workspace builds (#18518)
Classic parameters templates

<img width="548" alt="Screenshot 2025-06-23 at 23 27 46"
src="https://github.com/user-attachments/assets/e8e774bf-e201-4a80-a90c-3d6cc3658c20"
/>


Dynamic parameters templates
<img width="541" alt="Screenshot 2025-06-23 at 23 52 05"
src="https://github.com/user-attachments/assets/6a40f144-c0b2-4e16-8137-d31a52b71460"
/>
2025-06-24 09:03:40 -04:00
Yevhenii Shcherbina bca5c35aa2 fix: remove notifications for hard-limited prebuilds (#18528)
Relates to https://github.com/coder/internal/issues/674


Currently, we send notifications to **all template admins** for **every
failed and hard-limited preset**. This can generate excessive
noise—especially when someone is debugging a template and creates
multiple broken versions in quick succession.

For now, we've decided to remove hard-limited preset notifications to
reduce excessive noise.
In the long term, we plan to aggregate failure information and deliver
it on a daily or weekly basis.
2025-06-24 08:43:16 -04:00
Steven Masley 7b152cdd91 chore: increase fileCache hit rate in autobuilds lifecycle (#18507)
`wsbuilder` hits the file cache when running validation. This solution is imperfect, but by first sorting workspaces by their template version id, the cache hit rate should improve.
2025-06-24 07:36:39 -05:00
Cian Johnston 40667855b1 fix: agentcontainers: fix flake when ctx cancelled while running docker inspect (#18526)
Should fix https://github.com/coder/internal/issues/738
2025-06-24 13:30:09 +01:00
Michael Suchacz b091b996af chore: update VPN proto to match additional types used by Coder Desktop (#18504)
Extends vpn.proto with DownloadProgress messages used by Coder Desktop
on Windows.
2025-06-24 11:48:17 +00:00
Hugo Dutka 670fa4a3cc feat: add the /aitasks/prompts endpoint (#18464)
Add an endpoint to fetch AI task prompts for multiple workspace builds
at the same time. A prompt is the value of the "AI Prompt" workspace
build parameter. On main, the only way our API allows fetching workspace
build parameters is by using the `/workspacebuilds/$build_id/parameters`
endpoint, requiring a separate API call for every build.

The Tasks dashboard fetches Task workspaces in order to show them in a
list, and then needs to fetch the value of the `AI Prompt` parameter for
every task workspace (using its latest build id), requiring an
additional API call for each list item. This endpoint will allow the
dashboard to make just 2 calls to render the list: one to fetch task
workspaces, the other to fetch prompts.

<img width="1512" alt="Screenshot 2025-06-20 at 11 33 11"
src="https://github.com/user-attachments/assets/92899999-e922-44c5-8325-b4b23a0d2bff"
/>

Related to https://github.com/coder/internal/issues/660.
2025-06-24 13:06:02 +02:00
Danny Kopping 0238f2926d feat: persist AI task state in template imports & workspace builds (#18449) 2025-06-24 10:36:37 +00:00
Danny Kopping 6cc4cfa346 feat: allow for default presets (#18445) 2025-06-24 12:19:19 +02:00
Mathias Fredriksson 3fb5d0b52d fix(agent/agentcontainers): use correct env for execer commands (#18508) 2025-06-24 12:56:54 +03:00
Kacper Sawicki 7c40f86a6a feat(cli): include license status in support bundle (#18472)
Closes #18207

This PR adds license status to support bundle to help with
troubleshooting license-related issues.

- `license-status.txt`, is added to the support bundle.
    - it contains the same output as the `coder license list` command.
- license output formatter logic has been extracted into a separate
function.
- this allows it to be reused both in the `coder license list` cmd and
in the support bundle generation.
2025-06-24 11:16:31 +02:00
Dean Sheather 2afd1a203e chore: disable devtunnel tests on windows (#18521) 2025-06-24 19:01:29 +10:00
Dean Sheather 9d148e9543 chore: fix wsproxy flakes (#18522) 2025-06-24 19:01:18 +10:00
Cian Johnston d892427b78 fix: do not warn on valid known experiments (#18514)
Fixes https://github.com/coder/coder/issues/18024

* drive-by: renames `handleExperimentsSafe` to
`handleExperimentsAvailable` to better match semantics
* defines list of `codersdk.ExperimentsKnown` and updates
`ReadExperiments` to log on invalid experiments
* typescript-ignores `codersdk.Experiments` so apitypings generates a
valid enum list of possible values of experiment
* updates OverviewPageView to distinguish between known 'hidden'
experiments and unknown 'invalid' experiments
2025-06-24 09:14:41 +01:00
Sas Swart 4f98fd4e6e fix: fix validation error during workspace creation without preset (#18494)
closes https://github.com/coder/coder/issues/18430.

Selecting a preset, and then selecting the "None" preset used to result in a validation error because an invalid preset id ("") was sent to the backend.

---------

Co-authored-by: Jaayden Halko <jaayden@coder.com>
Co-authored-by: Susana Ferreira <susana@coder.com>
2025-06-24 06:48:59 +00:00
Danny Kopping 796dc7aac9 chore: ignore splunk.com in linkspector (#18502) 2025-06-24 07:19:47 +02:00
Steven Masley 5ed0c7abcb chore: improve dynamic parameter validation errors (#18501)
`BuildError` response from `wsbuilder` does not support rich errors from validation. Changed this to use the `Validations` block of codersdk responses to return all errors for invalid parameters.
2025-06-23 15:08:18 -05:00
Steven Masley f6e4ba6ed9 chore: remove per request dynamic parameters opt in and rely on template (#18505)
When in experimental this was used as an escape hatch. Removed to be
consistent with the template author's intentions

Backwards compatible, removing an experimental api field that is no longer used.
2025-06-23 15:04:09 -05:00
Jaayden Halko 6877142a0e feat: create experimental template embed page for dynamic params (#17999)
resolves coder/preview#58
2025-06-23 15:47:30 -04:00
Asher 7dd90f3076 chore: show iframe controls on preview slug only (#18480) 2025-06-23 11:44:26 -08:00
Danny Kopping 4699393522 fix: upsert coder_app resources in case they are persistent (#18509) 2025-06-23 18:50:44 +00:00
Steven Masley 82af2e019d feat: implement dynamic parameter validation (#18482)
# What does this do?

This does parameter validation for dynamic parameters in `wsbuilder`. All input parameters are validated in `coder/coder` before being sent to terraform.

The heart of this PR is [`ResolveParameters`](https://github.com/coder/coder/blob/b65001e89c0577199a8e470c138c51e91cf2350c/coderd/dynamicparameters/resolver.go#L30-L30).

# What else changes?

`wsbuilder` now needs to load the terraform files into memory to succeed. This does add a larger memory requirement to workspace builds.

# Future work

- Sort autostart handling workspaces by template version id. So workspaces with the same template version only load the terraform files once from the db, and store them in the cache.
2025-06-23 12:35:15 -05:00
Steven Masley 7254c08af4 chore: remove parallel queries in the same transaction (#18489)
Parallel concurrent queries cannot be run in the same tx

Was getting this error: https://stackoverflow.com/questions/78472996/go-postgres-pq-unexpected-parse-response-c-with-queryrow
2025-06-23 12:17:58 -05:00
Steven Masley c1b35bf2f6 chore: use database in current context for file cache (#18490)
Using the db.Store when in a TX causes a deadlock for dbmem.
In production, this can cause a deadlock if at the current conn pool
limit.
2025-06-23 11:58:52 -05:00
Steven Masley 659b787b9f chore: set wsbuilder to use preview parameters (#18474)
Use richer `previewtypes.Parameter` for `wsbuilder`. This is a pre-requirement to adding dynamic parameter validation.

The richer type contains more information than the `db` parameter, so the conversion is lossless.
2025-06-23 11:31:53 -05:00
dependabot[bot] ba08d38563 chore: bump github.com/coder/terraform-provider-coder/v2 from 2.6.0 to 2.7.0 (#18499)
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coder/terraform-provider-coder/v2&package-manager=go_modules&previous-version=2.6.0&new-version=2.7.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 13:54:51 +00:00
dependabot[bot] 183eaa21dc ci: bump the github-actions group with 5 updates (#18497)
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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 13:46:08 +00:00
Cian Johnston 2f55e29466 fix: complete job and mark workspace as deleted when no provisioners are available (#18465)
Alternate fix for https://github.com/coder/coder/issues/18080

Modifies wsbuilder to complete the provisioner job and mark the
workspace as deleted if it is clear that no provisioner will be able to
pick up the delete build.

This has a significant advantage of not deviating too much from the
current semantics of `POST /api/v2/workspacebuilds`.
https://github.com/coder/coder/pull/18460 ends up returning a 204 on
orphan delete due to no build being created.

Downside is that we have to duplicate some responsibilities of
provisionerdserver in wsbuilder.

There is a slight gotcha to this approach though: if you stop a
provisioner and then immediately try to orphan-delete, the job will
still be created because of the provisioner heartbeat interval. However
you can cancel it and try again.
2025-06-23 14:07:42 +01:00
Danielle Maywood c3bc1e75ec feat(agent/agentcontainers): fall back to workspace folder name (#18466)
This PR changes the logic for how we decide on an agent name.

Previously it followed these steps:
1. Use a name from `customizations.coder.name`
2. Use a name from the terraform resource `coder_devcontainer`
3. Use the dev container's friendly name

With this change it now does:
1. Use a name from `customizations.coder.name`
2. Use a name from the terraform resource `coder_devcontainer`
3. Use a name from the workspace folder
4. Use the dev container's friendly name

We now attempt to construct a valid agent name from the workspace
folder. Should we fail to construct a valid agent name from the
workspace folder, we will fall back to the dev container's friendly
name.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-23 13:05:39 +01:00
Cian Johnston 0a12ec5fd8 fix(enterprise/coderd): skip org membership check for prebuilds user on group patch (#18329)
Currently, the prebuilds documentation states:

```
### Managing resource quotas

Prebuilt workspaces can be used in conjunction with [resource quotas](../../users/quotas.md).
Because unclaimed prebuilt workspaces are owned by the `prebuilds` user, you can:

1. Configure quotas for any group that includes this user.
1. Set appropriate limits to balance prebuilt workspace availability with resource constraints.

If a quota is exceeded, the prebuilt workspace will fail provisioning the same way other workspaces do.
```

If you need to have a separate quota for prebuilds as opposed to regular
users, you are required to create a separate group, as quotas are
applied to groups.

Currently it is not possible to create a separate 'prebuilds' group with
only the prebuilds user to add a quota. This PR skips the org membership
check specifically for the prebuilds user when patching a group.


![image](https://github.com/user-attachments/assets/2ff566bb-97bd-4c73-917a-903ea54dd7a6)
2025-06-23 10:32:30 +01:00
Danny Kopping 66e8dbbe17 feat: persist generated coder_app id (#18487) 2025-06-23 08:46:18 +00:00
Cian Johnston 49fcffc266 fix!: stop workspace before update (#18425)
Fixes https://github.com/coder/coder/issues/17840

NOTE: calling this out as a breaking change so that it is highly visible
in the changelog.

* CLI: Modifies `coder update` to stop the workspace if already running.
* UI: Modifies "update" button to always stop the workspace if already
running.
2025-06-23 09:12:37 +01:00
jabacrack 725bc3792e fix: restrict database access from outside in docker compose installation (#18229)
Co-authored-by: Atif Ali <atif@coder.com>
2025-06-21 18:46:30 +05:00
DevCats 738442b4d0 chore: add amazon-q icon SVG to static icons (#18295)
Co-authored-by: Atif Ali <atif@coder.com>
2025-06-21 08:41:12 +00:00
Asher 0a483ea2b7 feat: add idle app status (#18415)
"Idle" is more accurate than "complete" since:

1. AgentAPI only knows if the screen is active; it has no way of knowing
    if the task is complete.
2. The LLM might be done with its current prompt, but that does not mean
    the task is complete either (it likely needs refinement).

The "complete" state will be reserved for future definition.

Additionally, in the case where the screen goes idle but the LLM never
reported a status update, we can get an idle icon without a message, and
it looks kinda janky in the UI so if there is no message I display the
state text.

Closes https://github.com/coder/internal/issues/699
2025-06-20 14:34:31 -08:00
Atif Ali 0258f1d771 docs: update Railway.com installation link (#18484) 2025-06-21 02:36:14 +05:00
Jaayden Halko 579c851285 chore: update template opt-in checkbox (#18481)
<img width="848" alt="Screenshot 2025-06-20 at 20 01 55"
src="https://github.com/user-attachments/assets/bd825778-3d10-49e1-bcc3-193516ed3ba6"
/>
2025-06-20 17:18:07 -04:00
Edward Angert cbe4627893 docs: document how to tag coder users in dx data cloud (#17805)
[preview](https://coder.com/docs/@tag-coder-users-dx/admin/integrations/data-cloud)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-20 17:13:36 -04:00
Steven Masley 6e4508e29c chore: assume template versions without tf values to be empty (#18479)
Closes https://github.com/coder/internal/issues/735
2025-06-20 15:05:22 -05:00
ケイラ fae30a00fd chore: remove unnecessary redeclarations in for loops (#18440) 2025-06-20 13:16:55 -06:00
blink-so[bot] 4fe0a4bca2 feat: add ephemeral parameter dialog for workspace start/restart (#18413)
resolves #17709 

FYI, blink created a first draft which was heavily modified.

## Summary

This PR implements ephemeral parameter handling for workspace
start/restart operations when templates use dynamic parameters
(`use_classic_parameter_flow = false`).

<img width="522" alt="Screenshot 2025-06-18 at 14 35 54"
src="https://github.com/user-attachments/assets/450527c0-cc88-4fc3-b0fa-170bdeb5ea51"
/>

<img width="327" alt="Screenshot 2025-06-18 at 14 35 43"
src="https://github.com/user-attachments/assets/ea74bf8e-d127-489d-b406-edfc5ec1e9a8"
/>

![Screenshot 2025-06-18 at 14 41
41](https://github.com/user-attachments/assets/52f1ab99-f3bf-4540-91ac-e385c632de8c)


## Changes

### 1. EphemeralParametersDialog Component
- **New**: `site/src/components/EphemeralParametersDialog/`
- Shows a dialog when starting/restarting workspaces with ephemeral
parameters
- Lists ephemeral parameters with names and descriptions
- Provides options to continue without setting values or navigate to
parameters page

### 2. WorkspaceReadyPage Updates
- Added `checkEphemeralParameters()` function using
`API.getDynamicParameters`
- Modified `handleStart` and `handleRestart` to check for ephemeral
parameters
- Only triggers for templates with `use_classic_parameter_flow = false`
- Shows dialog if ephemeral parameters exist, otherwise proceeds
normally

### 3. BuildParametersPopover Updates
- Added special UI for non-classic parameter flow templates with
ephemeral parameters
- Lists ephemeral parameters with descriptions
- Explains that users must use the workspace parameters page
- Provides direct link to `WorkspaceParametersPageExperimental`

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: jaaydenh <1858163+jaaydenh@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden@coder.com>
2025-06-20 15:04:36 -04:00
Steven Masley 556b095d0f chore: add cacheCloser to cleanup all opened files (#18473) 2025-06-20 13:25:33 -05:00
Steven Masley 9b5d49967c chore: refactor dynamic parameters into dedicated package (#18420)
This PR extracts dynamic parameter rendering logic from
coderd/parameters.go into a new coderd/dynamicparameters package. Partly
for organization and maintainability, but primarily to be reused in
`wsbuilder` to be leveraged as validation.
2025-06-20 13:00:39 -05:00
Susana Ferreira 72f7d70bab feat: allow TemplateAdmin to delete prebuilds via auth layer (#18333)
## Description

This PR adds support for deleting prebuilt workspaces via the
authorization layer. It introduces special-case handling to ensure that
`prebuilt_workspace` permissions are evaluated when attempting to delete
a prebuilt workspace, falling back to the standard `workspace` resource
as needed.

Prebuilt workspaces are a subset of workspaces, identified by having
`owner_id` set to `PREBUILD_SYSTEM_USER`.
This means:
* A user with `prebuilt_workspace.delete` permission is allowed to
**delete only prebuilt workspaces**.
* A user with `workspace.delete` permission can **delete both normal and
prebuilt workspaces**.

⚠️ This implementation is scoped to **deletion operations only**. No
other operations are currently supported for the `prebuilt_workspace`
resource.

To delete a workspace, users must have the following permissions:
* `workspace.read`: to read the current workspace state
* `update`: to modify workspace metadata and related resources during
deletion (e.g., updating the `deleted` field in the database)
* `delete`: to perform the actual deletion of the workspace

## Changes

* Introduced `authorizeWorkspace()` helper to handle prebuilt workspace
authorization logic.
* Ensured both `prebuilt_workspace` and `workspace` permissions are
checked.
* Added comments to clarify the current behavior and limitations.
* Moved `SystemUserID` constant from the `prebuilds` package to the
`database` package `PrebuildsSystemUserID` to resolve an import cycle
(commit
https://github.com/coder/coder/pull/18333/commits/f24e4ab4b6f0a56726fd04be2d7302c9fdb52d53).
* Update middleware `ExtractOrganizationMember` to include system user
members.
2025-06-20 17:36:32 +01:00
Danielle Maywood d61353f468 fix(agent/agentcontainers): read WorkspaceFolder from config (#18467)
Instead of exec'ing `pwd` inside of the container, we instead read
`WorkspaceFolder` from the outcome of `read-configuration`.
2025-06-20 16:34:30 +01:00
Atif Ali 9c1feffded docs: add troubleshooting section to JetBrains Toolbox docs (#18394) 2025-06-20 20:00:56 +05:00
Yevhenii Shcherbina 8e3022ed9e docs: add documentation for prebuild scheduling feature (#18462)
Follow-up to https://github.com/coder/coder/pull/18126

Changes:
- address issue mentioned here:
https://github.com/coder/coder/pull/18126#discussion_r2144557600
- add docs for prebuilds scheduling

---------

Co-authored-by: Danny Kopping <danny@coder.com>
Co-authored-by: Atif Ali <atif@coder.com>
2025-06-20 10:08:47 -04:00
Yevhenii Shcherbina da5d5ba96a fix: implement prebuild schedules methods for dbmem (#18469)
Follow-up to https://github.com/coder/coder/pull/18126
2025-06-20 10:06:06 -04:00
Hugo Dutka 4ceb549c3f chore: close db properly in early exit paths in ConnectToPostgres (#18448)
There were some code paths where if we exited early from the function
the postgres connection would never get cleaned up.

This is the mechanism that cleans up the db - it requires the err
variable to be not nil:
https://github.com/coder/coder/blob/118bf981454188c4989e8b565dec67906616f885/cli/server.go#L2319-L2328
2025-06-20 14:11:52 +02:00
Hugo Dutka 32239b29cb chore: add AI-tasks-specific fields to codersdk.WorkspaceBuild (#18436)
This will be needed by the frontend on the `/task/$id` page to display
the app in the sidebar.

Related to https://github.com/coder/coder/issues/18158
2025-06-20 10:59:34 +02:00
Atif Ali d788ab9e55 feat: improve AppLink error message for coder:// URLs (#18444)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-06-20 13:07:20 +05:00
Mathias Fredriksson bacdc28881 fix(cli)!: enforce selection for multiple agents rather than use randomness (#18427)
In the past we randomly selected workspace agent if there were multiple.
Unless both are running on the same machine with the same configuration,
this would be very confusing behavior for a user.

With the introduction of sub agents (devcontainer agents), we have now
made this an error state and require the specifying of agent when there
is more than one (either normal agent or sub agent).

This aligns with the behavior of e.g. Coder Desktop.

Fixes coder/internal#696
2025-06-19 22:13:35 +03:00
Asher 63b5f0b998 feat: add app iframe controls (#18421)
Add a home and "open in new tab" button.  Other controls are not 
possible due to cross-origin restrictions.

Closes #18178

---------

Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2025-06-19 09:22:36 -08:00
Danielle Maywood b49e62faad fix(agent/agentcontainers): ensure agent name env var is correct (#18457)
Previously, `CODER_WORKSPACE_AGENT_NAME` would always be passed as the
dev container name.

This is invalid for the following scenarios:
- The dev container is specified in terraform
- The dev container has a name customization

This change now runs `ReadConfig` twice. The first read is to extract a
name (if present), from the `devcontainer.json`. The second read will
then use the name we have stored for the dev container (so this could be
either the customization, terraform resource name, or container name).
2025-06-19 16:44:00 +01:00
Mathias Fredriksson 9e7b7f2b28 feat(dogfood/coder): add devcontainer autostart parameter (#18459) 2025-06-19 15:18:02 +00:00
Yevhenii Shcherbina 0f6ca55238 feat: implement scheduling mechanism for prebuilds (#18126)
Closes https://github.com/coder/internal/issues/312
Depends on https://github.com/coder/terraform-provider-coder/pull/408

This PR adds support for defining an **autoscaling block** for
prebuilds, allowing number of desired instances to scale dynamically
based on a schedule.

Example usage:
```
data "coder_workspace_preset" "us-nix" {
  ...
  
  prebuilds = {
    instances = 0                  # default to 0 instances
    
    scheduling = {
      timezone = "UTC"             # a single timezone is used for simplicity
      
      # Scale to 3 instances during the work week
      schedule {
        cron = "* 8-18 * * 1-5"    # from 8AM–6:59PM, Mon–Fri, UTC
        instances = 3              # scale to 3 instances
      }
      
      # Scale to 1 instance on Saturdays for urgent support queries
      schedule {
        cron = "* 8-14 * * 6"      # from 8AM–2:59PM, Sat, UTC
        instances = 1              # scale to 1 instance
      }
    }
  }
}
```

### Behavior
- Multiple `schedule` blocks per `prebuilds` block are supported.
- If the current time matches any defined autoscaling schedule, the
corresponding number of instances is used.
- If no schedule matches, the **default instance count**
(`prebuilds.instances`) is used as a fallback.

### Why
This feature allows prebuild instance capacity to adapt to predictable
usage patterns, such as:
- Scaling up during business hours or high-demand periods
- Reducing capacity during off-hours to save resources

### Cron specification
The cron specification is interpreted as a **continuous time range.**

For example, the expression:

```
* 9-18 * * 1-5
```

is intended to represent a continuous range from **09:00 to 18:59**,
Monday through Friday.

However, due to minor implementation imprecision, it is currently
interpreted as a range from **08:59:00 to 18:58:59**, Monday through
Friday.

This slight discrepancy arises because the evaluation is based on
whether a specific **point in time** falls within the range, using the
`github.com/coder/coder/v2/coderd/schedule/cron` library, which performs
per-minute matching rather than strict range evaluation.

---------

Co-authored-by: Danny Kopping <danny@coder.com>
2025-06-19 11:08:48 -04:00
Mathias Fredriksson 511fd09582 fix(coderd): mark sub agent deletion via boolean instead of delete (#18411)
Deletion of data is uncommon in our database, so the introduction of sub agents
and the deletion of them introduced issues with foreign key assumptions, as can
be seen in coder/internal#685. We could have only addressed the specific case by
allowing cascade deletion of stats as well as handling in the stats collector,
but it's unclear how many more such edge-cases we could run into.

In this change, we mark the rows as deleted via boolean instead, and filter them
out in all relevant queries.

Fixes coder/internal#685
2025-06-19 13:32:51 +00:00
Mathias Fredriksson 68f21fa523 feat(dogfood/coder): add docker volume for... docker (#18455) 2025-06-19 16:10:15 +03:00
Mathias Fredriksson 3ad842bd8f feat(dogfood/coder): add devcontainer-cli module (#18456)
This change adds the `devcontainers-cli` module to ensure the command
has been installed.

Its presence will not change how workspaces behave currently without
additional changes to the terraform.

Updates coder/internal#463
2025-06-19 15:35:56 +03:00
Danielle Maywood a04268a188 feat(agent/agentcontainers): support agent name in customization (#18451)
Relates to https://github.com/coder/internal/issues/732

This PR supports specifying a name that will be used for the
devcontainer agent in the customizations section of the
devcontainer.json configuration file.
2025-06-19 13:21:59 +01:00
Mathias Fredriksson 884ad39bd0 fix(dogfood/coder): use agent name for zed app (#18450) 2025-06-19 10:32:44 +00:00
Danielle Maywood 118bf98145 chore(agent): add workspace owner env var and log dev container app failures (#18433)
Listen to feedback that was missed in
https://github.com/coder/coder/pull/18346

- Adds `CODER_WORKSPACE_OWNER_NAME` into the agent environment.
- Logs warnings for when dev container app creation fails.
2025-06-19 09:37:48 +01:00
Jon Ayers 8b27983d14 fix: fix TestAcquireJobWithCancel_Cancel flake (#18441) 2025-06-18 22:51:13 -04:00
Jon Ayers b0fa3275d2 fix: increase TestAcquireJob_LongPoll timeout to prevent flakiness (#18442)
I'll be honest I'm not even really sure the point of this test but it
was failing due to

```
2025-06-16T15:01:54.0863251Z         	Error:      	Received unexpected error:
2025-06-16T15:01:54.0863554Z         	            	acquire job:
2025-06-16T15:01:54.0864230Z         	            	    github.com/coder/coder/v2/coderd/provisionerdserver.(*server).AcquireJob
2025-06-16T15:01:54.0865173Z         	            	        /home/runner/work/coder/coder/coderd/provisionerdserver/provisionerdserver.go:329
2025-06-16T15:01:54.0865683Z         	            	  - failed to acquire job:
2025-06-16T15:01:54.0866374Z         	            	    github.com/coder/coder/v2/coderd/provisionerdserver.(*Acquirer).AcquireJob
2025-06-16T15:01:54.0867262Z         	            	        /home/runner/work/coder/coder/coderd/provisionerdserver/acquirer.go:148
2025-06-16T15:01:54.0867819Z         	            	  - pq: canceling statement due to user request
```

which is certainly unintended.
2025-06-19 02:50:53 +00:00
Steven Masley 04d202ae07 chore: file cache Release tied 1:1 with an acquire (#18410)
File cache close made idempotent
2025-06-18 18:22:23 -05:00
Hugo Dutka 4039327b1a chore: check version.Err() after version.Next() in ConnectToPostgres (#18437) 2025-06-18 21:44:58 +02:00
Jaayden Halko 7849794701 chore: change feature stage badge from early access to beta (#18435) 2025-06-18 15:18:34 -04:00
Hugo Dutka de07351b8d fix: access the templateVersion.HasAITask field properly (#18434) 2025-06-18 17:23:34 +00:00
Spike Curtis 1357a3a273 chore: improve logging and x11 handler call (#18422)
* use `ctx` instead of `session.Context()` for consistency
* log SSH connection start with the phrase `ssh connection` for symmetry
with the stop log and ease of `grep`'ing.
2025-06-18 21:21:06 +04:00
Hugo Dutka 8f6a5afa4f feat: add backend logic for determining tasks tab visibility (#18401)
This PR implements the backend logic for determining if the Tasks tab
should be visible in the web UI as described in [the
RFC](https://www.notion.so/coderhq/Coder-Tasks-207d579be5928053ab68c8d9a4b59eaa?source=copy_link#210d579be5928013ab5acbe69a2f548b).

The frontend component will be added in a follow-up PR once the entire
Tasks backend is implemented so as not to break the dogfood environment
until then.
2025-06-18 18:32:34 +02:00
Hugo Dutka 591f5db5f6 feat: add has-ai-task filters to the /workspaces and /templates endpoints (#18387)
This PR allows filtering templates and workspaces with the `has-ai-task`
filter as described in the [Coder Tasks
RFC](https://www.notion.so/coderhq/Coder-Tasks-207d579be5928053ab68c8d9a4b59eaa?source=copy_link#20ad579be59280e6a000eb0646d3c2df).
2025-06-18 18:22:45 +02:00
Mathias Fredriksson 56ff0fb65a fix(agent/agentcontainers): make sure arch is set for sub agents (#18428) 2025-06-18 17:35:29 +03:00
blink-so[bot] 2f59cd0c73 fix: improve JetBrains error message to mention Toolbox requirement (#18294)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: kylecarbs <7122116+kylecarbs@users.noreply.github.com>
2025-06-18 19:34:39 +05:00
blink-so[bot] 98a9aa19ce docs: fix swagger documentation for DELETE port share endpoint (#18426)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
Co-authored-by: Cian Johnston <cian@coder.com>
2025-06-18 14:07:53 +00:00
Danielle Maywood 529fb5083c feat(agent/agentcontainers): support apps for dev container agents (#18346)
Add apps to the sub agent based on the dev container customization.

The implementation also provides the following env variables for use in
the devcontainer json

- `CODER_WORKSPACE_AGENT_NAME`
- `CODER_WORKSPACE_USER_NAME`
- `CODER_WORKSPACE_NAME`
- `CODER_DEPLOYMENT_URL`
2025-06-18 14:55:27 +01:00
blink-so[bot] 5e3a225e3b feat: add stop workspace button with confirmation dialog (#18372)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-06-18 17:49:26 +05:00
Charlie Voiselle 44d46469e1 fix: defensively handle nil maps and slices in marshaling (#18418)
Adds a custom marshaler to handle some cases where nils were being
marshaled to nulls, causing the web UI to throw an error.

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-06-17 17:50:18 -04:00
Atif Ali 9cbe02e8b7 docs: update ai agents with module links (#18368)
Updated with module links.
- [ ] Still missing the Amazon Q agent.


[preview](https://coder.com/docs/@atif%2Fai-agents-modules/ai-coder/agents#types-of-coding-agents)

---------

Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-06-17 21:19:42 +01:00
Steven Masley 1672eeb0eb chore: add dynamic parameter template value to telemetry (#18414) 2025-06-17 13:28:56 -05:00
Asher 82c14e00ce feat: add csp headers for embedded apps (#18374)
I modified the proxy host cache we already had and were using for
websocket csp headers to also include the wildcard app host, then used
those for frame-src policies.

I did not add frame-ancestors, since if I understand correctly, those
would go on the app, and this middleware does not come into play there.
Maybe we will want to add it on workspace apps like we do with cors, if
we find apps are setting it to `none` or something.

Closes https://github.com/coder/internal/issues/684
2025-06-17 09:00:32 -08:00
Steven Masley aee96c9eac fix: set fileSize to full length instead of unread portion (#18409)
`content.Len()` would return `0` bytes after a file was fully read.
Since the buffer `Len` function returns the length of the unread
portion.
2025-06-17 10:57:34 -05:00
Mathias Fredriksson 7fa1ad8923 fix(agent/agentcontainers): reduce need to recreate sub agents (#18402) 2025-06-17 18:53:41 +03:00
blink-so[bot] 7e9a9e098c chore: update Terraform to 1.12.2 (#18407)
Updates Terraform from 1.11.4 to 1.12.2 across all relevant files.

Changes include:
- GitHub Actions setup-tf configuration
- Dockerfile configurations (dogfood and base)
- Install script
- Provisioner install.go with version constants
- Test data files (tfstate.json, tfplan.json, version.txt)

Follows the same pattern as PR #17323 which updated to 1.11.4.

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: sreya <4856196+sreya@users.noreply.github.com>
2025-06-18 01:47:38 +10:00
blink-so[bot] 1a693383a9 chore: update Go version to 1.24.4 (#18408)
Updates all Go version references in the codebase to use Go 1.24.4.

## Changes
- Update `go.mod` to use Go 1.24.4
- Update `dogfood/coder/Dockerfile` GO_VERSION to 1.24.4  
- Update `.github/actions/setup-go/action.yaml` default version to
1.24.4
- Update `examples/parameters-dynamic-options/variables.yml` to use
golang:1.24

## Testing
-  All Go version references are consistent (verified with
`scripts/check_go_versions.sh`)
-  Build tested successfully with Go 1.24.4
-  Binary runs correctly

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: sreya <4856196+sreya@users.noreply.github.com>
2025-06-18 01:46:39 +10:00
Mathias Fredriksson b9ac16cb40 test(testutil): improve chan.go error visibility (#18406) 2025-06-17 14:39:31 +00:00
Hugo Dutka ebc769f328 chore: make has_ai_task fields on workspace builds and template versions nullable (#18403)
The fields must be nullable because there’s a period of time between
inserting a row into the database and finishing the “plan” provisioner
job when the final value of the field is unknown.
2025-06-17 16:08:34 +02:00
Mathias Fredriksson d6df1f23a9 fix(agent/agentcontainers): update sub agent client on reconnect (#18399)
Fixes coder/internal#697
2025-06-17 13:58:09 +00:00
Mathias Fredriksson 97474bb28b feat: support devcontainer agents in ui and unify backend (#18332)
This commit consolidates two container endpoints on the backend and improves the
frontend devcontainer support by showing names and displaying apps as
appropriate.

With this change, the frontend now has knowledge of the subagent and we can also
display things like port forwards.

The frontend was updated to show dev container labels on the border as well as
subagent connection status. The recreation flow was also adjusted a bit to show
placeholder app icons when relevant.

Support for apps was also added, although these are still WIP on the backend.
And the port forwarding utility was added in since the sub agents now provide
the necessary info.

Fixes coder/internal#666
2025-06-17 16:06:47 +03:00
Susana Ferreira cda9208580 test: add ReconcileAll tests for multiple actions on expired prebuilds (#18265)
## Description

Adds tests for `ReconcileAll` to verify the full reconciliation flow
when handling expired prebuilds. This complements existing lower-level
tests by checking multiple reconciliation actions (delete + create) at
the higher reconciliation cycle level.

Related with comment:
https://github.com/coder/coder/pull/17996#issuecomment-2910516489
2025-06-17 13:06:36 +01:00
ケイラ 5df70a613d feat: add organization scope for shared ports (#18314) 2025-06-16 16:15:59 -06:00
ケイラ eff2174198 fix: prevent badge text wrapping (#18396)
Closes https://github.com/coder/coder/issues/17927
2025-06-16 14:19:58 -06:00
Steven Masley 5a890c4aec test: fix TestUploadFileLargeModuleFiles flake, context to subtest (#18395)
Declared context outside the subtest t.Parallel.
2025-06-16 18:25:31 +00:00
Edward Angert 5c16079aff docs: add more specific steps and information about oidc refresh tokens (#18336)
closes https://github.com/coder/coder/issues/18307

relates to https://github.com/coder/coder/pull/18318

preview:
-
[refresh-tokens](https://coder.com/docs/@18307-refresh-tokens/admin/users/oidc-auth/refresh-tokens)
-
[configuring-okta](https://coder.com/docs/@18307-refresh-tokens/tutorials/configuring-okta)
~(not sure why @Emyrk 's photo is so huge there though)~ ✔️
- [x] removed from
[idp-sync](https://coder.com/docs/@18307-refresh-tokens/admin/users/idp-sync)

to do:
- move keycloak
- add ping federate and azure
- edit text (possibly placeholders for now - I want to see how it all
relates and edit it again. right now, there's a note about the same
thing in every section in way that's not super helpful/necessary)
- ~convert some paragraphs to OL~ calling this out of scope for now

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-16 13:18:55 -04:00
Jaayden Halko 095007766b fix: template settings checkbox text for dynamic parameters (#18392) 2025-06-16 11:57:01 -04:00
Spike Curtis 86c29770e8 docs: warn about RDP over UDP with Coder Desktop (#18354)
Warns about UDP incompatibility for Coder Connect and RDP over UDP; explains how to disable.

Fixes https://github.com/coder/internal/issues/608

[preview](https://coder.com/docs/@spike%2Finternal-608-rdp-udp-docs/user-guides/workspace-access/remote-desktops#coder-desktop-beta)
2025-06-16 19:30:22 +04:00
Steven Masley 68e9058712 chore: use coder repository for large module in dogfood (#18391) 2025-06-16 14:56:33 +00:00
Hugo Dutka fa86cc4adf chore: support the has_ai_task column in template version and workspace insert queries (#18385)
https://github.com/coder/coder/pull/18359 added the `has_ai_task`
columns on the `workspace_builds` and `template_versions` tables.
2025-06-16 16:07:16 +02:00
Steven Masley d5624668d4 chore: use large modules in dogfood template (#18389)
Large modules can potentially break or slow down template behaviors. Our
primary dogfood template should experience this if it becomes an issue.

Just trying to catch things in dogfood before we experience them in the
wild.
2025-06-16 08:51:45 -05:00
Steven Masley 1d1070d051 chore: ensure proper rbac permissions on 'Acquire' file in the cache (#18348)
The file cache was caching the `Unauthorized` errors if a user without
the right perms opened the file first. So all future opens would fail.

Now the cache always opens with a subject that can read files. And authz
is checked on the Acquire per user.
2025-06-16 13:40:45 +00:00
dependabot[bot] d83706bd5b ci: bump the github-actions group with 7 updates (#18388)
Bumps the github-actions group with 7 updates:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.12.0` | `2.12.1` |
| [chromaui/action](https://github.com/chromaui/action) | `12.1.1` |
`12.2.0` |
| [actions/attest](https://github.com/actions/attest) | `2.3.0` |
`2.4.0` |
| [fluxcd/flux2](https://github.com/fluxcd/flux2) | `2.6.1` | `2.6.2` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `115870536a85eaf050e369291c7895748ff12aea` |
`d52d20fa3f981cb852b861fd8f55308b5fe29637` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.28.19` | `3.29.0` |
|
[umbrelladocs/action-linkspector](https://github.com/umbrelladocs/action-linkspector)
| `1.3.4` | `1.3.5` |

Updates `step-security/harden-runner` from 2.12.0 to 2.12.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.12.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Detection capabilities have been upgraded to better recognize
attempts at runner tampering. These improvements are informed by
real-world incident learnings, including analysis of anomalous behaviors
observed in the tj-actions and reviewdog supply chain attack.</li>
<li>Resolved an issue where the block policy was not enforced correctly
when the GitHub Actions job was running inside a container on a
self-hosted VM runner.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.12.1">https://github.com/step-security/harden-runner/compare/v2...v2.12.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/002fdce3c6a235733a90a27c80493a3241e56863"><code>002fdce</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/544">#544</a>
from step-security/rc-21</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/2489e3fcb3d00eac3cb27c9b490431a4d26eac58"><code>2489e3f</code></a>
Merge branch 'main' into rc-21</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/75dd441a816c3c7ea21313ec8ff21d9f7b69f534"><code>75dd441</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/555">#555</a>
from step-security/dependabot/github_actions/step-sec...</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4381ace9c4db180c9cc8ff9a6dd4220f17a95690"><code>4381ace</code></a>
Bump step-security/publish-unit-test-result-action from 2.19.0 to
2.20.0</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/a9da90b635b492e68edb2a24949fcab1e313e9eb"><code>a9da90b</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/553">#553</a>
from h0x0er/feat/container-workflows</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/a60ef21c0c1f49c7ac6c8d65b6f4d16d419789c1"><code>a60ef21</code></a>
update</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4ad512f16553ff1c022684cc96be0329a7618db8"><code>4ad512f</code></a>
Merge branch 'rc-21' into feat/container-workflows</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/6b41a3923518db2abe77790e47793760b5c47c28"><code>6b41a39</code></a>
fixed test case</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/fa70c45ca9a73bcef023a3e6afac49ffa3007480"><code>fa70c45</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/eb47845632e48a7532e7e363ba78b9bc48c09264"><code>eb47845</code></a>
self-hosted: refactored block-policy apply logic</li>
<li>Additional commits viewable in <a
href="https://github.com/step-security/harden-runner/compare/0634a2670c59f64b4a01f0f96f84700a4088b9f0...002fdce3c6a235733a90a27c80493a3241e56863">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromaui/action` from 12.1.1 to 12.2.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/c50adf8eaa8c2878af3263499a73077854de39d4"><code>c50adf8</code></a>
v12.2.0</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/8536229ee904071f8edce292596f6dbe0da96b9b...c50adf8eaa8c2878af3263499a73077854de39d4">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/attest` from 2.3.0 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/attest/releases">actions/attest's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​actions/github</code> from 6.0.0 to 6.0.1 in the
npm-production group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/242">actions/attest#242</a></li>
<li>Bump undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/246">actions/attest#246</a></li>
<li>Add path to created attestation in a well-known summary file by <a
href="https://github.com/kommendorkapten"><code>@​kommendorkapten</code></a>
in <a
href="https://redirect.github.com/actions/attest/pull/252">actions/attest#252</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/kommendorkapten"><code>@​kommendorkapten</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/attest/pull/252">actions/attest#252</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/attest/compare/v2...v2.4.0">https://github.com/actions/attest/compare/v2...v2.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/attest/commit/ce27ba3b4a9a139d9a20a4a07d69fabb52f1e5bc"><code>ce27ba3</code></a>
bump package version to 2.4.0 (<a
href="https://redirect.github.com/actions/attest/issues/253">#253</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/6a89e1286443a80c6d1e0cebb7b24d8299c16774"><code>6a89e12</code></a>
Add path to created attestation in a well-known summary file (<a
href="https://redirect.github.com/actions/attest/issues/252">#252</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/cbc14bbf255d1e79ad201d4308009aabd79cafdc"><code>cbc14bb</code></a>
Bump the npm-development group with 3 updates (<a
href="https://redirect.github.com/actions/attest/issues/250">#250</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/b87aa13652d8ee3c0c86d3582b965c842f7f388f"><code>b87aa13</code></a>
Bump the npm-development group across 1 directory with 5 updates (<a
href="https://redirect.github.com/actions/attest/issues/249">#249</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/5ae9aa28e10f70b771c67101892b7ffc141ef958"><code>5ae9aa2</code></a>
Bump undici from 5.28.5 to 5.29.0 (<a
href="https://redirect.github.com/actions/attest/issues/246">#246</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/4119d34e49ca6230f84a5e799710eae4f2428d02"><code>4119d34</code></a>
Bump the npm-development group across 1 directory with 6 updates (<a
href="https://redirect.github.com/actions/attest/issues/245">#245</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/7e777b150d7bec9c2cfe2c0993b186c15e97e81c"><code>7e777b1</code></a>
Bump <code>@​actions/github</code> from 6.0.0 to 6.0.1 in the
npm-production group (<a
href="https://redirect.github.com/actions/attest/issues/242">#242</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/4d8a13a13f8c2075b78844846f6d7e38b6a920bf"><code>4d8a13a</code></a>
Bump super-linter/super-linter in the actions-minor group (<a
href="https://redirect.github.com/actions/attest/issues/244">#244</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/647f15244eb261577c4910e1356026e9c1d9cda9"><code>647f152</code></a>
Bump the npm-development group with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/240">#240</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/20551343079b1bce85b235f46add92bbbddb8a7a"><code>2055134</code></a>
Bump the npm-development group with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/239">#239</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/attest/compare/afd638254319277bb3d7f0a234478733e2e46a73...ce27ba3b4a9a139d9a20a4a07d69fabb52f1e5bc">compare
view</a></li>
</ul>
</details>
<br />

Updates `fluxcd/flux2` from 2.6.1 to 2.6.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fluxcd/flux2/releases">fluxcd/flux2's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.2</h2>
<h2>What's Changed</h2>
<ul>
<li>[release/v2.6.x] fix: Allow Azure CLI calls in <code>flux push
artifact --provider azure</code> on DevOps runners by <a
href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in <a
href="https://redirect.github.com/fluxcd/flux2/pull/5396">fluxcd/flux2#5396</a></li>
<li>[release/v2.6.x] Fix <code>knownhosts key mismatch</code> regression
bug by <a
href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in <a
href="https://redirect.github.com/fluxcd/flux2/pull/5405">fluxcd/flux2#5405</a></li>
<li>[release/v2.6.x] Update toolkit components by <a
href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in <a
href="https://redirect.github.com/fluxcd/flux2/pull/5410">fluxcd/flux2#5410</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fluxcd/flux2/compare/v2.6.1...v2.6.2">https://github.com/fluxcd/flux2/compare/v2.6.1...v2.6.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fluxcd/flux2/commit/a48f81a66c4ca9fbd993233ab99dd03a7cfbe09a"><code>a48f81a</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5410">#5410</a>
from fluxcd/backport-5409-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/55104dc188ec3015c64fa6452db179fc081e8a91"><code>55104dc</code></a>
Update toolkit components</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/e771ff28abd76684f43122b3becd99ae31a7cdb7"><code>e771ff2</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5405">#5405</a>
from fluxcd/backport-5404-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/998fe11166a950f54fe20c5bb94552a4c701ff0a"><code>998fe11</code></a>
Upgrade dependencies</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/a6ac4c5b60f4e94e1b4a12ca579648985020f9c7"><code>a6ac4c5</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5396">#5396</a>
from fluxcd/backport-5390-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/0d397d7d1f8cc62c4d201f10b0d8b61bcfdcb97d"><code>0d397d7</code></a>
Introduce support for shelling out to Azure binaries in
authentication</li>
<li>See full diff in <a
href="https://github.com/fluxcd/flux2/compare/b73c7f7191086ca7629840e680e71873349787f8...a48f81a66c4ca9fbd993233ab99dd03a7cfbe09a">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
115870536a85eaf050e369291c7895748ff12aea to
d52d20fa3f981cb852b861fd8f55308b5fe29637
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/d52d20fa3f981cb852b861fd8f55308b5fe29637"><code>d52d20f</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.26 to 24.0.1
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2587">#2587</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/f1c0eb959957d4094cf86adeb8bb4852f373e197"><code>f1c0eb9</code></a>
chore(deps-dev): bump eslint-plugin-prettier from 5.4.0 to 5.4.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2578">#2578</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/944a0f723952a370222de3178b25805235c65933"><code>944a0f7</code></a>
chore(deps-dev): bump eslint-plugin-jest from 28.13.0 to 28.13.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2585">#2585</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/3dbc1e181273d808ccff822a6e00cf18b6628ef0"><code>3dbc1e1</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2592">#2592</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/7a7221b7baecf19ec83f6a411a2670a43174c883"><code>7a7221b</code></a>
chore(deps): bump github/codeql-action from 3.28.18 to 3.29.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2588">#2588</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/c260d49a827b5eb266673bed7871c5d3ee9b5aef"><code>c260d49</code></a>
feat: add any_added to outputs (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2567">#2567</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/b1ccff8c0892ad141d7d2de6f31e526a9dad931f"><code>b1ccff8</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2591">#2591</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/a892f50f7a7187bc288633c09230b09ce7ad8fd0"><code>a892f50</code></a>
docs: update link to glob patterns (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2590">#2590</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5ca5422070674a4bb487ecebf3c33251f3723c9b"><code>5ca5422</code></a>
chore(deps-dev): bump ts-jest from 29.3.4 to 29.4.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2589">#2589</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4140eb99d2cced9bfd78375c2088371853262f79"><code>4140eb9</code></a>
chore(deps-dev): bump eslint-plugin-jest from 28.12.0 to 28.13.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2583">#2583</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/115870536a85eaf050e369291c7895748ff12aea...d52d20fa3f981cb852b861fd8f55308b5fe29637">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.19 to 3.29.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.0</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.0/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/ce28f5bb42b7a9f2c824e633a3f6ee835bab6858"><code>ce28f5b</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2926">#2926</a>
from github/update-v3.29.0-e8799281c</li>
<li><a
href="https://github.com/github/codeql-action/commit/bc251b7932638a7881a8db15d1aaf0151642af99"><code>bc251b7</code></a>
Update changelog for v3.29.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/e8799281c8dee3b2e1aaed2c059e530fcfdc2d6d"><code>e879928</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2925">#2925</a>
from github/update-bundle/codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/efd43b3097c094d883d91934155f0a32af09dff7"><code>efd43b3</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/7cb9b16051842e6c23c8b9fbcf92481f92d0644a"><code>7cb9b16</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2912">#2912</a>
from github/henrymercer/bump-minimum-codeql-2.16.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/3855117ba18b27e082b12e3e92e00d1b52aaa605"><code>3855117</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/f5d4e2a7ca2a5826357748bb8743390a4775946f"><code>f5d4e2a</code></a>
Update default bundle to codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/22deae890c55a1dc3ffba1aa20ad4148284e72d1"><code>22deae8</code></a>
Update package-lock.json</li>
<li><a
href="https://github.com/github/codeql-action/commit/df2a830ca4348a013f4804b56f41795f408f1e4e"><code>df2a830</code></a>
Merge branch 'main' into henrymercer/bump-minimum-codeql-2.16.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/b1e4dc3db58c9601794e22a9f6d28d45461b9dbf"><code>b1e4dc3</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2916">#2916</a>
from github/dependabot/npm_and_yarn/npm-5cdccdc43f</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/fca7ace96b7d713c7035871441bd52efbe39e27e...ce28f5bb42b7a9f2c824e633a3f6ee835bab6858">compare
view</a></li>
</ul>
</details>
<br />

Updates `umbrelladocs/action-linkspector` from 1.3.4 to 1.3.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/umbrelladocs/action-linkspector/releases">umbrelladocs/action-linkspector's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.3.5</h2>
<p>v1.3.5: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/45">#45</a>
- Update linkspector version to 0.4.5</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/e2ccef58c4b9eb89cd71ee23a8629744bba75aa6"><code>e2ccef5</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/45">#45</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/6cc23b20f1b7de3860f639255ccebc2b6428c62e"><code>6cc23b2</code></a>
Update linkspector version to 0.4.5</li>
<li>See full diff in <a
href="https://github.com/umbrelladocs/action-linkspector/compare/a0567ce1c7c13de4a2358587492ed43cab5d0102...e2ccef58c4b9eb89cd71ee23a8629744bba75aa6">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 13:28:00 +00:00
Edward Angert 23067dfcbd docs: add documentation for installing Coder on Azure with Kubernetes (#16216)
closes #16074 


[preview](https://coder.com/docs/@16074-azure-app-gateway/install/kubernetes/kubernetes-azure-app-gateway)

---------

Co-authored-by: M Atif Ali <atif@coder.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-16 09:13:14 -04:00
dependabot[bot] cba99a13e7 ci: bump the github-actions group with 6 updates (#18386)
Bumps the github-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.12.0` | `2.12.1` |
| [chromaui/action](https://github.com/chromaui/action) | `12.1.1` |
`12.2.0` |
| [actions/attest](https://github.com/actions/attest) | `2.3.0` |
`2.4.0` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `115870536a85eaf050e369291c7895748ff12aea` |
`d52d20fa3f981cb852b861fd8f55308b5fe29637` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.28.19` | `3.29.0` |
|
[umbrelladocs/action-linkspector](https://github.com/umbrelladocs/action-linkspector)
| `1.3.4` | `1.3.5` |

Updates `step-security/harden-runner` from 2.12.0 to 2.12.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.12.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Detection capabilities have been upgraded to better recognize
attempts at runner tampering. These improvements are informed by
real-world incident learnings, including analysis of anomalous behaviors
observed in the tj-actions and reviewdog supply chain attack.</li>
<li>Resolved an issue where the block policy was not enforced correctly
when the GitHub Actions job was running inside a container on a
self-hosted VM runner.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.12.1">https://github.com/step-security/harden-runner/compare/v2...v2.12.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/002fdce3c6a235733a90a27c80493a3241e56863"><code>002fdce</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/544">#544</a>
from step-security/rc-21</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/2489e3fcb3d00eac3cb27c9b490431a4d26eac58"><code>2489e3f</code></a>
Merge branch 'main' into rc-21</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/75dd441a816c3c7ea21313ec8ff21d9f7b69f534"><code>75dd441</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/555">#555</a>
from step-security/dependabot/github_actions/step-sec...</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4381ace9c4db180c9cc8ff9a6dd4220f17a95690"><code>4381ace</code></a>
Bump step-security/publish-unit-test-result-action from 2.19.0 to
2.20.0</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/a9da90b635b492e68edb2a24949fcab1e313e9eb"><code>a9da90b</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/553">#553</a>
from h0x0er/feat/container-workflows</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/a60ef21c0c1f49c7ac6c8d65b6f4d16d419789c1"><code>a60ef21</code></a>
update</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4ad512f16553ff1c022684cc96be0329a7618db8"><code>4ad512f</code></a>
Merge branch 'rc-21' into feat/container-workflows</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/6b41a3923518db2abe77790e47793760b5c47c28"><code>6b41a39</code></a>
fixed test case</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/fa70c45ca9a73bcef023a3e6afac49ffa3007480"><code>fa70c45</code></a>
update agent</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/eb47845632e48a7532e7e363ba78b9bc48c09264"><code>eb47845</code></a>
self-hosted: refactored block-policy apply logic</li>
<li>Additional commits viewable in <a
href="https://github.com/step-security/harden-runner/compare/0634a2670c59f64b4a01f0f96f84700a4088b9f0...002fdce3c6a235733a90a27c80493a3241e56863">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromaui/action` from 12.1.1 to 12.2.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/c50adf8eaa8c2878af3263499a73077854de39d4"><code>c50adf8</code></a>
v12.2.0</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/8536229ee904071f8edce292596f6dbe0da96b9b...c50adf8eaa8c2878af3263499a73077854de39d4">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/attest` from 2.3.0 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/attest/releases">actions/attest's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​actions/github</code> from 6.0.0 to 6.0.1 in the
npm-production group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/242">actions/attest#242</a></li>
<li>Bump undici from 5.28.5 to 5.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/246">actions/attest#246</a></li>
<li>Add path to created attestation in a well-known summary file by <a
href="https://github.com/kommendorkapten"><code>@​kommendorkapten</code></a>
in <a
href="https://redirect.github.com/actions/attest/pull/252">actions/attest#252</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/kommendorkapten"><code>@​kommendorkapten</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/attest/pull/252">actions/attest#252</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/attest/compare/v2...v2.4.0">https://github.com/actions/attest/compare/v2...v2.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/attest/commit/ce27ba3b4a9a139d9a20a4a07d69fabb52f1e5bc"><code>ce27ba3</code></a>
bump package version to 2.4.0 (<a
href="https://redirect.github.com/actions/attest/issues/253">#253</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/6a89e1286443a80c6d1e0cebb7b24d8299c16774"><code>6a89e12</code></a>
Add path to created attestation in a well-known summary file (<a
href="https://redirect.github.com/actions/attest/issues/252">#252</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/cbc14bbf255d1e79ad201d4308009aabd79cafdc"><code>cbc14bb</code></a>
Bump the npm-development group with 3 updates (<a
href="https://redirect.github.com/actions/attest/issues/250">#250</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/b87aa13652d8ee3c0c86d3582b965c842f7f388f"><code>b87aa13</code></a>
Bump the npm-development group across 1 directory with 5 updates (<a
href="https://redirect.github.com/actions/attest/issues/249">#249</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/5ae9aa28e10f70b771c67101892b7ffc141ef958"><code>5ae9aa2</code></a>
Bump undici from 5.28.5 to 5.29.0 (<a
href="https://redirect.github.com/actions/attest/issues/246">#246</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/4119d34e49ca6230f84a5e799710eae4f2428d02"><code>4119d34</code></a>
Bump the npm-development group across 1 directory with 6 updates (<a
href="https://redirect.github.com/actions/attest/issues/245">#245</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/7e777b150d7bec9c2cfe2c0993b186c15e97e81c"><code>7e777b1</code></a>
Bump <code>@​actions/github</code> from 6.0.0 to 6.0.1 in the
npm-production group (<a
href="https://redirect.github.com/actions/attest/issues/242">#242</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/4d8a13a13f8c2075b78844846f6d7e38b6a920bf"><code>4d8a13a</code></a>
Bump super-linter/super-linter in the actions-minor group (<a
href="https://redirect.github.com/actions/attest/issues/244">#244</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/647f15244eb261577c4910e1356026e9c1d9cda9"><code>647f152</code></a>
Bump the npm-development group with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/240">#240</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/20551343079b1bce85b235f46add92bbbddb8a7a"><code>2055134</code></a>
Bump the npm-development group with 4 updates (<a
href="https://redirect.github.com/actions/attest/issues/239">#239</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/attest/compare/afd638254319277bb3d7f0a234478733e2e46a73...ce27ba3b4a9a139d9a20a4a07d69fabb52f1e5bc">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
115870536a85eaf050e369291c7895748ff12aea to
d52d20fa3f981cb852b861fd8f55308b5fe29637
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/d52d20fa3f981cb852b861fd8f55308b5fe29637"><code>d52d20f</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.26 to 24.0.1
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2587">#2587</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/f1c0eb959957d4094cf86adeb8bb4852f373e197"><code>f1c0eb9</code></a>
chore(deps-dev): bump eslint-plugin-prettier from 5.4.0 to 5.4.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2578">#2578</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/944a0f723952a370222de3178b25805235c65933"><code>944a0f7</code></a>
chore(deps-dev): bump eslint-plugin-jest from 28.13.0 to 28.13.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2585">#2585</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/3dbc1e181273d808ccff822a6e00cf18b6628ef0"><code>3dbc1e1</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2592">#2592</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/7a7221b7baecf19ec83f6a411a2670a43174c883"><code>7a7221b</code></a>
chore(deps): bump github/codeql-action from 3.28.18 to 3.29.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2588">#2588</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/c260d49a827b5eb266673bed7871c5d3ee9b5aef"><code>c260d49</code></a>
feat: add any_added to outputs (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2567">#2567</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/b1ccff8c0892ad141d7d2de6f31e526a9dad931f"><code>b1ccff8</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2591">#2591</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/a892f50f7a7187bc288633c09230b09ce7ad8fd0"><code>a892f50</code></a>
docs: update link to glob patterns (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2590">#2590</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5ca5422070674a4bb487ecebf3c33251f3723c9b"><code>5ca5422</code></a>
chore(deps-dev): bump ts-jest from 29.3.4 to 29.4.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2589">#2589</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4140eb99d2cced9bfd78375c2088371853262f79"><code>4140eb9</code></a>
chore(deps-dev): bump eslint-plugin-jest from 28.12.0 to 28.13.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2583">#2583</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/115870536a85eaf050e369291c7895748ff12aea...d52d20fa3f981cb852b861fd8f55308b5fe29637">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.19 to 3.29.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.29.0</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.29.0/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.29.0 - 11 Jun 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.22.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li>
<li>Bump minimum CodeQL bundle version to 2.16.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li>
</ul>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/ce28f5bb42b7a9f2c824e633a3f6ee835bab6858"><code>ce28f5b</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2926">#2926</a>
from github/update-v3.29.0-e8799281c</li>
<li><a
href="https://github.com/github/codeql-action/commit/bc251b7932638a7881a8db15d1aaf0151642af99"><code>bc251b7</code></a>
Update changelog for v3.29.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/e8799281c8dee3b2e1aaed2c059e530fcfdc2d6d"><code>e879928</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2925">#2925</a>
from github/update-bundle/codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/efd43b3097c094d883d91934155f0a32af09dff7"><code>efd43b3</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/7cb9b16051842e6c23c8b9fbcf92481f92d0644a"><code>7cb9b16</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2912">#2912</a>
from github/henrymercer/bump-minimum-codeql-2.16.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/3855117ba18b27e082b12e3e92e00d1b52aaa605"><code>3855117</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/f5d4e2a7ca2a5826357748bb8743390a4775946f"><code>f5d4e2a</code></a>
Update default bundle to codeql-bundle-v2.22.0</li>
<li><a
href="https://github.com/github/codeql-action/commit/22deae890c55a1dc3ffba1aa20ad4148284e72d1"><code>22deae8</code></a>
Update package-lock.json</li>
<li><a
href="https://github.com/github/codeql-action/commit/df2a830ca4348a013f4804b56f41795f408f1e4e"><code>df2a830</code></a>
Merge branch 'main' into henrymercer/bump-minimum-codeql-2.16.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/b1e4dc3db58c9601794e22a9f6d28d45461b9dbf"><code>b1e4dc3</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2916">#2916</a>
from github/dependabot/npm_and_yarn/npm-5cdccdc43f</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/fca7ace96b7d713c7035871441bd52efbe39e27e...ce28f5bb42b7a9f2c824e633a3f6ee835bab6858">compare
view</a></li>
</ul>
</details>
<br />

Updates `umbrelladocs/action-linkspector` from 1.3.4 to 1.3.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/umbrelladocs/action-linkspector/releases">umbrelladocs/action-linkspector's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.3.5</h2>
<p>v1.3.5: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/45">#45</a>
- Update linkspector version to 0.4.5</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/e2ccef58c4b9eb89cd71ee23a8629744bba75aa6"><code>e2ccef5</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/45">#45</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/6cc23b20f1b7de3860f639255ccebc2b6428c62e"><code>6cc23b2</code></a>
Update linkspector version to 0.4.5</li>
<li>See full diff in <a
href="https://github.com/umbrelladocs/action-linkspector/compare/a0567ce1c7c13de4a2358587492ed43cab5d0102...e2ccef58c4b9eb89cd71ee23a8629744bba75aa6">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:39:39 +00:00
dependabot[bot] 2dadcc98c3 chore: bump github.com/gen2brain/beeep from 0.0.0-20220402123239-6a3042f4b71a to 0.11.1 (#18383)
Bumps [github.com/gen2brain/beeep](https://github.com/gen2brain/beeep)
from 0.0.0-20220402123239-6a3042f4b71a to 0.11.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/gen2brain/beeep/commits/v0.11.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gen2brain/beeep&package-manager=go_modules&previous-version=0.0.0-20220402123239-6a3042f4b71a&new-version=0.11.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:07:51 +00:00
dependabot[bot] b8174f2912 chore: bump github.com/mark3labs/mcp-go from 0.31.0 to 0.32.0 (#18382)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.31.0 to 0.32.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.32.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(mcp): add NewToolResultErrorf by <a
href="https://github.com/icholy"><code>@​icholy</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/357">mark3labs/mcp-go#357</a></li>
<li>feat(mcptest): extend test server with prompt and resource support
by <a href="https://github.com/vasayxtx"><code>@​vasayxtx</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/346">mark3labs/mcp-go#346</a></li>
<li>[streamable-http] Add ability to override the http.Client by <a
href="https://github.com/tra4less"><code>@​tra4less</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/359">mark3labs/mcp-go#359</a></li>
<li>fixed logo issue in home page by <a
href="https://github.com/asaf-shitrit"><code>@​asaf-shitrit</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/364">mark3labs/mcp-go#364</a></li>
<li>feat(mcptest): Change <code>Server.Start</code> to accept a
<code>context.Context</code>. by <a
href="https://github.com/octo"><code>@​octo</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/339">mark3labs/mcp-go#339</a></li>
<li>fix(test/stdio): address io:read/write on closed pipe error by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/360">mark3labs/mcp-go#360</a></li>
<li>[SSE][OAuth] Add OAuth support to SSE client by <a
href="https://github.com/giridhar-murthy-glean"><code>@​giridhar-murthy-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/340">mark3labs/mcp-go#340</a></li>
<li>More comprehensive docs by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/374">mark3labs/mcp-go#374</a></li>
<li>fix(srv/stream): properly remove sessionTool to prevent memory leak
by <a href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/365">mark3labs/mcp-go#365</a></li>
<li>fix: SSE parser now correctly handles events without event field by
<a href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/376">mark3labs/mcp-go#376</a></li>
<li>fix: ignore session IDs in stateless mode instead of rejecting them
by <a href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/375">mark3labs/mcp-go#375</a></li>
<li>support search www doc by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/378">mark3labs/mcp-go#378</a></li>
<li>Optimize docs by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/386">mark3labs/mcp-go#386</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/icholy"><code>@​icholy</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/357">mark3labs/mcp-go#357</a></li>
<li><a href="https://github.com/vasayxtx"><code>@​vasayxtx</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/346">mark3labs/mcp-go#346</a></li>
<li><a href="https://github.com/tra4less"><code>@​tra4less</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/359">mark3labs/mcp-go#359</a></li>
<li><a
href="https://github.com/asaf-shitrit"><code>@​asaf-shitrit</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/364">mark3labs/mcp-go#364</a></li>
<li><a
href="https://github.com/giridhar-murthy-glean"><code>@​giridhar-murthy-glean</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/340">mark3labs/mcp-go#340</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.31.0...v0.32.0">https://github.com/mark3labs/mcp-go/compare/v0.31.0...v0.32.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/5c49f6352918f279dfa45f20f7af1a7a1bc7a84f"><code>5c49f63</code></a>
more docs fixes</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/b5db567ddc0f2b652483a0253936773c8aa0bba8"><code>b5db567</code></a>
improve docs some more</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/39438133009a953ba41312a8c68d133f121162a6"><code>3943813</code></a>
Optimize docs (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/386">#386</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8c7a09d3d24fa105e0a9ddfe804002fdce52504c"><code>8c7a09d</code></a>
Use fuzzy search</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/dc234adec18e6d7543373cbae8d8f3d886f5e7e5"><code>dc234ad</code></a>
support search doc (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/378">#378</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c3e97239d4fb6ca1458eb62b9e8cbbbe4fe43a10"><code>c3e9723</code></a>
fix: ignore session IDs in stateless mode instead of rejecting them (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/375">#375</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/75abd9ae9285affc523e3574d76e800e051d425f"><code>75abd9a</code></a>
fix: SSE parser now correctly handles events without event field (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/376">#376</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/cf6a2e92d3673c9cb3be1e2b075208e73deb0727"><code>cf6a2e9</code></a>
fix(srv/stream): properly remove sessionTool to prevent memory leak (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/365">#365</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/564b66947f663ae473a782b1ef5f157cd171eb5f"><code>564b669</code></a>
cleanup</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6ac18430b11f0918bca81e7c0977d47c8d744956"><code>6ac1843</code></a>
fix links</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.31.0...v0.32.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.31.0&new-version=0.32.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 12:07:04 +00:00
Atif Ali acf7d86edd docs: add winget installation step to Coder Desktop Windows (#18325)
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-06-15 21:41:29 +05:00
Callum Styan 068f9a0d84 feat: include read/write byte stats in scaletests JSON report (#17777)
PR to fix https://github.com/coder/coder/issues/12157

---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
Co-authored-by: joobisb <joobisb@gmail.com>
2025-06-13 14:33:55 -07:00
Asher 4bd5609e13 feat: add status watcher to MCP server (#18320)
This is meant to complement the existing task reporter since the LLM
does not call it reliably.

It also includes refactoring to use the common agent flags/env vars.
2025-06-13 12:53:43 -08:00
Asher 5bcde58bdc fix: use matching state in status list (#18349)
It was using the latest state for all statuses, so if the last status
was "failing" for example every status would show the failing icon.
2025-06-13 12:15:56 -08:00
Jaayden Halko dc5f69ebfe fix: show error message for incompatible parameters (#18365)
resolves coder/preview#148

If there are any immutable params with diagnostics on the workspace
parameters page, display this error dialog.

<img width="838" alt="Screenshot 2025-06-13 at 18 06 36"
src="https://github.com/user-attachments/assets/47a9ad04-7969-4567-a5fc-39301c5f830c"
/>
2025-06-13 14:52:29 -04:00
Jaayden Halko 9a432b8d9f fix: add workspace owner id as query param to websocket (#18363)
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-06-13 14:49:32 -04:00
Steven Masley c1341cccdd feat: use proto streams to increase maximum module files payload (#18268)
This PR implements protobuf streaming to handle large module files by:
1. **Streaming large payloads**: When module files exceed the 4MB limit,
they're streamed in chunks using a new UploadFile RPC method
2. **Database storage**: Streamed files are stored in the database and
referenced by hash for deduplication
3. **Backward compatibility**: Small module files continue using the
existing direct payload method
2025-06-13 12:46:26 -05:00
Hugo Dutka 8e29ee50a3 feat: add ai tasks migrations (#18359)
Adds database migrations required for the Tasks feature.

There's a slight difference between the migrations in this PR and the
RFC: this PR adds `NOT NULL` constraints to the `has_ai_task` columns.
It was an oversight on my part when I wrote the RFC - I assumed the
`DEFAULT FALSE` value would make the columns implicitly NOT NULL, but
that's not the case with Postgres. We have no use for the NULL value.

The `DEFAULT FALSE` statement ensures that the migration will pass even
when there are existing rows in the template version and workspace
builds tables, so there's no danger in adding the `NOT NULL`
constraints.
2025-06-13 15:54:02 +02:00
Danielle Maywood 0ef62264ba fix(agent/agentcontainers): treat customizations as array (#18357)
This PR fixes a mistake from the previous PR
https://github.com/coder/coder/pull/18342. Merged configuration results
in the customization being an array not an object.

This PR also moves `displayApps` from being an array to being an object,
like the terraform provider has.
2025-06-13 14:48:12 +01:00
Mathias Fredriksson 949ab4b2f6 fix(site): use correct order of agent/workspace in AgentSSHButton (#18328) 2025-06-13 12:33:23 +03:00
Danielle Maywood dd150264bc feat(agent/agentcontainers): support displayApps from devcontainer config (#18342)
Updates the agent injection routine to read the dev container's
configuration so we can add display apps to the sub agent.
2025-06-12 23:36:23 +01:00
Asher bc74166963 feat: check for external auth before running task (#18339)
It seems we do not validate external auth in the backend currently, so I
opted to do this in the frontend to match the create workspace page.

This adds a new section underneath the task prompt for external auth
that only shows when there is non-optional missing auth.

Closes #18166
2025-06-12 12:35:43 -08:00
Edward Angert f1cca03ed3 docs: reorganize the About section (#18236)
As part of an information architecture overhaul, this PR reorganizes the
About section and adds a Support section (but not content to it yet)

[preview](https://coder.com/docs/@docs-ia-about/about)

this PR is intentionally limited in scope so that we can ship meaningful
changes faster and followup PRs should include:

- [ ] edit + overhaul the About page
- [ ] decide on the `start` directory
- [ ] ~screenshots page updates~ (this should happen July or later)

redirects PR: https://github.com/coder/coder.com/pull/944

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-12 13:56:45 -04:00
Jaayden Halko 5944b1c595 chore: remove local storage based optin/optout (#18344)
This removes the opt-in and opt-out buttons for dynamic parameters on
the create workspace page and the workspace parameters settings page.

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-06-12 13:37:07 -04:00
blink-so[bot] 4ff6c5ef42 docs: update Kubernetes install docs with current release versions (#18347)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: matifali <10648092+matifali@users.noreply.github.com>
2025-06-12 22:19:45 +05:00
Jaayden Halko f126931219 chore: remove dynamic-parameters experiment (#18290)
Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: jaaydenh <1858163+jaaydenh@users.noreply.github.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-06-12 12:15:05 -04:00
Mathias Fredriksson 70723d3b51 fix(coderd): fix panics by always checking for non-nil request logger (#18228) 2025-06-12 13:50:50 +03:00
Hugo Dutka c95d972d4e feat: update task workspace name format and prevent title overflow (#18315) 2025-06-12 10:05:17 +02:00
Cian Johnston dcc8e9eec5 chore: update gopsutil to fix panic on macos (#18330)
Fixes https://github.com/coder/internal/issues/688
2025-06-11 21:54:51 -04:00
Edward Angert f4600652c3 docs: remove github avatars (#18338)
the site is making the pictures big, so I'm just removing them in this
PR and then maybe we can investigate it some other time

- [live site](https://coder.com/docs/admin/integrations/island)
-
[preview](https://coder.com/docs/@remove-github-avatars/admin/integrations/island)

cc @aqandrew 

#bring-back-the-hotfix-label

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-12 00:52:21 +00:00
Steven Masley 1a00eae12e chore: handle mixed type lists in plan output (#18331)
Primarily for this fix:
https://github.com/coder/preview/commit/2e5caa65a54ab87073aaeee84e2a859e0c9fb299
2025-06-11 16:04:57 -05:00
Edward Angert c2262f9400 docs: fix alert markdown in healthcheck doc (#18335)
fix md
2025-06-11 15:04:17 -05:00
Dean Sheather 8e1ccf9f80 chore: update IdP docs with Google quirks (#18318)
Following some issues we discovered on dogfood after merging #17878, we
think `prompt=consent` is required for refresh tokens to be sent by
Google every time you sign in.
2025-06-11 15:02:08 -04:00
Mathias Fredriksson f2f0237082 fix(agent/agentcontainers): remove cap net admin from dev container agent executable (#18327) 2025-06-11 16:40:35 +00:00
Dean Sheather ae3882a600 chore: move all images to new GCP project (#18324) 2025-06-11 13:06:31 +00:00
Spike Curtis af4a6682b4 fix: use tailscale that avoids small MTU paths (#18323)
Fixes #15523

Uses latest https://github.com/coder/tailscale which includes https://github.com/coder/tailscale/pull/85 to stop selecting paths with small MTU for direct connections.

Also updates the tailnet integration test to reproduce the issue. The previous version had the 2 peers connected by a single veth, but this allows the OS to fragment the packet. In the new version, the 2 peers (and server) are all connected by a central router. The link between peer 1 and the router has an adjustable MTU. IPv6 does not allow packets to be fragmented by intermediate routers, so sending a too-large packet in this scenario forces the router to drop packets and reproduce the issue (without the tailscale changes).
2025-06-11 14:16:25 +04:00
Ethan 2377d76ebb test: ensure the return value of MockAuditor.Contains is checked (#18319)
It unfortunately doesn't seem possible, even with a custom ruleguard rule, to mark a function as requiring it's return value be used, it looks like you have to go all in on a linter that rejects *any* unused return values.
2025-06-11 17:16:18 +10:00
ケイラ dd27a28cfa chore: fix comment on Acquire (#18313) 2025-06-10 15:36:48 -06:00
Steven Masley fb63c9445c test: fix test flake in TestDynamicParametersWithTerraformValues (#18311)
Wrong build ID was being used for the await.

Closes https://github.com/coder/internal/issues/687
2025-06-10 16:13:47 -05:00
ケイラ 8661d1aed8 chore: add windows icon (#18312) 2025-06-10 12:56:57 -06:00
Mathias Fredriksson 9b9b89499e fix(coderd/database/db2sdk): add agent parent ID (#18310) 2025-06-10 18:07:05 +01:00
Steven Masley db8d5aeab3 chore: set .proto files to 2 spaces in editor config (#18305)
https://protobuf.dev/programming-guides/style/

2 spaces
2025-06-10 08:55:32 -05:00
Mathias Fredriksson ae0c8701bb feat(agent): disable devcontainers for sub agents (#18303)
Updates coder/internal#621
Refs #18245
2025-06-10 10:47:02 +00:00
Mathias Fredriksson fca99174ad feat(agent/agentcontainers): implement sub agent injection (#18245)
This change adds support for sub agent creation and injection into dev
containers.

Updates coder/internal#621
2025-06-10 12:37:54 +03:00
Jaayden Halko 44fff54897 fix: avoid displaying 'everyone' group for idp group sync (#18261)
fixes coder/coder#16987

Fix implemented through the coder tasks UI using Coder with Claude Code.

Prompt:
fix this issue, https://github.com/coder/coder/issues/16987
2025-06-09 17:08:34 -04:00
blink-so[bot] cb9c483445 fix: preserve parameter values when dynamic ordering changes (#18270)
## Problem

When creating a workspace from a template with dynamic parameter
ordering, parameter values are not displaying correctly when the order
changes. This occurs when a parameter's `order` value depends on another
parameter's value.

**Example scenario:**
```terraform
data "coder_parameter" "reorder" {
  name = "reorder"
  type = "bool"
  default = false
  order = 1
}

data "coder_parameter" "cpu" {
  order = data.coder_parameter.reorder.value ? 0 : 2
  name = "cpu"
  type = "number"
  default = 4
}
```

When the user toggles `reorder` from `false` to `true`, the `cpu`
parameter moves from position 2 to position 0, but its value gets mixed
up with the `reorder` parameter's value.

## Root Cause

The issue was in `CreateWorkspacePageViewExperimental.tsx` where
parameters were rendered using array indices instead of parameter names:

```typescript
// Problematic code
const parameterField = `rich_parameter_values.${index}`;
const formValue = form.values?.rich_parameter_values?.[index]?.value || "";
```

When parameters are reordered:
1. The `parameters` array order changes based on the new `order` values
2. The `form.values.rich_parameter_values` array maintains the original
order
3. Array index-based lookup causes values to be mismatched

## Solution

Implemented name-based lookup to ensure parameter values stay with their
correct parameters:

```typescript
// Find parameter value by name instead of index
const currentParameterValueIndex = form.values.rich_parameter_values?.findIndex(
  (p) => p.name === parameter.name
) ?? -1;

// Use the found index for form field mapping
const parameterFieldIndex = currentParameterValueIndex !== -1 ? currentParameterValueIndex : index;
const parameterField = `rich_parameter_values.${parameterFieldIndex}`;

// Get form value by name to ensure correct mapping
const formValue = currentParameterValueIndex !== -1 
  ? form.values?.rich_parameter_values?.[currentParameterValueIndex]?.value || ""
  : "";
```

## Testing

-  Created test script that validates the fix works correctly
-  Tested with the provided template showing dynamic parameter ordering
-  Verified parameter values persist correctly during reordering
-  Confirmed no TypeScript compilation issues

## Impact

This fix ensures that users can reliably use dynamic parameter ordering
in their templates without losing parameter values when the order
changes. This is particularly important for templates that use
conditional parameter visibility and ordering based on user selections.

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden@coder.com>
2025-06-09 16:42:40 -04:00
dependabot[bot] be4f5efffd chore: bump gopkg.in/DataDog/dd-trace-go.v1 from 1.73.0 to 1.74.0 (#18287)
Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.73.0 to 1.74.0.

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| gopkg.in/DataDog/dd-trace-go.v1 | [>= 1.58.a, < 1.59] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gopkg.in/DataDog/dd-trace-go.v1&package-manager=go_modules&previous-version=1.73.0&new-version=1.74.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 12:27:14 +00:00
dependabot[bot] f6dd50a6ee ci: bump the github-actions group with 4 updates (#18289)
Bumps the github-actions group with 4 updates:
[crate-ci/typos](https://github.com/crate-ci/typos),
[chromaui/action](https://github.com/chromaui/action),
[github/codeql-action](https://github.com/github/codeql-action) and
[aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action).

Updates `crate-ci/typos` from 1.32.0 to 1.33.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.33.1</h2>
<h2>[1.33.1] - 2025-06-02</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Don't correct <code>wasn't</code> to
<code>wasm't</code></li>
</ul>
<h2>v1.33.0</h2>
<h2>[1.33.0] - 2025-06-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1290">May
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.33.1] - 2025-06-02</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Don't correct <code>wasn't</code> to
<code>wasm't</code></li>
</ul>
<h2>[1.33.0] - 2025-06-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1290">May
2025</a> changes</li>
</ul>
<h2>[1.32.0] - 2025-05-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1264">April
2025</a> changes</li>
</ul>
<h2>[1.31.2] - 2025-04-28</h2>
<h3>Fixes</h3>
<ul>
<li><em>(exclusion)</em> Don't confused emails as base64</li>
<li><em>(dict)</em> Correct <code>contamint</code> to
<code>contaminant</code>, not <code>contaminat</code></li>
<li><em>(dict)</em> Correct <code>contamints</code> to
<code>contaminants</code>, not <code>contaminats</code></li>
</ul>
<h3>Performance</h3>
<ul>
<li>Improve tokenization performance</li>
</ul>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1248">March
2025</a> changes</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/b1ae8d918b6e85bd611117d3d9a3be4f903ee5e4"><code>b1ae8d9</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/6c5d17de8e16370e7e1d8dd41c8dc0a7f22ea981"><code>6c5d17d</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/0a237ba81a86b72399a05f3441449ddeab9faf16"><code>0a237ba</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1311">#1311</a>
from epage/wasn</li>
<li><a
href="https://github.com/crate-ci/typos/commit/79920cf06905dd147d4e784ae17136d98c211083"><code>79920cf</code></a>
fix(dict): Don't correct <code>wasn't</code></li>
<li><a
href="https://github.com/crate-ci/typos/commit/e99b2b47d9910ae09f6e828594c33ab3e0936491"><code>e99b2b4</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/2afc152754dd1bf58997ad87bcc84f7797bb52ab"><code>2afc152</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/544a19b4ae1a0814151fd081008bb9305abccdfc"><code>544a19b</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/2e0ca28a9540837425705660401059467b721ab9"><code>2e0ca28</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1310">#1310</a>
from epage/may</li>
<li><a
href="https://github.com/crate-ci/typos/commit/94eb4e7b407daa7967ca1a23c72902898ab599f6"><code>94eb4e7</code></a>
feat(dict): May 2025 updates</li>
<li><a
href="https://github.com/crate-ci/typos/commit/a4cce4ca70447aa8b294fc0eaada68193eeec1fa"><code>a4cce4c</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1308">#1308</a>
from crate-ci/renovate/schemars-0.x</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/0f0ccba9ed1df83948f0c15026e4f5ccfce46109...b1ae8d918b6e85bd611117d3d9a3be4f903ee5e4">compare
view</a></li>
</ul>
</details>
<br />

Updates `chromaui/action` from 12.0.0 to 12.1.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/8536229ee904071f8edce292596f6dbe0da96b9b"><code>8536229</code></a>
v12.1.1</li>
<li><a
href="https://github.com/chromaui/action/commit/39708fe33252ca58c08b791fef95536ed2a1b976"><code>39708fe</code></a>
v12.1.0</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/d7afd50124cf4f337bcd943e7f45cfa85a5e4476...8536229ee904071f8edce292596f6dbe0da96b9b">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.18 to 3.28.19
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.19</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.19/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.19 - 03 Jun 2025</h2>
<ul>
<li>The CodeQL Action no longer includes its own copy of the extractor
for the <code>actions</code> language, which is currently in public
preview.
The <code>actions</code> extractor has been included in the CodeQL CLI
since v2.20.6. If your workflow has enabled the <code>actions</code>
language <em>and</em> you have pinned
your <code>tools:</code> property to a specific version of the CodeQL
CLI earlier than v2.20.6, you will need to update to at least CodeQL
v2.20.6 or disable
<code>actions</code> analysis.</li>
<li>Update default CodeQL bundle version to 2.21.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li>
</ul>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/fca7ace96b7d713c7035871441bd52efbe39e27e"><code>fca7ace</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2918">#2918</a>
from github/update-v3.28.19-4a00331d4</li>
<li><a
href="https://github.com/github/codeql-action/commit/1dcd2bebbb31e92a94fd28ed1885b2e6331afdd3"><code>1dcd2be</code></a>
Update changelog for v3.28.19</li>
<li><a
href="https://github.com/github/codeql-action/commit/4a00331d4ecf79a214751520faf8e540e60c7567"><code>4a00331</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2910">#2910</a>
from github/update-bundle/codeql-bundle-v2.21.4</li>
<li><a
href="https://github.com/github/codeql-action/commit/c0a821da119108a26c647de84b1e6a857fda1279"><code>c0a821d</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/d6216866b42d1cb95b8942447efe91161628ccfd"><code>d621686</code></a>
Update default bundle to codeql-bundle-v2.21.4</li>
<li><a
href="https://github.com/github/codeql-action/commit/dc138d4f519ecc58013d8fcef428272e2436cafd"><code>dc138d4</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2913">#2913</a>
from github/henrymercer/win-2019-deprecated</li>
<li><a
href="https://github.com/github/codeql-action/commit/3201e46e2615110190ca536fbf1280ccc7f3a247"><code>3201e46</code></a>
Stop running CI on <code>windows-2019</code></li>
<li><a
href="https://github.com/github/codeql-action/commit/7fd62151d9daff11d4b981415ffb365dcd93f75a"><code>7fd6215</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2911">#2911</a>
from github/update-supported-enterprise-server-versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/31eae5e821e97c8b2903ca297cc8894bd9b609fb"><code>31eae5e</code></a>
Update supported GitHub Enterprise Server versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/bc02a25f6449997c5e9d5a368879b28f56ae19a1"><code>bc02a25</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2908">#2908</a>
from github/henrymercer/dependabot</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/ff0a06e83cb2de871e5a09832bc6a81e7276941f...fca7ace96b7d713c7035871441bd52efbe39e27e">compare
view</a></li>
</ul>
</details>
<br />

Updates `aquasecurity/trivy-action` from 0.30.0 to 0.31.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aquasecurity/trivy-action/releases">aquasecurity/trivy-action's
releases</a>.</em></p>
<blockquote>
<h2>v0.31.0</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: add info that <code>unix:/</code> prefix is required for
<code>docker-host</code> input by <a
href="https://github.com/DmitriyLewen"><code>@​DmitriyLewen</code></a>
in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/455">aquasecurity/trivy-action#455</a></li>
<li>Fix Trivy action inputs leaking between invocations (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/422">#422</a>)
by <a href="https://github.com/rvesse"><code>@​rvesse</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/454">aquasecurity/trivy-action#454</a></li>
<li>Pin aquasecuriy/setup-trivy to hash instead of tag by <a
href="https://github.com/lhotari"><code>@​lhotari</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/456">aquasecurity/trivy-action#456</a></li>
<li>Bump Trivy version to fix GitHub actions by <a
href="https://github.com/maximmasiutin"><code>@​maximmasiutin</code></a>
in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/460">aquasecurity/trivy-action#460</a></li>
<li>refactor: use ubuntu 24.04 in example code by <a
href="https://github.com/simar7"><code>@​simar7</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/465">aquasecurity/trivy-action#465</a></li>
<li>ci: fix workflow to bump Trivy by <a
href="https://github.com/nikpivkin"><code>@​nikpivkin</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/466">aquasecurity/trivy-action#466</a></li>
<li>chore(deps): Update trivy to v0.63.0 by <a
href="https://github.com/aqua-bot"><code>@​aqua-bot</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/467">aquasecurity/trivy-action#467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lhotari"><code>@​lhotari</code></a> made
their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/456">aquasecurity/trivy-action#456</a></li>
<li><a
href="https://github.com/maximmasiutin"><code>@​maximmasiutin</code></a>
made their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/460">aquasecurity/trivy-action#460</a></li>
<li><a href="https://github.com/aqua-bot"><code>@​aqua-bot</code></a>
made their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/467">aquasecurity/trivy-action#467</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/aquasecurity/trivy-action/compare/0.30.0...0.31.0">https://github.com/aquasecurity/trivy-action/compare/0.30.0...0.31.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/76071ef0d7ec797419534a183b498b4d6366cf37"><code>76071ef</code></a>
chore(deps): Update trivy to v0.63.0 (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/467">#467</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/4844d823d3541b70e147062249823a5cf735b7b8"><code>4844d82</code></a>
ci: fix workflow to bump Trivy (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/466">#466</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/26d71e622b84d103f86fb33a5a42c558e11f4ae0"><code>26d71e6</code></a>
refactor: use ubuntu 24.04 (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/465">#465</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/b3dafe507ffa004210975439a1e6156b8ebb3f50"><code>b3dafe5</code></a>
Bump Trivy version to fix GitHub actions (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/460">#460</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/99baf0d8b4e787c3cfd7b602664c8ce60a43cd38"><code>99baf0d</code></a>
Pin aquasecuriy/setup-trivy to hash instead of tag (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/456">#456</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/7aca5acc9500b463826cc47a47a65ad7d404b045"><code>7aca5ac</code></a>
fix: Trivy action inputs leaking between invocations (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/422">#422</a>)
(<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/454">#454</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/ea27ac12e15e065601133e2e439657937385d5a8"><code>ea27ac1</code></a>
docs: add info that <code>unix:/</code> prefix is required (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/455">#455</a>)</li>
<li>See full diff in <a
href="https://github.com/aquasecurity/trivy-action/compare/6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5...76071ef0d7ec797419534a183b498b4d6366cf37">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| crate-ci/typos | [>= 1.30.a, < 1.31] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 12:27:00 +00:00
dependabot[bot] 3378b27840 chore: bump google.golang.org/grpc from 1.72.1 to 1.73.0 (#18282)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.72.1 to 1.73.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.73.0</h2>
<h1>New Features</h1>
<ul>
<li>balancer/ringhash: move LB policy from xds/internal to exported path
to facilitate use without xds (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8249">#8249</a>)</li>
<li>xds: enable least request LB policy by default. It can be disabled
by setting <code>GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST=false</code> in
your environment. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8253">#8253</a>)</li>
<li>grpc: add a <code>CallAuthority</code> Call Option that can be used
to overwrite the http <code>:authority</code> header on per-RPC basis.
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8068">#8068</a>)</li>
<li>stats/opentelemetry: add trace event for name resolution delay. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8074">#8074</a>)</li>
<li>health: added <code>List</code> method to gRPC Health service. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8155">#8155</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/marcoshuck"><code>@​marcoshuck</code></a></li>
</ul>
</li>
<li>ringhash: implement features from gRFC A76. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8159">#8159</a>)</li>
<li>xds: add functionality to support SPIFFE Bundle Maps as roots of
trust in XDS which can be enabled by setting
<code>GRPC_EXPERIMENTAL_XDS_MTLS_SPIFFE=true</code>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8167">#8167</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8180">#8180</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8229">#8229</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8343">#8343</a>)</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>xds: locality ID metric label is changed to make it consistent with
<a
href="https://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md#optional-xds-locality-label">gRFC
A78</a>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8256">#8256</a>)</li>
<li>client: fail RPCs on the client when using extremely short contexts
that expire before the <code>grpc-timeout</code> header is created. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8312">#8312</a>)</li>
<li>server: non-positive <code>grpc-timeout</code> header values are now
rejected. This is consistent with the <a
href="https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests">gRPC
protocol spec</a>. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8290">#8290</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/evanj"><code>@​evanj</code></a></li>
</ul>
</li>
<li>xds: fix reported error string when LRS load reporting interval is
invalid. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8224">#8224</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/alingse"><code>@​alingse</code></a></li>
</ul>
</li>
</ul>
<h1>Performance Improvements</h1>
<ul>
<li>credentials/alts: improve read performance by optimizing buffer
copies and allocations. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8271">#8271</a>)</li>
<li>server: improve performance of RPC handling by avoid a status proto
copy (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8282">#8282</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/evanj"><code>@​evanj</code></a></li>
</ul>
</li>
</ul>
<h1>Documentation</h1>
<ul>
<li>examples/features/opentelemetry: modify example to demonstrate
tracing using OpenTelemtry plugin. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8056">#8056</a>)</li>
</ul>
<h2>Release 1.72.2</h2>
<h1>Bug Fixes</h1>
<ul>
<li>client: restore support for <code>NO_PROXY</code> environment
variable when connecting to locally-resolved addresses (case 2 from <a
href="https://github.com/grpc/proposal/blob/master/A1-http-connect-proxy-support.md">gRFC
A1</a>). (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8329">#8329</a>)</li>
<li>balancer/least_request: fix panic on resolver errors. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8333">#8333</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/c52d02553f2649c28d0279bca17909a3a08de022"><code>c52d025</code></a>
Change version to 1.73.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8322">#8322</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/ac60db1864c340dee6e5718fad7dee439775766e"><code>ac60db1</code></a>
Add flag guarding SPIFFE Bundle provider (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8343">#8343</a>)
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8382">#8382</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/183c148c4e63b5770c8b9bdfc7d38fc0811e2742"><code>183c148</code></a>
balancer/ringhash: Add experimental notice in package comment (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8364">#8364</a>)
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8365">#8365</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b610465ce4bd1af616bad0389185276fb8d19bb8"><code>b610465</code></a>
delegatingresolver: avoid proxy for resolved addresses in NO_PROXY env
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8329">#8329</a>...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/96c4308a9958ccd2bcaffffd53d8fa6c380058b7"><code>96c4308</code></a>
balancer/least_request : Fix panic while handling resolver errors (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8333">#8333</a>)
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8">#8</a>...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/af5146b69698317950518c934e9eb14341df6858"><code>af5146b</code></a>
grpc: update contributing.md (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8318">#8318</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/09166b665e8b6442bc70e88cdef580da9e7b7b06"><code>09166b6</code></a>
cleanup: remove unused constants in generic xdsclient (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8315">#8315</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/e3f13e75a60a13287fc537cb7974680f1eb99dc7"><code>e3f13e7</code></a>
transport: Prevent sending negative timeouts (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8312">#8312</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b89909b7bd0d9bd333aab291e90fec1fa8d45ce9"><code>b89909b</code></a>
leakcheck: Fix flaky test TestCheck (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8309">#8309</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/709023de87a25ae63b000139295af10589edffee"><code>709023d</code></a>
grpcsync/event: Simplify synchronization (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8308">#8308</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.72.1...v1.73.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.72.1&new-version=1.73.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 12:11:48 +00:00
Hugo Dutka 910858b731 chore(coderd/provisionerdserver): convert dbmem tests to use postgres (#18278) 2025-06-09 10:05:29 +02:00
ケイラ 7d8b994229 chore(dogfood): group web editors together (#18143)
To dogfood the new app grouping, we should have a group of apps. Putting
code-server and vscode-web together feels like an obvious grouping
candidate.
2025-06-06 10:40:11 -06:00
Danielle Maywood 8daa0aacc6 feat(coderd/agentapi): support adding display apps to a sub agent (#18272)
Completely missed this in the original PR for adding support for
creating sub agents. This now allows specifying a list of display apps
to be added to the agent.
2025-06-06 17:30:52 +01:00
Thomas Kosiewski f569d9c33d feat: add separate max token lifetime for administrators (#18267)
# Add separate token lifetime limits for administrators

This PR introduces a new configuration option `--max-admin-token-lifetime` that allows administrators to create API tokens with longer lifetimes than regular users. By default, administrators can create tokens with a lifetime of up to 7 days (168 hours), while the existing `--max-token-lifetime` setting continues to apply to regular users.

The implementation:
- Adds a new `MaximumAdminTokenDuration` field to the session configuration
- Modifies the token validation logic to check the user's role and apply the appropriate lifetime limit
- Updates the token configuration endpoint to return the correct maximum lifetime based on the user's role
- Adds tests to verify that administrators can create tokens with longer and shorter lifetimes
- Updates documentation and help text to reflect the new option

This change allows organizations to grant administrators extended token lifetimes while maintaining tighter security controls for regular users.

Fixes #17395
2025-06-06 17:36:30 +02:00
Steven Masley 348d19ddb7 chore: use spaces over tabs in proto files (#18269) 2025-06-06 09:11:01 -05:00
Spike Curtis d47a53da82 fix: handle paths with spaces in Match exec clause of SSH config (#18266)
fixes #18199 

Corrects handling of paths with spaces in the `Match !exec` clause we
use to determine whether Coder Connect is running. This is handled
differently than the ProxyCommand, so we have a different escape
routine, which also varies by OS.

On Windows, we resort to a pretty gnarly hack, but it does work and I
feel the only other option would be to reduce functionality such that we
could not detect the Coder Connect state.
2025-06-06 16:44:25 +04:00
Mathias Fredriksson 709f374fe0 feat(agent/agentcontainers): add Exec method to devcontainers CLI (#18244)
This change adds Exec to the devcontainer CLI.

Updates coder/internal#621
2025-06-06 14:38:58 +03:00
Mathias Fredriksson a12429e9f8 feat(agent/agentcontainers): refactor Lister to ContainerCLI and implement new methods (#18243) 2025-06-06 10:33:09 +00:00
Ethan 533c6dcbbe fix: remove error log when notification manager is already closed (#18264)
Closes https://github.com/coder/internal/issues/677

Resolves flakes such as:

```
$ go test -race -run "TestRunStopRace" github.com/coder/coder/v2/coderd/notifications -count=10000 -parallel $(nproc)
--- FAIL: TestRunStopRace (0.00s)
    t.go:106: 2025-06-06 02:44:39.348 [debu]  notifications-manager: notification manager started
    t.go:106: 2025-06-06 02:44:39.348 [debu]  notifications-manager: graceful stop requested
    t.go:106: 2025-06-06 02:44:39.348 [debu]  notifications-manager: notification manager stopped
    t.go:115: 2025-06-06 02:44:39.348 [erro]  notifications-manager: notification manager stopped with error ...
        error= manager already closed:
                   github.com/coder/coder/v2/coderd/notifications.(*Manager).loop
                       /home/coder/coder/coderd/notifications/manager.go:166
         *** slogtest: log detected at level ERROR; TEST FAILURE ***
--- FAIL: TestRunStopRace (0.00s)
    t.go:106: 2025-06-06 02:44:41.632 [debu]  notifications-manager: notification manager started
    t.go:106: 2025-06-06 02:44:41.632 [debu]  notifications-manager: graceful stop requested
    t.go:106: 2025-06-06 02:44:41.632 [debu]  notifications-manager: notification manager stopped
    t.go:115: 2025-06-06 02:44:41.633 [erro]  notifications-manager: notification manager stopped with error ...
        error= manager already closed:
                   github.com/coder/coder/v2/coderd/notifications.(*Manager).loop
                       /home/coder/coder/coderd/notifications/manager.go:166
         *** slogtest: log detected at level ERROR; TEST FAILURE ***
FAIL
FAIL    github.com/coder/coder/v2/coderd/notifications  6.847s
FAIL
```

These error logs are caused as a result of the `Manager` `Run` start operation being asynchronous. In the flaking test case we immediately call `Stop` after `Run`. It's possible for `Stop` to be scheduled to completion before the goroutine spawned by `Run` calls `loop` and checks `closed`. If this happens, `loop` returns an error and produces the error log.

We'll address this by replacing this specific error log with a warning log.

```
$ go test -run "TestRunStopRace" github.com/coder/coder/v2/coderd/notifications -count=10000 -parallel $(nproc)
ok      github.com/coder/coder/v2/coderd/notifications  1.294s

$ go test -race github.com/coder/coder/v2/coderd/notifications -count=100 -parallel $(nproc)
ok      github.com/coder/coder/v2/coderd/notifications  26.525s
```
2025-06-06 19:28:10 +10:00
Cian Johnston 7c2fb66181 chore(provisionersdk): ignore io.EOF in Session.requestReader (#18234)
My understanding is that `io.EOF` is eventually expected, so logging it
as an error may be confusing. For other errors we should definitely
WARN.

```
[info]  provisionerd-ip-172-31-12-44-14: recv done on Session  session_id=22b9ef8a-9cd6-4188-98e0-573a50d724cc  error=EOF
```
2025-06-06 09:05:22 +01:00
Spike Curtis 08eff7f433 chore: improve tailnet integration test (#18124)
Refactors tailnet integration test and adds UDP echo tests with different MTU related to #15523

I still haven't gotten to the bottom of what's causing the issue (the added test case I expected to fail actually succeeds), but these integration test improvements are generally useful.

also:
 * consolidates networking setup with easy and hard NAT
 * consolidates client setup
 * makes Client2 act like an agent at the tailnet layer, so it will send ReadyForHandshake and speed up the tunnel establishment
 * adds support for logging tunneled packets
 * adds support for dumping outer (underlay) IP traffic
 * adds support for adjusting veth MTU
 * adds support for IPv6 in the outer (underlay) network topology
2025-06-06 10:18:08 +04:00
Ethan 628b81c334 chore(vpn): send info, debug logs over tunnel (#18240)
Closes https://github.com/coder/internal/issues/397
2025-06-06 14:31:27 +10:00
Ethan 0076e8479f chore(vpn): send ping results over tunnel (#18200)
Closes #17982.

The purpose of this PR is to expose network latency via the API used by Coder Desktop.

This PR has the tunnel ping all known agents every 5 seconds, in order to produce an instance of:
```proto
message LastPing {
	// latency is the RTT of the ping to the agent.
	google.protobuf.Duration latency = 1;
	// did_p2p indicates whether the ping was sent P2P, or over DERP.
	bool did_p2p = 2;
	// preferred_derp is the human readable name of the preferred DERP region,
	// or the region used for the last ping, if it was sent over DERP.
	string preferred_derp = 3;
	// preferred_derp_latency is the last known latency to the preferred DERP
	// region. Unset if the region does not appear in the DERP map.
	optional google.protobuf.Duration preferred_derp_latency = 4;
}
```
The contents of this message are stored and included on all subsequent upsertions of the agent. 
Note that we upsert existing agents every 5 seconds to update the `last_handshake` value.

On the desktop apps, this message will be used to produce a tooltip similar to that of the VS Code extension:
<img width="495" alt="image" src="https://github.com/user-attachments/assets/d8b65f3d-f536-4c64-9af9-35c1a42c92d2" />
(wording not final)

Unlike the VS Code extension, we omit:
- The Latency of *all* available DERP regions. It seems not ideal to send a copy of this entire map for every online agent, and it certainly doesn't make sense for it to be on the `Agent` or `LastPing` message. 
If we do want to expose this info on Coder Desktop, we should consider how best to do so; maybe we want to include it on a more generic `Netcheck` message.
- The current throughput (Bytes up/down). This is out of scope of the linked issue, and is non-trivial to implement. I'm also not sure of the value given the frequency we're doing these status updates (every 5 seconds).
If we want to expose it, it'll be in a separate PR.

<img width="343" alt="image" src="https://github.com/user-attachments/assets/8447d03b-9721-4111-8ac1-332d70a1e8f1" />
2025-06-06 14:18:57 +10:00
blink-so[bot] b4f71b70aa fix: show preset parameters when they have diagnostics (#18258)
Always show preset parameters in CreateWorkspacePageViewExperimental if
the preset parameter has any diagnostics, regardless of the
showPresetParameters toggle state.

This ensures that users can see and address errors in preset parameters
even when the "Show preset parameters" toggle is disabled.

Fixes coder/internal#651

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden@coder.com>
2025-06-05 17:46:47 -04:00
Jaayden Halko 508fba83dd feat: handle update build for dynamic params (#18226)
resolves coder/preview#110

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
2025-06-05 16:35:23 -04:00
Asher c339066be3 chore: select the first embedded app on tasks page (#18260)
The first app might be an external app (shown in the dropdown), and we
actually want to select the first embedded app (which are in tabs).
2025-06-05 11:43:23 -08:00
Steven Masley 0428c5ec1c chore: include 'everyone' group in template importing (#18257) 2025-06-05 19:25:36 +00:00
Hugo Dutka 8a70b8d85c chore: select the first workspace app to be active in tasks (#18256)
Same as https://github.com/coder/coder/pull/18239, but only the
necessary code
2025-06-05 13:40:01 -05:00
Steven Masley 60595f3455 chore: ignore .git directories in terraform modules (#18255)
.git directories were causing identical modules to have different
hashes. This adds unecessary bloat to the database, and the .git
directory is not needed for dynamic params
2025-06-05 12:57:13 -05:00
Hugo Dutka 3f406c7c50 fix: improve sidebar chat loading UX in tasks (#18254)
Addresses https://github.com/coder/internal/issues/668
2025-06-05 18:58:54 +02:00
Mathias Fredriksson 2f8b056e27 test(agent/agentcontainers): fix test data race due to list manipulation (#18250)
Fixes coder/internal#675
2025-06-05 14:53:35 +00:00
blink-so[bot] 2c0c58af71 fix: improve copy for tasks "starting" page (#18247)
Update the copy on the task starting page to be more user-friendly:

- Change "Building the workspace" to "Starting your workspace"
- Change "Your task will run as soon as the workspace is ready" to "This
should take a few minutes"

The new copy provides clearer expectations about timing and uses more
user-friendly language.

Fixes #18164

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
2025-06-05 10:35:17 -04:00
blink-so[bot] c54ef0357b docs: update Smarter Device Manager link to new GitHub repository (#18248)
The Smarter Device Manager project has moved from GitLab to GitHub. This
PR updates the link in the Docker in Workspaces documentation to point
to the new repository at
https://github.com/smarter-project/smarter-device-manager.

**Changes:**
- Updated the link from
`https://gitlab.com/arm-research/smarter/smarter-device-manager#enabling-access`
to `https://github.com/smarter-project/smarter-device-manager`

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-06-05 14:30:02 +00:00
Mathias Fredriksson 04e4f2fac0 chore(agent): update agent proto client (#18242) 2025-06-05 16:58:18 +03:00
Hugo Dutka 623dcd97dc fix(cli): fix flakes related to context cancellation when establishing pg connections (#18246)
Since https://github.com/coder/coder/pull/18195 was merged, we started
running CLI tests with postgres instead of just dbmem. This surfaced
errors related to context cancellation while establishing postgres
connections.

This PR should fix https://github.com/coder/internal/issues/672. Related
to https://github.com/coder/coder/issues/15109.
2025-06-05 15:54:13 +02:00
Danielle Maywood b5fd3dd855 feat(coderd/agentapi): allow inserting apps for sub agents (#18129)
Allow creating workspace apps for a sub agent when the agent is being
created with `CreateSubAgent` in the agent api.
2025-06-05 11:57:02 +01:00
Hugo Dutka 277c2c7ea7 chore(coderd/prometheusmetrics): remove dbmem from tests (#18238) 2025-06-05 09:30:27 +02:00
Hugo Dutka bb2c19562b chore(cli): remove dbmem from tests (#18195) 2025-06-05 09:29:31 +02:00
dependabot[bot] 9ef44e6be2 ci: bump the github-actions group with 3 updates (#18177)
Bumps the github-actions group with 3 updates:
[fluxcd/flux2](https://github.com/fluxcd/flux2),
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
and [ossf/scorecard-action](https://github.com/ossf/scorecard-action).

Updates `fluxcd/flux2` from 2.5.1 to 2.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fluxcd/flux2/releases">fluxcd/flux2's
releases</a>.</em></p>
<blockquote>
<h2>v2.6.1</h2>
<h2>Highlights</h2>
<p>Flux v2.6.1 is a patch release that comes with various fixes. Users
are encouraged to upgrade for the best experience.</p>
<p>Fixes:</p>
<ul>
<li>Fix a bug introduced in image-reflector-controller v0.35.0 that was
causing spurious error events for policies during image repository
reconciliation.</li>
<li>Fix excessive logging in image-reflector-controller after a restart
when the image tags cache is empty.</li>
</ul>
<h2>Components changelog</h2>
<ul>
<li>image-reflector-controller <a
href="https://github.com/fluxcd/image-reflector-controller/blob/v0.35.1/CHANGELOG.md">v0.35.1</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>[release/v2.6.x] Update image-reflector-controller to v0.35.1 by <a
href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in <a
href="https://redirect.github.com/fluxcd/flux2/pull/5382">fluxcd/flux2#5382</a></li>
<li>[release/v2.6.x] Add digest pinning to image automation testing by
<a href="https://github.com/fluxcdbot"><code>@​fluxcdbot</code></a> in
<a
href="https://redirect.github.com/fluxcd/flux2/pull/5384">fluxcd/flux2#5384</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fluxcd/flux2/compare/v2.6.0...v2.6.1">https://github.com/fluxcd/flux2/compare/v2.6.0...v2.6.1</a></p>
<h2>v2.6.0</h2>
<h2>Highlights</h2>
<p>Flux v2.6.0 is a feature release. Users are encouraged to upgrade for
the best experience.</p>
<p>For a compressive overview of new features and API changes included
in this release, please refer to the <a
href="https://fluxcd.io/blog/2025/05/flux-v2.6.0/">Announcing Flux 2.6
GA blog post</a>.</p>
<p>Overview of the new features:</p>
<ul>
<li>General availability release for the Flux OCI Artifacts APIs and
<code>flux artifact</code> commands</li>
<li>Support for OCI digests pinning (ImagePolicy,
ImageUpdateAutomation)</li>
<li>Object-level workload identity authentication (OCIRepository,
ImageRepository, Kustomization, Alert Provider)</li>
<li>Cache registry credentials for cloud providers (OCIRepository,
ImageRepository)</li>
<li>Git HTTP/S Mutual TLS authentication (GitRepository,
ImageUpdateAutomation)</li>
<li>Support for sparse checkout (GitRepository)</li>
<li>Support for GitHub App authentication (Alert Provider)</li>
<li>Support for managed Identity authentication to Azure Event Hub
(Alert Provider)</li>
<li>Customize the ID of the Git commit status with CEL expressions
(Alert Provider)</li>
<li><code>WaitForTermination</code> deletion policy (Kustomization)</li>
<li><code>DisableChartDigestTracking</code> feature gate
(HelmRelease)</li>
</ul>
<p>❤️ Big thanks to all the Flux contributors that helped us with this
release!</p>
<h3>Kubernetes compatibility</h3>
<p>This release is compatible with the following Kubernetes
versions:</p>
<p>| Kubernetes version | Minimum required |</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fluxcd/flux2/commit/b73c7f7191086ca7629840e680e71873349787f8"><code>b73c7f7</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5384">#5384</a>
from fluxcd/backport-5383-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/7aff0327adc117c1501ee24d4983e3f6d06fc2ee"><code>7aff032</code></a>
Add digest pinning to image automation testing</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/3bb3ae361744e0d121f095829e44c5dede33dbb9"><code>3bb3ae3</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5382">#5382</a>
from fluxcd/backport-5381-to-release/v2.6.x</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/bf1af3c12059ed11f51a6ff345ed15e5567a1e21"><code>bf1af3c</code></a>
Update toolkit components</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/4c66d375454b5841cc816e7728e8ae684cf70dc3"><code>4c66d37</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5370">#5370</a>
from fluxcd/update-components</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/481c3c6e1e1c7056f0d1907ea39f22eee0c53473"><code>481c3c6</code></a>
Update toolkit components</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/1d1d96b4895115aa1bb092f7bb3de6611681ebae"><code>1d1d96b</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5373">#5373</a>
from fluxcd/dependabot-up</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/0b972771fdcdd8cf290f16398fb0c09cd2ad128d"><code>0b97277</code></a>
Update dependabot config</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/650732109e1cef23fdf753e8caeb4efea984fe10"><code>6507321</code></a>
Merge pull request <a
href="https://redirect.github.com/fluxcd/flux2/issues/5371">#5371</a>
from fluxcd/oci-ga</li>
<li><a
href="https://github.com/fluxcd/flux2/commit/79fed691cafed9022fc37242e498cf108a0a1725"><code>79fed69</code></a>
Update CLI to OCIRepository v1 (GA)</li>
<li>Additional commits viewable in <a
href="https://github.com/fluxcd/flux2/compare/8d5f40dca5aa5d3c0fc3414457dda15a0ac92fa4...b73c7f7191086ca7629840e680e71873349787f8">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
3981e4f74104e7a4c67a835e1e5dd5d9eb0f0a57 to
115870536a85eaf050e369291c7895748ff12aea
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/115870536a85eaf050e369291c7895748ff12aea"><code>1158705</code></a>
chore(deps-dev): bump eslint-plugin-jest from 28.11.0 to 28.12.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2575">#2575</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/48aea2e1ab598202feb33bfd4df18f25cf0bf56a"><code>48aea2e</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.24 to
22.15.26 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2576">#2576</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/050a3d3360d29711ee9d8210fc639d902d23ad07"><code>050a3d3</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2574">#2574</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/f000a9b97f254f9590ff26f651cccde827ad36da"><code>f000a9b</code></a>
docs: add Jellyfrog as a contributor for code, and doc (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2573">#2573</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/7a9a6d21056d4fc643159b536584c95a903da077"><code>7a9a6d2</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.21 to
22.15.24 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2572">#2572</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/abda8aa2d055f53806b6d35f984ea80315fab52b"><code>abda8aa</code></a>
chore: update build job to fail when there are uncommited changes (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2571">#2571</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/c6634ca281a9fc05b03bee224ba00910cb78ab6e"><code>c6634ca</code></a>
chore(deps): bump github/codeql-action from 3.28.17 to 3.28.18 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2564">#2564</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/860b02dbf9f4dfded5b31c3ef9eca758918910b2"><code>860b02d</code></a>
chore(deps): bump <code>@​octokit/rest</code> from 21.1.1 to 22.0.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2568">#2568</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/3981e4f74104e7a4c67a835e1e5dd5d9eb0f0a57...115870536a85eaf050e369291c7895748ff12aea">compare
view</a></li>
</ul>
</details>
<br />

Updates `ossf/scorecard-action` from 2.4.1 to 2.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ossf/scorecard-action/releases">ossf/scorecard-action's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.2</h2>
<h2>What's Changed</h2>
<p>This update bumps the Scorecard version to the v5.2.1 release. For a
complete list of changes, please refer to the Scorecard <a
href="https://github.com/ossf/scorecard/releases/tag/v5.2.0">v5.2.0</a>
and <a
href="https://github.com/ossf/scorecard/releases/tag/v5.2.1">v5.2.1</a>
release notes.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ossf/scorecard-action/compare/v2.4.1...v2.4.2">https://github.com/ossf/scorecard-action/compare/v2.4.1...v2.4.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ossf/scorecard-action/commit/05b42c624433fc40578a4040d5cf5e36ddca8cde"><code>05b42c6</code></a>
🌱 bump docker to ghcr v2.4.2 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1548">#1548</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/b225da6b2b97811a123bb34532642f3ad6a4f011"><code>b225da6</code></a>
Bump github.com/ossf/scorecard/v5 from v5.2.0 to v5.2.1 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1550">#1550</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/9399f6f42496e38fbb8dbcf85e17223226a5dafe"><code>9399f6f</code></a>
🌱 Bump the docker-images group across 1 directory with 2
updates (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1">#1</a>...</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/e1daa8c5c7ed469dbb0167e261ed1c9fa673a9ae"><code>e1daa8c</code></a>
🌱 Bump the github-actions group across 1 directory with 5
updates (#...</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/9fe6511b9b36af3b03200e49cf8fb09d261b5402"><code>9fe6511</code></a>
🌱 Bump golang.org/x/net from 0.39.0 to 0.40.0 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1542">#1542</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/25b9cd9cd11610dcac11e59afed9910714b12129"><code>25b9cd9</code></a>
🌱 Bump github.com/ossf/scorecard/v5 from v5.1.1 to v5.2.0 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1547">#1547</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/18cc9b81307fc5ab3c2cd7092955f06dcfdf8c42"><code>18cc9b8</code></a>
🌱 Bump golang.org/x/net from 0.38.0 to 0.39.0 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1536">#1536</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/db7814227b097a902957aa24d989c6e473613a8e"><code>db78142</code></a>
🌱 Bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1538">#1538</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/de386ed459e2f85111697f50fe076d0ea617a32f"><code>de386ed</code></a>
🌱 Bump golang from 1.24.1 to 1.24.2 in the docker-images group
(<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1534">#1534</a>)</li>
<li><a
href="https://github.com/ossf/scorecard-action/commit/5b7cedba4eccfb66a6277e40cbe18d1d559ecc00"><code>5b7cedb</code></a>
🌱 Bump github.com/sigstore/cosign/v2 from 2.4.3 to 2.5.0 (<a
href="https://redirect.github.com/ossf/scorecard-action/issues/1537">#1537</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ossf/scorecard-action/compare/f49aabe0b5af0936a0987cfb85d86b75731b0186...05b42c624433fc40578a4040d5cf5e36ddca8cde">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-05 02:52:25 +00:00
Edward Angert 60927c701d docs: edit troubleshooting steps in Coder Desktop documentation (#18233)
closes #18071 

- [x] move `## Accessing web apps in a secure browser context` to the
troubleshooting section
- [x] use a compacted view for troubleshooting topics to prevent them
from occupying a significant space on page
- [x] remove `Issues updating Coder Desktop`
- [x] Update screenshots

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-04 13:58:30 -04:00
Edward Angert a6e2d2db99 docs: add descriptions to items in manifest (#18064)
[preview](https://coder.com/docs/@manifest-descriptions/admin/users/quotas#up-next)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Atif Ali <atif@coder.com>
2025-06-04 17:05:01 +00:00
Atif Ali 97ba7f1ce9 docs: fix alert in artifactory guide (#18235)
[preview](https://coder.com/docs/@atif%2Ffix-alert/admin/integrations/jfrog-artifactory#jfrog-token)
2025-06-04 12:50:23 -04:00
Steven Masley 51ed624bb9 chore: update preview to handle meta count for parameters (#18231)
Parameters using `count` had values incorrectly assigned and could panic
in some cases.
2025-06-04 10:03:40 -05:00
Hugo Dutka 61f2b04d2b fix: embed agentapi chat in the sidebar iframe (#18230)
- hardcode a custom pathname (`/chat/embed`) to use in the sidebar
iframe. this is a temporary fix so that the agentapi chat displays
properly
- make the sidebar a bit wider so that the chat fits without line
wrapping

<img width="1512" alt="Screenshot 2025-06-04 at 15 32 30"
src="https://github.com/user-attachments/assets/8be5d053-d7b3-40da-8b62-a6151975527d"
/>
2025-06-04 16:52:47 +02:00
Sas Swart 5f7e5d7097 feat: support prebuilt workspaces in non-default organizations (#18010)
closes https://github.com/coder/internal/issues/527
2025-06-04 14:20:29 +02:00
Danielle Maywood 4d0fe20ca6 chore(coderd/database/dbauthz): update RBAC for InsertWorkspaceApp (#18223)
Instead of using `ResourceSystem` as the resource for
`InsertWorkspaceApp`, we instead use the associated workspace (if it
exists), with the action `ActionUpdate`.
2025-06-04 11:22:01 +00:00
Bruno Quaresma 9e1967bb0b feat: allow clipboard read and write on app iframes (#18221)
Reference:
https://web.dev/articles/async-clipboard#permissions_policy_integration

This might solve https://github.com/coder/coder/issues/18160
2025-06-04 04:57:01 -03:00
Spike Curtis 00fb61068f chore: use Quartz 0.2.1 instead of unreleased tip of main (#18198)
Points us at Quartz 0.2.1 which is the same commit, but was unreleased until today.
2025-06-04 09:07:28 +04:00
Bruno Quaresma 13449b9e78 feat: embed chat ui in the task sidebar (#18216)
**Demo:**

<img width="1512" alt="Screenshot 2025-06-03 at 14 36 25"
src="https://github.com/user-attachments/assets/e4a61bd3-2182-4593-991d-5db9573a5b7f"
/>

- Extract components to be reused and easier to reasoning about 
- When having cloude-code-web, embed the chat in the sidebar 
- The sidebar will be wider when having the chat to better fit that 

**Does not include:**
- Sidebar width drag and drop control. The width is static but would be
nice to have a control to customize it.
2025-06-03 17:00:59 -03:00
Edward Angert 63adfa57bd docs: add link to official jetbrains toolbox (#18128)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-06-03 15:49:34 -04:00
blink-so[bot] cc89820d7c feat: add template export functionality to UI (#18214)
## Summary

This PR adds template export functionality to the Coder UI, addressing
issue #17859. Users can now export templates directly from the web
interface without requiring CLI access.

## Changes

### Frontend API
- Added `downloadTemplateVersion` function to `site/src/api/api.ts`
- Supports both TAR (default) and ZIP formats
- Uses existing `/api/v2/files/{fileId}` endpoint with format parameter

### UI Enhancement
- Added "Export as TAR" and "Export as ZIP" options to template dropdown
menu
- Positioned logically between "Duplicate" and "Delete" actions
- Uses download icon from Lucide React for consistency

### User Experience
- Files automatically named as
`{templateName}-{templateVersion}.{extension}`
- Immediate download trigger on click
- Proper error handling with console logging
- Clean blob URL management to prevent memory leaks

## Testing

The implementation has been tested for:
-  TypeScript compilation
-  Proper function signatures and types
-  UI component integration
-  Error handling structure

## Screenshots

The export options appear in the template dropdown menu:
- Export as TAR (default format, compatible with `coder template pull`)
- Export as ZIP (compressed format for easier handling)

## Fixes

Closes #17859

## Notes

This enhancement makes template management more accessible for users
who:
- Don't have CLI access
- Manage deployments on devices without Coder CLI
- Prefer web-based workflows
- Need to transfer templates between environments

The implementation follows existing patterns in the codebase and
maintains consistency with the current UI design.

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: Kyle Carberry <kyle@coder.com>
2025-06-03 14:26:50 -04:00
Kyle Carberry 7b273b0b8c fix: add blink-so to contributors bypass (#18215) 2025-06-03 17:45:28 +00:00
Cian Johnston da9a313d0c fix(cli): allow specifying empty provisioner tag set with --provisioner-tag="-" (#18205)
Relates to https://github.com/coder/coder/issues/17818

Note: due to limitations in `cobra/serpent` I ended up having to use `-`
to signify absence of provisioner tags. This value is not a valid
key-value pair and thus not a valid tag.
2025-06-03 16:55:34 +01:00
Eric Paulsen b0d23ca31b fix: remove duplicated envbuilder vars (#18144) 2025-06-03 16:23:59 +01:00
Atif Ali 535a59e1d3 docs: add link for Coder Desktop docs on workspace page (#18202) 2025-06-03 18:39:02 +05:00
Atif Ali 4a2b243fc1 docs: improve JetBrains Toolbox connection docs (#18125) 2025-06-03 12:04:43 +05:00
Atif Ali cba69f3d98 docs: update SSH command format to use suffix (#18085)
Refactor the workspace SSH command syntax across the project to use the
"workspace.coder" format instead of "coder.workspace". This standardizes
the SSH host entries for better consistency and clarity.

This is a follow-up from #17445 and recommends using the suffix-based
format for all new Coder versions.

<img width="418" alt="image"
src="https://github.com/user-attachments/assets/3893f840-9ce1-4803-a013-736068feb328"
/>
2025-06-02 20:13:08 -07:00
Jaayden Halko fd6981e514 fix: fix flashing error dialog in the create workspace page (#18180)
This PR which updated react-query to 5.77.0 introduced an issue on the
create workspace page where the error dialog would be briefly displayed
while the page is loading. https://github.com/coder/coder/pull/18039

The issue is that there is a moment when `optOutQuery.isLoading` is
false and `optOutQuery.data` is undefined causing the ErrorAlert to
display.
2025-06-02 16:55:05 -04:00
Bruno Quaresma 1d27d4f719 refactor: reduce the default workspace name for a task (#18193)
Subdomains should have 63 max characters, so we don't want to have a
long default workspace name that could overflow this limit. With that in
mind, I'm reducing 3 characters from the default name.

PS: I've been facing issues with that already. Eg:
```
claude-code-web--dev--ai-task-1748889021126--brunoquaresma--apps.sao-paulo.fly.dev.coder.com
```
2025-06-02 15:51:02 -03:00
Steven Masley 246a829ea9 feat: evaluate dynamic parameters http endpoint (#18182)
Used when a websocket is too heavy. This implements a single request to
the preview engine.
2025-06-02 13:50:07 -05:00
blink-so[bot] 322f1e4dd2 fix: improve task prompt placeholder consistency (#18189)
Updates the placeholder text in the task prompt box to be consistent
with the "task" terminology used throughout the UI.

**Changes:**
- Changed placeholder from "Write an action for your AI agent to
perform..." to "Prompt your AI agent to start a task..."
- This aligns with the "Run task" button text and overall task-focused
language

**Testing:**
- Verified the text change renders correctly in the UI
- No functional changes, only text update

Co-authored-by: blink-so <blink-so@users.noreply.github.com>
2025-06-02 15:24:56 -03:00
Bruno Quaresma 45d46c8c0a refactor: minor task page design adjustments (#18187)
**Before:**
<img width="1624" alt="Screenshot 2025-06-02 at 13 38 45"
src="https://github.com/user-attachments/assets/545400e9-18d6-44a3-9f21-a51ceceedc8e"
/>

**After:**
<img width="1624" alt="Screenshot 2025-06-02 at 13 40 18"
src="https://github.com/user-attachments/assets/1b0b89f0-8cd6-4afd-8800-786e43ae4b52"
/>

- Show output links
- Move workspace app bar to top of screen
- Remove redundant task status indicators
- Update "building your task" to "Building your workspace" to be more
transparent
- Change “Open IDE” language to “Open Locally”

Closes:
- https://github.com/coder/coder/issues/18181
- https://github.com/coder/coder/issues/18162
2025-06-02 14:52:55 -03:00
Jaayden Halko 87c4948c1d fix: do not block form control rendering for dynamic parameters on parsing error (#18185)
Defer to backend diagnostics when the values cannot be parsed and allow
the form control to render so the user can select a different option.
2025-06-02 13:40:06 -04:00
Ben Potter 2a0a268946 chore: exempt blink agent from CLA (#18190) 2025-06-02 13:31:28 -04:00
Hugo Dutka 2e7cd0fe22 chore(coderd/database/dbpurge): remove dbmem from tests (#18151)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 16:48:38 +02:00
Hugo Dutka 1d48131e98 chore(coderd/externalauth): remove dbmem from tests (#18147)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 14:42:18 +02:00
Hugo Dutka d1fc0dd2c5 chore(coderd/database/dbmetrics): remove dbmem from tests (#18150)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 14:26:56 +02:00
dependabot[bot] 74f0fe2a35 chore: bump github.com/moby/moby from 28.1.1+incompatible to 28.2.2+incompatible (#18171)
Bumps [github.com/moby/moby](https://github.com/moby/moby) from
28.1.1+incompatible to 28.2.2+incompatible.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>28.2.2</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.2.2">docker/cli,
28.2.2 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.2.2">moby/moby,
28.2.2 milestone</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>containerd image store: Fix a regression causing <code>docker build
--push</code> to fail. This reverts <a
href="https://redirect.github.com/moby/moby/pull/49702">the fix</a> for
<code>docker build</code> not persisting overridden images as dangling.
<a
href="https://redirect.github.com/moby/moby/pull/50105">moby/moby#50105</a></li>
</ul>
<h3>Networking</h3>
<ul>
<li>When creating the iptables <code>DOCKER-USER</code> chain, do not
add an explicit <code>RETURN</code> rule, allowing users to append as
well as insert their own rules. Existing rules are not removed on
upgrade, but it won't be replaced after a reboot. <a
href="https://redirect.github.com/moby/moby/pull/50098">moby/moby#50098</a></li>
</ul>
<h2>28.2.1</h2>
<h2>Packaging updates</h2>
<ul>
<li>Fix packaging regression in <a
href="https://github.com/moby/moby/releases/tag/v28.2.0">v28.2.0</a>
which broke creating the <code>docker</code> group/user on fresh
installations. <a
href="https://redirect.github.com/docker/docker-ce-packaging/issues/1209">docker-ce-packaging#1209</a></li>
</ul>
<h2>28.2.0</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.2.0">docker/cli,
28.2.0 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.2.0">moby/moby,
28.2.0 milestone</a></li>
<li>Deprecated and removed features, see <a
href="https://github.com/docker/cli/blob/v28.2.0/docs/deprecated.md">Deprecated
Features</a>.</li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v28.2.0/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<blockquote>
<p>[!NOTE]
RHEL packages are currently not available and will be released
later.</p>
</blockquote>
<h3>New</h3>
<ul>
<li>Add <code>{{.Platform}}</code> as formatting option for <code>docker
ps</code> to show the platform of the image the container is running. <a
href="https://redirect.github.com/docker/cli/pull/6042">docker/cli#6042</a></li>
<li>Add support for relative parent paths (<code>../</code>) on bind
mount sources when using <code>docker run/create</code> with
<code>-v/--volume</code> or <code>--mount type=bind</code> options. <a
href="https://redirect.github.com/docker/cli/pull/4966">docker/cli#4966</a></li>
<li>CDI is now enabled by default. <a
href="https://redirect.github.com/moby/moby/pull/49963">moby/moby#49963</a></li>
<li>Show discovered CDI devices in <code>docker info</code>. <a
href="https://redirect.github.com/docker/cli/pull/6078">docker/cli#6078</a></li>
<li><code>docker image rm</code>: add <code>--platform</code> option to
remove a variant from multi-platform images. <a
href="https://redirect.github.com/docker/cli/pull/6109">docker/cli#6109</a></li>
<li>containerd image store: Initial BuildKit support for building
Windows container images on Windows (requires an opt-in with
<code>DOCKER_BUILDKIT=1</code>). <a
href="https://redirect.github.com/moby/moby/pull/49740">moby/moby#49740</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Add a new log option for fluentd log driver
(<code>fluentd-write-timeout</code>), which enables specifying write
timeouts for fluentd connections. <a
href="https://redirect.github.com/moby/moby/pull/49911">moby/moby#49911</a></li>
<li>Add support for <code>DOCKER_AUTH_CONFIG</code> for the experimental
<code>--use-api-socket</code> option. <a
href="https://redirect.github.com/docker/cli/pull/6019">docker/cli#6019</a></li>
<li>Fix <code>docker exec</code> waiting for 10 seconds if a
non-existing user or group was specified. <a
href="https://redirect.github.com/moby/moby/pull/49868">moby/moby#49868</a></li>
<li>Fix <code>docker swarm init</code> ignoring <code>cacert</code>
option of <code>--external-ca</code>. <a
href="https://redirect.github.com/docker/cli/pull/5995">docker/cli#5995</a></li>
<li>Fix an issue where the CLI would not correctly save the
configuration file (<code>~/.docker/config.json</code>) if it was a
relative symbolic link. <a
href="https://redirect.github.com/docker/cli/pull/5282">docker/cli#5282</a></li>
<li>Fix containers with <code>--restart always</code> policy using CDI
devices failing to start on daemon restart. <a
href="https://redirect.github.com/moby/moby/pull/49990">moby/moby#49990</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/45873be4ae3f5488c9498b3d9f17deaddaf609f4"><code>45873be</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50105">#50105</a>
from jsternberg/revert-build-dangling</li>
<li><a
href="https://github.com/moby/moby/commit/7994426e6126229d4218703bb37ca0bf380007f9"><code>7994426</code></a>
Revert &quot;containerd: images overridden by a build are kept
dangling&quot;</li>
<li><a
href="https://github.com/moby/moby/commit/f144264bae57b134b73afa966a1136a0fd7ed572"><code>f144264</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50090">#50090</a>
from corhere/libn/overlay-netip</li>
<li><a
href="https://github.com/moby/moby/commit/768cfaeb623ccd55194d649c983ea0fecd5a91c8"><code>768cfae</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50050">#50050</a>
from robmry/nftables_internal_dns</li>
<li><a
href="https://github.com/moby/moby/commit/d3289dda4bd9339a053abc33ed0912a00a56ce4d"><code>d3289dd</code></a>
Add nftables NAT rules for internal DNS resolver</li>
<li><a
href="https://github.com/moby/moby/commit/7a0bf747f5c25da0794e42d5f9e5a40db5a7786e"><code>7a0bf74</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50038">#50038</a>
from ctalledo/fix-for-50037</li>
<li><a
href="https://github.com/moby/moby/commit/b43afbf898c0f7fde9c500b5867256974dd24ac6"><code>b43afbf</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50098">#50098</a>
from robmry/remove_docker-user_return_rule</li>
<li><a
href="https://github.com/moby/moby/commit/c299ba3b38e1c79e5f13ca04d9804d384bc80f57"><code>c299ba3</code></a>
Update worker.Platforms() in builder-next worker.</li>
<li><a
href="https://github.com/moby/moby/commit/0e2cc22d36ae3013f83863c8da2e1b808f25e78e"><code>0e2cc22</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50049">#50049</a>
from robmry/nftables_env_var_enable</li>
<li><a
href="https://github.com/moby/moby/commit/e37efd4c2d4758c53fedefb9c3ec9235d1e71490"><code>e37efd4</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/50068">#50068</a>
from mmorel-35/github.com/containerd/errdefs</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v28.1.1...v28.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=28.1.1+incompatible&new-version=28.2.2+incompatible)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 12:09:41 +00:00
Hugo Dutka 8ca5519f57 chore(coderd/idpsync): run all tests with postgres (#18149)
Related to https://github.com/coder/coder/issues/15109.

Running postgres tests used to create a new postgres docker container
every time. I believe the slow down might've been caused by that and was
misattributed to postgres performance.

```
coder@main ~/coder ((0e90ac29))> DB=ci gotestsum --packages="./coderd/idpsync" -- -count=1
✓  coderd/idpsync (1.471s)

DONE 91 tests in 4.766s
```
2025-06-02 14:07:31 +02:00
Hugo Dutka bdf227c1f9 chore(coderd/database/dbgen): remove dbmem from tests (#18152)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 14:05:40 +02:00
Hugo Dutka d3ed6fe652 chore(coderd/autobuild): use dbtestutil.WillUsePostgres instead of os.Getenv in test (#18145)
Standardizing on `WillUsePostgres` will make it easier to remove the
check entirely once dbmem is removed.

Related to https://github.com/coder/coder/issues/15109.
2025-06-02 13:58:07 +02:00
Hugo Dutka 782d01bae2 chore(coderd/httpmw): remove dbmem usage from tests (#18146)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 13:57:56 +02:00
dependabot[bot] f986d13a9c chore: bump github.com/fergusstrange/embedded-postgres from 1.30.0 to 1.31.0 (#18174)
Bumps
[github.com/fergusstrange/embedded-postgres](https://github.com/fergusstrange/embedded-postgres)
from 1.30.0 to 1.31.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fergusstrange/embedded-postgres/releases">github.com/fergusstrange/embedded-postgres's
releases</a>.</em></p>
<blockquote>
<h2>v1.31.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: prevent panic when <code>*http.Response</code> is nil by <a
href="https://github.com/dannykopping"><code>@​dannykopping</code></a>
in <a
href="https://redirect.github.com/fergusstrange/embedded-postgres/pull/156">fergusstrange/embedded-postgres#156</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dannykopping"><code>@​dannykopping</code></a>
made their first contribution in <a
href="https://redirect.github.com/fergusstrange/embedded-postgres/pull/156">fergusstrange/embedded-postgres#156</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/fergusstrange/embedded-postgres/compare/v1.30.0...v1.31.0">https://github.com/fergusstrange/embedded-postgres/compare/v1.30.0...v1.31.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fergusstrange/embedded-postgres/commit/4fb7ddc646853d24521dfbb119c9a3fbf6f8a675"><code>4fb7ddc</code></a>
fix: prevent panic when <code>*http.Response</code> is nil (<a
href="https://redirect.github.com/fergusstrange/embedded-postgres/issues/156">#156</a>)</li>
<li>See full diff in <a
href="https://github.com/fergusstrange/embedded-postgres/compare/v1.30.0...v1.31.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/fergusstrange/embedded-postgres&package-manager=go_modules&previous-version=1.30.0&new-version=1.31.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 11:57:40 +00:00
Hugo Dutka 9a28cb0545 chore(coderd/telemetry): remove dbmem from tests (#18148)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 13:57:27 +02:00
Hugo Dutka 9812162190 chore(coderd/database/dbrollup): remove dbmem from tests (#18153)
Related to https://github.com/coder/coder/issues/15109
2025-06-02 13:56:50 +02:00
dependabot[bot] 33c87a2e03 chore: bump github.com/mocktools/go-smtp-mock/v2 from 2.4.0 to 2.5.0 (#18170)
Bumps
[github.com/mocktools/go-smtp-mock/v2](https://github.com/mocktools/go-smtp-mock)
from 2.4.0 to 2.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mocktools/go-smtp-mock/releases">github.com/mocktools/go-smtp-mock/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.5.0</h2>
<h2>Changelog</h2>
<ul>
<li>46310364e58e3d77f47a7fe9c2e890b59ecfc01d Feature/Support custom
logger implementations (<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/201">#201</a>)</li>
<li>379ac4b84f86882d2ee896c956b1ccdc92a15d55 Merge pull request <a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/204">#204</a>
from mocktools/develop</li>
<li>f26d8693f3ecc39d6118dedcfd680d0e8048a67c Technical/Update changelog
(<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/203">#203</a>)</li>
<li>33f8c5c4dd1d35517152129b999372dcc711dd78 Technical/Update readme (<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/202">#202</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mocktools/go-smtp-mock/blob/master/CHANGELOG.md">github.com/mocktools/go-smtp-mock/v2's
changelog</a>.</em></p>
<blockquote>
<h2>[2.5.0] - 2025-05-31</h2>
<h3>Added</h3>
<ul>
<li>Added <a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/171">ability
to use a custom logger</a>, <code>WithLogger()</code> method. Thanks <a
href="https://github.com/Hsn723"><code>@​Hsn723</code></a> for PR</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mocktools/go-smtp-mock/commit/379ac4b84f86882d2ee896c956b1ccdc92a15d55"><code>379ac4b</code></a>
Merge pull request <a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/204">#204</a>
from mocktools/develop</li>
<li><a
href="https://github.com/mocktools/go-smtp-mock/commit/f26d8693f3ecc39d6118dedcfd680d0e8048a67c"><code>f26d869</code></a>
Technical/Update changelog (<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/203">#203</a>)</li>
<li><a
href="https://github.com/mocktools/go-smtp-mock/commit/33f8c5c4dd1d35517152129b999372dcc711dd78"><code>33f8c5c</code></a>
Technical/Update readme (<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/202">#202</a>)</li>
<li><a
href="https://github.com/mocktools/go-smtp-mock/commit/46310364e58e3d77f47a7fe9c2e890b59ecfc01d"><code>4631036</code></a>
Feature/Support custom logger implementations (<a
href="https://redirect.github.com/mocktools/go-smtp-mock/issues/201">#201</a>)</li>
<li>See full diff in <a
href="https://github.com/mocktools/go-smtp-mock/compare/v2.4.0...v2.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mocktools/go-smtp-mock/v2&package-manager=go_modules&previous-version=2.4.0&new-version=2.5.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 11:54:58 +00:00
dependabot[bot] ef17def4af chore: bump github.com/mark3labs/mcp-go from 0.30.0 to 0.31.0 (#18168)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.30.0 to 0.31.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.31.0</h2>
<h2>What's Changed</h2>
<ul>
<li>[feat] separate request struct by <a
href="https://github.com/OswinWu"><code>@​OswinWu</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/333">mark3labs/mcp-go#333</a></li>
<li>fix: logo on website is squashed by <a
href="https://github.com/corani"><code>@​corani</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/349">mark3labs/mcp-go#349</a></li>
<li>fix: panic when streamable HTTP server sends notification by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/348">mark3labs/mcp-go#348</a></li>
<li>fix: move styles.css to www/docs by <a
href="https://github.com/corani"><code>@​corani</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/354">mark3labs/mcp-go#354</a></li>
<li>fix(server): resolve stdio server context cancellation bug by <a
href="https://github.com/sonirico"><code>@​sonirico</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/331">mark3labs/mcp-go#331</a></li>
<li>Add option to StreamableHTTPServer to allow custom http server
instance by <a
href="https://github.com/yash025"><code>@​yash025</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/347">mark3labs/mcp-go#347</a></li>
<li>fix(Srv/stream): add ID field to <code>PingRequest</code> by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/353">mark3labs/mcp-go#353</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/OswinWu"><code>@​OswinWu</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/333">mark3labs/mcp-go#333</a></li>
<li><a href="https://github.com/corani"><code>@​corani</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/349">mark3labs/mcp-go#349</a></li>
<li><a href="https://github.com/sonirico"><code>@​sonirico</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/331">mark3labs/mcp-go#331</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.30.1...v0.31.0">https://github.com/mark3labs/mcp-go/compare/v0.30.1...v0.31.0</a></p>
<h2>Release v0.30.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(server): Implement MCP version negotiation. by <a
href="https://github.com/octo"><code>@​octo</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/341">mark3labs/mcp-go#341</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.30.0...v0.30.1">https://github.com/mark3labs/mcp-go/compare/v0.30.0...v0.30.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/4b7117679253667c34c385f47e5982e3b18ba90a"><code>4b71176</code></a>
fix(Srv/stream): add ID field to <code>PingRequest</code> (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/353">#353</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/7f2ea88dea96ed9b804168ad91e19a19363eb03f"><code>7f2ea88</code></a>
Add option to StreamableHTTPServer to allow custom http server instance
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/347">#347</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d250b380fbc71f43a41a276f86703085f87ca963"><code>d250b38</code></a>
fix(server): resolve stdio server context cancellation bug (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/331">#331</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d5847c0fadb7ea4115562e8b92cf5e1ffe9b288b"><code>d5847c0</code></a>
fix: move styles.css to www/docs (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/354">#354</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e744c1925c709a4e7c02d31500cdded5b1d0e935"><code>e744c19</code></a>
fix: panic when streamable HTTP server sends notification (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/348">#348</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/991b31c2a0a9d2f304f6dcb46554fe651c14b6af"><code>991b31c</code></a>
fix: logo on website is squashed (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/349">#349</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/bfc377391e4c1d7ff3883950fd91c4a499b4f2bf"><code>bfc3773</code></a>
Merge pull request <a
href="https://redirect.github.com/mark3labs/mcp-go/issues/333">#333</a>
from OswinWu/feat/separate-CallToolRequstParams</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a283d2336d42040d7910d88e33cbd0937545e1c9"><code>a283d23</code></a>
Merge branch 'main' into feat/separate-CallToolRequstParams</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c7c0e13ad2675746f78b2580ad4a8de57b2bbbc6"><code>c7c0e13</code></a>
fix(server): Implement MCP protocol negotiation. (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/341">#341</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/96f1b3bbd89345adb1f3668558c919b80a769c1a"><code>96f1b3b</code></a>
[style] change naming style of structs</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.30.0...v0.31.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.30.0&new-version=0.31.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 11:49:30 +00:00
Danny Kopping 2c8e6b91d6 chore: upgrade fergusstrange/embedded-postgres after bugfix (#18167)
https://github.com/fergusstrange/embedded-postgres/pull/156 was merged
and
[v1.31.0](https://github.com/fergusstrange/embedded-postgres/releases/tag/v1.31.0)
was cut.

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-06-02 11:44:08 +00:00
Ben Potter 1e407fb4e2 fix: improve build reliability with fallback apt mirrors (#18155)
## Summary
- Fixes image build failure by adding fallback to kernel.org mirrors
when Ubuntu/Debian repositories fail
- Ensures unzip is available during Bun installation process
- Improves apt repository configuration to prevent 403 errors in CI

## Root Cause
The build was failing for two reasons:
1. Network issues with Ubuntu/Debian package repositories returning 403
Forbidden errors
2. Unzip package not being reliably available in the image layer where
Bun installation happens

## Fix
- Added fallback mirrors for apt repositories using kernel.org mirrors
- Explicitly installed unzip before using it in the Bun installation
- Added proper cleanup after package installations to keep image size
down

## Test plan
- The CI workflow that was previously failing should now succeed
- Build the dogfood image locally with `cd dogfood/coder && docker build
-t codercom/oss-dogfood:test .`
- Verify Bun is correctly installed and can be used

Fixes build failure from PR #18154 (original PR that added Bun)

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-01 19:01:35 -05:00
Ben Potter bf07a14c27 feat: add Bun v1.2.15 to dogfood image (#18154)
## Summary
- Adds Bun JavaScript runtime (v1.2.15) to the dogfood image
- Installs Bun to /usr/local/bin to ensure persistence when /home/coder
is mounted
- Verified that Bun works correctly in the built container

## Test plan
1. Build the dogfood image with `cd dogfood/coder && docker build -t
codercom/oss-dogfood:test .`
2. Run the container with `docker run --rm -it codercom/oss-dogfood:test
bash`
3. Test Bun in the container with:
   - `bun --version` (should output 1.2.15)
- `cd /tmp && echo "console.log('Hello from Bun\!');" > test.js && bun
run test.js`

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-01 16:07:04 -05:00
Jaayden Halko 854ef5b07c fix: improve create workspace page for dynamic parameters (#18139)
- Avoid scrolling on workspace creation
- hide auth required badge when authenticated
2025-05-30 17:13:16 -04:00
Bruno Quaresma 19745a2dee feat: filter tasks by user (#18130)
Demo: 

https://github.com/user-attachments/assets/4f3a39c5-6b41-4493-a1c0-56eedadb7798
2025-05-30 15:31:06 -03:00
Bruno Quaresma 9fbccc032d chore: improve iframe loading time (#18134)
- Pre-load all the embed app iframes
- Avoid reloading the iframe when the selected app changes
2025-05-30 15:30:35 -03:00
Bruno Quaresma 00502dc653 feat: hide parent apps on devcontainer agents (#18120)
**Demo:**

https://github.com/user-attachments/assets/d68cbc33-5199-426b-8f97-35ee1c3ae133
2025-05-30 14:59:26 -03:00
Bruno Quaresma 696d264da8 refactor: remove app column from tasks table (#18135)
Remove the "app" column from the tasks table since the user can click on the task and use apps there.
2025-05-30 14:47:24 -03:00
Kyle Carberry d44d8abcd1 fix: improve task report tool complete status (#18138) 2025-05-30 17:46:19 +00:00
Jaayden Halko 9b53e69e32 feat: add early access badges for dynamic parameters (#18114)
Workspace creation page
<img width="1438" alt="Screenshot 2025-05-30 at 13 38 22"
src="https://github.com/user-attachments/assets/bac94f3a-b695-4662-9a89-7777d03d8f74"
/>

Workspace parameter settings
<img width="1432" alt="Screenshot 2025-05-30 at 13 37 19"
src="https://github.com/user-attachments/assets/f1f803a6-b99a-416c-a085-38bafc2ef4e4"
/>
<img width="1429" alt="Screenshot 2025-05-30 at 13 43 27"
src="https://github.com/user-attachments/assets/cb1d37a4-8b79-4858-846e-3b1deb0a63cf"
/>
2025-05-30 13:17:17 -04:00
Steven Masley 9db114d17c feat: add filecache prometheus metrics (#18089)
Dynamic parameters has an in memory file cache. This adds prometheus
metrics to monitor said cache.
2025-05-30 11:54:54 -05:00
Danielle Maywood 562c4696de fix(coderd/database/dbmem): fill DisplayGroup field for InsertWorkspaceApp (#18136)
It appears `dbmem` was missed in the new app groups feature
https://github.com/coder/coder/pull/17977.
2025-05-30 17:52:31 +01:00
Cian Johnston 9afdd33e64 fix(coderd/database/dbmem): apply rlock/runlock on GetTelemetryItems (#18133)
Fixes https://github.com/coder/coder/issues/18132
2025-05-30 16:39:32 +01:00
Steven Masley 216fe441cf chore: align CSRF settings with deployment config (#18116) 2025-05-30 09:30:49 -05:00
Marcin Tojek 1fba4195fb docs: add backend contributing guide (#18077) 2025-05-30 16:24:46 +02:00
Steven Masley 4597142467 feat: set default workspace proxy based on latency (#17812)
Auto select the proxy on first load (stored in local storage, so per
browser), then defer to user selection. The auto selected proxy will not
update again once set.
2025-05-30 09:24:16 -05:00
dependabot[bot] 80b7947a0e chore: bump next from 14.2.26 to 15.2.4 in /offlinedocs (#18131)
Bumps [next](https://github.com/vercel/next.js) from 14.2.26 to 15.2.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v15.1.8</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: Merge link header from middleware with the ones from React (<a
href="https://redirect.github.com/vercel/next.js/issues/73431">#73431</a>)</li>
<li>fix(edge): run after() if request is cancelled mid-streaming (<a
href="https://redirect.github.com/vercel/next.js/issues/76013">#76013</a>)</li>
<li>gate segmentCache branch in base-server (<a
href="https://redirect.github.com/vercel/next.js/issues/79505">#79505</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/amannn"><code>@​amannn</code></a>, <a
href="https://github.com/lubieowoce"><code>@​lubieowoce</code></a>, and
<a href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
<h2>v14.2.29</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389">#79389</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk"><code>@​ijjk</code></a> for helping!</p>
<h2>v14.2.28</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: node.js module import error when using middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/77945">#77945</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
<h2>v14.2.27</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix dynamic route interception not working when deployed with
middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/64923">#64923</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/804aa35c71cc65cf3ddc29cdadcd29f06b368285"><code>804aa35</code></a>
v15.2.4</li>
<li><a
href="https://github.com/vercel/next.js/commit/ecb72ee9ead86aaa1e3992b427bfb43b046aa08d"><code>ecb72ee</code></a>
Match subrequest handling for edge and node (<a
href="https://redirect.github.com/vercel/next.js/issues/77474">#77474</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/25f810b596cdb6875d1f068ae8d203f1a5df7a46"><code>25f810b</code></a>
exclude images and static media from dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77417">#77417</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/d9bcb833dd2a8dd5c13f30775d688f7015cd75b1"><code>d9bcb83</code></a>
ensure /__next middleware URLs are included in the origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77416">#77416</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/cfeaa86fa718f1fecce9fb5f5fad3c310117fc53"><code>cfeaa86</code></a>
remove direct ip/port bypass in dev origin check (<a
href="https://redirect.github.com/vercel/next.js/issues/77414">#77414</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/f84730266087817b39c9b87c42ccf1c3bb7de0c5"><code>f847302</code></a>
switch development origin verification to be opt-in rather than opt-out
(<a
href="https://redirect.github.com/vercel/next.js/issues/77395">#77395</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/535e26d3c69de49df8bd17618a424cbe65ec897b"><code>535e26d</code></a>
v15.2.3</li>
<li><a
href="https://github.com/vercel/next.js/commit/2fcae1d7e3079874ff633b5b8311adb584c80ce6"><code>2fcae1d</code></a>
Update default allowed origins list (<a
href="https://redirect.github.com/vercel/next.js/issues/77212">#77212</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/adf5462b5f269963395b0a2ef12a1b66e8cadabc"><code>adf5462</code></a>
unify allowed origin detection handling (<a
href="https://redirect.github.com/vercel/next.js/issues/77053">#77053</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/5e59da1f5c8b9e8b3a759048bd371efcd77813ae"><code>5e59da1</code></a>
Add dev warning for cross-origin and stabilize allowedDevOrigins (<a
href="https://redirect.github.com/vercel/next.js/issues/77044">#77044</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vercel/next.js/compare/v14.2.26...v15.2.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=14.2.26&new-version=15.2.4)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-05-30 14:07:38 +00:00
Bruno Quaresma be8474a8a0 feat: add textarea auto size (#18127)
Demo:

https://github.com/user-attachments/assets/aa179ac2-6f2f-43a6-8d74-8a936eea5a29
2025-05-30 11:00:53 -03:00
Bruno Quaresma f974add373 chore: rollback PR #18025 (#18118)
Rollback https://github.com/coder/coder/pull/18025
2025-05-30 11:00:26 -03:00
Bruno Quaresma a19539ce83 refactor: improve app status and statuses (#18121)
#### 1. Gray out status icons when the workspace is not running. 

**Before:**
<img width="1624" alt="Screenshot 2025-05-29 at 21 33 45"
src="https://github.com/user-attachments/assets/7916e707-e5ae-4226-8234-39c42f0ec8c4"
/>

**After:**
<img width="1624" alt="Screenshot 2025-05-29 at 21 35 07"
src="https://github.com/user-attachments/assets/52fd8553-414d-4c49-a44e-7a530f0d522d"
/>

#### 2. Truncate long messages

**Before**
<img width="1213" alt="Screenshot 2025-05-29 at 21 28 50"
src="https://github.com/user-attachments/assets/b76b7a4d-7ef0-41a0-822c-c32c98f997fc"
/>

**After**
<img width="1206" alt="Screenshot 2025-05-29 at 21 25 42"
src="https://github.com/user-attachments/assets/fb3f3916-a4a4-4697-b7d1-0b4873b6e528"
/>

#### 3. Disable "show more" button if there is one single status
2025-05-29 22:39:18 -03:00
Ethan e5c254888a fix(cli): handle nil unwrap errors when formatting (#18099)
Discovered an unhelpful error when running a CLI command without internet (I didn't know I didn't have internet!):

```
$ coder ls
Encountered an error running "coder list", see "coder list --help" for more information
error: <nil>
```

The source of this was that calling `Unwrap()` on `net.DNSError` can return nil, causing the whole error trace to get replaced by it. Instead, we'll just treat a nil `Unwrap()` return value as if there was nothing to unwrap.

The result is:
```
$ coder ls
Encountered an error running "coder list", see "coder list --help" for more information
error: query workspaces: Get "https://dev.coder.com/api/v2/workspaces?q=owner%3Ame": dial tcp: lookup dev.coder.com: no such host
```
2025-05-30 11:31:51 +10:00
Atif Ali 25e2146200 docs: reorganize JetBrains docs (#17995)
This pull request introduces significant updates to documentation and
references related to JetBrains IDEs, including rebranding,
restructuring, and adding new guides.

[Preview](https://coder.com/docs/@atif%2Fjetbrains-reorganization)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-29 17:56:44 -07:00
Kyle Carberry bedeb4710b fix: improve task reporting tool description (#18119)
In my (albeit subjective) testing, this dramatically improved the
reporting ability - both in frequency and accuracy.
2025-05-30 00:00:12 +00:00
Steven Masley 4e0acdce1e chore: implement dogfood template to select region based on user group (#18115)
Co-authored-by: Atif Ali <atif@coder.com>
2025-05-29 15:02:16 -05:00
ケイラ 232c72ffd6 feat: group apps together on workspace page (#18018) 2025-05-29 12:01:51 -06:00
Edward Angert e906ce2b65 docs: separate coder desktop sections into install and use pages (#18068)
[preview](https://coder.com/docs/@coder-desktop-section/user-guides/desktop)

we should consider the "Connect" naming in future PRs

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-29 17:42:14 +00:00
Bruno Quaresma e0718a600e feat: group external apps on task page (#18107)
https://github.com/user-attachments/assets/ac03f9ad-9b89-400b-aabe-fade2997319b
2025-05-29 14:10:27 -03:00
Bruno Quaresma a85351f2bf fix: fix usage of wrong attribute (#18109)
Caused by https://github.com/coder/coder/pull/18104
2025-05-29 14:02:34 -03:00
Atif Ali b80e5d7cc5 chore(dogfood): update jetbrains toolbox module to use multi-select (#18011) 2025-05-29 21:57:05 +05:00
Bruno Quaresma 458780d059 fix: handle empty display_name on templates (#18106) 2025-05-29 13:13:15 -03:00
Bruno Quaresma d06eff2b2f feat: add view workspace button in task page (#18105)
<img width="1613" alt="Screenshot 2025-05-29 at 12 57 41"
src="https://github.com/user-attachments/assets/7ae199c2-7e36-47d2-84cc-d0ae820ff372"
/>
2025-05-29 13:12:58 -03:00
Bruno Quaresma d779126ee3 chore: rollback PR #18081 (#18104)
Rollback https://github.com/coder/coder/pull/18081
2025-05-29 13:12:13 -03:00
Hugo Dutka 345001ffd1 docs: update the GitHub Auth section (#17769)
Addresses https://github.com/coder/coder/issues/17752


[preview](https://coder.com/docs/@hugodutka%2Fgithub%2Dauth%2Dorg%2Ddocs/admin/users/github-auth)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-05-29 15:38:45 +00:00
Jaayden Halko 177bda3187 fix: autofill with workspace build parameters from the latest build (#18091)
Set the form parameters using autofill parameters based on the workspace
build parameters for the latest build

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-05-29 11:24:55 -04:00
Steven Masley e4648b6fc1 feat: allow iframing urls on the same domain as the deployment (#18102)
Used for AI tasks. We should eventually add regions to this csp header.
2025-05-29 10:07:57 -05:00
Bruno Quaresma 201b0b10e8 chore: simplify AgentRow interface (#18087) 2025-05-29 11:45:50 -03:00
Steven Masley 8387dd27ab chore: add form_type parameter argument to db (#17920)
`form_type` is a new parameter field in the terraform provider. Bring
that field into coder/coder.

Validation for `multi-select` has also been added.
2025-05-29 08:55:19 -05:00
Cian Johnston 776c144128 fix(coderd): ensure agent timings are non-zero on insert (#18065)
Relates to https://github.com/coder/coder/issues/15432

Ensures that no workspace build timings with zero values for started_at or ended_at are inserted into the DB or returned from the API.
2025-05-29 13:36:06 +01:00
Bruno Quaresma 5f34d01906 refactor: replace MUI components and refactor styles (#18082)
**Before:**
<img width="1196" alt="Screenshot 2025-05-28 at 13 26 03"
src="https://github.com/user-attachments/assets/86c2830e-6777-441c-aedc-64fef472e369"
/>


**After:**
<img width="1197" alt="Screenshot 2025-05-28 at 13 24 19"
src="https://github.com/user-attachments/assets/08e2dc4e-424a-43d8-a343-0ac8e03c9948"
/>
2025-05-29 08:27:52 -03:00
Danielle Maywood b712d0b23f feat(coderd/agentapi): implement sub agent api (#17823)
Closes https://github.com/coder/internal/issues/619

Implement the `coderd` side of the AgentAPI for the upcoming
dev-container agents work.

`agent/agenttest/client.go` is left unimplemented for a future PR
working to implement the agent side of this feature.
2025-05-29 12:15:47 +01:00
Danny Kopping bc83de2a72 feat: add prebuilt workspaces telemetry (#18084)
Adds telemetry for a _global_ account of prebuilt workspaces created,
failed to build, and claimed.

Partitioning this data by template/preset tuple is not currently in
scope.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-29 13:13:44 +02:00
Bruno Quaresma 69c90064a8 fix: rename build.workspace_owner_name to build.workspace_owner_username (#18078)
I forgot to update the the build logs to use username instead of name.

Introduced on: https://github.com/coder/coder/pull/18025
2025-05-29 06:52:25 -03:00
Hugo Dutka bbf90611b3 fix: use owner username instead of owner name in tasks list links (#18098)
Fixes a bug where if you click on a task in the tasks list, you see:
![image
(4)](https://github.com/user-attachments/assets/db392425-3ec8-441c-9f19-6860b85374a5)
2025-05-29 09:31:41 +00:00
Ethan da02375f00 fix: handle workspace.agent and agent.workspace.owner in coder ssh (#18093)
Closes #18088.

The linked issue is misleading -- `coder config-ssh` continues to support the `coder.` prefix. The reason the command
`ssh coder.workspace.agent` fails is because `coder ssh workspace.agent` wasn't supported. This PR fixes that.

We know we used to support `workspace.agent`, as this is what we recommend in the Web UI:
![image](https://github.com/user-attachments/assets/702bbbc7-c586-4947-98a6-4508a481280b)

This PR also adds support for `coder ssh agent.workspace.owner`, such that after running `coder config-ssh`, a command like
```
ssh agent.workspace.owner.coder
```
works, even without Coder Connect running. This is done for parity with an existing workflow that uses `ssh workspace.coder`, which either uses Coder Connect if available, or the CLI.
2025-05-29 17:26:27 +10:00
Atif Ali 5cfcb73761 chore: add type to bug template (#18094) 2025-05-29 09:41:11 +05:00
Bruno Quaresma 2ec7404197 chore: make owner_name and owner_username consistent (#18081)
We've been using owner_name inconsistently as username. So this PR fixes
it by making the attribute naming more consistent.
2025-05-28 17:25:32 -03:00
Steven Masley 3a2e36237d docs: add error form_type for dynamic parameters (#18075) 2025-05-28 14:33:28 -05:00
Bruno Quaresma bc3b8d5a51 feat: add task page (#18076)
**Demo:**


![image](https://github.com/user-attachments/assets/ca59ba92-a73a-4613-ae41-910f3f0455d2)
2025-05-28 15:19:05 -03:00
Yevhenii Shcherbina b330c0803c fix: reimplement reporting of preset-hard-limited metric (#18055)
Addresses concerns raised in https://github.com/coder/coder/pull/18045
2025-05-28 14:18:32 -04:00
Atif Ali 6a2f22abf7 chore: add JetBrains icon (#18073) 2025-05-28 20:33:12 +05:00
Steven Masley ca8660cea6 chore: keep previous workspace build parameters for dynamic params (#18059)
The existing code persists all static parameters and their values. Using
the previous build as the source if no new inputs are found.

Dynamic params do not have a state of the parameters saved to disk. So
instead, all previous values are persisted always, and new inputs
override.
2025-05-28 10:00:39 -05:00
Danielle Maywood 6e255c72c6 chore(coderd/database): enforce agent name unique within workspace build (#18052)
Adds a database trigger that runs on insert and update of the
`workspace_agents` table. The trigger ensures that the agent name is
unique within the context of the workspace build it is being inserted
into.
2025-05-28 14:21:17 +01:00
Yevhenii Shcherbina 110102a60a fix: optimize queue position sql query (#17974)
Use only `online provisioner daemons` for
`GetProvisionerJobsByIDsWithQueuePosition` query. It should improve
performance of the query.
2025-05-28 08:21:16 -04:00
Ethan 2bcbd9bdbd fix(site): remove trailing comment from cursor.svg (#18072)
The trailing comment was preventing the SVG from rendering on Coder
Desktop macOS, with the SVG loader we use. I've moved it to a place
where it's apparently OK? Couldn't tell you why.
https://validator.w3.org/ had no complaints.

I tested this by hardcoding the icon to that served by a build of coder
with this new svg.


![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/jI7h94jB23BidWsYTSCk/4c94ae5f-d0e2-496e-90eb-4968cf40d639.png)

The first icon is without the trailing comment, the second is with.
2025-05-28 09:17:38 +02:00
Jaayden Halko 2ded3b59e9 chore: remove beta badges (#18069) 2025-05-27 16:48:02 -04:00
Steven Masley b4531c4218 feat: make dynamic parameters respect owner in form (#18013)
Closes https://github.com/coder/coder/issues/18012

---------

Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
2025-05-27 15:43:00 -05:00
Jaayden Halko 5b9c40481f feat: add form_type error (#18067)
Normally parameters had red text for error diagnostics. The goal here is
to make errors more obvious when the form_type is error meaning the
parameter could not be processed correctly.

<img width="543" alt="Screenshot 2025-05-27 at 18 35 50"
src="https://github.com/user-attachments/assets/2265553e-34a3-4526-8209-6253d541f784"
/>
2025-05-27 15:35:11 -04:00
ケイラ 9fc3329575 feat: persist app groups in the database (#17977) 2025-05-27 13:13:08 -06:00
Steven Masley 513a468a3a chore: disable logs sourced from dynamic params parsing (#18066)
Logs emitted by dynamic params did not have any additional scope or
context, and are not helpful in the current state. A future change can
capture these logs for display somewhere.

Does this by using latest `preview`
2025-05-27 17:39:44 +00:00
Mathias Fredriksson a18eb9d08f feat(site): allow recreating devcontainers and showing dirty status (#18049)
This change allows showing the devcontainer dirty status in the UI as
well as a recreate button to update the devcontainer.

Closes #16424
2025-05-27 19:42:24 +03:00
Jaayden Halko 23d14233bf chore: hide classic workspace checkbox when experiment is not enabled (#18061)
resolves coder/preview#137

This hides the `Use classic workspace creation form` checkbox on the
template settings page if the dynamic-parameters experiment is not
enabled

Add mention of "workspace parameters settings form" in the checkbox
description as this is also affected.
2025-05-27 12:02:54 -04:00
Zane 71a647b001 feat: support ConvertUserLoginType for another user in codersdk(#17784)
Added `ConvertUserLoginType(ctx, user, req)` method to support
converting the login type for a specified user.
2025-05-27 09:53:02 -05:00
Bruno Quaresma d63417b542 fix: update WorkspaceOwnerName to use user.name instead of user.username (#18025)
We have been using the user.username instead of user.name in wrong
places, making it very confusing for the UI.
2025-05-27 11:42:07 -03:00
Bruno Quaresma 9827c97f32 feat: add AI Tasks page (#18047)
**Preview:**

<img width="1624" alt="Screenshot 2025-05-26 at 21 25 04"
src="https://github.com/user-attachments/assets/2a51915d-2527-4467-bf99-1f2d876b953b"
/>
2025-05-27 11:34:07 -03:00
Cian Johnston ce134bc63a fix: handle invalid provisioning timings in ui (#18058)
Relates to https://github.com/coder/coder/issues/15432

* Adds a storybook entry for zero values in provisioner timings.
* Coerces a 'zero' start time to an 'instant'.
* Improves timing chart handling for large timeframes. Previously, this
would have caused the tab to run out of memory when encountering a
`time.Time{}`.
* Render 'instants' as 'invalid' in timing chart.
2025-05-27 15:10:57 +01:00
Susana Ferreira 565fad5951 chore: bump github.com/coder/terraform-provider-coder/v2 from 2.5.0 to 2.5.2 (#18054)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.5.0 to 2.5.2.

Release:
https://github.com/coder/terraform-provider-coder/releases/tag/v2.5.2
2025-05-27 15:09:37 +01:00
Yevhenii Shcherbina e8c75eb1c3 fix: fix metric for hard-limited presets (#18045)
```
// Report a metric only if the preset uses the latest version of the template and the template is not deleted.
// This avoids conflicts between metrics from old and new template versions.
//
// NOTE: Multiple versions of a preset can exist with the same orgName, templateName, and presetName,
// because templates can have multiple versions — or deleted templates can share the same name.
//
// The safest approach is to report the metric only for the latest version of the preset.
// When a new template version is released, the metric for the new preset should overwrite
// the old value in Prometheus.
//
// However, there’s one edge case: if an admin creates a template, it becomes hard-limited,
// then deletes the template and never creates another with the same name,
// the old preset will continue to be reported as hard-limited —
// even though it’s deleted. This will persist until `coderd` is restarted.
```
2025-05-27 10:07:36 -04:00
Bruno Quaresma 5b90c69b90 chore: simplify workspace routing (#17981) 2025-05-27 11:05:47 -03:00
Edward Angert db806ae243 docs: move early access badge in dynamic parameters doc (#18009)
and md fix

this is basically a `hotfix`

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-27 15:17:49 +02:00
Susana Ferreira 8f44603d8a chore: update Terraform testdata by running generate.sh (#18044)
## Summary

This PR updates the terraform/testdata by running
`provisioner/terraform/testdata/generate.sh` script. These changes occur
from `terraform-provider-coder`
[v2.4.2](https://github.com/coder/terraform-provider-coder/releases/tag/v2.4.2)
and are associated to the introduction of a `api_key_scope` optional
field with a default value:
https://github.com/coder/terraform-provider-coder/pull/391

## Changes

* Run `provisioner/terraform/testdata/generate.sh` script.
* Update `resource_test.go` to include `api_key_scope`
2025-05-27 13:18:21 +01:00
Michael Suchacz 01d144c56e chore: update cursor icon to be an svg without binary data (#18051) 2025-05-27 14:15:33 +02:00
Spike Curtis 6c0bed0f53 chore: update to coder/quartz v0.2.0 (#18007)
Upgrade to coder/quartz v0.2.0 including fixing up a minor API breaking change.
2025-05-27 16:05:03 +04:00
Hugo Dutka 9ada1232f3 chore: make the $RUNNER_TEMP RAM disk bigger on Windows in CI (#18050) 2025-05-27 12:26:50 +02:00
Bruno Quaresma afaa20e166 chore: add proxy provider decorator for storybook (#18023) 2025-05-26 22:39:44 -03:00
dependabot[bot] f678f921db chore: bump undici from 6.21.1 to 6.21.2 in /site (#17856)
Bumps [undici](https://github.com/nodejs/undici) from 6.21.1 to 6.21.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nodejs/undici/releases">undici's
releases</a>.</em></p>
<blockquote>
<h2>v6.21.2</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(types): add missing DNS interceptor by <a
href="https://github.com/slagiewka"><code>@​slagiewka</code></a> in <a
href="https://redirect.github.com/nodejs/undici/pull/4024">nodejs/undici#4024</a></li>
<li>[v6.x] fix wpts on windows by <a
href="https://github.com/mcollina"><code>@​mcollina</code></a> in <a
href="https://redirect.github.com/nodejs/undici/pull/4093">nodejs/undici#4093</a></li>
<li>Removed clients with unrecoverable errors from the Pool <a
href="https://redirect.github.com/nodejs/undici/pull/4088">nodejs/undici#4088</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/slagiewka"><code>@​slagiewka</code></a>
made their first contribution in <a
href="https://redirect.github.com/nodejs/undici/pull/4024">nodejs/undici#4024</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/nodejs/undici/compare/v6.21.1...v6.21.2">https://github.com/nodejs/undici/compare/v6.21.1...v6.21.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nodejs/undici/commit/b63d939953fe20cfd6718e8eed437da983ac7b12"><code>b63d939</code></a>
Bumped v6.21.2</li>
<li><a
href="https://github.com/nodejs/undici/commit/de1e4b8a39d102bb34155c3fdec3f18806b93d9c"><code>de1e4b8</code></a>
[v6.x] fix wpts on windows (<a
href="https://redirect.github.com/nodejs/undici/issues/4093">#4093</a>)</li>
<li><a
href="https://github.com/nodejs/undici/commit/4e07dda835ffb2ff7a1b1323dd94c61b8feaa3c5"><code>4e07dda</code></a>
test: fix windows wpt (<a
href="https://redirect.github.com/nodejs/undici/issues/4050">#4050</a>)</li>
<li><a
href="https://github.com/nodejs/undici/commit/133387138c9158d3b6e9493833986c34837035ad"><code>1333871</code></a>
Removed clients with unrecoverable errors from the Pool (<a
href="https://redirect.github.com/nodejs/undici/issues/4088">#4088</a>)</li>
<li><a
href="https://github.com/nodejs/undici/commit/a0e76c73a8ecb913beea7e2210e40d12b7c5cf69"><code>a0e76c7</code></a>
fix(types): add missing DNS interceptor (<a
href="https://redirect.github.com/nodejs/undici/issues/4024">#4024</a>)</li>
<li>See full diff in <a
href="https://github.com/nodejs/undici/compare/v6.21.1...v6.21.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=undici&package-manager=npm_and_yarn&previous-version=6.21.1&new-version=6.21.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-05-26 19:41:27 +00:00
Susana Ferreira 6f6e73af03 feat: implement expiration policy logic for prebuilds (#17996)
## Summary 

This PR introduces support for expiration policies in prebuilds. The TTL
(time-to-live) is retrieved from the Terraform configuration
([terraform-provider-coder
PR](https://github.com/coder/terraform-provider-coder/pull/404)):
```
prebuilds = {
	  instances = 2
	  expiration_policy {
		  ttl = 86400
	  }
  }
```
**Note**: Since there is no need for precise TTL enforcement down to the
second, in this implementation expired prebuilds are handled in a single
reconciliation cycle: they are deleted, and new instances are created
only if needed to match the desired count.

## Changes

* The outcome of a reconciliation cycle is now expressed as a slice of
reconciliation actions, instead of a single aggregated action.
* Adjusted reconciliation logic to delete expired prebuilds and
guarantee that the number of desired instances is correct.
* Updated relevant data structures and methods to support expiration
policies parameters.
* Added documentation to `Prebuilt workspaces` page
* Update `terraform-provider-coder` to version 2.5.0:
https://github.com/coder/terraform-provider-coder/releases/tag/v2.5.0

Depends on: https://github.com/coder/terraform-provider-coder/pull/404
Fixes: https://github.com/coder/coder/issues/17916
2025-05-26 20:31:24 +01:00
Bruno Quaresma 589f18627e chore: update vite deps and simplify config (#18036) 2025-05-26 16:29:36 -03:00
Bruno Quaresma c18169a402 chore: remove ts-prune (#18037)
We are using knip
2025-05-26 16:17:52 -03:00
Bruno Quaresma aec64e0c73 chore: remove unused exports (#18038) 2025-05-26 16:17:21 -03:00
Bruno Quaresma f3311400d1 chore: upgrade tanstack/react-query to 5.77.0 (#18039) 2025-05-26 16:16:55 -03:00
Yevhenii Shcherbina 2a15aa8a6f feat: add hard-limited presets metric (#18008)
Closes https://github.com/coder/coder/issues/17988

Define `preset_hard_limited` metric which for every preset indicates
whether a given preset has reached the hard failure limit (1 for
hard-limited, 0 otherwise).

CLI example:
```
curl -X GET localhost:2118/metrics | grep preset_hard_limited
# HELP coderd_prebuilt_workspaces_preset_hard_limited Indicates whether a given preset has reached the hard failure limit (1 for hard-limited, 0 otherwise).
# TYPE coderd_prebuilt_workspaces_preset_hard_limited gauge
coderd_prebuilt_workspaces_preset_hard_limited{organization_name="coder",preset_name="GoLand: Large",template_name="Test7"} 1
coderd_prebuilt_workspaces_preset_hard_limited{organization_name="coder",preset_name="GoLand: Large",template_name="ValidTemplate"} 0
coderd_prebuilt_workspaces_preset_hard_limited{organization_name="coder",preset_name="IU: Medium",template_name="Test7"} 1
coderd_prebuilt_workspaces_preset_hard_limited{organization_name="coder",preset_name="IU: Medium",template_name="ValidTemplate"} 0
coderd_prebuilt_workspaces_preset_hard_limited{organization_name="coder",preset_name="WS: Small",template_name="Test7"} 1
```

NOTE:
```go
if !ps.Preset.Deleted && ps.Preset.UsingActiveVersion {
	c.metrics.trackHardLimitedStatus(ps.Preset.OrganizationName, ps.Preset.TemplateName, ps.Preset.Name, ps.IsHardLimited)
}
```

Only active template version is tracked. If admin creates new template
version - old value of metric (for previous template version) will be
overwritten with new value of metric (for active template version).
Because `template_version` is not part of metric:
```go
labels = []string{"template_name", "preset_name", "organization_name"}
```

Implementation is similar to implementation of
`MetricResourceReplacementsCount` metric

---------

Co-authored-by: Susana Ferreira <ssncferreira@gmail.com>
2025-05-26 11:39:44 -04:00
Mathias Fredriksson 0731304905 feat(agent/agentcontainers): recreate devcontainers concurrently (#18042)
This change introduces a refactor of the devcontainers recreation logic
which is now handled asynchronously rather than being request scoped.
The response was consequently changed from "No Content" to "Accepted" to
reflect this.

A new `Status` field was introduced to the devcontainer struct which
replaces `Running` (bool). This reflects that the devcontainer can now
be in various states (starting, running, stopped or errored).

The status field also protects against multiple concurrent recrations,
as long as they are initiated via the API.

Updates #16424
2025-05-26 18:30:52 +03:00
dependabot[bot] 60fd03dca6 chore: bump github.com/mark3labs/mcp-go from 0.29.0 to 0.30.0 (#18041)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.29.0 to 0.30.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.30.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Feat: Impl Server-Side Streamable HTTP transport by <a
href="https://github.com/leavez"><code>@​leavez</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/273">mark3labs/mcp-go#273</a></li>
<li>Support customize request header by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/315">mark3labs/mcp-go#315</a></li>
<li>docs: add regeneration instructions by <a
href="https://github.com/pmenglund"><code>@​pmenglund</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/309">mark3labs/mcp-go#309</a></li>
<li>docs(examples): correct use of <code>GetArguments</code> by <a
href="https://github.com/jamietanna"><code>@​jamietanna</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/316">mark3labs/mcp-go#316</a></li>
<li>fix: avoid painc caused by writing to closed channel by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/318">mark3labs/mcp-go#318</a></li>
<li>docs: use helper functions and return error as result by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/322">mark3labs/mcp-go#322</a></li>
<li>Update README.md by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/323">mark3labs/mcp-go#323</a></li>
<li>Feat(prompts): add DeletePrompts method to MCPServer by <a
href="https://github.com/God-Jay"><code>@​God-Jay</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/320">mark3labs/mcp-go#320</a></li>
<li>Scaffold documentation site by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/324">mark3labs/mcp-go#324</a></li>
<li>Docs by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/325">mark3labs/mcp-go#325</a></li>
<li>feat: Implement OAuth in the client by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/296">mark3labs/mcp-go#296</a></li>
<li>feat(server): persist client info in sessions by <a
href="https://github.com/ShawkyZ"><code>@​ShawkyZ</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/313">mark3labs/mcp-go#313</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/pmenglund"><code>@​pmenglund</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/309">mark3labs/mcp-go#309</a></li>
<li><a
href="https://github.com/jamietanna"><code>@​jamietanna</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/316">mark3labs/mcp-go#316</a></li>
<li><a href="https://github.com/God-Jay"><code>@​God-Jay</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/320">mark3labs/mcp-go#320</a></li>
<li><a href="https://github.com/ShawkyZ"><code>@​ShawkyZ</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/313">mark3labs/mcp-go#313</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.29.0...v0.30.0">https://github.com/mark3labs/mcp-go/compare/v0.29.0...v0.30.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9e6ccca8025f3b63533540ac91fd06cc3dc10401"><code>9e6ccca</code></a>
Formatting</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/2c8bf2bb750186c656161107b2e5e1198aa53539"><code>2c8bf2b</code></a>
feat(server): persist client info in sessions (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/313">#313</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/0c3f53507f746dd02434d8d159a7f711240962e8"><code>0c3f535</code></a>
feat: Implement OAuth in the client (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/296">#296</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/617c67623617e91f17263346d267cda064524102"><code>617c676</code></a>
update</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/5a1d3fe0ed0e26e71ff6ecdce9b5b156dec79b88"><code>5a1d3fe</code></a>
add basePath</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/76f698504f02b9013aafb48e13ec816af55c185c"><code>76f6985</code></a>
add baseUrl</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/f1015695362a5842a1bd9e4a86770f2b0d59ef56"><code>f101569</code></a>
Docs (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/325">#325</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/563a9c74e55f31ad060f7cf8d5cec778e1c37c8a"><code>563a9c7</code></a>
Scaffold documentation site (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/324">#324</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/820b7a68b8c98447a041654fbe2e0910fad3ec6e"><code>820b7a6</code></a>
Feat(prompts): add DeletePrompts method to MCPServer (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/320">#320</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/3cdeb8919f3140319b743f39be43666208008d17"><code>3cdeb89</code></a>
Update README.md (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/323">#323</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.29.0...v0.30.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.29.0&new-version=0.30.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-26 11:45:32 +00:00
dependabot[bot] d01406fa7e chore: bump github.com/coder/terraform-provider-coder/v2 from 2.4.2 to 2.5.0 (#18040)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.4.2 to 2.5.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coder/terraform-provider-coder/releases">github.com/coder/terraform-provider-coder/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.5.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: allow dropdown form_type for boolean types by <a
href="https://github.com/Emyrk"><code>@​Emyrk</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/397">coder/terraform-provider-coder#397</a></li>
<li>build(deps): Bump github.com/hashicorp/terraform-plugin-sdk/v2 from
2.36.1 to 2.37.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/400">coder/terraform-provider-coder#400</a></li>
<li>fix: map_structure of form_type to match argument name by <a
href="https://github.com/Emyrk"><code>@​Emyrk</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/401">coder/terraform-provider-coder#401</a></li>
<li>docs: update README note for local provider testing with correct
module path by <a
href="https://github.com/ssncferreira"><code>@​ssncferreira</code></a>
in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/403">coder/terraform-provider-coder#403</a></li>
<li>feat: add <code>group</code> attribute to <code>coder_app</code>
resource by <a
href="https://github.com/aslilac"><code>@​aslilac</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/402">coder/terraform-provider-coder#402</a></li>
<li>feat: add expiration_policy parameter to prebuild resource by <a
href="https://github.com/ssncferreira"><code>@​ssncferreira</code></a>
in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/404">coder/terraform-provider-coder#404</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/ssncferreira"><code>@​ssncferreira</code></a>
made their first contribution in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/403">coder/terraform-provider-coder#403</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.4.2...v2.5.0">https://github.com/coder/terraform-provider-coder/compare/v2.4.2...v2.5.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/28dae7fbc263efcaaa33f5ec448004fa47109858"><code>28dae7f</code></a>
feat: add expiration_policy parameter to prebuild resource (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/404">#404</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/74899537ddc92f178bb9129645649889f8e0af32"><code>7489953</code></a>
feat: add <code>group</code> attribute to <code>coder_app</code>
resource (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/402">#402</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/0c7fd6a3950b2195043df792087d6a33b4e14369"><code>0c7fd6a</code></a>
docs: update README note for local provider testing with correct module
path ...</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/a4f40659a9be991eaaa6d833781fbdb942c2e308"><code>a4f4065</code></a>
fix: map_structure of form_type to match argument name (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/401">#401</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/77de38e09cca9ca228b63bb53f32ba0ae75a1f2d"><code>77de38e</code></a>
build(deps): Bump github.com/hashicorp/terraform-plugin-sdk/v2 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/400">#400</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/ace4462675ffbab17e098dff330ce50ece20b7fe"><code>ace4462</code></a>
fix: allow dropdown form_type for boolean types (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/397">#397</a>)</li>
<li>See full diff in <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.4.2...v2.5.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coder/terraform-provider-coder/v2&package-manager=go_modules&previous-version=2.4.2&new-version=2.5.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-26 11:41:54 +00:00
Bruno Quaresma 5cdda2ea7d chore: replace date-fns by dayjs (#18022)
This change replaces date-fns with dayjs throughout the codebase for
more consistent date/time handling and to reduce bundle size. It also
tries to make the formatting and usage consistent.

**Why dayjs over date-fns?**
Just because we were using dayjs more broadly. Its formatting
capabilities, were also easier to extend.
2025-05-25 00:32:36 -03:00
dependabot[bot] a605c09d2b ci: bump the github-actions group with 2 updates (#18035)
Bumps the github-actions group with 2 updates:
[chromaui/action](https://github.com/chromaui/action) and
[tj-actions/changed-files](https://github.com/tj-actions/changed-files).

Updates `chromaui/action` from 11.29.0 to 12.0.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromaui/action/commit/d7afd50124cf4f337bcd943e7f45cfa85a5e4476"><code>d7afd50</code></a>
v12.0.0</li>
<li>See full diff in <a
href="https://github.com/chromaui/action/compare/1cfa065cbdab28f6ca3afaeb3d761383076a35aa...d7afd50124cf4f337bcd943e7f45cfa85a5e4476">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
480f49412651059a414a6a5c96887abb1877de8a to
3981e4f74104e7a4c67a835e1e5dd5d9eb0f0a57
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/3981e4f74104e7a4c67a835e1e5dd5d9eb0f0a57"><code>3981e4f</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.17 to
22.15.21 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2566">#2566</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/403a8a6fd188648f8a5adab2047d8eab5c0a4b34"><code>403a8a6</code></a>
chore(deps-dev): bump ts-jest from 29.3.2 to 29.3.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2563">#2563</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5c5e8c9b886c1ff1c08a9df23b1ee6e0c0d44001"><code>5c5e8c9</code></a>
chore(deps): bump yaml from 2.7.1 to 2.8.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2561">#2561</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/d869acea438612407cf27745d747734afb0140db"><code>d869ace</code></a>
chore(deps-dev): bump <code>@​types/lodash</code> from 4.17.16 to
4.17.17 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2565">#2565</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/480f49412651059a414a6a5c96887abb1877de8a...3981e4f74104e7a4c67a835e1e5dd5d9eb0f0a57">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| chromaui/action | [>= 11.a, < 12] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 22:25:19 +00:00
dependabot[bot] 62a5c4c3d7 chore: bump github.com/mark3labs/mcp-go from 0.28.0 to 0.29.0 (#18031)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.28.0 to 0.29.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.29.0</h2>
<h2>What's Changed</h2>
<ul>
<li>refactor: make CallToolRequest.Arguments more flexible (Breaking
Change) by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/287">mark3labs/mcp-go#287</a></li>
<li>Drop unused fields from server.sseSession by <a
href="https://github.com/ggoodman"><code>@​ggoodman</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/303">mark3labs/mcp-go#303</a></li>
<li>chore: remove unused variables and type arguments by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/302">mark3labs/mcp-go#302</a></li>
<li>chore(Srv/stdio): duplicated setting of ErrorLogger by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/306">mark3labs/mcp-go#306</a></li>
<li>fix: handle the situation where the channel is closed by <a
href="https://github.com/button-chen"><code>@​button-chen</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/304">mark3labs/mcp-go#304</a></li>
</ul>
<h2>Breaking Changes</h2>
<p>In <code>v0.29.0</code>, MCP-Go introduces breaking changes to tool
request handling. The main change is that
<code>request.Params.Arguments</code> is no longer directly accessible
as a map. Instead, you must use the new <code>GetArguments()</code>
method to retrieve arguments as a map. For type-safe argument access,
new helper methods like <code>RequireString()</code>,
<code>RequireFloat()</code>, and <code>RequireBool()</code> have been
added. To migrate:</p>
<ol>
<li>Replace direct access to
<code>request.Params.Arguments[&quot;key&quot;]</code> with
<code>request.GetArguments()[&quot;key&quot;]</code></li>
<li>For better type safety, use the new helper methods:
<code>request.RequireString(&quot;key&quot;)</code>,
<code>request.RequireFloat(&quot;key&quot;)</code>, etc.</li>
<li>For complex argument structures, use the new
<code>BindArguments()</code> method with a struct, or try the new typed
tool handlers with <code>mcp.NewTypedToolHandler()</code> as shown in
the new <code>examples/typed_tools</code> example.</li>
</ol>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/ggoodman"><code>@​ggoodman</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/303">mark3labs/mcp-go#303</a></li>
<li><a
href="https://github.com/button-chen"><code>@​button-chen</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/304">mark3labs/mcp-go#304</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.28.0...v0.29.0">https://github.com/mark3labs/mcp-go/compare/v0.28.0...v0.29.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/99720bb4c4513ba1d2443b4e5045b7763e0b7142"><code>99720bb</code></a>
fix: handle the situation where the channel is closed (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/304">#304</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/420d52199bb3557fe4bd0f5b5aa07c3e3721ae7b"><code>420d521</code></a>
chore(Srv/stdio): duplicated setting of ErrorLogger (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/306">#306</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/eaa6f29a3b0776e17c7cdc455eeccc9be72b473a"><code>eaa6f29</code></a>
chore: remove unused variables and type arguments (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/302">#302</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/65010c4c5c167e8fa6ca1e4fd242de04027567ce"><code>65010c4</code></a>
chore: drop unused fields from sseSession (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/303">#303</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/28c9cc310fed16014107a4e4c970b1d440066b4a"><code>28c9cc3</code></a>
refactor: make CallToolRequest.Arguments more flexible (Breaking Change)
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/287">#287</a>)</li>
<li>See full diff in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.28.0...v0.29.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.28.0&new-version=0.29.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 22:23:15 +00:00
Atif Ali 5827219812 chore: update module sources in templates to new format (#18026) 2025-05-25 00:15:18 +02:00
Atif Ali 24d68be58b chore: enable dependabot for terraform modules (#18028)
#18027 got merged to the wrong branch
2025-05-24 22:06:55 +00:00
Bruno Quaresma 70edc2403a chore: remove chartjs (#18016)
- Remove ChartJS in favor of Recharts
- Migrate ActiveUserChart to use the new chart design

<img width="1624" alt="Screenshot 2025-05-23 at 15 00 03"
src="https://github.com/user-attachments/assets/5f451a88-f2ef-4139-a888-c0358eb8cf17"
/>
2025-05-24 11:33:16 -03:00
Jaayden Halko 196eccb457 feat: add beta labels for dynamic params (#17985)
<img width="820" alt="Screenshot 2025-05-23 at 18 48 56"
src="https://github.com/user-attachments/assets/5b781501-3817-4be1-8143-f03f8cb88901"
/>

<img width="790" alt="Screenshot 2025-05-23 at 18 48 32"
src="https://github.com/user-attachments/assets/541ad77e-fd37-4f52-ae2c-7b1f698c23fc"
/>
2025-05-23 15:51:31 -04:00
Jaayden Halko ce4c8c7451 fix: prevent layout shift when Select component dropdown appears (#17990)
When scrollbars are always visible, open the dropdown for a `Select
`component causes a layout shift because of scrollbars being hidden when
the` Select` is open. This fix prevents the layout shift from the
scrollbar being removed.




https://github.com/user-attachments/assets/6b0aff70-c585-401b-911d-f0805b54903e
2025-05-23 15:51:14 -04:00
Bruno Quaresma e8306cc790 chore: improve chromatic CI (#18014)
Following [this Chromatic
guide](https://www.chromatic.com/docs/turbosnap-best-practices) to
improve our Chromatic jobs.
2025-05-23 15:10:06 -03:00
Steven Masley ca39931395 chore: remove password form_type from docs (#18015) 2025-05-23 12:17:22 -05:00
Jaayden Halko 516fb4489e feat: display required badge instead of diagnostic text when extra code = required (#18006)
The tooltip hover uses the summary text from the diagnostic

<img width="562" alt="Screenshot 2025-05-23 at 12 51 51"
src="https://github.com/user-attachments/assets/2246abc7-dc1c-4dc2-8303-bee62d152e21"
/>
2025-05-23 10:43:17 -04:00
Bruno Quaresma 30a910ba32 chore: replace MUI Button - 2 (#17953)
1. IconField.tsx
2. SelectMenu.tsx
3. RichParameterInput.tsx
4. MissingTemplateVariablesDialog.tsx
5. LoginPageView.tsx
2025-05-23 11:39:56 -03:00
Bruno Quaresma 94c129c03d fix!: omit name, avatar_url and last_seen_at from responses when empty (#18005)
User name, avatar URL, and last seen at, are not required fields so they
can be empty. Instead of returning the 0 values from Go, we want to make
it more agnostic, and omit them when they are empty. This make the docs
and usage way clearer for consumers.
2025-05-23 11:35:05 -03:00
Ethan 96f69b8e13 chore: set slim tag when compiling coder-vpn.dylib (#18001)
```
$ du -sh before.dylib after.dylib 
 35M    before.dylib
 30M    after.dylib
 ```
2025-05-23 15:03:09 +10:00
Bruno Quaresma b4daf36d0b refactor: refactor activity column in the workspaces table (#17976)
The goal is to better integrate the activity column data with the
existent data:
- Make the message one line, the full message is in the tooltip, and
display the state at the bottom. This way, it is visually consistent
with the other columns like status, name and template.
- Moved the app, and uri, to the actions column, instead of showing them
together with the message in the activity column.

**Previous:**
<img width="1512" alt="Screenshot 2025-05-21 at 17 28 46"
src="https://github.com/user-attachments/assets/ea9188a5-d82e-416c-b961-edf0104f66c6"
/>

**After:**
<img width="1512" alt="Screenshot 2025-05-21 at 17 28 57"
src="https://github.com/user-attachments/assets/f50dbe82-cd3e-4448-9fa2-bde9193166d6"
/>
2025-05-22 20:03:13 -04:00
Kris Page c777740801 docs: add Bottlerocket section to rootless Podman (#17987) 2025-05-22 21:12:31 +01:00
Mathias Fredriksson d6c14f3d8a feat(agent/agentcontainers): update containers periodically (#17972)
This change introduces a significant refactor to the agentcontainers API
and enables periodic updates of Docker containers rather than on-demand.
Consequently this change also allows us to move away from using a
locking channel and replace it with a mutex, which simplifies usage.

Additionally a previous oversight was fixed, and testing added, to clear
devcontainer running/dirty status when the container has been removed.

Updates coder/coder#16424
Updates coder/internal#621
2025-05-22 19:44:33 +03:00
Steven Masley 13b41c200c chore: update preview to include required param diags (#17978) 2025-05-22 11:40:21 -05:00
Bruno Quaresma 6f0defb2c9 refactor: refactor activity in workspace page (#17980)
Changing the activity in the workspace page. It is more boring, but more
reliable and extensible. By moving it to the bottom of the agent card,
we have more space to display longer messages and more items. It also
give us some space for interactivity controls in case we want them in
the future.

**Before:**
<img width="1512" alt="Screenshot 2025-05-21 at 19 09 41"
src="https://github.com/user-attachments/assets/c25aa848-b496-4a78-8d19-0b0efeae6115"
/>

**After:**


https://github.com/user-attachments/assets/3e88eb63-e082-4e5c-a6a3-79a6fe3d46b6
2025-05-22 13:05:51 -03:00
Atif Ali 4cb35c4c65 docs: fix token create command (#17984)
`--name` is required
2025-05-22 10:39:51 -04:00
Hugo Dutka a0e229afec chore: run test-go-pg on macOS and Windows in regular CI (#17853)
This PR starts running test-go-pg on macOS and Windows in regular CI.
Previously this suite was only run in the nightly gauntlet for 2
reasons:

- it was flaky
- it was slow (took 17 minutes)

We've since stabilized the flakiness by switching to depot runners,
using ram disks, optimizing the number of tests run in parallel, and
automatically re-running failing tests. We've also [brought
down](https://github.com/coder/coder/pull/17756) the time to run the
suite to 9 minutes. Additionally, this PR allows test-go-pg to use cache
from previous runs, which speeds it up further. The cache is only used
on PRs, `main` will still run tests without it.

This PR also:

- removes the nightly gauntlet since all tests now run in regular CI
- removes the `test-cli` job for the same reason
- removes the `setup-imdisk` action which is now fully replaced by
[coder/setup-ramdisk-action](https://github.com/coder/setup-ramdisk-action)
- makes 2 minor changes which could be separate PRs, but I rolled them
into this because they were helpful when iterating on it:
- replace the `if: always()` condition on the `gen` job with a `if: ${{
!cancelled() }}` to allow the job to be cancelled. Previously the job
would run to completion even if the entire workflow was cancelled. See
[the GitHub
docs](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#always)
for more details.
- disable the recently added `TestReinitializeAgent` since it does not
pass on Windows with Postgres. There's an open issue to fix it:
https://github.com/coder/internal/issues/642

This PR will:

- unblock https://github.com/coder/coder/issues/15109
- alleviate https://github.com/coder/internal/issues/647

I tested caching by temporarily enabling cache upload on this PR: here's
[a
run](https://github.com/coder/coder/actions/runs/15119046903/job/42496939341?pr=17853#step:13:1296)
showing cache being used.
2025-05-22 15:53:37 +02:00
Hugo Dutka f825477a5c fix: add timeouts to test telemetry snapshot (#17879)
This PR ensures that waits on channels will time out according to the
test context, rather than waiting indefinitely. This should alleviate
the panic seen in https://github.com/coder/internal/issues/645 and, if
the deadlock recurs, allow the test to be retried automatically in CI.
2025-05-22 13:51:24 +02:00
Atif Ali 5a3a7fc4e5 chore: add JetBrains Toolbox to docs manifest (#17986) 2025-05-22 16:30:56 +05:00
Edward Angert eb8013a7f4 docs: add jetbrains toolbox steps (#17661)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: ケイラ <mckayla@hey.com>
Co-authored-by: Jon Ayers <jon@coder.com>
Co-authored-by: Danny Kopping <danny@coder.com>
Co-authored-by: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com>
Co-authored-by: Bruno Quaresma <bruno@coder.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
Co-authored-by: Atif Ali <atif@coder.com>
2025-05-22 16:08:59 +05:00
Ethan 34494fb330 chore: avoid depending on rbac in slim builds (#17959)
I noticed the `coder-vpn.dylib` (of course alongside the Agent/CLI binaries) had grown substantially (from 29MB to 37MB for the dylib), and discovered that importing RBAC in slim builds was the issue

This PR removes the dependency on RBAC in slim builds, and adds a compile-time check to ensure it can't be imported in the future:

```
$ make build
# github.com/coder/coder/v2/coderd/rbac
coderd/rbac/no_slim.go:8:2: initialization cycle: _DO_NOT_IMPORT_THIS_PACKAGE_IN_SLIM_BUILDS refers to itself
make: *** [Makefile:224: build/coder-slim_2.22.1-devel+7e46d24b4_linux_amd64] Error 1
```

Before and after for `coder-slim_darwin_arm64`:
```
$ gsa before after
┌───────────────────────────────────────────────────────────────────────────────────┐
│ Diff between before and after                                                     │
├─────────┬─────────────────────────────────────────┬──────────┬──────────┬─────────┤
│ PERCENT │ NAME                                    │ OLD SIZE │ NEW SIZE │ DIFF    │
├─────────┼─────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ -100%   │ github.com/gorilla/mux                  │          │          │ +0 B    │
│ -100%   │ github.com/ammario/tlru                 │          │          │ +0 B    │
│ -100%   │ github.com/armon/go-radix               │          │          │ +0 B    │
│ -0.00%  │ gvisor.dev/gvisor                       │ 2.4 MB   │ 2.4 MB   │ -4 B    │
│ -0.21%  │ os                                      │ 155 kB   │ 155 kB   │ -328 B  │
│ -0.23%  │ regexp                                  │ 152 kB   │ 152 kB   │ -346 B  │
│ -0.04%  │ runtime                                 │ 876 kB   │ 876 kB   │ -372 B  │
│ -100%   │ github.com/rcrowley/go-metrics          │ 675 B    │          │ -675 B  │
│ -23.79% │ github.com/cespare/xxhash/v2            │ 3.0 kB   │ 2.3 kB   │ -715 B  │
│ -100%   │ github.com/agnivade/levenshtein         │ 1.4 kB   │          │ -1.4 kB │
│ -100%   │ github.com/go-ini/ini                   │ 1.5 kB   │          │ -1.5 kB │
│ -100%   │ github.com/xeipuuv/gojsonreference      │ 2.4 kB   │          │ -2.4 kB │
│ -100%   │ github.com/xeipuuv/gojsonpointer        │ 5.2 kB   │          │ -5.2 kB │
│ -2.43%  │ go.opentelemetry.io/otel                │ 316 kB   │ 309 kB   │ -7.7 kB │
│ -2.40%  │ slices                                  │ 381 kB   │ 372 kB   │ -9.2 kB │
│ -0.68%  │ crypto                                  │ 1.4 MB   │ 1.4 MB   │ -9.5 kB │
│ -100%   │ github.com/tchap/go-patricia/v2         │ 23 kB    │          │ -23 kB  │
│ -100%   │ github.com/yashtewari/glob-intersection │ 28 kB    │          │ -28 kB  │
│ -4.35%  │ <autogenerated>                         │ 754 kB   │ 721 kB   │ -33 kB  │
│ -100%   │ github.com/sirupsen/logrus              │ 72 kB    │          │ -72 kB  │
│ -2.56%  │ github.com/coder/coder/v2               │ 3.3 MB   │ 3.2 MB   │ -84 kB  │
│ -100%   │ github.com/gobwas/glob                  │ 107 kB   │          │ -107 kB │
│ -100%   │ sigs.k8s.io/yaml                        │ 244 kB   │          │ -244 kB │
│ -100%   │ github.com/open-policy-agent/opa        │ 2.2 MB   │          │ -2.2 MB │
├─────────┼─────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ -7.79%  │ __go_buildinfo __DATA                   │ 18 kB    │ 17 kB    │ -1.4 kB │
│ -6.81%  │ __itablink __DATA_CONST                 │ 23 kB    │ 22 kB    │ -1.6 kB │
│ -6.61%  │ __typelink __DATA_CONST                 │ 71 kB    │ 66 kB    │ -4.7 kB │
│ -2.86%  │ __noptrdata __DATA                      │ 1.0 MB   │ 993 kB   │ -29 kB  │
│ -21.49% │ __data __DATA                           │ 320 kB   │ 251 kB   │ -69 kB  │
│ -6.19%  │ __rodata __DATA_CONST                   │ 6.0 MB   │ 5.6 MB   │ -372 kB │
│ -47.19% │ __rodata __TEXT                         │ 7.6 MB   │ 4.0 MB   │ -3.6 MB │
├─────────┼─────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ -14.02% │ before                                  │ 50 MB    │ 43 MB    │ -7.0 MB │
│         │ after                                   │          │          │         │
└─────────┴─────────────────────────────────────────┴──────────┴──────────┴─────────┘
```
2025-05-22 19:48:23 +10:00
Sas Swart 1e1e6f3bd1 fix: skip TestReinitializeAgent until we can adapt it for windows (#17968)
relates to https://github.com/coder/internal/issues/642

I've reached a timebox trying to get a script for windows to work, so
I'm skipping it for now.
2025-05-22 08:48:40 +02:00
Ben Potter a5234bf9a5 chore: fix autoversion script and update experiments/docs to v2.22.1 (#17954) 2025-05-21 23:17:14 -04:00
Yevhenii Shcherbina 53e8e9c7cd fix: reduce cost of prebuild failure (#17697)
Relates to https://github.com/coder/coder/issues/17432

### Part 1:

Notes:
- `GetPresetsAtFailureLimit` SQL query is added, which is similar to
`GetPresetsBackoff`, they use same CTEs: `filtered_builds`,
`time_sorted_builds`, but they are still different.

- Query is executed on every loop iteration. We can consider marking
specific preset as permanently failed as an optimization to avoid
executing query on every loop iteration. But I decided don't do it for
now.

- By default `FailureHardLimit` is set to 3.

- `FailureHardLimit` is configurable. Setting it to zero - means that
hard limit is disabled.

### Part 2

Notes:
- `PrebuildFailureLimitReached` notification is added.
- Notification is sent to template admins.
- Notification is sent only the first time, when hard limit is reached.
But it will `log.Warn` on every loop iteration.
- I introduced this enum:
```sql
CREATE TYPE prebuild_status AS ENUM (
  'normal',           -- Prebuilds are working as expected; this is the default, healthy state.
  'hard_limited',     -- Prebuilds have failed repeatedly and hit the configured hard failure limit; won't be retried anymore.
  'validation_failed' -- Prebuilds failed due to a non-retryable validation error (e.g. template misconfiguration); won't be retried.
);
```
`validation_failed` not used in this PR, but I think it will be used in
next one, so I wanted to save us an extra migration.

- Notification looks like this:
<img width="472" alt="image"
src="https://github.com/user-attachments/assets/e10efea0-1790-4e7f-a65c-f94c40fced27"
/>

### Latest notification views:
<img width="463" alt="image"
src="https://github.com/user-attachments/assets/11310c58-68d1-4075-a497-f76d854633fe"
/>
<img width="725" alt="image"
src="https://github.com/user-attachments/assets/6bbfe21a-91ac-47c3-a9d1-21807bb0c53a"
/>
2025-05-21 15:16:38 -04:00
Bruno Quaresma e1934fe119 chore: replace MUI icons with Lucide icons - update 18 (#17958)
1. PersonOutline → UserIcon
2. Apps → LayoutGridIcon
3. Delete → TrashIcon
4. InsertDriveFile → FileIcon
2025-05-21 16:11:23 -03:00
Bruno Quaresma f35a1bc448 chore: replace MUI Button - 3 (#17955)
Replaced MUI Button with custom Button in 5 components:
  - Filter.tsx - Changed import and updated Button props
(variant="outline", size="sm")
  - ChatLayout.tsx - Changed import and updated Button
props for the "New Chat" button
  - StarterTemplatePageView.tsx - Changed import and
implemented asChild pattern for links
  - Notifications.tsx - Changed import and updated
NotificationActionButton to use variant="subtle"
  - DateRange.tsx - Changed import and updated Button
styling
2025-05-21 15:58:38 -03:00
Bruno Quaresma cbfe975cc8 refactor: show unhealthy status on workspace status indicator (#17956)
Instead of showing a "yellow question icon" on the side of the status,
to let the user aware of unhealthy agents, we could make it yellow and
use a tooltip.

Before:
<img width="1512" alt="Screenshot 2025-05-20 at 18 13 15"
src="https://github.com/user-attachments/assets/afee470e-9dd4-4c32-b2bc-b9f66eac60fa"
/>

After:
<img width="1512" alt="Screenshot 2025-05-20 at 18 13 26"
src="https://github.com/user-attachments/assets/5769828b-f23c-45a5-8017-c4a88f085d0f"
/>
2025-05-21 15:57:32 -03:00
Jaayden Halko cb7ce18592 feat: add experimental workspace parameters page for dynamic params (#17841)
![Screenshot 2025-05-20 at 22 26
40](https://github.com/user-attachments/assets/639441d7-2349-4c92-a4ee-d8a5a724fe8e)
2025-05-21 13:48:35 -04:00
Jaayden Halko 3a6d5f5bba fix: update textarea to fit content height and set a max height (#17946) 2025-05-21 10:56:01 -04:00
Jaayden Halko 36d938fa88 fix: show diagnostics if there are no parameters (#17967)
Prefer to show the top level diagnostics inside the parameters section
for context but this adds a case to show diagnostics if there are no
parameters.

Normally, the entire parameters section is hidden if there are no
parameters.
2025-05-21 10:55:37 -04:00
Michael Suchacz b7462fb256 feat: improve transaction safety in CompleteJob function (#17970)
This PR refactors the CompleteJob function to use database transactions
more consistently for better atomicity guarantees. The large function
was broken down into three specialized handlers:

- completeTemplateImportJob
- completeWorkspaceBuildJob
- completeTemplateDryRunJob

Each handler now uses the Database.InTx wrapper to ensure all database
operations for a job completion are performed within a single
transaction, preventing partial updates in case of failures.

Added comprehensive tests for transaction behavior for each job type.

Fixes #17694

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-05-21 16:48:51 +02:00
Bruno Quaresma c6bece0ec5 refactor: update provisioners column copy (#17949) 2025-05-21 08:57:15 -03:00
Spike Curtis 818d4d03f4 chore: ignore 'session shutdown' yamux error in tests (#17964)
Fixes flake seen here: https://github.com/coder/coder/actions/runs/15154327939/job/42606133069?pr=17960

Error log dropped when the dRPC server is being shut down right as we are (re)dialing.
2025-05-21 11:29:25 +04:00
Michael Suchacz 3654a49fb5 feat: add Claude.md initial draft (#17785) 2025-05-21 09:16:00 +02:00
Spike Curtis cbbbb4492a docs: explain coder:// link for RDP (#17901)
fixes https://github.com/coder/internal/issues/627

Adds docs for `coder://` URLs for Windows Remote Desktop (RDP).

Note that we might want to hold of merging since the URI handling is
unreleased in Coder Desktop for Windows.
2025-05-21 09:28:31 +04:00
Bruno Quaresma 36224f263f chore: replace MUI icons with Lucide icons - 17 (#17957)
1. ExpandMoreOutlined → ChevronDownIcon
2. Error/ErrorIcon → CircleAlertIcon
3. CheckCircle → CircleCheckIcon
4. Warning → TriangleAlertIcon
2025-05-20 22:24:17 -03:00
Danielle Maywood 3e7ff9d9e1 chore(coderd/rbac): add Action{Create,Delete}Agent to ResourceWorkspace (#17932) 2025-05-20 21:20:56 +01:00
Danny Kopping d2d21898f2 chore: reduce ignore_changes suggestion scope (#17947)
We probably shouldn't be suggesting `ignore_changes = all`. Only the
attributes which cause drift in prebuilds should be ignored; everything
else can behave as normal.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-05-20 22:16:23 +02:00
Edward Angert 1f54c36375 docs: rename external-auth heading in setup doc (#17868)
to help point searchers to the correct doc


[preview](https://coder.com/docs/@setup-ext-auth/admin/setup#continue-your-setup-with-external-authentication)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-20 15:10:52 -04:00
Thomas Kosiewski b551a062d7 fix: correct environment variable name for MCP app status slug (#17948)
Fixed environment variable name for app status slug in Claude MCP configuration from `CODER_MCP_CLAUDE_APP_STATUS_SLUG` to `CODER_MCP_APP_STATUS_SLUG` to maintain consistency with other MCP environment variables.

This also caused the User level Claude.md to not contain instructions to report its progress, so it did not receive status reports.
2025-05-20 19:35:19 +02:00
Julio 55313cffbc chore: add vsphere icon (#17936) 2025-05-20 17:19:38 +00:00
Edward Angert b51c902e48 docs: add early access badge to devcontainers admin (#17937)
[preview](https://coder.com/docs/@dev-container-tweaks/admin/templates/extending-templates/devcontainers)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-20 12:46:07 -04:00
Steven Masley a123900fe8 chore: remove coder/preview dependency from codersdk (#17939) 2025-05-20 10:45:12 -05:00
Steven Masley e76d58f2b6 chore: disable parameter validatation for dynamic params for all transitions (#17926)
Dynamic params skip parameter validation in coder/coder.
This is because conditional parameters cannot be validated 
with the static parameters in the database.
2025-05-20 10:09:53 -05:00
Thomas Kosiewski 93f17bc73e fix: remove unnecessary user lookup in agent API calls (#17934)
# Use workspace.OwnerUsername instead of fetching the owner

This PR optimizes the agent API by using the `workspace.OwnerUsername` field directly instead of making an additional database query to fetch the owner's username. The change removes the need to call `GetUserByID` in the manifest API and workspace agent RPC endpoints.

An issue arose when the agent token was scoped without access to user data (`api_key_scope = "no_user_data"`), causing the agent to fail to fetch the manifest due to an RBAC issue.

Change-Id: I3b6e7581134e2374b364ee059e3b18ece3d98b41
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-05-20 17:07:50 +02:00
Danielle Maywood 1267c9c405 fix: ensure reason present for workspace autoupdated notification (#17935)
Fixes https://github.com/coder/coder/issues/17930

Update the `WorkspaceAutoUpdated` notification to only display the
reason if it is present.
2025-05-20 16:01:57 +01:00
Michael Suchacz 769c9ee337 feat: cancel stuck pending jobs (#17803)
Closes: #16488
2025-05-20 15:22:44 +02:00
Sas Swart 613117bde2 chore: add presets with prebuilds to our dogfood template (#17933)
This PR adds a preset with prebuilds for each region to our dogfood
template. Creating a workspace based on a preset should now save time
compared to creating a workspace from scratch
2025-05-20 14:45:26 +02:00
Ethan e5758a12c7 fix(site): center /cli-auth on firefox (#17929)
`-webkit-fill-available` is not available in Firefox: https://caniuse.com/mdn-css_properties_height_stretch
`-moz-available` doesn't work on `height`, so we have to use `100vh`.

Before:
<img width="1405" alt="image" src="https://github.com/user-attachments/assets/bd0f4390-50e9-47fa-8501-f3e3483d3c0d" />

After:
<img width="1329" alt="image" src="https://github.com/user-attachments/assets/f19f4b2a-3398-4d64-8e12-5cfcb84106a9" />


The existing CSS is retained in browsers that support `-webkit-fill-available`, i.e. chrome:
<img width="253" alt="image" src="https://github.com/user-attachments/assets/c1b356b4-c228-4580-a4c3-cddc2e0327b4" />
2025-05-20 14:25:13 +10:00
Jaayden Halko dc21016151 fix: get presets working correctly with dynamic params (#17923)
This adds a few fixes to get presets working correctly with dynamic
params

1. Changes to preset params need to be rendered and displayed correctly
2. Changes to preset params need to be sent to the websocket
3. Changes to preset params need to be marked as touched so they won't
be automatically changed later because of dynamic defaults. Dynamic
defaults means any default parameter value can be changed by the
websocket response unless edited by the user, set by autofill or set by
a preset.
2025-05-19 18:20:40 -04:00
Steven Masley 9c000468a1 chore: expose use_classic_parameter_flow on workspace response (#17925) 2025-05-19 21:59:15 +00:00
Bruno Quaresma cc53c4d1d5 fix: fix devcontainer port button (#17924) 2025-05-19 18:38:38 -03:00
Edward Angert 1314dbdc94 docs: add new dynamic parameters information to parameters doc (#17653)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Steven Masley <Emyrk@users.noreply.github.com>
Co-authored-by: Stephen Kirby <kirby@coder.com>
Co-authored-by: Stephen Kirby <58410745+stirby@users.noreply.github.com>
2025-05-19 21:23:53 +00:00
Susana Ferreira 0cac6a8c38 docs: add provisioner job state transition diagram (#17882)
# Description

Add a state transition diagram for provisioner jobs to the
documentation.

This PR introduces a new diagram illustrating the lifecycle and state
transitions of provisioner jobs. The diagram complements the existing
status table by providing a visual representation of how jobs move
between different states throughout their lifecycle.

# Changes

- Added a SVG diagram under the **Manage Provisioner Jobs**
documentation page, in the **Provisioner Job Status** section.
- Included a brief introductory text before the diagram.

Mermaid
[link](https://www.mermaidchart.com/play#pako:eNqFkD1PwzAQhv_KyRMdvPSDIUKVUFIGJtSyYQbXvjSW3DM4jiqE-O_YsRtFCMF49z6P75U_mXIaWcU454KUo9acKkEAocMzVkA4BC-toDFvrbuoTvoAz02CAO5vXgQ7hLgS7HUBnMOjO0LtUQbUcdxCHYEnJG3oFJFs1VdwNAvYRHA_EM3BZnrRnd8sRvTu6LeHQSns-3aw9mNUaZlapC1q1P_YFxM62HnvfHZX0X2Qxv4qSlJorQzGUXL3-D5gf21M66hmZF6a1kn_qeYT5eRf4FQ2s5vpxqwgbXJ4m75_RylYlGRVkjIup5F9fQNTV5aS)

---

Screenshot of `Provisioner job status` section in documentation page:

![Screenshot 2025-05-19 at 16 10
12](https://github.com/user-attachments/assets/9cd6a46e-24ae-450c-842c-9580d61a50f6)
2025-05-19 17:23:36 -04:00
Steven Masley 358b64154e chore: skip parameter resolution for dynamic params (#17922)
Pass through the user input as is. The previous code only passed through
parameters that existed in the db (static params). This would omit
conditional params.

Validation is enforced by the dynamic params websocket, so validation at
this point is not required.
2025-05-19 16:15:15 -05:00
Bruno Quaresma fe733afd14 chore: fix flake on useAgentLogs (#17919)
We need to wait for the result since the result is depending on effects.

Fix https://github.com/coder/internal/issues/644
2025-05-19 16:43:26 -03:00
Cian Johnston 433f0be53d fix: show provisioner name instead of key name in expanded ProvisionerKeyRow (#17921) 2025-05-19 14:35:22 -03:00
Bruno Quaresma ca5f114204 refactor: update cli auth page design (#17915)
Improve UX of CLI Auth page.

**Before:**

<img width="1512" alt="Screenshot 2025-05-19 at 09 22 36"
src="https://github.com/user-attachments/assets/ffcecebc-a289-4b06-993d-a170f2ba5e49"
/>

**After:**


https://github.com/user-attachments/assets/01dfcd70-d0a6-48bb-9186-77da24001498



Fixes https://github.com/coder/coder/issues/17905
2025-05-19 13:27:58 -03:00
Cian Johnston ac7961a5b0 feat: add Organization Provisioner Keys view (#17889)
Fixes https://github.com/coder/coder/issues/17698

**Demo:**


https://github.com/user-attachments/assets/ba92693f-29b7-43ee-8d69-3d77214f3230

---------

Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2025-05-19 16:58:12 +01:00
Danielle Maywood 61f22a59ba feat(agent): add ParentId to agent manifest (#17888)
Closes https://github.com/coder/internal/issues/648

This change introduces a new `ParentId` field to the agent's manifest.
This will allow an agent to know if it is a child or not, as well as
knowing who the owner is.

This is part of the Dev Container Agents work
2025-05-19 16:09:56 +01:00
Susana Ferreira f044cc3550 feat: add provisioner daemon name to provisioner jobs responses (#17877)
# Description

This PR adds the `worker_name` field to the provisioner jobs endpoint.

To achieve this, the following SQL query was updated:
-
`GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisioner`

As a result, the `codersdk.ProvisionerJob` type, which represents the
provisioner job API response, was modified to include the new field.

**Notes:** 
* As mentioned in
[comment](https://github.com/coder/coder/pull/17877#discussion_r2093218206),
the `GetProvisionerJobsByIDsWithQueuePosition` query was not changed due
to load concerns. This means that for template and template version
endpoints, `worker_id` will still be returned, but `worker_name` will
not.
* Similar to `worker_id`, the `worker_name` is only present once a job
is assigned to a provisioner daemon. For jobs in a pending state (not
yet assigned), neither `worker_id` nor `worker_name` will be returned.

---

# Affected Endpoints

- `/organizations/{organization}/provisionerjobs`
- `/organizations/{organization}/provisionerjobs/{job}`

---

# Testing

- Added new tests verifying that both `worker_id` and `worker_name` are
returned once a provisioner job reaches the **succeeded** state.
- Existing tests covering state transitions and other logic remain
unchanged, as they test different scenarios.

---

# Front-end Changes

Admin provisioner jobs dashboard:
<img width="1088" alt="Screenshot 2025-05-16 at 11 51 33"
src="https://github.com/user-attachments/assets/0e20e360-c615-4497-84b7-693777c5443e"
/>

Fixes: https://github.com/coder/coder/issues/16982
2025-05-19 16:05:39 +01:00
Danny Kopping 87dc2478a9 feat: fail CI when pubsub.Publish calls are found in db transactions (#17903)
Publishing inside a db transaction can lead to database connection
starvation/contention since it requires its own connection.

This ruleguard rule (one-shotted by Claude Sonnet 3.7 and finalized by
@Emyrk) will detect two of the following 3 instances:

```go
type Nested struct {
	ps pubsub.Pubsub
}

func TestFail(t *testing.T) {
	t.Parallel()

	db, ps := dbtestutil.NewDB(t)
	nested := &Nested{
		ps: ps,
	}

	// will catch this
	_ = db.InTx(func(_ database.Store) error {
		_, _ = fmt.Printf("")
		_ = ps.Publish("", []byte{})
		return nil
	}, nil)

	// will catch this
	_ = db.InTx(func(_ database.Store) error {
		_ = nested.ps.Publish("", []byte{})
		return nil
	}, nil)

	// will NOT catch this
	_ = db.InTx(func(_ database.Store) error {
		blah(ps)
		return nil
	}, nil)
}

func blah(ps pubsub.Pubsub) {
	ps.Publish("", []byte{})
}
```

The ruleguard doesn't recursively introspect function calls so only the
first two cases will be guarded against, but it's better than nothing.

<img width="1444" alt="image"
src="https://github.com/user-attachments/assets/8ffa0d88-16a0-41a9-9521-21211910dec9"
/>

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-05-19 14:52:51 +00:00
Jaayden Halko 4412f194d4 fix: sync websocket params with form params (#17895)
The current issue is that when multiple parameters are added or removed
from a form because a user change in a conditional parameter value. The
websocket parameters response gets out of sync with the state of the
parameters in the form.

The form state needs to be maintained because this is what gets
submitted when the user attempts to create a workspace.

Fixes:

1. When autofill params are set from the url, mark these params as
touched in the form. This is necessary as only touched params are sent
in the request to the websocket. These params should technically count
as being touched because they were preset from the url params.

2. Create a hook to synchronize the parameters from the websocket
response with the current state of the parameters stored in the form.
2025-05-19 10:49:02 -04:00
Jaayden Halko 766277c20e fix: disable submit button on diagnostics error (#17900) 2025-05-19 10:43:56 -04:00
dependabot[bot] 4e0fc6e17c chore: bump github.com/hashicorp/terraform-json from 0.24.0 to 0.25.0 (#17914)
Bumps
[github.com/hashicorp/terraform-json](https://github.com/hashicorp/terraform-json)
from 0.24.0 to 0.25.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/terraform-json/releases">github.com/hashicorp/terraform-json's
releases</a>.</em></p>
<blockquote>
<h2>v0.25.0</h2>
<p>ENHANCEMENTS:</p>
<ul>
<li>Add identity fields to plan struct by <a
href="https://github.com/dbanck"><code>@​dbanck</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/158">hashicorp/terraform-json#158</a></li>
<li>Update state and provider JSON with identity fields by <a
href="https://github.com/dbanck"><code>@​dbanck</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/155">hashicorp/terraform-json#155</a></li>
</ul>
<p>INTERNAL:</p>
<ul>
<li>build(deps): Bump workflows to latest trusted versions by <a
href="https://github.com/hashicorp-tsccr"><code>@​hashicorp-tsccr</code></a>
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/149">hashicorp/terraform-json#149</a></li>
<li>Bump github.com/zclconf/go-cty from 1.15.1 to 1.16.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/150">hashicorp/terraform-json#150</a></li>
<li>Bump github.com/zclconf/go-cty from 1.16.0 to 1.16.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/151">hashicorp/terraform-json#151</a></li>
<li>Bump github.com/zclconf/go-cty from 1.16.1 to 1.16.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/152">hashicorp/terraform-json#152</a></li>
<li>build(deps): Bump workflows to latest trusted versions by <a
href="https://github.com/hashicorp-tsccr"><code>@​hashicorp-tsccr</code></a>
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/153">hashicorp/terraform-json#153</a></li>
<li>Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/154">hashicorp/terraform-json#154</a></li>
<li>build(deps): Bump workflows to latest trusted versions by <a
href="https://github.com/hashicorp-tsccr"><code>@​hashicorp-tsccr</code></a>
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/156">hashicorp/terraform-json#156</a></li>
<li>Update owner field in catalog-info.yaml by <a
href="https://github.com/imakewebthings"><code>@​imakewebthings</code></a>
in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/157">hashicorp/terraform-json#157</a></li>
<li>Update CODEOWNERS by <a
href="https://github.com/austinvalle"><code>@​austinvalle</code></a> in
<a
href="https://redirect.github.com/hashicorp/terraform-json/pull/159">hashicorp/terraform-json#159</a></li>
<li>github: Use Dependabot to keep Actions updated by <a
href="https://github.com/xiehan"><code>@​xiehan</code></a> in <a
href="https://redirect.github.com/hashicorp/terraform-json/pull/160">hashicorp/terraform-json#160</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hashicorp/terraform-json/compare/v0.24.0...v0.25.0">https://github.com/hashicorp/terraform-json/compare/v0.24.0...v0.25.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/c2689b1b4ba628fb39555f9af6b521f0daa762ef"><code>c2689b1</code></a>
github: Use Dependabot to keep Actions updated (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/160">#160</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/6bc20aac0e8269158c60407c1829dc2ca0d1e11e"><code>6bc20aa</code></a>
Add identity fields to Plan struct (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/158">#158</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/b5939fa6c3c681207bef15a86cefb043e28ef2d9"><code>b5939fa</code></a>
Update CODEOWNERS (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/159">#159</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/c370ee72fd10bc381f46575470c889af0613d234"><code>c370ee7</code></a>
Update owner field in catalog-info.yaml (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/157">#157</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/0b330eb970cbf1718e4b188ea3f035268434f9c9"><code>0b330eb</code></a>
build(deps): Bump workflows to latest trusted versions (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/156">#156</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/f86d5e36f4ab36a15c5917e95863c230ef3acf7f"><code>f86d5e3</code></a>
Update state and provider JSON with identity fields (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/155">#155</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/4d6dac0a34e41b855e335e1f788cd43dc8ceb7cc"><code>4d6dac0</code></a>
Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/154">#154</a>)</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/323ee613daed7529cd2edf18d6e2738e0d886aa9"><code>323ee61</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/terraform-json/issues/153">#153</a>
from hashicorp/tsccr-auto-pinning/trusted/2025-02-03</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/2eb7d113bcfa08c4169b6c4252972965e194e345"><code>2eb7d11</code></a>
Result of tsccr-helper -log-level=info gha update -latest .github/</li>
<li><a
href="https://github.com/hashicorp/terraform-json/commit/0169f43a11d4a596463fc15e7f74896244e7b5d1"><code>0169f43</code></a>
Bump github.com/zclconf/go-cty from 1.16.1 to 1.16.2 (<a
href="https://redirect.github.com/hashicorp/terraform-json/issues/152">#152</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/hashicorp/terraform-json/compare/v0.24.0...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/hashicorp/terraform-json&package-manager=go_modules&previous-version=0.24.0&new-version=0.25.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 13:47:12 +00:00
dependabot[bot] 9367ef1663 chore: bump cloud.google.com/go/compute/metadata from 0.6.0 to 0.7.0 (#17913)
Bumps
[cloud.google.com/go/compute/metadata](https://github.com/googleapis/google-cloud-go)
from 0.6.0 to 0.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/compute/metadata's
releases</a>.</em></p>
<blockquote>
<h2>compute/metadata: v0.7.0</h2>
<h2><a
href="https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.6.0...compute/metadata/v0.7.0">0.7.0</a>
(2025-05-13)</h2>
<h3>Features</h3>
<ul>
<li><strong>compute/metadata:</strong> Allow canceling GCE detection (<a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/11786">#11786</a>)
(<a
href="https://github.com/googleapis/google-cloud-go/commit/78100fe7e28cd30f1e10b47191ac3c9839663b64">78100fe</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md">cloud.google.com/go/compute/metadata's
changelog</a>.</em></p>
<blockquote>
<h2>v0.7.0</h2>
<ul>
<li>Release of a client library for Spanner. See
the
<a
href="https://cloudplatform.googleblog.com/2017/02/introducing-Cloud-Spanner-a-global-database-service-for-mission-critical-applications.html">blog
post</a>.
Note that although the Spanner service is beta, the Go client library is
alpha.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/2e6a95edb1071d750f6d7db777bf66cd2997af6c"><code>2e6a95e</code></a>
pubsub: fix flaky streaming retry test</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/581b8393c374fc0c5e3e91f07bc95935afb30df2"><code>581b839</code></a>
pubsub: check early if streaming iterator is already drained</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/cc13a9bec59f97f8ea60047fedd3005668851a70"><code>cc13a9b</code></a>
spanner: fix time.Time comparisons for upcoming Go1.9 monotonic
times</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/1ba9ec4b19f76eddfc8bf9fa5d08bab8f29a3581"><code>1ba9ec4</code></a>
spanner: remove most logging from tests</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/11737a05a487e168f31ed1722b7cf7bfca136caa"><code>11737a0</code></a>
spanner: skip some tests in short mode</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/7bcba8ac93ae2c1b8b040f2e53f363cf8e659173"><code>7bcba8a</code></a>
datastore: DRY up loading entity code</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/df9740f981cff9eb64dd60b92d8b9f38609f5ebd"><code>df9740f</code></a>
regenerate toolkit client</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/960c7688c840488daad1d2bb1fd3ee8c66b997a9"><code>960c768</code></a>
trace: export tracing scopes</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/8b0ab476b11e386cdd8fc619fa0a08c37214f0c2"><code>8b0ab47</code></a>
logadmin: retry on CreateMetric and UpdateMetric</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/20666962de1d3580350d6c3d4b63fc0e9720371f"><code>2066696</code></a>
trace: clarify how gRPC options work</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-cloud-go/compare/v0.6.0...v0.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cloud.google.com/go/compute/metadata&package-manager=go_modules&previous-version=0.6.0&new-version=0.7.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 13:27:13 +00:00
dependabot[bot] 1a434582bb chore: bump github.com/mark3labs/mcp-go from 0.27.0 to 0.28.0 (#17909)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.27.0 to 0.28.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.28.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(tools): implicitly register capabilities by <a
href="https://github.com/david-hamilton-glean"><code>@​david-hamilton-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/292">mark3labs/mcp-go#292</a></li>
<li>fix: Gate notifications on capabilities by <a
href="https://github.com/david-hamilton-glean"><code>@​david-hamilton-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/290">mark3labs/mcp-go#290</a></li>
<li>feat(protocol): allow additional fields in meta by <a
href="https://github.com/anuraaga"><code>@​anuraaga</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/293">mark3labs/mcp-go#293</a></li>
<li>fix: type mismatch for request/response ID by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/291">mark3labs/mcp-go#291</a></li>
<li>feat(MCPServer): support <code>logging/setlevel</code> request by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/276">mark3labs/mcp-go#276</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/anuraaga"><code>@​anuraaga</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/293">mark3labs/mcp-go#293</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.27.1...v0.28.0">https://github.com/mark3labs/mcp-go/compare/v0.27.1...v0.28.0</a></p>
<h2>Release v0.27.1</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: add CONTRIBUTING.md by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/275">mark3labs/mcp-go#275</a></li>
<li>chore: create CODE_OF_CONDUCT.md by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/274">mark3labs/mcp-go#274</a></li>
<li>chore: add issue and pull request templates by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/281">mark3labs/mcp-go#281</a></li>
<li>ci: add golangci-lint by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/282">mark3labs/mcp-go#282</a></li>
<li>fix: proper deprecation messaging for WithHTTPContextFunc by <a
href="https://github.com/aotarola"><code>@​aotarola</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/278">mark3labs/mcp-go#278</a></li>
<li>chore: add a security policy by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/283">mark3labs/mcp-go#283</a></li>
<li>fix(docs): Update README link by <a
href="https://github.com/david-hamilton-glean"><code>@​david-hamilton-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/284">mark3labs/mcp-go#284</a></li>
<li>fix(session): Don't send tool changed notifications if session not
initialized yet by <a
href="https://github.com/david-hamilton-glean"><code>@​david-hamilton-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/289">mark3labs/mcp-go#289</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aotarola"><code>@​aotarola</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/278">mark3labs/mcp-go#278</a></li>
<li><a
href="https://github.com/david-hamilton-glean"><code>@​david-hamilton-glean</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/284">mark3labs/mcp-go#284</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.27.0...v0.27.1">https://github.com/mark3labs/mcp-go/compare/v0.27.0...v0.27.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/077f546c180dcd6ba9ad3f8cdb30643ddd153297"><code>077f546</code></a>
feat(MCPServer): support <code>logging/setlevel</code> request (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/276">#276</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/09c23b5fec768432e3362bea05e69f57a3bc7c92"><code>09c23b5</code></a>
fix: type mismatch for request/response ID (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/291">#291</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/91ddba5f0b9cef6fd6b89cae1009b0ab55eeb1c0"><code>91ddba5</code></a>
feat(protocol): allow additional fields in meta (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/293">#293</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/eb835b903dbf9e9f6c594b2344a4e80d98cd0712"><code>eb835b9</code></a>
fix: Gate notifications on capabilities (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/290">#290</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e7d2547fdc103cc64125097694e68a158beaeccb"><code>e7d2547</code></a>
feat(tools): implicitly register capabilities (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/292">#292</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c1e70f336141a46227b221a558ae485a19f593eb"><code>c1e70f3</code></a>
fix(session): Don't send tool changed notifications if session not
initialize...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e767652eda0e93322fef218da0af4abeb4f62330"><code>e767652</code></a>
fix(docs): Update README link (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/284">#284</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/239cfa4aa3fb41b7e1e5fff788fdecd40451fe52"><code>239cfa4</code></a>
chore: add a security policy (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/283">#283</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c46450cc8ef2ed9fc94836070104d2a1a3790107"><code>c46450c</code></a>
fix: proper deprecation messaging for WithHTTPContextFunc (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/278">#278</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/7bb1fd21abdac57cf7b5aeaf34025165f8552885"><code>7bb1fd2</code></a>
ci: add golangci-lint (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/282">#282</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.27.0...v0.28.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.27.0&new-version=0.28.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 12:29:59 +00:00
dependabot[bot] a07298a173 ci: bump github/codeql-action from 3.28.17 to 3.28.18 in the github-actions group (#17907)
Bumps the github-actions group with 1 update:
[github/codeql-action](https://github.com/github/codeql-action).

Updates `github/codeql-action` from 3.28.17 to 3.28.18
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.18</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.18/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.18 - 16 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li>
<li>Skip validating SARIF produced by CodeQL for improved performance.
<a
href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li>
<li>The number of threads and amount of RAM used by CodeQL can now be
set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code>
runner environment variables. If set, these environment variables
override the <code>threads</code> and <code>ram</code> inputs
respectively. <a
href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li>
</ul>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/ff0a06e83cb2de871e5a09832bc6a81e7276941f"><code>ff0a06e</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2896">#2896</a>
from github/update-v3.28.18-b86edfc27</li>
<li><a
href="https://github.com/github/codeql-action/commit/a41e0844be4d25fcef7ce7fa536f3e30275a9a1c"><code>a41e084</code></a>
Update changelog for v3.28.18</li>
<li><a
href="https://github.com/github/codeql-action/commit/b86edfc27a1e0d3b55127a7496a1c770a02b2f84"><code>b86edfc</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2893">#2893</a>
from github/update-bundle/codeql-bundle-v2.21.3</li>
<li><a
href="https://github.com/github/codeql-action/commit/e93b90025f7c49dccc3ee640c4155b63eb9a6b39"><code>e93b900</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.21.3</li>
<li><a
href="https://github.com/github/codeql-action/commit/510dfa3460b15b34a807ab5609b4691aed5ebbee"><code>510dfa3</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2894">#2894</a>
from github/henrymercer/skip-validating-codeql-sarif</li>
<li><a
href="https://github.com/github/codeql-action/commit/492d7832457da825a964331d860789f3f19d105b"><code>492d783</code></a>
Merge branch 'main' into henrymercer/skip-validating-codeql-sarif</li>
<li><a
href="https://github.com/github/codeql-action/commit/83bdf3b7f92061d2f6d74e2a4555ecf719adad68"><code>83bdf3b</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2859">#2859</a>
from github/update-supported-enterprise-server-versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/cffc916774454a5ead1c8fb7925abad20cda85e4"><code>cffc916</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2891">#2891</a>
from austinpray-mixpanel/patch-1</li>
<li><a
href="https://github.com/github/codeql-action/commit/4420887272f1c68c7c58ca2970bdfb5eb657cf08"><code>4420887</code></a>
Add deprecation warning for CodeQL 2.16.5 and earlier</li>
<li><a
href="https://github.com/github/codeql-action/commit/4e178c584157c51ff3d6fb87c764e7ed0715f82a"><code>4e178c5</code></a>
Update supported versions table in README</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/60168efe1c415ce0f5521ea06d5c2062adbeed1b...ff0a06e83cb2de871e5a09832bc6a81e7276941f">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.28.17&new-version=3.28.18)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 11:30:15 +00:00
Mathias Fredriksson 84478bd7d6 fix(dogfood/coder): add missing -f flag (#17906) 2025-05-19 11:25:54 +00:00
Mathias Fredriksson 3dbd4245be fix(dogfood/coder): stop docker containers and prune system on shutdown (#17904)
This change adds docker stop and docker system prune to the shutdown script so 
that it doesn't need to be done by the Docker host which will take a lot longer.

This change greatly speeds up workspace destruction:

```
2025-05-19 12:26:57.046+03:00 docker_container.workspace[0]: Destroying... [id=2685e2f456ba7b280c420219f19ef15384faa52c61ba7c087c7f109ffa6b1bda]
2025-05-19 12:27:07.046+03:00 docker_container.workspace[0]: Still destroying... [10s elapsed]
2025-05-19 12:27:16.734+03:00 docker_container.workspace[0]: Destruction complete after 20s
```

Follow-up for #17110
2025-05-19 13:23:22 +03:00
Mathias Fredriksson 98e2ec4417 feat: show devcontainer dirty status and allow recreate (#17880)
Updates #16424
2025-05-19 12:56:10 +03:00
Sas Swart c775ea8411 test: fix a race in TestReinit (#17902)
closes https://github.com/coder/internal/issues/632

`pubsubReinitSpy` used to signal that a subscription had happened before
it actually had.
This created a slight opportunity for the main goroutine to publish
before the actual subscription was listening. The published event was
then dropped, leading to a failed test.
2025-05-19 11:37:54 +02:00
Spike Curtis 1a41608035 fix: stop extending API key access if OIDC refresh is available (#17878)
fixes #17070

Cleans up our handling of APIKey expiration and OIDC to keep them separate concepts. For an OIDC-login APIKey, both the APIKey and OIDC link must be valid to login. If the OIDC link is expired and we have a refresh token, we will attempt to refresh.

OIDC refreshes do not have any effect on APIKey expiry.

https://github.com/coder/coder/issues/17070#issuecomment-2886183613 explains why this is the correct behavior.
2025-05-19 12:05:35 +04:00
Steven Masley ca5a78adbf chore: update preview to remove AsString panic on unknown fields (#17897) 2025-05-17 22:02:37 +00:00
Jaayden Halko ac8591ec8f fix: add null check (#17896) 2025-05-16 19:41:37 -04:00
Jaayden Halko d6cb9b49b7 feat: setup url autofill for dynamic parameters (#17739)
resolves coder/preview#80

Parameter autofill allows setting parameters from the url using the
format param.[param name]=["purple","green"]

Example:

http://localhost:8080/templates/coder/scratch/workspace?param.list=%5b%22purple%22%2c%22green%22%5d%0a

The goal is to maintain feature parity of for autofill with dynamic
parameters.

Note: user history autofill is no longer being used and is being
removed.
2025-05-16 18:05:33 -04:00
Bruno Quaresma 87a1ebc460 chore: replace MUI Button - 1 (#17865) 2025-05-16 12:31:32 -07:00
Jaayden Halko f8f4dc6875 feat: check for classic flow on the create workspace page (#17852)
the local storage key is only set when a user presses the opt-in or
opt-out buttons

Overall, this feels less annoying for users to have to opt-in/opt-out on
every visit to the create workspace page. Maybe less of a concern for
end users but more of a concern while dogfooding.

Pros:
- User gets the admin setting value for the template as long as they
didn't opt-in or opt-out
- User can choose to opt-in/out-out at will and their preference is
saved
2025-05-16 13:40:59 -04:00
Danny Kopping 8914f7a95b chore: improve prebuilds docs (#17850)
These items came up in an internal "bug bash" session yesterday.

@EdwardAngert note: I've reverted to the "transparent" phrasing; the
current docs confused a couple folks yesterday, and I feel that
"transparent" is clearly understood in this context.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-05-16 19:25:09 +02:00
M Atif Ali d564164eaf docs: update release calendar for 2.22 release (#17886) 2025-05-16 09:51:54 -07:00
Steven Masley f36fb67f57 chore: use static params when dynamic param metadata is missing (#17836)
Existing template versions do not have the metadata (modules + plan) in
the db. So revert to using static parameter information from the
original template import.

This data will still be served over the websocket.
2025-05-16 11:47:59 -05:00
M Atif Ali fb0e3d64db chore: remove update release calendar job (#17884) 2025-05-16 20:06:00 +05:00
brettkolodny 2cd3f999a6 feat: add one shot commands to the coder ssh command (#17779)
Closes #2154

> [!WARNING]  
> The tests in this PR were co-authored by AI
2025-05-16 10:09:46 -04:00
Hugo Dutka cb0f778baf chore: update setup-ramdisk-action (#17883)
Update setup-ramdisk-action to [a
version](https://github.com/coder/setup-ramdisk-action/commit/81c5c441bda00c6c3d6bcee2e5a33ed4aadbbcc1)
that instructs curl to fail on network errors and retry them.

It should mitigate flakes like the one seen here:
https://github.com/coder/coder/actions/runs/15068089742/job/42357451808#step:4:54
2025-05-16 15:21:25 +02:00
Spike Curtis 7f9ddd73c5 docs: remove link to closed Remote Desktop issue (#17881)
There is a link in our docs saying Remote Desktop is on the roadmap, but the issue is closed.
2025-05-16 16:08:59 +04:00
Danielle Maywood 83df55700b revert(agent): remove CODER_AGENT_IS_SUB_AGENT cli flag (#17875)
The RFC has changed, this information will be passed through the
manifest instead.
2025-05-16 11:04:21 +00:00
Danny Kopping cf98268031 chore: push proto changes to v1.6 (#17874)
`v1.5` is going out with release `v2.22`

I had to reorder `module_files` and `resource_replacements` because of
this.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-16 11:27:41 +02:00
Dean Sheather c7917ea9e5 chore: expose original length when serving slim binaries (#17735)
This will be used in the extensions and desktop apps to enable
compression AND progress reporting for the download by comparing the
original content length to the amount of bytes written to disk.

Closes #16340
2025-05-16 15:19:28 +10:00
Spike Curtis 90e93a2399 chore: fix agent tests on Windows 11 (#17631)
Fixes a couple agent tests so that they work correctly on Windows.

`HOME` is not a standard Windows environment variable, and we don't have any specific Code in Coder to set it on SSH, so I've removed the test case. Amazingly/bizarrely the Windows test runners set this variable, but this is not standard Windows behavior so we shouldn't be including it in our tests.

Also the command `true` is not valid on a default Windows install.

```
true: The term 'true' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
```

I'm not really sure how the CI runners are allowing this test to pass, but again, it's not standard so we shouldn't be doing it.
2025-05-16 07:50:29 +04:00
Bruno Quaresma 4ac41375a0 chore: replace MUI icons with Lucide icons - 15 (#17861)
AccountCircleOutlined -> CircleUserIcon
BugReportOutlined -> BugIcon
ChatOutlined -> MessageSquareIcon
ExitToAppOutlined -> LogOutIcon
LaunchOutlined -> SquareArrowOutUpRightIcon
MenuBook -> BookOpenTextIcon
OpenInNew -> EternalLinkIcon
EmailOutlined -> MailIcon
WebhookOutlined -> WebhookIcon
Business -> Building2Icon
Person -> UserIcon
2025-05-15 22:32:50 -03:00
Bruno Quaresma ea63d27e45 chore: migrate spinner components (#17866) 2025-05-15 22:29:58 -03:00
Steven Masley c2bc801f83 chore: add 'classic_parameter_flow' column setting to templates (#17828)
We are forcing users to try the dynamic parameter experience first.
Currently this setting only comes into effect if an experiment is
enabled.
2025-05-15 17:55:17 -05:00
Jaayden Halko 9063b67c4d chore: improve style of dynamic parameters diagnostics (#17863)
Before
<img width="756" alt="Screenshot 2025-05-15 at 19 10 24"
src="https://github.com/user-attachments/assets/405d904a-c06b-41d9-9641-0dbadeadde70"
/>


After
<img width="755" alt="Screenshot 2025-05-15 at 19 10 07"
src="https://github.com/user-attachments/assets/7c1e72b5-37d1-446b-af7e-aebfcf7553a3"
/>
2025-05-15 18:02:25 -04:00
Bruno Quaresma 3011eca0c5 chore: replace MUI icons with Lucide icons - 16 (#17862)
Close -> XIcon
WarningOutlined -> TriangleAlertIcon
FileCopyOutlined -> CopyIcon
KeyboardArrowRight -> ChevronRightIcon
Add -> PlusIcon
Send -> SendIcon
ChevronRight -> ChevronRightIcon
MoreHorizOutlined -> EllipsisIcon
2025-05-15 15:42:09 -03:00
Bruno Quaresma 952c254046 fix: fix duplicated agent logs (#17806)
Fix https://github.com/coder/coder/issues/16355
2025-05-15 15:21:33 -03:00
M Atif Ali 2c49fd9e96 feat: add copy button for workspace name in breadcrumb (#17822)
Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2025-05-15 22:41:01 +05:00
Bruno Quaresma bbceebde97 chore: remove @mui/lab (#17857) 2025-05-15 13:21:53 -03:00
Tom Beckett bb6b96f11c feat: add elixir icon (#17848) 2025-05-15 20:34:32 +05:00
Bruno Quaresma 9beaca89fd chore: replace MUI LoadingButton - 3 (#17833)
- RequestOTPPage
- SetupPageView
- TemplatePermissionsPageView
- AccountForm
- ExternalAuthPageView
2025-05-15 12:08:48 -03:00
Bruno Quaresma 257500c12f chore: replace MUI icons with Lucide icons - 14 (#17832)
HourglassEmpty -> HourglassIcon
Star -> StarIcon
CloudQueue -> CloudIcon
InstallDesktop -> MonitorDownIcon
WarningRounded -> TriangleAlertIcon
ArrowBackOutlined -> ChevronLeftIcon
MonetizationOnOutlined -> CircleDollarSign
2025-05-15 12:08:35 -03:00
Bruno Quaresma 6ff6e95417 chore: replace MUI icons with Lucide icons - 13 (#17831)
OpenInNew -> ExternalLinkIcon
InfoOutlined -> InfoIcon
CloudDownload -> CloudDownloadIcon
CloudUpload -> CloudUploadIcon
Compare -> GitCompareArrowsIcon
SettingsEthernet -> GaugeIcon
WebAsset -> AppWindowIcon
2025-05-15 11:43:35 -03:00
Bruno Quaresma ba6690f2ee fix: show no provisioners warning (#17835)
<img width="1510" alt="Screenshot 2025-05-14 at 14 53 02"
src="https://github.com/user-attachments/assets/f9c0fbb9-ea39-4fbc-a550-00d9f609a01e"
/>

Fix https://github.com/coder/coder/issues/17421
2025-05-15 11:37:20 -03:00
Thomas Kosiewski 1bacd82e80 feat: add API key scope to restrict access to user data (#17692) 2025-05-15 15:32:52 +01:00
Bruno Quaresma ee2aeb44d7 fix: avoid pulling containers when it is not enabled (#17855)
We've been continuously pulling the containers endpoint even when the
agent does not support containers. To optimize the requests, we can
check if it is throwing an error and stop if it is a 403 status code.
2025-05-15 11:13:09 -03:00
Edward Angert c42a3156cc docs: add dev containers to manifest.json (#17854)
[preview](http://coder.com/docs/@dev-container-manifest/admin/templates/extending-templates/devcontainers)
2025-05-15 13:18:21 +00:00
Mathias Fredriksson 3de0003e4b feat(agent): send devcontainer CLI logs during recreate (#17845)
We need a way to surface what's happening to the user, since autostart
logs here, it's natural we do so during re-create as well.

Updates #16424
2025-05-15 16:06:56 +03:00
Hugo Dutka 6e1ba75b06 chore: retry failed race tests in CI (#17846)
This PR enables retrying failed tests in the race suites unless a data
race was detected. The goal is to reduce how often flakes disrupt
developers' workflows.

I bumped gotestsum to a revision from the `main` branch because it
includes the `--rerun-fails-abort-on-data-race` flag which [I recently
contributed](https://github.com/gotestyourself/gotestsum/pull/497).

Incidentally, you can see it [in action in a CI job on this very
PR](https://github.com/coder/coder/actions/runs/15040840724/job/42271999592?pr=17846#step:8:647).
2025-05-15 14:11:36 +02:00
Yevhenii Shcherbina 2aa8cbebd7 fix: exclude deleted templates from metrics collection (#17839)
Also add some clarification about the lack of database constraints for
soft template deletion.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
2025-05-15 13:33:58 +02:00
Danny Kopping f2edcf3f59 fix: add missing clause for tracking replacements (#17849)
We should only be tracking resource replacements during a prebuild
claim.

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-15 13:02:30 +02:00
Mathias Fredriksson 522c178271 fix(agent/agentcontainers): always use /bin/sh for devcontainer autostart (#17847)
This fixes startup issues when the user shell is set to Fish.

Refs: #17845
2025-05-15 12:49:52 +03:00
Mathias Fredriksson eb6412a69b refactor(agent/agentcontainers): update routes and locking in container api (#17768)
This refactor updates the devcontainer routes and in-api locking for
better clarity.

Updates #16424
2025-05-15 11:29:26 +03:00
Bruno Quaresma b6d72c8dee chore: replace MUI LoadingButton - 4 (#17834)
- ScheduleForm
- SecurityForm
- HistorySidebar
- WorkspacesPageView
2025-05-14 22:18:10 -03:00
Bruno Quaresma 35a04c7fb2 refactor: use the new Table component for the Templates table (#17838)
<img width="1624" alt="Screenshot 2025-05-14 at 15 11 56"
src="https://github.com/user-attachments/assets/01fd5fe2-35d4-4fae-a668-68af2b9f9bd6"
/>
2025-05-14 17:11:32 -03:00
brettkolodny 73251cf5b2 chore: add documentation to the coder ssh command regarding feature parity with ssh (#17827)
Closes
[coder/internal#628](https://github.com/coder/internal/issues/628)

---------

Co-authored-by: M Atif Ali <atif@coder.com>
2025-05-14 15:42:44 -04:00
brettkolodny 9093dbc516 feat: hide hidden and non-healthy apps in the workspaces table (#17830)
Closes
[coder/internal#633](https://github.com/coder/internal/issues/633)
2025-05-14 13:51:45 -04:00
Steven Masley 789c4beba7 chore: add dynamic parameter error if missing metadata from provisioner (#17809) 2025-05-14 12:21:36 -05:00
ケイラ f3bcac2e90 refactor: improve overlayFS errors (#17808) 2025-05-14 10:26:47 -06:00
dependabot[bot] 4d00b76ef4 chore: bump github.com/justinas/nosurf from 1.1.1 to 1.2.0 (#17829)
Bumps [github.com/justinas/nosurf](https://github.com/justinas/nosurf)
from 1.1.1 to 1.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/justinas/nosurf/releases">github.com/justinas/nosurf's
releases</a>.</em></p>
<blockquote>
<h2>v1.2.0</h2>
<p>This is a <em>security</em> release for nosurf. It mainly addresses
<a
href="https://github.com/justinas/nosurf-cve-2025-46721">CVE-2025-46721</a>.</p>
<p>This release technically includes breaking changes, as nosurf starts
applying same-origin checks that were not previously enforced. In most
cases, users will not need to make any changes to their code. However,
it is recommended to read <a
href="https://github.com/justinas/nosurf/blob/master/docs/origin-checks.md">the
documentation on nosurf's trusted origin checks</a> before
upgrading.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/justinas/nosurf/commit/ec9bb776d8e5ba9e906b6eb70428f4e7b009feee"><code>ec9bb77</code></a>
Rework origin checks (<a
href="https://redirect.github.com/justinas/nosurf/issues/74">#74</a>)</li>
<li><a
href="https://github.com/justinas/nosurf/commit/e5c9c1fe2d4f69668ff78f872abf3b396a08673a"><code>e5c9c1f</code></a>
Add GitHub Actions CI, fix lints and tests</li>
<li>See full diff in <a
href="https://github.com/justinas/nosurf/compare/v1.1.1...v1.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/justinas/nosurf&package-manager=go_modules&previous-version=1.1.1&new-version=1.2.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-05-14 15:08:52 +00:00
Edward Angert 74934e174e docs: add file sync to coder desktop docs (#17463)
closes #16869 

section could use more about:

- [x] sync direction options?
- [x] how to resolve conflicts
- [x] EA --> Beta


[preview](https://coder.com/docs/@16869-desktop-file-sync/user-guides/desktop)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-14 10:05:33 -04:00
Bruno Quaresma df56a13947 chore: replace MUI icons with Lucide icons - 12 (#17815)
AddOutlined -> PlusIcon
RemoveOutlined -> TrashIcon
ScheduleOutlined -> ClockIcon
2025-05-14 09:54:19 -03:00
Danny Kopping 6e967780c9 feat: track resource replacements when claiming a prebuilt workspace (#17571)
Closes https://github.com/coder/internal/issues/369

We can't know whether a replacement (i.e. drift of terraform state
leading to a resource needing to be deleted/recreated) will take place
apriori; we can only detect it at `plan` time, because the provider
decides whether a resource must be replaced and it cannot be inferred
through static analysis of the template.

**This is likely to be the most common gotcha with using prebuilds,
since it requires a slight template modification to use prebuilds
effectively**, so let's head this off before it's an issue for
customers.

Drift details will now be logged in the workspace build logs:


![image](https://github.com/user-attachments/assets/da1988b6-2cbe-4a79-a3c5-ea29891f3d6f)

Plus a notification will be sent to template admins when this situation
arises:


![image](https://github.com/user-attachments/assets/39d555b1-a262-4a3e-b529-03b9f23bf66a)

A new metric - `coderd_prebuilt_workspaces_resource_replacements_total`
- will also increment each time a workspace encounters replacements.

We only track _that_ a resource replacement occurred, not how many. Just
one is enough to ruin a prebuild, but we can't know apriori which
replacement would cause this.
For example, say we have 2 replacements: a `docker_container` and a
`null_resource`; we don't know which one might
cause an issue (or indeed if either would), so we just track the
replacement.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-14 14:52:22 +02:00
Bruno Quaresma e75d1c1ce5 chore: replace MUI LoadingButton with Button + Spinner - 2 (#17817) 2025-05-14 09:37:01 -03:00
Bruno Quaresma c7bc4047ba chore: replace MUI LoadingButton with Button + Spinner - 1 (#17816) 2025-05-14 09:35:21 -03:00
Sas Swart 425ee6fa55 feat: reinitialize agents when a prebuilt workspace is claimed (#17475)
This pull request allows coder workspace agents to be reinitialized when
a prebuilt workspace is claimed by a user. This facilitates the transfer
of ownership between the anonymous prebuilds system user and the new
owner of the workspace.

Only a single agent per prebuilt workspace is supported for now, but
plumbing has already been done to facilitate the seamless transition to
multi-agent support.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
2025-05-14 14:15:36 +02:00
Bruno Quaresma fcbdd1a28e refactor: replace badge by status indicator (#17811)
**Why?**
In the workspaces page, it is using the status indicator, and not the
badge anymore, so to keep the UI consistent, I'm replacing the badge by
the indicator in the workspace page too.

**Before:**
<img width="672" alt="Screenshot 2025-05-13 at 19 14 17"
src="https://github.com/user-attachments/assets/0e8ea4bd-68d1-4d27-b81b-f79f15cabb2c"
/>

**After:**
<img width="672" alt="Screenshot 2025-05-13 at 19 14 21"
src="https://github.com/user-attachments/assets/45719262-011e-4fc8-9ebe-fe9e33d9d572"
/>
2025-05-14 09:11:25 -03:00
Bruno Quaresma 80e1be0db1 fix: replace wrong emoji reference (#17810)
Before:
<img width="713" alt="Screenshot 2025-05-13 at 19 01 15"
src="https://github.com/user-attachments/assets/9e4438a4-28db-4d94-a9ce-cecfb73ce8ab"
/>

After:
<img width="713" alt="Screenshot 2025-05-13 at 19 02 22"
src="https://github.com/user-attachments/assets/627ddbb2-45d1-48a1-bd34-a998e11966a2"
/>
2025-05-14 09:03:01 -03:00
Bruno Quaresma f87dbe757e chore: replace MUI icons with Lucide icons - 11 (#17814)
PersonOutlined -> UserIcon
Schedule -> ClockIcon
SettingsSuggest -> SettingsIcon
SettingsOutlined -> SettingsIcon
CodeOutlined -> CodeIcon
TimerOutlined -> TimerIcon
2025-05-14 08:48:08 -03:00
Bruno Quaresma c71839294b fix: don't open a window for external apps (#17813)
This prevents empty windows like the following to happen:

![image](https://github.com/user-attachments/assets/0a444938-316e-4d48-bdfc-770d1b4b2bf0)
2025-05-14 08:41:33 -03:00
Bruno Quaresma 67e40244a4 feat: add extra workspace actions in the workspaces table (#17775)
**Demo:**
<img width="1624" alt="Screenshot 2025-05-12 at 16 53 36"
src="https://github.com/user-attachments/assets/7f125b31-5ce8-4c1f-8e26-c3136346cae3"
/>
2025-05-13 18:53:43 -03:00
ケイラ 60762d4c13 feat: load terraform modules when using dynamic parameters (#17714) 2025-05-13 16:07:29 -05:00
Edward Angert f9817af11f docs: add section on how to retrieve user list (#17798)
previews
- [admin/users](https://coder.com/docs/@export-coder-users/admin/users)
-
[reference/cli/users](https://coder.com/docs/@export-coder-users/reference/cli/users)

followup to slack thread:

> Tim
> what's the best way for customers to export a list of Coder users?
>
> @ericpaulsen
> the `/api/v2/users` API route returns all users in the deployment
(along with other information - email, status, username, etc.). from
<https://coder.com/docs/reference/api/users#get-users>


- adds an easy-to-find section to the admin/users doc
- updates the cli commands with short descriptions

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-05-13 20:48:16 +00:00
M Atif Ali 170f41ac55 chore: fix release calendar and script (#17745)
Updates the script for the release calendar to use the actual release
dates.

This is done to work around the anomaly of the delayed May release.
2025-05-14 00:04:37 +05:00
Dean Sheather ef745c0c5d chore: optimize workspace_latest_builds view query (#17789)
Avoids two sequential scans of massive tables (`workspace_builds`,
`provisioner_jobs`) and uses index scans instead. This new view largely
replicates our already optimized query `GetWorkspaces` to fetch the
latest build.

The original query and the new query were compared against the dogfood
database to ensure they return the exact same data in the exact same
order (minus the new `workspaces.deleted = false` filter to improve
performance even more). The performance is massively improved even
without the `workspaces.deleted = false` filter, but it was added to
improve it even more.

Note: these query times are probably inflated due to high database load
on our dogfood environment that this intends to partially resolve.

Before: 2,139ms
([explain](https://explain.dalibo.com/plan/997e4fch241b46e6))

After: 33ms
([explain](https://explain.dalibo.com/plan/c888dc223870f181))

Co-authored-by: Cian Johnston <cian@coder.com>

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
2025-05-13 20:51:01 +02:00
Danny Kopping b2a1de9e2a feat: fetch prebuilds metrics state in background (#17792)
`Collect()` is called whenever the `/metrics` endpoint is hit to
retrieve metrics.

The queries used in prebuilds metrics collection are quite heavy, and we
want to avoid having them running concurrently / too often to keep db
load down.

Here I'm moving towards a background retrieval of the state required to
set the metrics, which gets invalidated every interval.

Also introduces `coderd_prebuilt_workspaces_metrics_last_updated` which
operators can use to determine when these metrics go stale.

See https://github.com/coder/coder/pull/17789 as well.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-13 20:27:41 +02:00
Bruno Quaresma 709445e6fb chore: replace MUI icons with Lucide icons - 9 (#17796)
OpenInNew -> ExternalLinkIcon
KeyboardArrowLeft -> ChevronLeftIcon
KeyboardArrowRight -> ChevronRightIcon
Settings -> SettingsIcon
2025-05-13 13:53:06 -04:00
Steven Masley 64807e1d61 chore: apply the 4mb max limit on drpc protocol message size (#17771)
Respect the 4mb max limit on proto messages
2025-05-13 11:24:51 -05:00
Cian Johnston a1c03b6c5f feat: add experimental Chat UI (#17650)
Builds on https://github.com/coder/coder/pull/17570

Frontend portion of https://github.com/coder/coder/tree/chat originally
authored by @kylecarbs

Additional changes:
- Addresses linter complaints
- Brings `ChatToolInvocation` argument definitions in line with those
defined in `codersdk/toolsdk`
- Ensures chat-related features are not shown unless
`ExperimentAgenticChat` is enabled.

Co-authored-by: Kyle Carberry <kyle@carberry.com>
2025-05-13 17:24:10 +01:00
Charlie Voiselle 8f64d49b22 chore: update alpine 3.21.2 => 3.21.3 (#17773)
Resolves 3 CVEs in base container (1 High, 2 Medium)

| CVE ID         | CVSS Score | Package / Version               |
| -------------- | ---------- | ------------------------------  |
| CVE-2025-26519 | 8.1 High   | apk / alpine/musl / 1.2.5-r8    |
| CVE-2024-12797 | 6.3 Medium | apk / alpine/openssl / 3.3.2-r4 |
| CVE-2024-13176 | 4.1 Medium | apk / alpine/openssl / 3.3.2-r4 |
2025-05-13 11:49:56 -04:00
Bruno Quaresma 86da21c491 chore: replace MUI icons with Lucide icons - 10 (#17797)
CloseOutlined -> XIcon
SearchOutlined -> SearchIcon
Refresh -> RotateCwIcon
Build -> WrenchIcon
2025-05-13 12:31:36 -03:00
Bruno Quaresma eb9a651acd chore: replace MUI icons with Lucide icons - 8 (#17778)
1. Replaced CheckOutlined with CheckIcon in:
  - TemplateVersionStatusBadge.tsx
  - TemplateEmbedPage.tsx
  - IntervalMenu.tsx
  - WeekPicker.tsx
  - SelectMenu.tsx
2. Replaced EditCalendarOutlined with CalendarCogIcon in:
  - UserSettingsPage/Sidebar.tsx
  - Sidebar.stories.tsx
3. Replaced LockOutlined with LockIcon in:
  - UserSettingsPage/Sidebar.tsx
  - TemplateSettingsPage/Sidebar.tsx
  - Sidebar.stories.tsx
4. Replaced Person with UserIcon in:
  - UserSettingsPage/Sidebar.tsx
  - Sidebar.stories.tsx
5. Replaced VpnKeyOutlined with KeyIcon in:
  - UserSettingsPage/Sidebar.tsx
  - Sidebar.stories.tsx
6. Replaced FingerprintOutlined with FingerprintIcon in:
  - UserSettingsPage/Sidebar.tsx
  - Sidebar.stories.tsx
2025-05-13 10:09:45 -03:00
Bruno Quaresma 02425ee864 chore: replace MUI icons with Lucide icons - 7 (#17776)
VisibilityOffOutlined -> EyeOffIcon
VisibilityOutlined -> EyeIcon
2025-05-13 10:08:41 -03:00
Danielle Maywood b0788f410f chore: rename "Test Notification" to "Troubleshooting Notification" (#17790)
Rename the "Test Notification" to "Troubleshooting Notification"
2025-05-13 13:52:55 +01:00
Susana Ferreira 599bb35a04 fix(coderd): list templates returns non-deprecated templates by default (#17747)
## Description

Modifies the behaviour of the "list templates" API endpoints to return
non-deprecated templates by default. Users can still query for
deprecated templates by specifying the `deprecated=true` query
parameter.

**Note:** The deprecation feature is an enterprise-level feature

## Affected Endpoints
* /api/v2/organizations/{organization}/templates
* /api/v2/templates

Fixes #17565
2025-05-13 12:44:46 +01:00
Danielle Maywood 7f056da088 feat: add hidden CODER_AGENT_IS_SUB_AGENT flag to coder agent (#17783)
Closes https://github.com/coder/internal/issues/620

Adds a new, hidden, flag `CODER_AGENT_IS_SUB_AGENT` to the `coder agent`
command.
2025-05-13 10:57:50 +01:00
Danielle Maywood 0b5f27f566 feat: add parent_id column to workspace_agents table (#17758)
Adds a new nullable column `parent_id` to `workspace_agents` table. This
lays the groundwork for having child agents.
2025-05-13 00:01:31 +01:00
Steven Masley 398b999d8f chore: pass previous values into terraform apply (#17696)
Pass previous workspace build parameter values into the terraform
`plan/apply`. Enforces monotonicity in terraform as well as `coderd`.
2025-05-12 15:32:00 -05:00
ケイラ d0ab91c16f fix: reduce size of terraform modules archive (#17749) 2025-05-12 13:50:07 -06:00
ケイラ 10b44a5d1d fix: use monochrome zed icon (#17774) 2025-05-12 13:18:18 -06:00
Callum Styan 578b9ff5fe fix: enrich the notLoggedInMessage error message with the full path to the coder (#17715)
---------

Signed-off-by: Callum Styan <callumstyan@gmail.com>
2025-05-12 11:45:24 -07:00
Bruno Quaresma 15bd7a3add chore: replace MUI icons with Lucide icons - 5 (#17750)
Replacements:

MUI | Lucide
OpenInNewOutlined | ExternalLinkIcon
HelpOutline | CircleHelpIcon
ErrorOutline | CircleAlertIcon
2025-05-12 13:36:51 -03:00
Cian Johnston e0dd50d7fb chore(cli): fix test flake in TestExpMcpServer (#17772)
Test was failing inside a Coder workspace.
2025-05-12 17:15:24 +01:00
Hugo Dutka ea2cae0e20 chore: tune postgres CI tests (#17756)
Changes:
- use a bigger runner for test-go-pg on Linux
- use a depot runner to run postgres tests on Windows
- use the same Windows ramdisk action for postgres tests as the one
currently used for in-memory tests
- put GOTMPDIR on a ramdisk on Windows
- tune the number of tests running in parallel on macOS and Windows
- use a ramdisk for postgres on macOS
- turn off Spotlight indexing on macOS
- rerun failing tests to stop flakes from disrupting developers

Results:
- test-go-pg on Linux completing in 50% of the time it takes to run on
main ([run on
main](https://github.com/coder/coder/actions/runs/14937632073/job/41968714750),
[run on this
PR](https://github.com/coder/coder/actions/runs/14956584795/job/42013097674?pr=17756))
- macOS tests completing in 70% of the time ([run on
main](https://github.com/coder/coder/actions/runs/14921155015/job/41916639889),
[run on this
PR](https://github.com/coder/coder/actions/runs/14956590940/job/42013102975))
- Windows tests completing in 50% of the time ([run on
main](https://github.com/coder/coder/actions/runs/14921155015/job/41916640058),
[run on this
PR](https://github.com/coder/coder/actions/runs/14956590940/job/42013103116))

This PR helps unblock https://github.com/coder/coder/issues/15109.
2025-05-12 17:38:25 +02:00
Steven Masley 37832413ba chore: resolve internal drpc package conflict (#17770)
Our internal drpc package name conflicts with the external one in usage. 
`drpc.*` == external
`drpcsdk.*` == internal
2025-05-12 10:31:38 -05:00
Danny Kopping af2941bb92 feat: add is_prebuild_claim to distinguish post-claim provisioning (#17757)
Used in combination with
https://github.com/coder/terraform-provider-coder/pull/396

This is required by both https://github.com/coder/coder/pull/17475 and
https://github.com/coder/coder/pull/17571

Operators may need to conditionalize their templates to perform certain
operations once a prebuilt workspace has been claimed. This value will
**only** be set once a claim takes place and a subsequent `terraform
apply` occurs. Any `terraform apply` runs thereafter will be
indistinguishable from a normal run on a workspace.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-12 14:19:03 +00:00
dependabot[bot] 799a0ba573 chore: bump github.com/valyala/fasthttp from 1.61.0 to 1.62.0 (#17766)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.61.0 to 1.62.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.62.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add support for streaming identity-encoded or unknown length
response bodies by <a
href="https://github.com/osxtest"><code>@​osxtest</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2000">valyala/fasthttp#2000</a></li>
<li>feat: move user values to Request structure by <a
href="https://github.com/mdenushev"><code>@​mdenushev</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1999">valyala/fasthttp#1999</a></li>
<li>chore(deps): bump golangci/golangci-lint-action from 7 to 8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2001">valyala/fasthttp#2001</a></li>
<li>chore(deps): bump golang.org/x/crypto from 0.37.0 to 0.38.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2002">valyala/fasthttp#2002</a></li>
<li>chore(deps): bump golang.org/x/net from 0.39.0 to 0.40.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2003">valyala/fasthttp#2003</a></li>
<li>modify <code>acceptConn</code> for <code>RIO</code> by <a
href="https://github.com/wamshawn"><code>@​wamshawn</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2005">valyala/fasthttp#2005</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/osxtest"><code>@​osxtest</code></a> made
their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2000">valyala/fasthttp#2000</a></li>
<li><a href="https://github.com/wamshawn"><code>@​wamshawn</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/2005">valyala/fasthttp#2005</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.61.0...v1.62.0">https://github.com/valyala/fasthttp/compare/v1.61.0...v1.62.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/9e457ebd982fe77cce75b59667ff20d4c3af30b2"><code>9e457eb</code></a>
mod acceptConn (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2005">#2005</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/69a68df4eb257570ffed33b85a8e6d523b07ed70"><code>69a68df</code></a>
chore(deps): bump golang.org/x/net from 0.39.0 to 0.40.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2003">#2003</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/83fbe80f9379db8388b4ee24a2eaab4674998b3f"><code>83fbe80</code></a>
chore(deps): bump golang.org/x/crypto from 0.37.0 to 0.38.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2002">#2002</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/51817a4eb67dabb67e0870efccb20caafe0a936d"><code>51817a4</code></a>
chore(deps): bump golangci/golangci-lint-action from 7 to 8 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/2001">#2001</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/41a1449627b8ba0cbf30030ea41fc1ae4ca514f2"><code>41a1449</code></a>
feat: move user values to Request structure (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1999">#1999</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/1345f42ede3f31b6fe6b42342256f338261bd9d5"><code>1345f42</code></a>
Add support for streaming identity-encoded or unknown length response
bodies ...</li>
<li>See full diff in <a
href="https://github.com/valyala/fasthttp/compare/v1.61.0...v1.62.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.61.0&new-version=1.62.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 12:24:00 +00:00
dependabot[bot] 345a239838 chore: bump github.com/open-policy-agent/opa from 1.3.0 to 1.4.2 (#17674)
Bumps
[github.com/open-policy-agent/opa](https://github.com/open-policy-agent/opa)
from 1.3.0 to 1.4.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-policy-agent/opa/releases">github.com/open-policy-agent/opa's
releases</a>.</em></p>
<blockquote>
<h2>v1.4.2</h2>
<p>This is a bug fix release addressing the missing
<code>capabilities/v1.4.1.json</code> in the v1.4.1 release.</p>
<h2>v1.4.1</h2>
<p>⚠️ Please skip this release and go straight to v1.4.2 ⚠️
This release is broken due to a mistake during the release process and
the artifacts are missing a crucial capabilities file.
Sorry for any inconvenience.</p>
<hr />
<p>This is a security fix release for the fixes published in Go <a
href="https://groups.google.com/g/golang-announce/c/4t3lzH3I0eI">1.24.1</a>
and <a
href="https://groups.google.com/g/golang-announce/c/Y2uBTVKjBQk">1.24.2</a></p>
<ul>
<li>build: bump go to 1.24.2 (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7544">#7544</a>)
(authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a>)
Addressing <code>CVE-2025-22870</code> and <code>CVE-2025-22871</code>
vulnerabilities in the Go runtime.</li>
</ul>
<h2>v1.4.0</h2>
<p>This release contains a security fix addressing CVE-2025-46569.
It also includes a mix of new features, bugfixes, and dependency
updates.</p>
<h4>Security Fix: CVE-2025-46569 - OPA server Data API HTTP path
injection of Rego (<a
href="https://github.com/open-policy-agent/opa/security/advisories/GHSA-6m8w-jc87-6cr7">GHSA-6m8w-jc87-6cr7</a>)</h4>
<p>A vulnerability in the OPA server's <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#data-api">Data
API</a> allows an attacker to craft the HTTP path in a way that injects
Rego code into the query that is evaluated.<br />
The evaluation result cannot be made to return any other data than what
is generated by the requested path, but this path can be misdirected,
and the injected Rego code can be crafted to make the query succeed or
fail; opening up for oracle attacks or, given the right circumstances,
erroneous policy decision results.
Furthermore, the injected code can be crafted to be computationally
expensive, resulting in a Denial Of Service (DoS) attack.</p>
<p><strong>Users are only impacted if all of the following
apply:</strong></p>
<ul>
<li>OPA is deployed as a standalone server (rather than being used as a
Go library)</li>
<li>The OPA server is exposed outside of the local host in an untrusted
environment.</li>
<li>The configured <a
href="https://www.openpolicyagent.org/docs/latest/security/#authentication-and-authorization">authorization
policy</a> does not do exact matching of the input.path attribute when
deciding if the request should be allowed.</li>
</ul>
<p><strong>or, if all of the following apply:</strong></p>
<ul>
<li>OPA is deployed as a standalone server.</li>
<li>The service connecting to OPA allows 3rd parties to insert
unsanitised text into the path of the HTTP request to OPA’s Data
API.</li>
</ul>
<p>Note: With <strong>no</strong> <a
href="https://www.openpolicyagent.org/docs/latest/security/#authentication-and-authorization">Authorization
Policy</a> configured for restricting API access (the default
configuration), the RESTful <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#data-api">Data
API</a> provides access for managing Rego policies; and the RESTful <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#query-api">Query
API</a> facilitates advanced queries.
Full access to these APIs provides both simpler, and broader access than
what the security issue describes here can facilitate.
As such, OPA servers exposed to a network are <strong>not</strong>
considered affected by the attack described here if they are knowingly
not restricting access through an Authorization Policy.</p>
<p>This issue affects all versions of OPA prior to 1.4.0.</p>
<p>See the <a
href="https://github.com/open-policy-agent/opa/security/advisories/GHSA-6m8w-jc87-6cr7">Security
Advisory</a> for more details.</p>
<p>Reported by <a
href="https://github.com/GamrayW"><code>@​GamrayW</code></a>, <a
href="https://github.com/HyouKash"><code>@​HyouKash</code></a>, <a
href="https://github.com/AdrienIT"><code>@​AdrienIT</code></a>, authored
by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></p>
<h3>Runtime, Tooling, SDK</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-policy-agent/opa/blob/main/CHANGELOG.md">github.com/open-policy-agent/opa's
changelog</a>.</em></p>
<blockquote>
<h2>1.4.2</h2>
<p>This is a bug fix release addressing the missing
<code>capabilities/v1.4.1.json</code> in the v1.4.1 release.</p>
<h2>1.4.1</h2>
<p>This is a security fix release for the fixes published in Go <a
href="https://groups.google.com/g/golang-announce/c/4t3lzH3I0eI">1.24.1</a>
and <a
href="https://groups.google.com/g/golang-announce/c/Y2uBTVKjBQk">1.24.2</a></p>
<ul>
<li>build: bump go to 1.24.2 (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7544">#7544</a>)
(authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a>)
Addressing <code>CVE-2025-22870</code> and <code>CVE-2025-22871</code>
vulnerabilities in the Go runtime.</li>
</ul>
<h2>1.4.0</h2>
<p>This release contains a security fix addressing CVE-2025-46569.
It also includes a mix of new features, bugfixes, and dependency
updates.</p>
<h4>Security Fix: CVE-2025-46569 - OPA server Data API HTTP path
injection of Rego (<a
href="https://github.com/open-policy-agent/opa/security/advisories/GHSA-6m8w-jc87-6cr7">GHSA-6m8w-jc87-6cr7</a>)</h4>
<p>A vulnerability in the OPA server's <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#data-api">Data
API</a> allows an attacker to craft the HTTP path in a way that injects
Rego code into the query that is evaluated.<br />
The evaluation result cannot be made to return any other data than what
is generated by the requested path, but this path can be misdirected,
and the injected Rego code can be crafted to make the query succeed or
fail; opening up for oracle attacks or, given the right circumstances,
erroneous policy decision results.
Furthermore, the injected code can be crafted to be computationally
expensive, resulting in a Denial Of Service (DoS) attack.</p>
<p><strong>Users are only impacted if all of the following
apply:</strong></p>
<ul>
<li>OPA is deployed as a standalone server (rather than being used as a
Go library)</li>
<li>The OPA server is exposed outside of the local host in an untrusted
environment.</li>
<li>The configured <a
href="https://www.openpolicyagent.org/docs/latest/security/#authentication-and-authorization">authorization
policy</a> does not do exact matching of the input.path attribute when
deciding if the request should be allowed.</li>
</ul>
<p><strong>or, if all of the following apply:</strong></p>
<ul>
<li>OPA is deployed as a standalone server.</li>
<li>The service connecting to OPA allows 3rd parties to insert
unsanitised text into the path of the HTTP request to OPA’s Data
API.</li>
</ul>
<p>Note: With <strong>no</strong> <a
href="https://www.openpolicyagent.org/docs/latest/security/#authentication-and-authorization">Authorization
Policy</a> configured for restricting API access (the default
configuration), the RESTful <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#data-api">Data
API</a> provides access for managing Rego policies; and the RESTful <a
href="https://www.openpolicyagent.org/docs/latest/rest-api/#query-api">Query
API</a> facilitates advanced queries.
Full access to these APIs provides both simpler, and broader access than
what the security issue describes here can facilitate.
As such, OPA servers exposed to a network are <strong>not</strong>
considered affected by the attack described here if they are knowingly
not restricting access through an Authorization Policy.</p>
<p>This issue affects all versions of OPA prior to 1.4.0.</p>
<p>See the <a
href="https://github.com/open-policy-agent/opa/security/advisories/GHSA-6m8w-jc87-6cr7">Security
Advisory</a> for more details.</p>
<p>Reported by <a
href="https://github.com/GamrayW"><code>@​GamrayW</code></a>, <a
href="https://github.com/HyouKash"><code>@​HyouKash</code></a>, <a
href="https://github.com/AdrienIT"><code>@​AdrienIT</code></a>, authored
by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></p>
<h3>Runtime, Tooling, SDK</h3>
<ul>
<li>ast: Adding <code>rego_v1</code> feature to
<code>--v0-compatible</code> capabilities (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7474">#7474</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></li>
<li>executable: Add version and icon to OPA windows executable (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/3171">#3171</a>)
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a> reported by
<a
href="https://github.com/christophwille"><code>@​christophwille</code></a></li>
<li>format: Don't panic on format due to unexpected comments (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/6330">#6330</a>)
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a> reported by
<a href="https://github.com/sirpi"><code>@​sirpi</code></a></li>
<li>format: Avoid modifying strings when formatting (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/6220">#6220</a>)
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a> reported by
<a href="https://github.com/zregvart"><code>@​zregvart</code></a></li>
<li>plugins/status: FIFO buffer channel for status events to prevent
slow status API blocking (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7522">#7522</a>)
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-policy-agent/opa/commit/5e4582bb951f70641fe9ee85cc46245d079e5037"><code>5e4582b</code></a>
Prepare v1.4.2 release (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7547">#7547</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/3b64aff304139d6a84518813c54799d6d165f48d"><code>3b64aff</code></a>
Patch release v1.4.1 (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7545">#7545</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/8b0720247e65b97fe7715ca15682fee4040df4d1"><code>8b07202</code></a>
Prepare v1.4.0 release (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7541">#7541</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/ad2063247a14711882f18c387a511fc8094aa79c"><code>ad20632</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/24ff9cfb3ad0a6a5629f0b21458982d325ee03c5"><code>24ff9cf</code></a>
fix: return the raw strings when formatting (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7525">#7525</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/254f3bf0b9ee5faf1972ba31bbbe749bba19a000"><code>254f3bf</code></a>
fix(status plugin): make sure the latest status is read before manually
trigg...</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/9b5f6010c0503cd91eed8a56268a02d4895a42b4"><code>9b5f601</code></a>
docs: fix post merge badge (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7532">#7532</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/e4902774778da576da2a8f4b2fd50df6cc3da8b5"><code>e490277</code></a>
docs: Point path versioned requests to new sites (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7531">#7531</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/d65888c14f4cb2d67929590604415e35ba75f58c"><code>d65888c</code></a>
plugins/status: FIFO buffer channel for status events to prevent slow
status ...</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/eb77d10971ec772c3ac4968d4abe3666037d0338"><code>eb77d10</code></a>
docs: update edge links to use /docs/edge/ path (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7529">#7529</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-policy-agent/opa/compare/v1.3.0...v1.4.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/open-policy-agent/opa&package-manager=go_modules&previous-version=1.3.0&new-version=1.4.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 12:23:29 +00:00
dependabot[bot] 0832afbaf4 chore: bump gopkg.in/DataDog/dd-trace-go.v1 from 1.72.1 to 1.73.0 (#17763)
Bumps gopkg.in/DataDog/dd-trace-go.v1 from 1.72.1 to 1.73.0.

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| gopkg.in/DataDog/dd-trace-go.v1 | [>= 1.58.a, < 1.59] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gopkg.in/DataDog/dd-trace-go.v1&package-manager=go_modules&previous-version=1.72.1&new-version=1.73.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 12:11:02 +00:00
dependabot[bot] 4f1df34981 chore: bump github.com/mark3labs/mcp-go from 0.25.0 to 0.27.0 (#17762)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.25.0 to 0.27.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.27.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Support audio content type in tools/call and prompts/get by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/250">mark3labs/mcp-go#250</a></li>
<li>refactor(server): extract common HTTP transport configuration
options by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/253">mark3labs/mcp-go#253</a></li>
<li>ci: add check to verify generated code is up-to-date by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/258">mark3labs/mcp-go#258</a></li>
<li>fix(MCPServer): correct notification method in func
<code>RemoveResource()</code> by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/262">mark3labs/mcp-go#262</a></li>
<li>Create sample client by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/265">mark3labs/mcp-go#265</a></li>
<li>Fix the issue where the 'Shutdown' method fails to properly exit. by
<a
href="https://github.com/uppercaveman"><code>@​uppercaveman</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/255">mark3labs/mcp-go#255</a></li>
<li>test(server): reliably detect Start/Shutdown deadlock in SSEServer
by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/264">mark3labs/mcp-go#264</a></li>
<li>docs: make code examples in the README correct as per spec by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/268">mark3labs/mcp-go#268</a></li>
<li>feat(MCPServer): avoid unnecessary notifications when Resource/Tool
not exists by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/266">mark3labs/mcp-go#266</a></li>
<li>chore: replace <code>interface{}</code> with <code>any</code> by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/261">mark3labs/mcp-go#261</a></li>
<li>fix(Srv/stdio): risk of goroutine leaks and concurrent reads in
<code>readNextLine()</code> by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/257">mark3labs/mcp-go#257</a></li>
<li>docs: Remove reference to <code>mcp.RoleSystem</code> by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/269">mark3labs/mcp-go#269</a></li>
<li>fix: fix some obvious simplifications by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/267">mark3labs/mcp-go#267</a></li>
<li>Optimization of listByPagination Performance by <a
href="https://github.com/qiangmzsx"><code>@​qiangmzsx</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/246">mark3labs/mcp-go#246</a></li>
<li>fix: properly marshal <code>ToolAnnotations</code> with
<code>false</code> values by <a
href="https://github.com/pottekkat"><code>@​pottekkat</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/260">mark3labs/mcp-go#260</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/uppercaveman"><code>@​uppercaveman</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/255">mark3labs/mcp-go#255</a></li>
<li><a href="https://github.com/pottekkat"><code>@​pottekkat</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/268">mark3labs/mcp-go#268</a></li>
<li><a href="https://github.com/qiangmzsx"><code>@​qiangmzsx</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/246">mark3labs/mcp-go#246</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.26.0...v0.27.0">https://github.com/mark3labs/mcp-go/compare/v0.26.0...v0.27.0</a></p>
<h2>Release v0.26.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat(sse): Add <code>SessionWithTools</code> support to SSEServer by
<a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/232">mark3labs/mcp-go#232</a></li>
<li>Fix bug with MarshalJSON for NotificationParams by <a
href="https://github.com/Gelembjuk"><code>@​Gelembjuk</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/233">mark3labs/mcp-go#233</a></li>
<li>fix: write back error message if the response marshal failed by <a
href="https://github.com/ppzqh"><code>@​ppzqh</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/235">mark3labs/mcp-go#235</a></li>
<li>fix(server/sse): potential goroutine leak in Heartbeat sender by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/236">mark3labs/mcp-go#236</a></li>
<li>Fix stdio test compilation issues in CI by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/240">mark3labs/mcp-go#240</a></li>
<li>refactor(server/sse): rename WithBasePath to WithStaticBasePath by
<a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/238">mark3labs/mcp-go#238</a></li>
<li>fix(MCPServer): Session tool handler not used due to variable
shadowing by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/242">mark3labs/mcp-go#242</a></li>
<li>test: build mockstdio_server with isolated cache to prevent flaky CI
by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/241">mark3labs/mcp-go#241</a></li>
<li>fix: Use detached context for SSE message handling by <a
href="https://github.com/yash025"><code>@​yash025</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/244">mark3labs/mcp-go#244</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Gelembjuk"><code>@​Gelembjuk</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/233">mark3labs/mcp-go#233</a></li>
<li><a href="https://github.com/ppzqh"><code>@​ppzqh</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/235">mark3labs/mcp-go#235</a></li>
<li><a href="https://github.com/yash025"><code>@​yash025</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/244">mark3labs/mcp-go#244</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.25.0...v0.26.0">https://github.com/mark3labs/mcp-go/compare/v0.25.0...v0.26.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e5121b37d7214e23c572e1b9a49ca5b8a4d648e4"><code>e5121b3</code></a>
Release v0.27.0</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/eeb7070c3dc7a3c1df64fe309a3b8433ea78096e"><code>eeb7070</code></a>
fix: properly marshal <code>ToolAnnotations</code> with
<code>false</code> values (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/260">#260</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/e1f1b4794ea047757a1272659b9c6a6d68826800"><code>e1f1b47</code></a>
optimize listByPagination (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/246">#246</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/46bfb6fbb69067de5513049479408732cbea5f33"><code>46bfb6f</code></a>
fix: fix some obvious simplifications (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/267">#267</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/716eabedfef62d99a04b749472b8cef27b404fa3"><code>716eabe</code></a>
docs: Remove reference to <code>mcp.RoleSystem</code> (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/269">#269</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/3dfa33164fe642a2adc8908c9d4794e8fb2cf806"><code>3dfa331</code></a>
fix(server/stdio): risk of concurrent reads and data loss in
readNextLine() (...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/f8badd69d08f609cbbd7a218c3b2b8de05987277"><code>f8badd6</code></a>
chore: replace <code>interface{}</code> with <code>any</code> (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/261">#261</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/3442d321ad10a9edce5f2f76580e014a67de2229"><code>3442d32</code></a>
feat(MCPServer): avoid unnecessary notifications when Resource/Tool not
exist...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/61b9784ea84d637e29a1bb2b226b953c4bdce4fe"><code>61b9784</code></a>
docs: make code examples in the README correct as per spec (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/268">#268</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/1c99eaf3bfa39f832e73ec26402b4c5fa62d0d16"><code>1c99eaf</code></a>
test(server): reliably detect Start/Shutdown deadlock in SSEServer (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/264">#264</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.25.0...v0.27.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.25.0&new-version=0.27.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 12:09:34 +00:00
dependabot[bot] 87152db05b ci: bump the github-actions group across 1 directory with 4 updates (#17760)
Bumps the github-actions group with 4 updates in the / directory:
[crate-ci/typos](https://github.com/crate-ci/typos),
[dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata),
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
and [github/codeql-action](https://github.com/github/codeql-action).

Updates `crate-ci/typos` from 1.31.1 to 1.32.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.32.0</h2>
<h2>[1.32.0] - 2025-05-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1264">April
2025</a> changes</li>
</ul>
<h2>v1.31.2</h2>
<h2>[1.31.2] - 2025-04-28</h2>
<h3>Fixes</h3>
<ul>
<li><em>(exclusion)</em> Don't confused emails as base64</li>
<li><em>(dict)</em> Correct <code>contamint</code> to
<code>contaminant</code>, not <code>contaminat</code></li>
<li><em>(dict)</em> Correct <code>contamints</code> to
<code>contaminants</code>, not <code>contaminats</code></li>
</ul>
<h3>Performance</h3>
<ul>
<li>Improve tokenization performance</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.32.0] - 2025-05-02</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1264">April
2025</a> changes</li>
</ul>
<h2>[1.31.2] - 2025-04-28</h2>
<h3>Fixes</h3>
<ul>
<li><em>(exclusion)</em> Don't confused emails as base64</li>
<li><em>(dict)</em> Correct <code>contamint</code> to
<code>contaminant</code>, not <code>contaminat</code></li>
<li><em>(dict)</em> Correct <code>contamints</code> to
<code>contaminants</code>, not <code>contaminats</code></li>
</ul>
<h3>Performance</h3>
<ul>
<li>Improve tokenization performance</li>
</ul>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1248">March
2025</a> changes</li>
</ul>
<h2>[1.30.3] - 2025-03-24</h2>
<h3>Features</h3>
<ul>
<li>Support detecting <code>go.work</code> and <code>go.work.sum</code>
files</li>
</ul>
<h2>[1.30.2] - 2025-03-10</h2>
<h3>Features</h3>
<ul>
<li>Add <code>--highlight-words</code> and
<code>--highlight-identifiers</code> for easier debugging of config</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/0f0ccba9ed1df83948f0c15026e4f5ccfce46109"><code>0f0ccba</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/5cb94233a615fb61c4500572b64d22425e96099a"><code>5cb9423</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/2af8019e8687956766fbe303524b7f9b820885dd"><code>2af8019</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/970eb5442de8ea11b6b0e84904a11eda611a65db"><code>970eb54</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1291">#1291</a>
from epage/may</li>
<li><a
href="https://github.com/crate-ci/typos/commit/e84064f2d66ab3e807cfa29a1e203f78e56e115e"><code>e84064f</code></a>
feat(dict): April 2025 updates</li>
<li><a
href="https://github.com/crate-ci/typos/commit/8dddd500291130802cbb593827be9d862181402c"><code>8dddd50</code></a>
chore(deps): Update compatible (<a
href="https://redirect.github.com/crate-ci/typos/issues/1289">#1289</a>)</li>
<li><a
href="https://github.com/crate-ci/typos/commit/3be83342e28b9421997e9f781f713f8dde8453d2"><code>3be8334</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/f16e5d44ec16bfba422e39e66c11d58fc1a3da76"><code>f16e5d4</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/e0927bd9d2433efaf2c8a998ad0434cb94304415"><code>e0927bd</code></a>
docs(action): Remove non-existent variables</li>
<li><a
href="https://github.com/crate-ci/typos/commit/2dbcebf645e8918080b28c7eb1f913143a3426da"><code>2dbcebf</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1287">#1287</a>
from epage/dict</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/b1a1ef3893ff35ade0cfa71523852a49bfd05d19...0f0ccba9ed1df83948f0c15026e4f5ccfce46109">compare
view</a></li>
</ul>
</details>
<br />

Updates `dependabot/fetch-metadata` from 2.3.0 to 2.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dependabot/fetch-metadata/releases">dependabot/fetch-metadata's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump actions/create-github-app-token from 1.11.0 to 1.11.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/598">dependabot/fetch-metadata#598</a></li>
<li>Bump <code>@​vercel/ncc</code> from 0.38.1 to 0.38.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/578">dependabot/fetch-metadata#578</a></li>
<li>Add missing <code>@octokit/request-error</code> to
<code>package.json</code> by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/605">dependabot/fetch-metadata#605</a></li>
<li>Bump to ESLint 9 by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/606">dependabot/fetch-metadata#606</a></li>
<li>Stop using a node16 devcontainer image by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/608">dependabot/fetch-metadata#608</a></li>
<li>Make typescript compile to <code>&quot;es2022&quot;</code> by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/609">dependabot/fetch-metadata#609</a></li>
<li>Bump the dev-dependencies group across 1 directory with 8 updates by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/607">dependabot/fetch-metadata#607</a></li>
<li>Tidy up examples slightly by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/611">dependabot/fetch-metadata#611</a></li>
<li>Fixup some anchor tags that weren't deeplinking by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/614">dependabot/fetch-metadata#614</a></li>
<li>Remove unnecessary hardcoding of <code>ref</code> by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/617">dependabot/fetch-metadata#617</a></li>
<li>Bump actions/create-github-app-token from 1.11.3 to 2.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/616">dependabot/fetch-metadata#616</a></li>
<li>Enable caching of <code>npm install</code>/<code>npm ci</code> for
<code>setup-node</code> action by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/618">dependabot/fetch-metadata#618</a></li>
<li>Add workflow to publish new version of immutable action on every
release by <a
href="https://github.com/jeffwidman"><code>@​jeffwidman</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/623">dependabot/fetch-metadata#623</a></li>
<li>Bump actions/create-github-app-token from 2.0.2 to 2.0.6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/621">dependabot/fetch-metadata#621</a></li>
<li>v2.4.0 by <a
href="https://github.com/fetch-metadata-action-automation"><code>@​fetch-metadata-action-automation</code></a>
in <a
href="https://redirect.github.com/dependabot/fetch-metadata/pull/594">dependabot/fetch-metadata#594</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dependabot/fetch-metadata/compare/v2...v2.4.0">https://github.com/dependabot/fetch-metadata/compare/v2...v2.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/08eff52bf64351f401fb50d4972fa95b9f2c2d1b"><code>08eff52</code></a>
v2.4.0 (<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/594">#594</a>)</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/821b65425137ec0dd9fa4e4931297ce81a017ed7"><code>821b654</code></a>
Merge pull request <a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/621">#621</a>
from dependabot/dependabot/github_actions/actions/cre...</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/2c22a370e3e9f4d539470325c4c46acc607ef78e"><code>2c22a37</code></a>
Bump actions/create-github-app-token from 2.0.2 to 2.0.6</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/6ad01a0495c3f8488ba16705f5031cadde56c8ba"><code>6ad01a0</code></a>
Add workflow to publish new version of immutable action on every release
(<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/623">#623</a>)</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/8ca800c1642f5e46fd4fe73c07af0e3baf1375d6"><code>8ca800c</code></a>
Enable caching of <code>npm install</code>/<code>npm ci</code> for
<code>setup-node</code> action (<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/618">#618</a>)</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/67876354acc60aadf59dc57d46959117cee2b764"><code>6787635</code></a>
Merge pull request <a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/616">#616</a>
from dependabot/dependabot/github_actions/actions/cre...</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/a09d4affbb4e2c87349169de0a2ced55e3c27168"><code>a09d4af</code></a>
Bump actions/create-github-app-token from 1.11.3 to 2.0.2</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/3a5ce46470ca6c67f17694ac27f0db1caf53b518"><code>3a5ce46</code></a>
Remove unnecessary hardcoding of <code>ref</code> (<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/617">#617</a>)</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/798f45cdc56b81396c637207204f29f0f55da017"><code>798f45c</code></a>
Fixup some anchor tags that weren't deeplinking (<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/614">#614</a>)</li>
<li><a
href="https://github.com/dependabot/fetch-metadata/commit/6c031ac618d23a38e886535b1c8ea06caaf2a444"><code>6c031ac</code></a>
Tidy up examples slightly (<a
href="https://redirect.github.com/dependabot/fetch-metadata/issues/611">#611</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/dependabot/fetch-metadata/compare/d7267f607e9d3fb96fc2fbe83e0af444713e90b7...08eff52bf64351f401fb50d4972fa95b9f2c2d1b">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
5426ecc3f5c2b10effaefbd374f0abdc6a571b2f to
480f49412651059a414a6a5c96887abb1877de8a
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/480f49412651059a414a6a5c96887abb1877de8a"><code>480f494</code></a>
chore(deps): bump <code>@​actions/github</code> from 6.0.0 to 6.0.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2556">#2556</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/405524a214f00911f11de2cd3a9a36902ddafa52"><code>405524a</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.14 to
22.15.17 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2557">#2557</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/b6970c44e602dd27272fdfc4e3cf76054f721d15"><code>b6970c4</code></a>
chore(deps-dev): bump eslint-config-prettier from 10.1.2 to 10.1.5 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2558">#2558</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/11fe0a22639570798676000acac7be726130b5ee"><code>11fe0a2</code></a>
chore(deps): bump github/codeql-action from 3.28.16 to 3.28.17 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2551">#2551</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/e7b157b1c4ad44acfc8d9be14b8cd8f5058636e3"><code>e7b157b</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.3 to 22.15.10
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2552">#2552</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9132e0305b2a924727467f54f064d30bc85d67c1"><code>9132e03</code></a>
chore(deps-dev): bump eslint-plugin-prettier from 5.2.6 to 5.4.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2553">#2553</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4168bb487d5b82227665ab4ec90b67ce02691741"><code>4168bb4</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.15.0 to 22.15.3
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2548">#2548</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/5426ecc3f5c2b10effaefbd374f0abdc6a571b2f...480f49412651059a414a6a5c96887abb1877de8a">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.16 to 3.28.17
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.17</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.17/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.17 - 02 May 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li>
</ul>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2753">#2753</a></li>
</ul>
<h2>3.28.8 - 29 Jan 2025</h2>
<ul>
<li>Enable support for Kotlin 2.1.10 when running with CodeQL CLI
v2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2744">#2744</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/60168efe1c415ce0f5521ea06d5c2062adbeed1b"><code>60168ef</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2886">#2886</a>
from github/update-v3.28.17-97a2bfd2a</li>
<li><a
href="https://github.com/github/codeql-action/commit/0d5a3115da6459f8ab4333164184f8292c0c7a7f"><code>0d5a311</code></a>
Update changelog for v3.28.17</li>
<li><a
href="https://github.com/github/codeql-action/commit/97a2bfd2a3d26d458da69e548f7f859d6fca634d"><code>97a2bfd</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2872">#2872</a>
from github/update-bundle/codeql-bundle-v2.21.2</li>
<li><a
href="https://github.com/github/codeql-action/commit/9aba20e4c91fd8c3a71d5ab2bdeba0da11713864"><code>9aba20e</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.21.2</li>
<li><a
href="https://github.com/github/codeql-action/commit/81a9508deb02898c1a7be79bd5b49bb0ab9c787e"><code>81a9508</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2876">#2876</a>
from github/henrymercer/fix-diff-informed-multiple-a...</li>
<li><a
href="https://github.com/github/codeql-action/commit/1569f4c145413fbce7d6573c6ee9212d2612d27f"><code>1569f4c</code></a>
Disable diff-informed queries in code scanning config tests</li>
<li><a
href="https://github.com/github/codeql-action/commit/62fbeb66b359bfbdec7d4d96af8f68aece59b4db"><code>62fbeb6</code></a>
Merge branch 'main' into
henrymercer/fix-diff-informed-multiple-analyze</li>
<li><a
href="https://github.com/github/codeql-action/commit/f122d1dc9eb83b12dc16b38495b667a2dddfa6f9"><code>f122d1d</code></a>
Address test failures from computing temporary directory too early</li>
<li><a
href="https://github.com/github/codeql-action/commit/083772aae48a3be5654921bb6e6ccb00e0e1d563"><code>083772a</code></a>
Do not fail diff informed analyses when <code>analyze</code> is run
twice in the same job</li>
<li><a
href="https://github.com/github/codeql-action/commit/5db14d0471303d6eee1e2a51393f5ae1669b6703"><code>5db14d0</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.21.2</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/28deaeda66b76a05916b6923827895f2b14ab387...60168efe1c415ce0f5521ea06d5c2062adbeed1b">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| crate-ci/typos | [>= 1.30.a, < 1.31] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-12 11:58:20 +00:00
Mathias Fredriksson 7af188bfc1 fix(agent): fix unexpanded devcontainer paths for agentcontainers (#17736)
Devcontainers were duplicated in the API because paths weren't
absolute, we now normalize them early on to keep it simple.

Updates #16424
2025-05-12 14:03:40 +03:00
Edward Angert bd659142c8 docs: add note about experiment_report_tasks to ai-coder/create-template (#17563)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-09 21:00:18 +00:00
Bruno Quaresma 842bb1f014 chore: replace MUI icons - 6 (#17751)
1. Replaced CheckCircleOutlined with CircleCheckIcon (Lucide)
2. Replaced Close/CloseIcon with XIcon (Lucide)
3. Replaced DoNotDisturbOnOutlined with CircleMinusIcon (Lucide)
4. Replaced Sell with TagIcon (Lucide)
2025-05-09 17:07:57 -03:00
Bruno Quaresma 1adad418ad feat: display user apps in the workspaces table (#17744)
Related to https://github.com/coder/coder/issues/17311

**Demo:**
<img width="1511" alt="Screenshot 2025-05-09 at 11 46 59"
src="https://github.com/user-attachments/assets/3e9ba618-ed5d-4eeb-996f-d7bcceb9f1a9"
/>
2025-05-09 17:01:57 -03:00
Bruno Quaresma 4970fb9bfa chore: replace MUI icons - 4 (#17748)
1. Replaced CloudUploadOutlined with CloudUploadIcon in FileUpload.tsx
2. Replaced DeleteOutline with TrashIcon in:
    - WorkspaceTopbar.tsx
    - TokensPageView.tsx
    - GroupPage.tsx
3. Replaced FolderOutlined with FolderIcon in FileUpload.tsx
2025-05-09 15:57:28 -03:00
Bruno Quaresma aa4b764025 chore: replace MUI icons - 3 (#17733)
1. Replaced TaskAlt with CircleCheckBigIcon in:
   - Paywall.tsx
   - PopoverPaywall.tsx
  
2. Replaced InfoOutlined with InfoIcon in:
   - ChangeVersionDialog.tsx
   - WorkspaceNotifications.tsx
   - Pill.stories.tsx
   
3. Replaced ErrorOutline/ErrorOutlineIcon with CircleAlertIcon in:
   - workspace.tsx
   - WorkspaceStatusBadge.tsx
   - AppLink.tsx
2025-05-09 15:09:03 -03:00
Bruno Quaresma b0a4ef01a8 chore: replace MUI icons - 2 (#17732)
Replace icons: 

Check | CheckIcon
KeyboardArrowDown | ChevronDownIcon
KeyboardArrowUp | ChevronUpIcon
2025-05-09 14:44:10 -03:00
Bruno Quaresma 9e44f18b4b refactor: add safe list for external app protocols (#17742)
To prevent malicious apps and vendors to use the Coder session token we
are adding safe protocols/schemas we want to support.

- vscode:
- vscode-insiders:
- windsurf:
- cursor:
- jetbrains-gateway:
- jetbrains:

Fix https://github.com/coder/security/issues/77
2025-05-09 14:40:26 -03:00
Edward Angert 5c532779af docs: clarify parameter autofill documentation (#17728)
closes #17706 

Clarify that:
1. URL query parameters work without experiment flag
2. The 'populate recently used parameters' feature still requires the
auto-fill-parameters experiment flag

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-09 13:01:11 -04:00
Danny Kopping 3ee95f14ce chore: upgrade terraform-provider-coder & preview libs (#17738)
The changes in `coder/preview` necessitated the changes in
`codersdk/richparameters.go` & `provisioner/terraform/resources.go`.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-05-09 17:41:19 +02:00
Bruno Quaresma 9d7630bf4b chore: replace MUI icons - 1 (#17731)
1. Replaced MUI StopOutlined with Lucide SquareIcon in:
    - workspace.tsx
    - WorkspacesPageView.tsx
    - BuildIcon.tsx
    
 2. Replaced MUI PlayArrowOutlined with Lucide PlayIcon in:
    - workspace.tsx
    - WorkspacesPageView.tsx
    - BuildIcon.tsx
    
 3. Replaced MUI DeleteOutlined with Lucide TrashIcon in:
    - WorkspacesPageView.tsx
    - WorkspaceActions.tsx
    - TemplatePageHeader.tsx
    - BuildIcon.tsx
2025-05-09 11:16:46 -03:00
Bruno Quaresma 0b8fd7e403 chore: fix :first-child warning (#17727)
Fix the following warning:

```
The pseudo class ":first-child" is potentially unsafe when doing server-side rendering.
```
2025-05-09 11:11:00 -03:00
Bruno Quaresma 902c34cf01 refactor: improve apps.ts readbility (#17741)
Apply PR comments from https://github.com/coder/coder/pull/17724
2025-05-09 11:01:35 -03:00
Bruno Quaresma 2bdd035873 chore: add keys for each app on workspaces table (#17726)
Fix warning:
```
hook.js:608 Warning: Each child in a list should have a unique "key" prop.
```
2025-05-09 11:01:24 -03:00
Bruno Quaresma f897981e78 chore: extract app access logic for reuse (#17724)
We are starting to add app links in many places in the UI, and to make
it consistent, this PR extracts the most core logic into the
modules/apps for reuse.

Related to https://github.com/coder/coder/issues/17311
2025-05-09 10:41:52 -03:00
Michael Suchacz 2696926003 fix: fixed flaking VPN tunnel tests & bump coder/quartz to 0.1.3 (#17737)
Closes: https://github.com/coder/internal/issues/624
2025-05-09 12:27:47 +02:00
Danny Kopping 58adc629fa chore: add prebuild docs (#17580)
Partially addresses https://github.com/coder/internal/issues/593
2025-05-09 07:26:35 +00:00
Jon Ayers a9f1a6b2a2 fix: revert fix: persist terraform modules during template import (#17665) (#17734)
This reverts commit ae3d90b057.
2025-05-08 22:03:08 -04:00
ケイラ ae3d90b057 fix: persist terraform modules during template import (#17665) 2025-05-08 16:13:46 -06:00
Edward Angert 9a052e2a4c fix: use file filter in weekly-docs github action (#17729)
otherwise it ignores the instruction to only check docs/ when a file
changes in that dir

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-08 16:30:43 -04:00
Steven Masley d5360a6da0 chore: fetch workspaces by username with organization permissions (#17707)
Closes https://github.com/coder/coder/issues/17691

`ExtractOrganizationMembersParam` will allow fetching a user with only
organization permissions. If the user belongs to 0 orgs, then the user "does not exist" 
from an org perspective. But if you are a site-wide admin, then the user does exist.
2025-05-08 14:41:17 -05:00
Jaayden Halko d93a9cfde2 feat: add TagInput component for dynamic parameters (#17719)
resolves coder/preview#50

This uses the existing MultiTextField component as the tag-select
component for Dynamic parameters.

The intention is not to completely re-write the MultiTextField but to
make some design improvements to match the updated design patterns. This
should still work with the existing non-experimental
CreateWorkspacePage.

Before
<img width="556" alt="Screenshot 2025-05-08 at 12 58 31"
src="https://github.com/user-attachments/assets/9bf5bbf8-e26d-4523-8b5f-e4234e83d192"
/>


After
<img width="548" alt="Screenshot 2025-05-08 at 12 43 28"
src="https://github.com/user-attachments/assets/9fa90795-b2a9-4c07-b90e-938219202799"
/>
2025-05-08 12:59:33 -04:00
Jaayden Halko 0b141c47cb chore: add DynamicParameter stories (#17710)
resolves coder/preview#112

- Add stories for DynamicParameter component
- fix bug with displaying immutable badge and required asterisk
2025-05-08 10:12:05 -04:00
brettkolodny c5c3a54fca fix: create ssh directory if it doesn't already exist when running coder config-ssh (#17711)
Closes
[coder/internal#623](https://github.com/coder/internal/issues/623)

> [!WARNING]  
> PR co-authored by Claude Code
2025-05-08 10:10:52 -04:00
Vincent Vielle 1bb96b8528 fix: resolve flake test on manager (#17702)
Fixes coder/internal#544

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-05-08 16:49:57 +03:00
Bruno Quaresma 857587b35d fix: do not share token with http app urls (#17720)
It's a security issue to share the API token, and the protocols that we
actually want to share it with are not HTTP and handled locally on the
same machine.
 
Security issue introduced by https://github.com/coder/coder/pull/17708
2025-05-08 09:51:10 -03:00
Bruno Quaresma 4341403346 chore: simplify workspaces data fetching (#17703)
We've been using an abstraction that was not necessary to fetch
workspaces data. I also took sometime to use the new useWorkspaceUpdate
hook in the update workspace tooltip that was missing some important
steps like confirmation.
2025-05-08 09:42:39 -03:00
Bruno Quaresma 2695f4e950 chore: improve variable names of mocked users (#17701)
Many times I got confused when using MockUser and MockUser2 so I just
decided to better naming them to MockUserOwner and MockUserMember.
2025-05-08 09:32:32 -03:00
Jaayden Halko c66e80e862 fix: extract checkbox label from dynamic parameter styling prop (#17651)
resolves #17474 

A label will only be shown next to the checkbox If there is a value for
`label` in the styling prop for the dynamic parameter



<img width="457" alt="Screenshot 2025-05-01 at 21 35 32"
src="https://github.com/user-attachments/assets/3b3a8160-65a2-4411-b763-0d07a4eeb699"
/>
2025-05-08 08:02:27 -04:00
Dean Sheather b6182fe054 chore: add code-insiders.svg static icon (#17716)
We have `code.svg` but not `code-insiders.svg`
2025-05-08 05:09:16 +00:00
Steven Masley e4c6c10369 chore: fix comment regarding provisioner api version release (#17705)
See
https://github.com/coder/coder/commit/bc609d0056adeb11b1d2dc282db4d0ad20f3444b
2025-05-07 15:05:00 -05:00
Bruno Quaresma a02ba6616b fix: fill session token when app is external (#17708)
Fix https://github.com/coder/coder/issues/17704

During the [refactoring of WorkspaceApp response
type](https://github.com/coder/coder/pull/17700/files#diff-a7e67944708c3c914a24a02d515a89ecd414bfe61890468dac08abde55ba8e96R112),
I updated the logic to check if the session token should be injected
causing external apps to not load correctly.

To also avoid future confusions, we are only going to rely on the
`app.external` prop to open apps externally instead of verifying if the
URL does not use the HTTP protocol. I did some research and I didn't
find out a use case where it would be a problem.

I'm going to refactor this code very soon to allow opening apps from the
workspaces page, so I will write the tests to cover this use case there.

**Not included:**
During my next refactoring I'm also going to change the code to support
token injections directly in the HREF instead of making it happen during
the click event.
2025-05-07 19:59:52 +00:00
Thomas Kosiewski 29bce8d9e6 feat(cli): make MCP server work without user authentication (#17688)
Part of #17649

---

# Allow MCP server to run without authentication

This PR enhances the MCP server to operate without requiring authentication, making it more flexible for environments where authentication isn't available or necessary. Key changes:

- Replaced `InitClient` with `TryInitClient` to allow the MCP server to start without credentials
- Added graceful handling when URL or authentication is missing
- Made authentication status visible in server logs
- Added logic to skip user-dependent tools when no authenticated user is present
- Made the `coder_report_task` tool available with just an agent token (no user token required)
- Added comprehensive tests to verify operation without authentication

These changes allow the MCP server to function in more environments while still using authentication when available, improving flexibility for CI/CD and other automated environments.
2025-05-07 21:53:06 +02:00
Bruno Quaresma 6ac1bd807c feat: display builtin apps on workspaces table (#17695)
Related to https://github.com/coder/coder/issues/17311

<img width="1624" alt="Screenshot 2025-05-06 at 16 20 40"
src="https://github.com/user-attachments/assets/932f6034-9f8a-45d7-bf8d-d330dcca683d"
/>
2025-05-07 14:26:21 -03:00
Bruno Quaresma 9fe5b71d31 chore!: fix workspace apps response (#17700)
Fix WorkspaceApp response type to better reflect the schema from
https://registry.terraform.io/providers/coder/coder/latest/docs/resources/app.
2025-05-07 10:05:07 -03:00
Bruno Quaresma d146115ca0 chore: update browser list db (#17699) 2025-05-07 09:01:47 -03:00
DevCats df0c6eda33 chore: add custom aider icon (#17682)
Created Custom SVG from Aider PNG and upload from module to static site
icons
2025-05-06 09:46:36 -07:00
Bruno Quaresma 4fa9d30bf4 refactor: update app buttons to use the new button component (#17684)
Related to https://github.com/coder/coder/issues/17311

- Replaces the MUI Buttons by the new shadcn/ui buttons. This change
allows the reuse of app links, and terminal buttons using the `asChild`
capability from the Radix components
- Uses the new [proposed
design](https://www.figma.com/design/OR75XeUI0Z3ksqt1mHsNQw/Workspace-views?node-id=1014-8242&t=wtUXJRN1SfyZiFKn-0)
- Updates the button styles to support image tags as icons
- Uses the new Tooltip component for the app buttons

**Before:**
<img width="1243" alt="Screenshot 2025-05-05 at 17 55 49"
src="https://github.com/user-attachments/assets/e689e9dc-d8e1-4c9d-ba09-ef1479a501f1"
/>

**After:**
<img width="1264" alt="Screenshot 2025-05-05 at 18 05 38"
src="https://github.com/user-attachments/assets/8fafbe20-f063-46ab-86cf-2e0381bba889"
/>
2025-05-06 13:26:37 -03:00
Hugo Dutka a7e828593f chore: retry failing tests in CI (#17681)
This PR introduces failing test retries in CI for e2e tests, Go tests
with the in-memory database, Go tests with Postgres, and the CLI tests.
Retries are not enabled for race tests.

The goal is to reduce how often flakes disrupt developers' workflows.
2025-05-06 16:53:26 +02:00
Bruno Quaresma d9b00e4849 feat: add inline actions into workspaces table (#17636)
Related to https://github.com/coder/coder/issues/17311

This PR adds inline actions in the workspaces page. It is a bit
different of the [original
design](https://www.figma.com/design/OR75XeUI0Z3ksqt1mHsNQw/Workspace-views?node-id=656-3979&m=dev)
because I'm splitting the work into three phases that I will explain in
more details in the demo.



https://github.com/user-attachments/assets/6383375e-ed10-45d1-b5d5-b4421e86d158
2025-05-06 11:28:14 -03:00
Michael Suchacz 5f516ed135 feat: improve coder connect tunnel handling on reconnect (#17598)
Closes https://github.com/coder/internal/issues/563

The [Coder Connect
tunnel](https://github.com/coder/coder/blob/main/vpn/tunnel.go) receives
workspace state from the Coder server over a [dRPC
stream.](https://github.com/coder/coder/blob/114ba4593b2a82dfd41cdcb7fd6eb70d866e7b86/tailnet/controllers.go#L1029)
When first connecting to this stream, the current state of the user's
workspaces is received, with subsequent messages being diffs on top of
that state.

However, if the client disconnects from this stream, such as when the
user's device is suspended, and then reconnects later, no mechanism
exists for the tunnel to differentiate that message containing the
entire initial state from another diff, and so that state is incorrectly
applied as a diff.

In practice:
- Tunnel connects, receives a workspace update containing all the
existing workspaces & agents.
- Tunnel loses connection, but isn't completely stopped.
- All the user's workspaces are restarted, producing a new set of
agents.
- Tunnel regains connection, and receives a workspace update containing
all the existing workspaces & agents.
- This initial update is incorrectly applied as a diff, with the
Tunnel's state containing both the old & new agents.

This PR introduces a solution in which tunnelUpdater, when created,
sends a FreshState flag with the WorkspaceUpdate type. This flag is
handled in the vpn tunnel in the following fashion:
- Preserve existing Agents
- Remove current Agents in the tunnel that are not present in the
WorkspaceUpdate
- Remove unreferenced Workspaces
2025-05-06 16:00:16 +02:00
Mathias Fredriksson ebad5c3ed0 test(agent): fix channel timeout in TestNewServer_CloseActiveConnections (#17690)
This fixes a test issue where we were waiting on a channel indefinitely
and the test timed out instead of failing due to earlier error.

Updates coder/internal#558
2025-05-06 11:20:28 +00:00
Jaayden Halko ec003b7cf9 fix: update default value handling for dynamic defaults (#17609)
resolves coder/preview#102
2025-05-06 06:40:31 -04:00
Jaayden Halko 4587082fcf chore: update design of External auth section of CreateWorkspacePage (#17683)
contributes to coder/preview#59

Figma:
https://www.figma.com/design/SMg6H8VKXnPSkE6h9KPoAD/UX-Presets?node-id=2180-2995&t=RL6ICIf6KUL5YUpB-1

This updates the design of the External authentication section of the
create workspace page form for both the existing and the new
experimental create workspace pages.

<img width="819" alt="Screenshot 2025-05-05 at 18 15 28"
src="https://github.com/user-attachments/assets/8bc419dc-e1db-4188-b920-73010bbe626d"
/>
2025-05-05 17:13:39 -04:00
Hugo Dutka 6b4d3f83bc chore: reduce "Upload tests to datadog" times in CI (#17668)
This PR speeds up the "Upload tests to datadog" step by downloading the
`datadog-ci` binary directly from GitHub releases. Most of the time used
to be spent in `npm install`, which consistently timed out on Windows
after a minute. [Now it takes 3
seconds](https://github.com/coder/coder/actions/runs/14834976784/job/41644230049?pr=17668#step:10:1).

I updated it to version v2.48.0 because v2.21.0 didn't have the
artifacts for arm64 macOS.
2025-05-05 18:49:58 +02:00
Ethan 4369765996 test: fix TestWorkspaceAgentReportStats flake (#17678)
Closes https://github.com/coder/internal/issues/609.

As seen in the below logs, the `last_used_at` time was updating, but just to the same value that it was on creation; `dbtime.Now` was called in quick succession. 

```
 t.go:106: 2025-05-05 12:11:54.166 [info]  coderd.workspace_usage_tracker: updated workspaces last_used_at  count=1  now="2025-05-05T12:11:54.161329Z"
    t.go:106: 2025-05-05 12:11:54.172 [debu]  coderd: GET  host=localhost:50422  path=/api/v2/workspaces/745b7ff3-47f2-4e1a-9452-85ea48ba5c46  proto=HTTP/1.1  remote_addr=127.0.0.1  start="2025-05-05T12:11:54.1669073Z"  workspace_name=peaceful_faraday34  requestor_id=b2cf02ae-2181-480b-bb1f-95dc6acb6497  requestor_name=testuser  requestor_email=""  took=5.2105ms  status_code=200  latency_ms=5  params_workspace=745b7ff3-47f2-4e1a-9452-85ea48ba5c46  request_id=7fd5ea90-af7b-4104-91c5-9ca64bc2d5e6
    workspaceagentsrpc_test.go:70: 
        	Error Trace:	C:/actions-runner/coder/coder/coderd/workspaceagentsrpc_test.go:70
        	Error:      	Should be true
        	Test:       	TestWorkspaceAgentReportStats
        	Messages:   	2025-05-05 12:11:54.161329 +0000 UTC is not after 2025-05-05 12:11:54.161329 +0000 UTC
```

If we change the initial `LastUsedAt` time to be a time in the past, ticking with a `dbtime.Now` will always update it to a later value. If it never updates, the condition will still fail.
2025-05-06 00:15:24 +10:00
Bruno Quaresma 93a584b7c2 fix: fix windsurf icon on light theme (#17679) 2025-05-05 11:10:50 -03:00
dependabot[bot] b8137e7ca4 chore: bump github.com/openai/openai-go from 0.1.0-beta.6 to 0.1.0-beta.10 (#17677)
Bumps [github.com/openai/openai-go](https://github.com/openai/openai-go)
from 0.1.0-beta.6 to 0.1.0-beta.10.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-go/releases">github.com/openai/openai-go's
releases</a>.</em></p>
<blockquote>
<h2>v0.1.0-beta.10</h2>
<h2>0.1.0-beta.10 (2025-04-14)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.9...v0.1.0-beta.10">v0.1.0-beta.9...v0.1.0-beta.10</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> expand CI branch coverage (<a
href="https://redirect.github.com/openai/openai-go/issues/369">#369</a>)
(<a
href="https://github.com/openai/openai-go/commit/258dda8007a69b9c2720b225ee6d27474d676a93">258dda8</a>)</li>
<li><strong>internal:</strong> reduce CI branch coverage (<a
href="https://github.com/openai/openai-go/commit/a2f7c03eb984d98f29f908df103ea1743f2e3d9a">a2f7c03</a>)</li>
</ul>
<h2>v0.1.0-beta.9</h2>
<h2>0.1.0-beta.9 (2025-04-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-%5Bgo/compare/v0.1.0-beta.8...v0.1.0-beta.9%5D(https://www.golinks.io/compare/v0.1.0-beta.8...v0.1.0-beta.9?trackSource=github)">v0.1.0-beta.8...v0.1.0-beta.9</a></p>
<h3>Chores</h3>
<ul>
<li>workaround build errors (<a
href="https://redirect.github.com/openai/openai-%5Bgo/issues/366%5D(https://www.golinks.io/issues/366?trackSource=github)">#366</a>)
(<a
href="https://github.com/openai/openai-%5Bgo/commit/adeb003cab8efbfbf4424e03e96a0f5e728551cb%5D(https://www.golinks.io/commit/adeb003cab8efbfbf4424e03e96a0f5e728551cb?trackSource=github)">adeb003</a>)</li>
</ul>
<h2>v0.1.0-beta.8</h2>
<h2>0.1.0-beta.8 (2025-04-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.7...v0.1.0-beta.8">v0.1.0-beta.7...v0.1.0-beta.8</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Add evalapi to sdk (<a
href="https://redirect.github.com/openai/openai-go/issues/360">#360</a>)
(<a
href="https://github.com/openai/openai-go/commit/88977d1868dbbe0060c56ba5dac8eb19773e4938">88977d1</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://redirect.github.com/openai/openai-go/issues/363">#363</a>)
(<a
href="https://github.com/openai/openai-go/commit/5d068e0053172db7f5b75038aa215eee074eeeed">5d068e0</a>)</li>
<li><strong>client:</strong> add escape hatch to omit required param
fields (<a
href="https://redirect.github.com/openai/openai-go/issues/354">#354</a>)
(<a
href="https://github.com/openai/openai-go/commit/9690d6b49f8b00329afc038ec15116750853e620">9690d6b</a>)</li>
<li><strong>client:</strong> support custom http clients (<a
href="https://redirect.github.com/openai/openai-go/issues/357">#357</a>)
(<a
href="https://github.com/openai/openai-go/commit/b5a624f658cad774094427b36b05e446b41e8c52">b5a624f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> readme improvements (<a
href="https://redirect.github.com/openai/openai-go/issues/356">#356</a>)
(<a
href="https://github.com/openai/openai-go/commit/b2f8539d6316e3443aa733be2c95926696119c13">b2f8539</a>)</li>
<li><strong>internal:</strong> fix examples (<a
href="https://redirect.github.com/openai/openai-go/issues/361">#361</a>)
(<a
href="https://github.com/openai/openai-go/commit/de398b453d398299eb80c15f8fdb2bcbef5eeed6">de398b4</a>)</li>
<li><strong>internal:</strong> skip broken test (<a
href="https://redirect.github.com/openai/openai-go/issues/362">#362</a>)
(<a
href="https://github.com/openai/openai-go/commit/cccead9ba916142ac8fbe6e8926d706511e32ae3">cccead9</a>)</li>
<li><strong>tests:</strong> improve enum examples (<a
href="https://redirect.github.com/openai/openai-go/issues/359">#359</a>)
(<a
href="https://github.com/openai/openai-go/commit/e0b9739920114d6e991d3947b67fdf62cfaa09c7">e0b9739</a>)</li>
</ul>
<h2>v0.1.0-beta.7</h2>
<h2>0.1.0-beta.7 (2025-04-07)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.6...v0.1.0-beta.7">v0.1.0-beta.6...v0.1.0-beta.7</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> make response union's AsAny method type
safe (<a
href="https://redirect.github.com/openai/openai-go/issues/352">#352</a>)
(<a
href="https://github.com/openai/openai-go/commit/1252f56c917e57d6d2b031501b2ff5f89f87cf87">1252f56</a>)</li>
</ul>
<h3>Chores</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-go/blob/main/CHANGELOG.md">github.com/openai/openai-go's
changelog</a>.</em></p>
<blockquote>
<h2>0.1.0-beta.10 (2025-04-14)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.9...v0.1.0-beta.10">v0.1.0-beta.9...v0.1.0-beta.10</a></p>
<h3>Chores</h3>
<ul>
<li><strong>internal:</strong> expand CI branch coverage (<a
href="https://redirect.github.com/openai/openai-go/issues/369">#369</a>)
(<a
href="https://github.com/openai/openai-go/commit/258dda8007a69b9c2720b225ee6d27474d676a93">258dda8</a>)</li>
<li><strong>internal:</strong> reduce CI branch coverage (<a
href="https://github.com/openai/openai-go/commit/a2f7c03eb984d98f29f908df103ea1743f2e3d9a">a2f7c03</a>)</li>
</ul>
<h2>0.1.0-beta.9 (2025-04-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.8...v0.1.0-beta.9">v0.1.0-beta.8...v0.1.0-beta.9</a></p>
<h3>Chores</h3>
<ul>
<li>workaround build errors (<a
href="https://redirect.github.com/openai/openai-go/issues/366">#366</a>)
(<a
href="https://github.com/openai/openai-go/commit/adeb003cab8efbfbf4424e03e96a0f5e728551cb">adeb003</a>)</li>
</ul>
<h2>0.1.0-beta.8 (2025-04-09)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.7...v0.1.0-beta.8">v0.1.0-beta.7...v0.1.0-beta.8</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> Add evalapi to sdk (<a
href="https://redirect.github.com/openai/openai-go/issues/360">#360</a>)
(<a
href="https://github.com/openai/openai-go/commit/88977d1868dbbe0060c56ba5dac8eb19773e4938">88977d1</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://redirect.github.com/openai/openai-go/issues/363">#363</a>)
(<a
href="https://github.com/openai/openai-go/commit/5d068e0053172db7f5b75038aa215eee074eeeed">5d068e0</a>)</li>
<li><strong>client:</strong> add escape hatch to omit required param
fields (<a
href="https://redirect.github.com/openai/openai-go/issues/354">#354</a>)
(<a
href="https://github.com/openai/openai-go/commit/9690d6b49f8b00329afc038ec15116750853e620">9690d6b</a>)</li>
<li><strong>client:</strong> support custom http clients (<a
href="https://redirect.github.com/openai/openai-go/issues/357">#357</a>)
(<a
href="https://github.com/openai/openai-go/commit/b5a624f658cad774094427b36b05e446b41e8c52">b5a624f</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> readme improvements (<a
href="https://redirect.github.com/openai/openai-go/issues/356">#356</a>)
(<a
href="https://github.com/openai/openai-go/commit/b2f8539d6316e3443aa733be2c95926696119c13">b2f8539</a>)</li>
<li><strong>internal:</strong> fix examples (<a
href="https://redirect.github.com/openai/openai-go/issues/361">#361</a>)
(<a
href="https://github.com/openai/openai-go/commit/de398b453d398299eb80c15f8fdb2bcbef5eeed6">de398b4</a>)</li>
<li><strong>internal:</strong> skip broken test (<a
href="https://redirect.github.com/openai/openai-go/issues/362">#362</a>)
(<a
href="https://github.com/openai/openai-go/commit/cccead9ba916142ac8fbe6e8926d706511e32ae3">cccead9</a>)</li>
<li><strong>tests:</strong> improve enum examples (<a
href="https://redirect.github.com/openai/openai-go/issues/359">#359</a>)
(<a
href="https://github.com/openai/openai-go/commit/e0b9739920114d6e991d3947b67fdf62cfaa09c7">e0b9739</a>)</li>
</ul>
<h2>0.1.0-beta.7 (2025-04-07)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.6...v0.1.0-beta.7">v0.1.0-beta.6...v0.1.0-beta.7</a></p>
<h3>Features</h3>
<ul>
<li><strong>client:</strong> make response union's AsAny method type
safe (<a
href="https://redirect.github.com/openai/openai-go/issues/352">#352</a>)
(<a
href="https://github.com/openai/openai-go/commit/1252f56c917e57d6d2b031501b2ff5f89f87cf87">1252f56</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>docs:</strong> doc improvements (<a
href="https://redirect.github.com/openai/openai-go/issues/350">#350</a>)
(<a
href="https://github.com/openai/openai-go/commit/80debc824eaacb4b07c8f3e8b1d0488d860d5be5">80debc8</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/openai/openai-go/commit/c0414f15a9f4065adee2ed96a4dcd4d4cb9708aa"><code>c0414f1</code></a>
release: 0.1.0-beta.10</li>
<li><a
href="https://github.com/openai/openai-go/commit/192ec22bd758a045b2fe7304252c508b7a075e6d"><code>192ec22</code></a>
chore(internal): reduce CI branch coverage</li>
<li><a
href="https://github.com/openai/openai-go/commit/17cbc6d2c8ffbba0c9d19206b1f402010790ba2e"><code>17cbc6d</code></a>
chore(internal): expand CI branch coverage (<a
href="https://redirect.github.com/openai/openai-go/issues/369">#369</a>)</li>
<li><a
href="https://github.com/openai/openai-go/commit/e1d5123160f195fbb74e00548e8d7896db9caafc"><code>e1d5123</code></a>
release: 0.1.0-beta.9</li>
<li><a
href="https://github.com/openai/openai-go/commit/4e42dd39d9ad6d9deb8c75d9131fb636edf93ae9"><code>4e42dd3</code></a>
chore: workaround build errors (<a
href="https://redirect.github.com/openai/openai-go/issues/366">#366</a>)</li>
<li><a
href="https://github.com/openai/openai-go/commit/0ae103de4e01e5239788a56fca3d7621b83460ab"><code>0ae103d</code></a>
release: 0.1.0-beta.8</li>
<li><a
href="https://github.com/openai/openai-go/commit/68c32a0aec380926b962ed74d4002a883d012dcd"><code>68c32a0</code></a>
feat(api): manual updates (<a
href="https://redirect.github.com/openai/openai-go/issues/363">#363</a>)</li>
<li><a
href="https://github.com/openai/openai-go/commit/8599318b87e59ea0550da8c8451dd12c6716776f"><code>8599318</code></a>
chore(internal): skip broken test (<a
href="https://redirect.github.com/openai/openai-go/issues/362">#362</a>)</li>
<li><a
href="https://github.com/openai/openai-go/commit/5e86f0f2734a9898584a250b5052403172f331ba"><code>5e86f0f</code></a>
chore(internal): fix examples (<a
href="https://redirect.github.com/openai/openai-go/issues/361">#361</a>)</li>
<li><a
href="https://github.com/openai/openai-go/commit/4a496a7674de63d9fb838a5095a2958a7cbaa1f7"><code>4a496a7</code></a>
feat(api): Add evalapi to sdk (<a
href="https://redirect.github.com/openai/openai-go/issues/360">#360</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/openai/openai-go/compare/v0.1.0-beta.6...v0.1.0-beta.10">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/openai/openai-go&package-manager=go_modules&previous-version=0.1.0-beta.6&new-version=0.1.0-beta.10)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 12:54:22 +00:00
dependabot[bot] 1f569f71f8 chore: bump google.golang.org/api from 0.230.0 to 0.231.0 (#17671)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.230.0 to 0.231.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.231.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.230.0...v0.231.0">0.231.0</a>
(2025-04-29)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3122">#3122</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/47cbba61ec8d62ebdfd1affe3a9244b20184c781">47cbba6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3124">#3124</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/677b602b6f3f072ebfac6c5791cc06d15720b136">677b602</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3125">#3125</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8ccf1f08977c7843d093bba21d391b082e206a75">8ccf1f0</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3126">#3126</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/405935174a0a7c9734c8e6b0dce487c481a7927e">4059351</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3127">#3127</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ae18b2206b6182d47d69227b638dfc42d975b889">ae18b22</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3129">#3129</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c33e0d153c99c931e5b953e3ccfa40fe8ac20c02">c33e0d1</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.230.0...v0.231.0">0.231.0</a>
(2025-04-29)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3122">#3122</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/47cbba61ec8d62ebdfd1affe3a9244b20184c781">47cbba6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3124">#3124</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/677b602b6f3f072ebfac6c5791cc06d15720b136">677b602</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3125">#3125</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/8ccf1f08977c7843d093bba21d391b082e206a75">8ccf1f0</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3126">#3126</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/405935174a0a7c9734c8e6b0dce487c481a7927e">4059351</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3127">#3127</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ae18b2206b6182d47d69227b638dfc42d975b889">ae18b22</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3129">#3129</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c33e0d153c99c931e5b953e3ccfa40fe8ac20c02">c33e0d1</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/70d3b4f38ec8df290ddcaedb749eaf29f798958c"><code>70d3b4f</code></a>
chore(main): release 0.231.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3123">#3123</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/c33e0d153c99c931e5b953e3ccfa40fe8ac20c02"><code>c33e0d1</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3129">#3129</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/673da13c2fc8c8758ae8c1c1fc2d02fdb9556bc5"><code>673da13</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3128">#3128</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ae18b2206b6182d47d69227b638dfc42d975b889"><code>ae18b22</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3127">#3127</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/405935174a0a7c9734c8e6b0dce487c481a7927e"><code>4059351</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3126">#3126</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/8ccf1f08977c7843d093bba21d391b082e206a75"><code>8ccf1f0</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3125">#3125</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/677b602b6f3f072ebfac6c5791cc06d15720b136"><code>677b602</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3124">#3124</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/47cbba61ec8d62ebdfd1affe3a9244b20184c781"><code>47cbba6</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3122">#3122</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.230.0...v0.231.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.230.0&new-version=0.231.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 12:37:45 +00:00
dependabot[bot] dc66dafc7c chore: bump github.com/mark3labs/mcp-go from 0.23.1 to 0.25.0 (#17672)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.23.1 to 0.25.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.25.0</h2>
<h2>What's Changed</h2>
<ul>
<li>update doc comments to match Go conventions by <a
href="https://github.com/yinebebt"><code>@​yinebebt</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/226">mark3labs/mcp-go#226</a></li>
<li>fix: Add Accept Header in StreamableHTTP Client by <a
href="https://github.com/hhxiao"><code>@​hhxiao</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/230">mark3labs/mcp-go#230</a></li>
<li>fix(SSE): only initialize <code>http.Server</code> when not set by
<a href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/229">mark3labs/mcp-go#229</a></li>
<li>fix: Prevent panic in parsing functions for null results by <a
href="https://github.com/cocovs"><code>@​cocovs</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/218">mark3labs/mcp-go#218</a></li>
<li>[SSEClient] Add ability to override the http.Client by <a
href="https://github.com/sks"><code>@​sks</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/109">mark3labs/mcp-go#109</a></li>
<li>feat(SSEServer): add WithAppendQueryToMessageEndpoint() by <a
href="https://github.com/liut"><code>@​liut</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/136">mark3labs/mcp-go#136</a></li>
<li>feat: quick return tool-call request, send response via SSE in
goroutine by <a
href="https://github.com/CeerDecy"><code>@​CeerDecy</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/163">mark3labs/mcp-go#163</a></li>
<li>feat(server/sse): Add support for dynamic base paths by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/214">mark3labs/mcp-go#214</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/yinebebt"><code>@​yinebebt</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/226">mark3labs/mcp-go#226</a></li>
<li><a href="https://github.com/hhxiao"><code>@​hhxiao</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/230">mark3labs/mcp-go#230</a></li>
<li><a href="https://github.com/cocovs"><code>@​cocovs</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/218">mark3labs/mcp-go#218</a></li>
<li><a href="https://github.com/sks"><code>@​sks</code></a> made their
first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/109">mark3labs/mcp-go#109</a></li>
<li><a href="https://github.com/liut"><code>@​liut</code></a> made their
first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/136">mark3labs/mcp-go#136</a></li>
<li><a href="https://github.com/CeerDecy"><code>@​CeerDecy</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/163">mark3labs/mcp-go#163</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.24.1...v0.25.0">https://github.com/mark3labs/mcp-go/compare/v0.24.1...v0.25.0</a></p>
<h2>Release v0.24.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: marshal <code>ToolInputSchema.Properties</code> to {} when
len=0 by <a href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/225">mark3labs/mcp-go#225</a></li>
<li>fix(client/test): verify mock server binary exists after compilation
by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/215">mark3labs/mcp-go#215</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.24.0...v0.24.1">https://github.com/mark3labs/mcp-go/compare/v0.24.0...v0.24.1</a></p>
<h2>Release v0.24.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Use correct name in Go documentation by <a
href="https://github.com/oschwald"><code>@​oschwald</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/202">mark3labs/mcp-go#202</a></li>
<li>fix(client): resource leak in <code>SSEClient.SendRequest()</code>
by <a href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/206">mark3labs/mcp-go#206</a></li>
<li>fix(client): risk of resource leak and closing closed channel by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/208">mark3labs/mcp-go#208</a></li>
<li>no need to check empty text by <a
href="https://github.com/graydovee"><code>@​graydovee</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/209">mark3labs/mcp-go#209</a></li>
<li>refactor: Pull out <code>Annotations</code> structure rather than
being an anonymous inner struct by <a
href="https://github.com/rm-hull"><code>@​rm-hull</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/203">mark3labs/mcp-go#203</a></li>
<li>perf: optimize usage of RWMutex in MCPServer for performance by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/181">mark3labs/mcp-go#181</a></li>
<li>feat: Add server hooks:OnRequestInitialization by <a
href="https://github.com/AlexNiny"><code>@​AlexNiny</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/164">mark3labs/mcp-go#164</a></li>
<li>fix: Improve content type handling in streamable_http.go by <a
href="https://github.com/TBXark"><code>@​TBXark</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/210">mark3labs/mcp-go#210</a></li>
<li>Add <code>mcptest</code> package for in-process MCP testing by <a
href="https://github.com/octo"><code>@​octo</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/149">mark3labs/mcp-go#149</a></li>
<li>Manage tools on a per session basis by <a
href="https://github.com/ezynda3"><code>@​ezynda3</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/179">mark3labs/mcp-go#179</a></li>
<li>Fix: fix client sse tcp connection re-use by draining outstanding io
by <a href="https://github.com/bcain99"><code>@​bcain99</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/212">mark3labs/mcp-go#212</a></li>
<li>perf(server): release Mutex early for performance by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/213">mark3labs/mcp-go#213</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/oschwald"><code>@​oschwald</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/202">mark3labs/mcp-go#202</a></li>
<li><a href="https://github.com/graydovee"><code>@​graydovee</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/209">mark3labs/mcp-go#209</a></li>
<li><a href="https://github.com/rm-hull"><code>@​rm-hull</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/203">mark3labs/mcp-go#203</a></li>
<li><a href="https://github.com/AlexNiny"><code>@​AlexNiny</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/164">mark3labs/mcp-go#164</a></li>
<li><a href="https://github.com/octo"><code>@​octo</code></a> made their
first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/149">mark3labs/mcp-go#149</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/eadd7023515f7eaad5808720c157b1cc25581d90"><code>eadd702</code></a>
Format</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/4a1010e73b34db4a602a7f34e2690a3a51d963cb"><code>4a1010e</code></a>
feat(server/sse): Add support for dynamic base paths (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/214">#214</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/cfeb0eec85509f516064e3df007b625d4fc89f48"><code>cfeb0ee</code></a>
feat: quick return tool-call request, send response via SSE in goroutine
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/163">#163</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d352118718f3f0481ff8484f5e9914ed26be5d38"><code>d352118</code></a>
feat(SSEServer): add WithAppendQueryToMessageEndpoint() (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/136">#136</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/df5f67eeb1841f4350b4079b643051364be7ed7b"><code>df5f67e</code></a>
[chore][client] Add ability to override the http.Client (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/109">#109</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/ddb59ddfadc950647316561afebe8060f6276880"><code>ddb59dd</code></a>
fix: handle nil rawMessage in response parsing functions (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/218">#218</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/f0a648b91d852442c1cd52f98391aa1fe1540b60"><code>f0a648b</code></a>
fix(SSE): only initialize http.Server when not set (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/229">#229</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/ffc63d90b0cb05ee26ced8880c329dadad4c202b"><code>ffc63d9</code></a>
Add Accept header (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/230">#230</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/ae96a68a47e6ad255b8e976e89c30ac595139511"><code>ae96a68</code></a>
fix: update doc comments to match Go conventions (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/226">#226</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/df736673ba674040abe5c2edbedd70455483d961"><code>df73667</code></a>
fix(client/test): verify mock server binary exists after compilation (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/215">#215</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.23.1...v0.25.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.23.1&new-version=0.25.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 12:37:32 +00:00
Hugo Dutka 87f4535357 chore: optimize CI setup time on Windows (#17666)
This PR focuses on optimizing go-test CI times on Windows. It:

- backs the `$RUNNER_TEMP` directory with a RAM disk. This directory is
used by actions like cache, setup-go, and setup-terraform as a staging
area
- backs `GOCACHE`, `GOMODCACHE`, and `GOPATH` with a RAM disk
- backs `$GITHUB_WORKSPACE` with a RAM disk - that's where the
repository is checked out
- uses preinstalled Go on Windows runners
- starts using the depot Windows runner

From what I've seen, these changes bring test times down to be on par
with Linux and macOS. The biggest improvement comes from backing
frequently accessed paths with RAM disks. The C drive is surprisingly
slow - I ran some performance tests with
[fio](https://fio.readthedocs.io/en/latest/fio_doc.html#) where I tested
IOPS on many small files, and the RAM disk was 100x faster.

Additionally, the depot runners seem to have more consistent performance
than the ones provided by GitHub.
2025-05-05 14:26:30 +02:00
Danny Kopping a646478aed fix: move pubsub publishing out of database transactions to avoid conn exhaustion (#17648)
Database transactions hold onto connections, and `pubsub.Publish` tries
to acquire a connection of its own. If the latter is called within a
transaction, this can lead to connection exhaustion.

I plan two follow-ups to this PR:

1. Make connection counts tuneable

https://github.com/coder/coder/blob/main/cli/server.go#L2360-L2376

We will then be able to write tests showing how connection exhaustion
occurs.

2. Write a linter/ruleguard to prevent `pubsub.Publish` from being
called within a transaction.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-05 11:54:18 +02:00
Bruno Quaresma 82fdb6a6ae fix: fix size for non-squared app icons (#17663)
**Before:**

![image](https://github.com/user-attachments/assets/e7544b00-24b0-405c-b763-49a9a009c1d2)

**After:**
<img width="192" alt="Screenshot 2025-05-02 at 14 36 19"
src="https://github.com/user-attachments/assets/59cb4531-06fd-44bc-b4b9-4441f2dce79a"
/>
2025-05-02 14:44:13 -03:00
Bruno Quaresma 3be6487f02 feat: support GFM alerts in markdown (#17662)
Closes https://github.com/coder/coder/issues/17660

Add support to [GFM
Alerts](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts).

<img width="635" alt="Screenshot 2025-05-02 at 14 26 36"
src="https://github.com/user-attachments/assets/8b785e0f-87f4-4bbd-9107-67858ad5dece"
/>

PS: This was heavily copied from
https://github.com/coder/coder-registry/blob/dev/cmd/main/site/src/components/MarkdownView/MarkdownView.tsx
2025-05-02 14:44:01 -03:00
Cian Johnston 544259b809 feat: add database tables and API routes for agentic chat feature (#17570)
Backend portion of experimental `AgenticChat` feature:
- Adds database tables for chats and chat messages
- Adds functionality to stream messages from LLM providers using
`kylecarbs/aisdk-go`
- Adds API routes with relevant functionality (list, create, update
chats, insert chat message)
- Adds experiment `codersdk.AgenticChat`

---------

Co-authored-by: Kyle Carberry <kyle@carberry.com>
2025-05-02 17:29:57 +01:00
M Atif Ali 64b9bc1ca4 fix: update licensing info URL on sign up page (#17657) 2025-05-02 16:07:10 +00:00
Jaayden Halko e37ddd44d2 chore: improve the design of the create workspace page for dynamic parameters (#17654)
contributes to coder/preview#59

1. Improves the design and layout of the presets dropdown and switch
2. Improves the design for the immutable badge

<img width="537" alt="Screenshot 2025-05-01 at 23 28 11"
src="https://github.com/user-attachments/assets/f0967758-5ea7-4436-b44a-e014c048202c"
/>
<img width="714" alt="Screenshot 2025-05-01 at 23 28 34"
src="https://github.com/user-attachments/assets/0bb091e1-611f-4a58-8f6f-b3bb027c6a10"
/>
2025-05-02 11:14:32 -04:00
Edward Angert 912b6aba82 docs: link to eks steps from aws section (#17646)
closes #17634

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-02 15:13:42 +00:00
Edward Angert 50695b7d76 docs: fix link in tutorials faq to new docker-code-server link (#17655)
<https://github.com/sharkymark/v2-templates/tree/main/src/templates/docker/docker-code-server>

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-02 13:44:30 +00:00
Danny Kopping c278662218 feat: collect database metrics (#17635)
Currently we don't have a way to get insight into Postgres connections
being exhausted.

By using the prometheus' [`DBStats`
collector](https://github.com/prometheus/client_golang/blob/main/prometheus/collectors/dbstats_collector.go),
we get some insight out-of-the-box.

```
# HELP go_sql_idle_connections The number of idle connections.
# TYPE go_sql_idle_connections gauge
go_sql_idle_connections{db_name="coder"} 1
# HELP go_sql_in_use_connections The number of connections currently in use.
# TYPE go_sql_in_use_connections gauge
go_sql_in_use_connections{db_name="coder"} 2
# HELP go_sql_max_idle_closed_total The total number of connections closed due to SetMaxIdleConns.
# TYPE go_sql_max_idle_closed_total counter
go_sql_max_idle_closed_total{db_name="coder"} 112
# HELP go_sql_max_idle_time_closed_total The total number of connections closed due to SetConnMaxIdleTime.
# TYPE go_sql_max_idle_time_closed_total counter
go_sql_max_idle_time_closed_total{db_name="coder"} 0
# HELP go_sql_max_lifetime_closed_total The total number of connections closed due to SetConnMaxLifetime.
# TYPE go_sql_max_lifetime_closed_total counter
go_sql_max_lifetime_closed_total{db_name="coder"} 0
# HELP go_sql_max_open_connections Maximum number of open connections to the database.
# TYPE go_sql_max_open_connections gauge
go_sql_max_open_connections{db_name="coder"} 10
# HELP go_sql_open_connections The number of established connections both in use and idle.
# TYPE go_sql_open_connections gauge
go_sql_open_connections{db_name="coder"} 3
# HELP go_sql_wait_count_total The total number of connections waited for.
# TYPE go_sql_wait_count_total counter
go_sql_wait_count_total{db_name="coder"} 28
# HELP go_sql_wait_duration_seconds_total The total time blocked waiting for a new connection.
# TYPE go_sql_wait_duration_seconds_total counter
go_sql_wait_duration_seconds_total{db_name="coder"} 0.086936235
```

`go_sql_wait_count_total` is the metric I'm most interested in gaining,
but the others are also very useful.

Changing the prefix is easy (`prometheus.WrapRegistererWithPrefix`), but
getting rid of the `go_` segment is not quite so easy. I've kept the
changeset small for now.

**NOTE:** I imported a library to determine the database name from the
given conn string. It's [not as
simple](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING)
as one might hope. The database name is used for the `db_name` label.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-02 12:17:01 +02:00
Jaayden Halko e718c3ab2f fix: improve WebSocket error handling in CreateWorkspacePageExperimental (#17647)
Refactor WebSocket error handling to ensure that errors are only set
when the current socket ref matches the active one. This prevents
unnecessary error messages when the WebSocket connection closes
unexpectedly

This solves the problem of showing error messages because of React
Strict mode rendering the page twice and opening 2 websocket
connections.
2025-05-01 19:02:34 -04:00
Mathias Fredriksson a226a75b32 docs: add early access dev container docs (#17613)
This change documents the early access dev containers integration and
how to enable it, what features are available and what limitations exist
at the time of writing.

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-05-01 23:45:02 +01:00
Yevhenii Shcherbina ef11d4f769 fix: fix bug with deletion of prebuilt workspaces (#17652)
Don't specify the template version for a delete transition, because the
prebuilt workspace may have been created using an older template
version.
If the template version isn't explicitly set, the builder will
automatically use the version from the last workspace build - which is
the desired behavior.
2025-05-01 17:26:30 -04:00
Jaayden Halko d9ef6ed8ae chore: replace MoreMenu with DropdownMenu (#17615)
Replace MoreMenu with DropDownMenu component to match update design
patterns.

Note: This was the result of experimentation using Cursor to make the
changes and Claude Code for fixing tests.

One key takeaway is that verbose e2e logging, especially benign
warnings/errors can confuse Claude Code in running playwright and
confirming its work.


<img width="201" alt="Screenshot 2025-05-01 at 00 00 52"
src="https://github.com/user-attachments/assets/4905582e-902e-4b61-adc8-14cab6bd006b"
/>
<img width="257" alt="Screenshot 2025-05-01 at 00 01 07"
src="https://github.com/user-attachments/assets/5befc420-724a-4c57-9a9d-330a39867fae"
/>
<img width="270" alt="Screenshot 2025-05-01 at 00 01 20"
src="https://github.com/user-attachments/assets/9cbf07cb-7d44-4228-ae6f-216e9f2faed0"
/>
<img width="224" alt="Screenshot 2025-05-01 at 00 01 30"
src="https://github.com/user-attachments/assets/9fe95916-3d9d-4600-9b1f-8a620e152a53"
/>
2025-05-01 13:14:11 -04:00
brettkolodny b7e08ba7c9 fix: filter out deleted users when attempting to delete an organization (#17621)
Closes
[coder/internal#601](https://github.com/coder/internal/issues/601)
2025-05-01 13:26:01 -03:00
Phorcys cae4fa8b45 chore: correct typo in "Logs" page (#17633)
I saw this typo when looking at the docs, quick fix.

https://coder.com/docs/admin/monitoring/logs
2025-05-01 12:14:27 -04:00
Cian Johnston 4ac71e9fd9 fix(codersdk/toolsdk): ensure all tools include required fields of aisdk.Schema (#17632) 2025-05-01 12:19:35 +00:00
Spike Curtis ef00ae54f4 fix: fix data race in agentscripts.Runner (#17630)
Fixes https://github.com/coder/internal/issues/604

Fixes a data race in `agentscripts.Runner` where a concurrent `Execute()` call races with `Init()`. We hit this race during shut down, which is not synchronized against starting up.

In this PR I've chosen to add synchronization to the `Runner` rather than try to synchronize the calls in the agent. When we close down the agent, it's OK to just throw an error if we were never initialized with a startup script---we don't want to wait for it since that requires an active connection to the control plane.
2025-05-01 14:25:02 +04:00
Spike Curtis 35d686caef chore: add Spike & Cian as CODEOWNERS for provisionerd proto (#17629)
Adds @spikecurtis  and @johnstcn as CODEOWNERS of the provisioner protocol files. These need to be versioned, so we need some human review over changes.
2025-05-01 14:24:51 +04:00
Yevhenii Shcherbina 98e5611e16 fix: fix for prebuilds claiming and deletion (#17624)
PR contains:
- fix for claiming & deleting prebuilds with immutable params
- unit test for claiming scenario
- unit test for deletion scenario

The parameter resolver was failing when deleting/claiming prebuilds
because a value for a previously-used parameter was provided to the
resolver, but since the value was unchanged (it's coming from the
preset) it failed in the resolver. The resolver was missing a check to
see if the old value != new value; if the values match then there's no
mutation of an immutable parameter.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-05-01 08:52:23 +00:00
Ethan c7fc7b91ec fix: create directory before writing coder connect network info file (#17628)
The regular network info file creation code also calls `Mkdirall`.

Wasn't picked up in manual testing as I already had the `/net` folder in
my VSCode.

Wasn't picked up in automated testing because we use an in-memory FS,
which for some reason does this implicitly.
2025-05-01 16:53:13 +10:00
Jaayden Halko 4de7661c0b fix: remove unused import (#17626) 2025-04-30 18:09:00 -04:00
Jaayden Halko d104cd636d fix: display validation error for workspace name (#17564)
- Display form validation error for workspace name
- Scroll to the workspace name field if there is a validation error
2025-04-30 16:45:54 -04:00
dependabot[bot] 6bafe35774 chore: bump vite from 5.4.18 to 5.4.19 in /site (#17625)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.18 to 5.4.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.19</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.19 (2025-04-30)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19965">#19965</a>,
check static serve file inside sirv (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19966">#19966</a>)
(<a
href="https://github.com/vitejs/vite/commit/766947e7cbf1cdd07df9737394e8c870401b78b0">766947e</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19965">#19965</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19966">#19966</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/80a333a23103ced0442d4463d1191433d90f5e19"><code>80a333a</code></a>
release: v5.4.19</li>
<li><a
href="https://github.com/vitejs/vite/commit/766947e7cbf1cdd07df9737394e8c870401b78b0"><code>766947e</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19965">#19965</a>,
check static serve file inside sirv (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19966">#19966</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.19/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.18&new-version=5.4.19)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-04-30 19:17:56 +00:00
brettkolodny f108f9d71f chore: setup knip and remove unused exports, files, and dependencies (#17608)
Closes [coder/interal#600](https://github.com/coder/internal/issues/600)
2025-04-30 15:08:25 -04:00
Bruno Quaresma 205076e6e7 refactor: change how timings are formatted (#17623) 2025-04-30 13:58:12 -03:00
Edward Angert ef101ae2a0 docs: update ai feature stage to beta and ease the intro note's tone (#17620)
[preview](https://coder.com/docs/@ai-feature-stage/ai-coder)
2025-04-30 15:20:44 +00:00
Danny Kopping 6936a7b5a2 fix: fix prebuild omissions (#17579)
Fixes accidental omission from https://github.com/coder/coder/pull/17527

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-04-30 14:26:30 +00:00
Bruno Quaresma ff54ae3f66 fix: update devcontainer data every 10s (#17619)
Fix https://github.com/coder/internal/issues/594

**Notice:**
This is a temporary solution to get the devcontainers feature released.
Maybe a better solution, to avoid pulling the API every 10 seconds, is
to implement a websocket connection to get updates on containers.
2025-04-30 11:17:41 -03:00
Mathias Fredriksson fe4c4122c9 fix(dogfood/coder): increase in-container docker daemon shutdown timeout (#17617)
The default is 10 seconds and will not successfully clean up large
devcontainers inside the workspace.

Follow-up to #17528
2025-04-30 17:01:22 +03:00
M Atif Ali 650a48c210 chore: update windsurf icon (#17607) 2025-04-30 14:00:10 +05:00
Cian Johnston d7e6eb7914 chore(cli): fix test flake when running in coder workspace (#17604)
This test was failing inside a Coder workspace due to
`CODER_AGENT_TOKEN` being set.
2025-04-30 09:18:58 +01:00
Ethan 7a1e56b707 test: avoid sharing echo.Responses across tests (#17610)
I missed this in https://github.com/coder/coder/pull/17211 because I
only searched for `:= &echo.Responses` and not `= &echo.Responses` 🤦

Fixes flakes like
https://github.com/coder/coder/actions/runs/14746732612/job/41395403979
2025-04-30 05:18:13 +00:00
Ethan 53ba3613b3 feat(cli): use coder connect in coder ssh --stdio, if available (#17572)
Closes https://github.com/coder/vscode-coder/issues/447
Closes https://github.com/coder/jetbrains-coder/issues/543
Closes https://github.com/coder/coder-jetbrains-toolbox/issues/21

This PR adds Coder Connect support to `coder ssh --stdio`. 

When connecting to a workspace, if `--force-new-tunnel` is not passed, the CLI will first do a DNS lookup for `<agent>.<workspace>.<owner>.<hostname-suffix>`. If an IP address is returned, and it's within the Coder service prefix, the CLI will not create a new tailnet connection to the workspace, and instead dial the SSH server running on port 22 on the workspace directly over TCP.

This allows IDE extensions to use the Coder Connect tunnel, without requiring any modifications to the extensions themselves. 

Additionally, `using_coder_connect` is added to the `sshNetworkStats` file, which the VS Code extension (and maybe Jetbrains?) will be able to read, and indicate to the user that they are using Coder Connect.

One advantage of this approach is that running `coder ssh --stdio` on an offline workspace with Coder Connect enabled will have the CLI wait for the workspace to build, the agent to connect (and optionally, for the startup scripts to finish), before finally connecting using the Coder Connect tunnel.

As a result, `coder ssh --stdio` has the overhead of looking up the workspace and agent, and checking if they are running. On my device, this meant `coder ssh --stdio <workspace>` was approximately a second slower than just connecting to the workspace directly using `ssh <workspace>.coder` (I would assume anyone serious about their Coder Connect usage would know to just do the latter anyway).
 
To ensure this doesn't come at a significant performance cost, I've also benchmarked this PR.

<details>
<summary>Benchmark</summary>

## Methodology
All tests were completed on `dev.coder.com`, where a Linux workspace running in AWS `us-west1` was created.
The machine running Coder Desktop (the 'client') was a Windows VM running in the same AWS region and VPC as the workspace.

To test the performance of specifically the SSH connection, a port was forwarded between the client and workspace using:
```
ssh -p 22 -L7001:localhost:7001 <host>
```
where `host` was either an alias for an SSH ProxyCommand that called `coder ssh`, or a Coder Connect hostname.

For latency, [`tcping`](https://www.elifulkerson.com/projects/tcping.php) was used against the forwarded port:
```
tcping -n 100 localhost 7001
```

For throughput, [`iperf3`](https://iperf.fr/iperf-download.php) was used:
```
iperf3 -c localhost -p 7001
```
where an `iperf3` server was running on the workspace on port 7001.

## Test Cases

### Testcase 1: `coder ssh` `ProxyCommand` that bicopies from Coder Connect
This case tests the implementation in this PR, such that we can write a config like:
```
Host codercliconnect
    ProxyCommand /path/to/coder ssh --stdio workspace
```
With Coder Connect enabled, `ssh -p 22 -L7001:localhost:7001 codercliconnect` will use the Coder Connect tunnel. The results were as follows:

**Throughput, 10 tests, back to back:**
- Average throughput across all tests: 788.20 Mbits/sec
- Minimum average throughput: 731 Mbits/sec
- Maximum average throughput: 871 Mbits/sec
- Standard Deviation: 38.88 Mbits/sec

**Latency, 100 RTTs:**
- Average: 0.369ms
- Minimum: 0.290ms
- Maximum: 0.473ms

### Testcase 2: `ssh` dialing Coder Connect directly without a `ProxyCommand`

This is what we assume to be the 'best' way to use Coder Connect

**Throughput, 10 tests, back to back:**
- Average throughput across all tests: 789.50 Mbits/sec
- Minimum average throughput: 708 Mbits/sec
- Maximum average throughput: 839 Mbits/sec
- Standard Deviation: 39.98 Mbits/sec

**Latency, 100 RTTs:**
- Average: 0.369ms
- Minimum: 0.267ms
- Maximum: 0.440ms

### Testcase 3:  `coder ssh` `ProxyCommand` that creates its own Tailnet connection in-process

This is what normally happens when you run `coder ssh`:

**Throughput, 10 tests, back to back:**
- Average throughput across all tests: 610.20 Mbits/sec
- Minimum average throughput: 569 Mbits/sec
- Maximum average throughput: 664 Mbits/sec
- Standard Deviation: 27.29 Mbits/sec

**Latency, 100 RTTs:**
- Average: 0.335ms
- Minimum: 0.262ms
- Maximum: 0.452ms

## Analysis

Performing a two-tailed, unpaired t-test against the throughput of testcases 1 and 2, we find a P value of `0.9450`. This suggests the difference between the data sets is not statistically significant. In other words, there is a 94.5% chance that the difference between the data sets is due to chance.

## Conclusion

From the t-test, and by comparison to the status quo (regular `coder ssh`, which uses gvisor, and is noticeably slower), I think it's safe to say any impact on throughput or latency by the `ProxyCommand` performing a bicopy against Coder Connect is negligible. Users are very much unlikely to run into performance issues as a result of using Coder Connect via `coder ssh`, as implemented in this PR.

Less scientifically, I ran these same tests on my home network with my Sydney workspace, and both throughput and latency were consistent across testcases 1 and 2.

</details>
2025-04-30 15:17:10 +10:00
ケイラ 70ea6788db chore: make the template docs view the default (#17606) 2025-04-29 16:12:39 -06:00
Stephen Kirby 67e1ab407c chore(docs): update release calendar for 2.21 patches (#17605) 2025-04-29 15:34:00 +00:00
Cian Johnston 2acf0adcf2 chore(codersdk/toolsdk): improve static analyzability of toolsdk.Tools (#17562)
* Refactors toolsdk.Tools to remove opaque `map[string]any` argument in
favour of typed args structs.
* Refactors toolsdk.Tools to remove opaque passing of dependencies via
`context.Context` in favour of a tool dependencies struct.
* Adds panic recovery and clean context middleware to all tools.
* Adds `GenericTool` implementation to allow keeping `toolsdk.All` with
uniform type signature while maintaining type information in handlers.
* Adds stricter checks to `patchWorkspaceAgentAppStatus` handler.
2025-04-29 16:05:23 +01:00
Mathias Fredriksson 1fc74f629e refactor(agent): update agentcontainers api initialization (#17600)
There were too many ways to configure the agentcontainers API resulting
in inconsistent behavior or features not being enabled. This refactor
introduces a control flag for enabling or disabling the containers API.
When disabled, all implementations are no-op and explicit endpoint
behaviors are defined. When enabled, concrete implementations are used
by default but can be overridden by passing options.
2025-04-29 17:53:10 +03:00
Cian Johnston 22b932a8e0 fix(cli): fix prompt issue in mcp configure claude-code (#17599)
* Updates default Coder prompt.
* Skips the directions to report tasks if the pre-requisites are not
available (agent token and app slug).
* Adds the capability to override the default Coder prompt via
`CODER_MCP_CLAUDE_CODER_PROMPT`.
2025-04-29 15:23:16 +01:00
Yevhenii Shcherbina 02b2de9ae4 refactor: skip reconciliation for some presets (#17595) 2025-04-29 07:55:37 -04:00
Mathias Fredriksson 268a50c193 feat(agent/agentcontainers): add file watcher and dirty status (#17573)
Fixes coder/internal#479
Fixes coder/internal#480
2025-04-29 11:53:58 +03:00
brettkolodny b6146dfe8a chore: remove circular dependencies (#17585)
I've been bit in the past by hard to deduce bugs caused by circular
dependencies within TS projects. On a hunch that this could be
contributing to some flaky tests I've used the tool
[dpdm](https://github.com/acrazing/dpdm) to find and remove them.

This PR does the following:
- Move around exports/create new files to remove any non-type circular
depencies
- Add dpdm as a dev dependency and create the `check:circular-depency`
pnpm script
2025-04-28 16:51:58 -04:00
ケイラ 12589026b6 chore: update error message for duplicate organization members (#17594)
Closes https://github.com/coder/internal/issues/345
2025-04-28 14:51:33 -06:00
Yevhenii Shcherbina a78f0fc4e1 refactor: use specific error for agpl and prebuilds (#17591)
Follow-up PR to https://github.com/coder/coder/pull/17458
Addresses this discussion:
https://github.com/coder/coder/pull/17458#discussion_r2055940797
2025-04-28 16:37:41 -04:00
Bruno Quaresma 1da27a1ebc fix: handle missed actions in workspace timings (#17593)
Fix https://github.com/coder/coder/issues/16409

Since the provisioner timings action is not strongly typed, but it is
typed as a generic string, and we are not using
`noUncheckedIndexedAccess`, we can miss some of the actions returned
from the API, causing type errors. To avoid that, I changed the code to
be extra safe by adding `undefined` into the return type.
2025-04-28 15:20:07 -03:00
Bruno Quaresma df47c300f3 fix: fix script timings spam in the workspace UI (#17590)
Fix https://github.com/coder/coder/issues/17188

We forgot to filter the scripts by `run_on_start`, since we only
calculate timings in the start phase, which was causing the miss match
between the expected script timings count, and the loop in the refetch
logic.

While I think this fix is enough for now, I think the server should be
responsible to telling the client when to stop fetching. It could be a
simple attribute such as `done: false | true` or a websocket endpoint as
suggested by @dannykopping
[here](https://github.com/coder/coder/issues/17188#issuecomment-2788235333).
2025-04-28 14:22:43 -03:00
Steven Masley 14105ff301 test: do not run memory race test in parallel (#17582)
Closes
https://github.com/coder/internal/issues/597#issuecomment-2835262922

The parallelized tests share configs, which when accessed concurrently
throw race errors. The configs are read only, so it is fine to run these
tests with shared idp configs.
2025-04-28 12:20:07 -05:00
Steven Masley b9177eff7f chore: update guts to latest, using mutations to prevent diffs (#17588)
Guts changes: https://github.com/coder/guts/compare/v1.1.0...main
2025-04-28 12:19:41 -05:00
Steven Masley 37c5e7c440 chore: return safe copy of string slice in 'ParseStringSliceClaim' (#17439)
Claims parsed should be safe to mutate and filter. This was likely not
causing any bugs or issues, and just doing this out of precaution
2025-04-28 12:18:02 -05:00
Yevhenii Shcherbina 9167cbfe4c refactor: claim prebuilt workspace tests (#17567)
Follow-up to: https://github.com/coder/coder/pull/17458
Specifically it addresses these discussions:
- https://github.com/coder/coder/pull/17458#discussion_r2053531445
2025-04-28 12:49:23 -04:00
Bruno Quaresma 3ab3ef865c feat: add link to provisioner jobs and daemons (#17509)
Close https://github.com/coder/coder/issues/17314

**Demo**


https://github.com/user-attachments/assets/db37aa67-4755-4b72-a54d-2c3f0c297b7d

**Changes**
- Added the `xs` button variant
- Display all the daemons - idle and offline - and set a size limit to
100 results (explanation in the demo)
- Filter daemons and jobs by ID
2025-04-28 11:38:32 -03:00
Bruno Quaresma 5ca90aeb59 fix: handle null value for experiments (#17584)
Fix https://github.com/coder/coder/issues/17583

**Relevant info**
- `option.value` can be `null`
- It is always better to use `unknown` instead of `any`, and use type
assertion functions as `Array.isArray()` before using/accessing object
properties and functions
2025-04-28 11:12:49 -03:00
dependabot[bot] 0a26eeec0c ci: bump the github-actions group with 7 updates (#17581)
Bumps the github-actions group with 7 updates:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.11.1` | `2.12.0` |
|
[google-github-actions/auth](https://github.com/google-github-actions/auth)
| `2.1.8` | `2.1.10` |
|
[actions/download-artifact](https://github.com/actions/download-artifact)
| `4.2.1` | `4.3.0` |
| [actions/attest](https://github.com/actions/attest) | `2.2.1` |
`2.3.0` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `9934ab3fdf63239da75d9e0fbd339c48620c72c4` |
`5426ecc3f5c2b10effaefbd374f0abdc6a571b2f` |
|
[nix-community/cache-nix-action](https://github.com/nix-community/cache-nix-action)
| `6.1.2` | `6.1.3` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.28.15` | `3.28.16` |

Updates `step-security/harden-runner` from 2.11.1 to 2.12.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.12.0</h2>
<h2>What's Changed</h2>
<ol>
<li>
<p>A new option, <code>disable-sudo-and-containers</code>, is now
available to replace the <code>disable-sudo policy</code>, addressing
Docker-based privilege escalation (<a
href="https://github.com/step-security/harden-runner/security/advisories/GHSA-mxr3-8whj-j74r">CVE-2025-32955</a>).
More details can be found in this <a
href="https://www.stepsecurity.io/blog/evolving-harden-runners-disable-sudo-policy-for-improved-runner-security">blog
post</a>.</p>
</li>
<li>
<p>New detections have been added based on insights from the tj-actions
and reviewdog actions incidents.</p>
</li>
</ol>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.12.0">https://github.com/step-security/harden-runner/compare/v2...v2.12.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/0634a2670c59f64b4a01f0f96f84700a4088b9f0"><code>0634a26</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/541">#541</a>
from step-security/rc-20</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/2e3c5113419044c10e6826351ff7cf7d56cbebe4"><code>2e3c511</code></a>
Update action.yml</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/40873e6a41e9ae4f46268f8ee038b3561bb88504"><code>40873e6</code></a>
Update README.md</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/484c2799ec63f20b4acc41bcf649dd4003718616"><code>484c279</code></a>
Update README.md</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/4c8582f45544ce2dafb2cfae82cfbebf0f41bde2"><code>4c8582f</code></a>
Update agent versions</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/e8d595cd66544d43aca8ac7e42a212a5a83b41f8"><code>e8d595c</code></a>
fix disable_sudo_and_containers bug</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/5d277fc8734baba8746d0c18cb0a2594d4692c66"><code>5d277fc</code></a>
fix journalctl related bug</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/ff2ab228bdb9f0c9129169d47dbb2bdf4b8f9b0e"><code>ff2ab22</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/536">#536</a>
from rohan-stepsecurity/feat/flag/disable-sudo-and-co...</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b81d650d0e627a80d0d73d192b33d729507e0ef5"><code>b81d650</code></a>
fix: run sudo command only when both disable-sudo and
disable-sudo-and-docker...</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/769df4ef5d6336b33b11e5b0d43934309cf439f6"><code>769df4e</code></a>
Update agent</li>
<li>Additional commits viewable in <a
href="https://github.com/step-security/harden-runner/compare/c6295a65d1254861815972266d5933fd6e532bdf...0634a2670c59f64b4a01f0f96f84700a4088b9f0">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/auth` from 2.1.8 to 2.1.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/auth/releases">google-github-actions/auth's
releases</a>.</em></p>
<blockquote>
<h2>v2.1.10</h2>
<h2>What's Changed</h2>
<ul>
<li>Declare workflow permissions by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/482">google-github-actions/auth#482</a></li>
<li>Document that the OIDC token expires in 5min by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/483">google-github-actions/auth#483</a></li>
<li>Release: v2.1.10 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/484">google-github-actions/auth#484</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2.1.9...v2.1.10">https://github.com/google-github-actions/auth/compare/v2.1.9...v2.1.10</a></p>
<h2>v2.1.9</h2>
<h2>What's Changed</h2>
<ul>
<li>Use our custom boolean parsing by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/478">google-github-actions/auth#478</a></li>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/auth/pull/479">google-github-actions/auth#479</a></li>
<li>Release: v2.1.9 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/auth/pull/480">google-github-actions/auth#480</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/auth/compare/v2.1.8...v2.1.9">https://github.com/google-github-actions/auth/compare/v2.1.8...v2.1.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/auth/commit/ba79af03959ebeac9769e648f473a284504d9193"><code>ba79af0</code></a>
Release: v2.1.10 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/484">#484</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/bfaa66bd663615688155de119a676d67396f6bb7"><code>bfaa66b</code></a>
Document that the OIDC token expires in 5min (<a
href="https://redirect.github.com/google-github-actions/auth/issues/483">#483</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/d0822ad9bf77d35dee590e455d9ef5b96ccb243c"><code>d0822ad</code></a>
Declare workflow permissions (<a
href="https://redirect.github.com/google-github-actions/auth/issues/482">#482</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/7b53cdc2a387814ed14eec026287aac689ae8c9b"><code>7b53cdc</code></a>
Release: v2.1.9 (<a
href="https://redirect.github.com/google-github-actions/auth/issues/480">#480</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/a9cfddf5d2f27aa426027a399f75d209953ade8e"><code>a9cfddf</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/auth/issues/479">#479</a>)</li>
<li><a
href="https://github.com/google-github-actions/auth/commit/b011f3988e66cb193db0f34974b1d7cde74e4f95"><code>b011f39</code></a>
Use our custom boolean parsing (<a
href="https://redirect.github.com/google-github-actions/auth/issues/478">#478</a>)</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/auth/compare/71f986410dfbc7added4569d411d040a91dc6935...ba79af03959ebeac9769e648f473a284504d9193">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/download-artifact` from 4.2.1 to 4.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: implement new <code>artifact-ids</code> input by <a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/401">actions/download-artifact#401</a></li>
<li>Fix workflow example for downloading by artifact ID by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/402">actions/download-artifact#402</a></li>
<li>Prep for v4.3.0 release by <a
href="https://github.com/robherley"><code>@​robherley</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/404">actions/download-artifact#404</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/401">actions/download-artifact#401</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v4.2.1...v4.3.0">https://github.com/actions/download-artifact/compare/v4.2.1...v4.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/d3f86a106a0bac45b974a628896c90dbdf5c8093"><code>d3f86a1</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/404">#404</a>
from actions/robherley/v4.3.0</li>
<li><a
href="https://github.com/actions/download-artifact/commit/fc02353415da80201a0da48ab47022efd7725d11"><code>fc02353</code></a>
prep for v4.3.0 release</li>
<li><a
href="https://github.com/actions/download-artifact/commit/77454371a433f370a16d329ef7db197f700a7a8f"><code>7745437</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/402">#402</a>
from actions/joshmgross/download-by-id-example</li>
<li><a
href="https://github.com/actions/download-artifact/commit/84fc7a0a358aabc7f97f7f590cbfc25f57e26c6a"><code>84fc7a0</code></a>
Remove path filters from Check dist workflow</li>
<li><a
href="https://github.com/actions/download-artifact/commit/67f2bc382f6ba5ba75812a05909e8c25a366b5fb"><code>67f2bc3</code></a>
Fix workflow example for downloading by artifact ID</li>
<li><a
href="https://github.com/actions/download-artifact/commit/8ea3c2c174f79a56792e9fdd9baad75d27c5d369"><code>8ea3c2c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/401">#401</a>
from actions/download-by-id</li>
<li><a
href="https://github.com/actions/download-artifact/commit/d219c630f65d8bd14366a9e2f731cbf854f62258"><code>d219c63</code></a>
add supporting unit tests for artifact downloads with ids</li>
<li><a
href="https://github.com/actions/download-artifact/commit/54124fbd881f8ce794405a06896c93c49c17463e"><code>54124fb</code></a>
revert <code>getArtifact()</code> changes - for now we have to list and
filter by artifa...</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b83057b90d3e218abf5c7b1906579eb6c598ae85"><code>b83057b</code></a>
bundle</li>
<li><a
href="https://github.com/actions/download-artifact/commit/171183c7dce98c3cf8a1fc842429d0a38ed21d33"><code>171183c</code></a>
use the same <code>artifactClient.getArtifact</code> structure as seen
above in `isSingl...</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/download-artifact/compare/95815c38cf2ff2164869cbab79da8d1f422bc89e...d3f86a106a0bac45b974a628896c90dbdf5c8093">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/attest` from 2.2.1 to 2.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/attest/releases">actions/attest's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump <code>@​octokit/request</code> from 8.2.0 to 8.4.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/229">actions/attest#229</a></li>
<li>Bump <code>@​sigstore/oci</code> from 0.4.0 to 0.5.0 by <a
href="https://github.com/bdehamer"><code>@​bdehamer</code></a> in <a
href="https://redirect.github.com/actions/attest/pull/235">actions/attest#235</a>
<ul>
<li>Adds support for reading the <code>HttpHeaders</code> value from the
Docker config file</li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/attest/compare/v2...v2.3.0">https://github.com/actions/attest/compare/v2...v2.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/attest/commit/afd638254319277bb3d7f0a234478733e2e46a73"><code>afd6382</code></a>
Bump <code>@​sigstore/oci</code> from 0.4.0 to 0.5.0 (<a
href="https://redirect.github.com/actions/attest/issues/235">#235</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/d73111199c05526c91684e5e845606249f88accc"><code>d731111</code></a>
Bump the npm-development group across 1 directory with 6 updates (<a
href="https://redirect.github.com/actions/attest/issues/234">#234</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/13aa4f6a9ce09dcf318f1ac18a48388699d96a62"><code>13aa4f6</code></a>
Bump <code>@​octokit/request</code> from 8.2.0 to 8.4.1 (<a
href="https://redirect.github.com/actions/attest/issues/229">#229</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/129b656e44fad75bb154cc2953cf07ba1da8a419"><code>129b656</code></a>
Bump the npm-development group with 3 updates (<a
href="https://redirect.github.com/actions/attest/issues/227">#227</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/f3c169c8df83481993e3075060fc687e87747125"><code>f3c169c</code></a>
Bump the npm-development group with 5 updates (<a
href="https://redirect.github.com/actions/attest/issues/225">#225</a>)</li>
<li><a
href="https://github.com/actions/attest/commit/48e991bfda5b806f66f0a2ad8ae4e17f14cdfd33"><code>48e991b</code></a>
Bump the npm-development group across 1 directory with 6 updates (<a
href="https://redirect.github.com/actions/attest/issues/223">#223</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/attest/compare/a63cfcc7d1aab266ee064c58250cfc2c7d07bc31...afd638254319277bb3d7f0a234478733e2e46a73">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
9934ab3fdf63239da75d9e0fbd339c48620c72c4 to
5426ecc3f5c2b10effaefbd374f0abdc6a571b2f
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5426ecc3f5c2b10effaefbd374f0abdc6a571b2f"><code>5426ecc</code></a>
chore(deps): bump actions/download-artifact from 4.2.1 to 4.3.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2545">#2545</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/513a44e6095ccea82c33927169db11eb75f72791"><code>513a44e</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.14.1 to 22.15.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2544">#2544</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/46e217dc3e3b2601594036314ca9212588075592"><code>46e217d</code></a>
chore(deps): bump github/codeql-action from 3.28.15 to 3.28.16 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2542">#2542</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/c34c1c13a740b06851baff92ab9a653d93ad6ce7"><code>c34c1c1</code></a>
chore(deps): bump actions/setup-node from 4.3.0 to 4.4.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2539">#2539</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/52c3beb9971d42006b24e86bf3ea3fff18dde67f"><code>52c3beb</code></a>
chore(deps-dev): bump ts-jest from 29.3.1 to 29.3.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2536">#2536</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/ea3010bc88ae93076e154efd9eb64d1f5e6993f9"><code>ea3010b</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.14.0 to 22.14.1
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2537">#2537</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/be393a90381e27c9fec2c8c2e02b00f005710145"><code>be393a9</code></a>
remove: commit and push step from build job (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2538">#2538</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9b4bb2bedb217d3ede225b6b07ebde713177cd8f"><code>9b4bb2b</code></a>
chore(deps): bump tj-actions/branch-names from 8.1.0 to 8.2.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2535">#2535</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/changed-files/compare/9934ab3fdf63239da75d9e0fbd339c48620c72c4...5426ecc3f5c2b10effaefbd374f0abdc6a571b2f">compare
view</a></li>
</ul>
</details>
<br />

Updates `nix-community/cache-nix-action` from 6.1.2 to 6.1.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nix-community/cache-nix-action/releases">nix-community/cache-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.3</h2>
<h2>Fixes</h2>
<ul>
<li>Use <code>bigint</code> instead of <code>number</code> for the store
size (<a
href="https://redirect.github.com/nix-community/cache-nix-action/issues/117">#117</a>)</li>
<li>Fix saving a cache (<a
href="https://redirect.github.com/nix-community/cache-nix-action/issues/122">#122</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/135667ec418502fa5a3598af6fb9eb733888ce6a"><code>135667e</code></a>
Merge pull request <a
href="https://redirect.github.com/nix-community/cache-nix-action/issues/122">#122</a>
from nix-community/118-bug-cant-save-a-cache</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/e29de90a039b410e88cd97a0029c3cbdad611ad5"><code>e29de90</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/6bd39b8caa31871d2bc38356ab8b94621ca1e116"><code>6bd39b8</code></a>
fix(action): use TarCommandModifiers</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/1b6f6754d3c59414aad4ab660cd611b1e35c0232"><code>1b6f675</code></a>
chore(deps): update buildjet/toolkit</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/2b45b8cabe18b0f3db2eb2cf4e195238eee4a325"><code>2b45b8c</code></a>
chore(deps): update actions/toolkit</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/f68581e27a06c8c9115dec37e42325d562d9664b"><code>f68581e</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/b6406dc6e7f9c6ad6b399ed561f29f7e406544d5"><code>b6406dc</code></a>
Merge pull request <a
href="https://redirect.github.com/nix-community/cache-nix-action/issues/117">#117</a>
from nix-community/116-bug-inputsgcmaxstoresizevalue-...</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/a91821953137cbb5f2a2d45fa174d69fea427ef4"><code>a918219</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/c6081efc5157c972934491630ade96e53259023c"><code>c6081ef</code></a>
feat(ci): add example of large gc-max-store-size</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/cf6af9e3e9fb402a3b92286b7c8b48afa94de5a6"><code>cf6af9e</code></a>
fix(action): use bigint for the store size</li>
<li>Additional commits viewable in <a
href="https://github.com/nix-community/cache-nix-action/compare/c448f065ba14308da81de769632ca67a3ce67cf5...135667ec418502fa5a3598af6fb9eb733888ce6a">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.15 to 3.28.16
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.16</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.16/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.16 - 23 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.1. <a
href="https://redirect.github.com/github/codeql-action/pull/2863">#2863</a></li>
</ul>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2753">#2753</a></li>
</ul>
<h2>3.28.8 - 29 Jan 2025</h2>
<ul>
<li>Enable support for Kotlin 2.1.10 when running with CodeQL CLI
v2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2744">#2744</a></li>
</ul>
<h2>3.28.7 - 29 Jan 2025</h2>
<p>No user facing changes.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/28deaeda66b76a05916b6923827895f2b14ab387"><code>28deaed</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2865">#2865</a>
from github/update-v3.28.16-2a8cbadc0</li>
<li><a
href="https://github.com/github/codeql-action/commit/03c5d71c11f6cb2c5ba7eef371219a862be30193"><code>03c5d71</code></a>
Update changelog for v3.28.16</li>
<li><a
href="https://github.com/github/codeql-action/commit/2a8cbadc02bb64a7fd15d37c977acbad02496c80"><code>2a8cbad</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2863">#2863</a>
from github/update-bundle/codeql-bundle-v2.21.1</li>
<li><a
href="https://github.com/github/codeql-action/commit/f76eaf51a636a5c1d927998267d92d6475363ace"><code>f76eaf5</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/e63b3f5166c15fda4eb17886f01abe9445dd13f5"><code>e63b3f5</code></a>
Update default bundle to codeql-bundle-v2.21.1</li>
<li><a
href="https://github.com/github/codeql-action/commit/4c3e5362829f0b0bb62ff5f6c938d7f95574c306"><code>4c3e536</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2853">#2853</a>
from github/dependabot/npm_and_yarn/npm-7d84c66b66</li>
<li><a
href="https://github.com/github/codeql-action/commit/56dd02f26d99811d607284494ff84b7d862fe837"><code>56dd02f</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2852">#2852</a>
from github/dependabot/github_actions/actions-457587...</li>
<li><a
href="https://github.com/github/codeql-action/commit/192406dd845fb2228fcea74898b98df2a6cdcef6"><code>192406d</code></a>
Merge branch 'main' into
dependabot/github_actions/actions-4575878e06</li>
<li><a
href="https://github.com/github/codeql-action/commit/c7dbb2084ed1bb623fbbb3976cd6dbae6daaf1fe"><code>c7dbb20</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2857">#2857</a>
from github/nickfyson/address-vulns</li>
<li><a
href="https://github.com/github/codeql-action/commit/9a45cd8c5025281c30bbb652197ace083c291e49"><code>9a45cd8</code></a>
move use of input variables into env vars</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/45775bd8235c68ba998cffa5171334d58593da47...28deaeda66b76a05916b6923827895f2b14ab387">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 13:22:26 +00:00
dependabot[bot] b299ebebf7 chore: bump github.com/valyala/fasthttp from 1.60.0 to 1.61.0 (#17575)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.60.0 to 1.61.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.61.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump golang.org/x/sys from 0.31.0 to 0.32.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1989">valyala/fasthttp#1989</a></li>
<li>chore(deps): bump golang.org/x/crypto from 0.36.0 to 0.37.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1988">valyala/fasthttp#1988</a></li>
<li>chore(deps): bump securego/gosec from 2.22.2 to 2.22.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1990">valyala/fasthttp#1990</a></li>
<li>chore(deps): bump golang.org/x/net from 0.38.0 to 0.39.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1991">valyala/fasthttp#1991</a></li>
<li>Fix round robin addresses in dual stack dialing by <a
href="https://github.com/raviqqe"><code>@​raviqqe</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1995">valyala/fasthttp#1995</a></li>
<li>Fix panic when perIPConn.Close is called multiple times by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1993">valyala/fasthttp#1993</a></li>
<li>early hint functionality by <a
href="https://github.com/pjebs"><code>@​pjebs</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1996">valyala/fasthttp#1996</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/raviqqe"><code>@​raviqqe</code></a> made
their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1995">valyala/fasthttp#1995</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.60.0...v1.61.0">https://github.com/valyala/fasthttp/compare/v1.60.0...v1.61.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/a05560dd7e07834473c374ba3d1bfc9dfa508d64"><code>a05560d</code></a>
implement early hints (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1996">#1996</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/48f3a2f423f103cd67e504a51f3ec3a1381a5620"><code>48f3a2f</code></a>
Fix panic when perIPConn.Close is called multiple times (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1993">#1993</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/e380d34bce703d5d43b8effcef66b7305af12a35"><code>e380d34</code></a>
Fix round robin addresses in dual stack dialing (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1995">#1995</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/4c71125994a1a67c8c6cb979142ae4269c5d89f1"><code>4c71125</code></a>
chore(deps): bump golang.org/x/net from 0.38.0 to 0.39.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1991">#1991</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/76acf1443d615f73837ed7ef2de7924316746809"><code>76acf14</code></a>
chore(deps): bump securego/gosec from 2.22.2 to 2.22.3 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1990">#1990</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/236b2f3148d527c23524f44d9b521d7640dd06a6"><code>236b2f3</code></a>
chore(deps): bump golang.org/x/crypto from 0.36.0 to 0.37.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1988">#1988</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/2629d9d8697d11b2085c73f5005a234448336e84"><code>2629d9d</code></a>
chore(deps): bump golang.org/x/sys from 0.31.0 to 0.32.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1989">#1989</a>)</li>
<li>See full diff in <a
href="https://github.com/valyala/fasthttp/compare/v1.60.0...v1.61.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.60.0&new-version=1.61.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 13:12:46 +00:00
dependabot[bot] 38e7793c91 chore: bump github.com/gohugoio/hugo from 0.146.3 to 0.147.0 (#17577)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.146.3 to 0.147.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.147.0</h2>
<p>This release comes with a new <code>aligny</code> option (shoutout to
<a href="https://github.com/pranshugaba"><code>@​pranshugaba</code></a>
for the implementation) for <a
href="https://gohugo.io/functions/images/text/">images.Text</a> that, in
combination with <code>alignx</code> makes it simple to e.g. center the
text on top of image in both axis. But the main reason this release
comes now and not later, is the improvements/fixes to the order Hugo
applies the default configuration to some keys. This is inherited from
how we did this before we rewrote the configuration handling, and it
made the merging of configuration from modules/themes into the config
root harder and less flexible than it had to be. Me, <a
href="https://github.com/bep"><code>@​bep</code></a>, looking into this,
was triggered by <a
href="https://discourse.gohugo.io/t/how-to-manage-common-config-in-hugo-using-modules/54485/4">this</a>
forum topic. Having many sites share a common configuration is very
useful. With this release, you can simply get what the thread starter
asks for by doing something à la:</p>
<pre lang="toml"><code>baseURL = &quot;http://example.org&quot;
title = &quot;My Hugo Site&quot;
<h1>... import any themes/modules.</h1>
<h1>This will merge in all config imported from imported modules.</h1>
<p>_merge = &quot;deep&quot;
</code></pre></p>
<p>See the <a
href="https://gohugo.io/configuration/introduction/#merge-configuration-settings">documentation</a>
for details.</p>
<h2>Bug fixes</h2>
<ul>
<li>tpl: Fix it so we always prefer internal codeblock rendering over
render-codeblock-foo.html and similar 07983e04e <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13651">#13651</a></li>
<li>tpl/tplimpl: Fix allowFullScreen option in Vimeo and YouTube
shortcodes 5c491409d <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13650">#13650</a></li>
<li>config: Fix _merge issue when key doesn't exist on the left side
179aea11a <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13643">#13643</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13646">#13646</a></li>
<li>all: Fix typos 6a0e04241 <a
href="https://github.com/coliff"><code>@​coliff</code></a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>create/skeletons: Adjust template names in theme skeleton 75b219db8
<a href="https://github.com/jmooring"><code>@​jmooring</code></a></li>
<li>tpl: Remove some unreached code branches ad4f63c92 <a
href="https://github.com/bep"><code>@​bep</code></a></li>
<li>images: Add some test cases for aligny on images.Text 53202314a <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13414">#13414</a></li>
<li>images: Add option for vertical alignment to images.Text 2fce0bac0
<a
href="https://github.com/pranshugaba"><code>@​pranshugaba</code></a></li>
</ul>
<h2>Dependency Updates</h2>
<ul>
<li>build(deps): bump github.com/evanw/esbuild from 0.25.2 to 0.25.3
1bd7ac7ed <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
<li>build(deps): bump github.com/alecthomas/chroma/v2 from 2.16.0 to
2.17.0 41cb880f9 <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]</li>
</ul>
<h2>v0.146.7</h2>
<h2>Bug fixes</h2>
<ul>
<li>Revert the breaking change from 0.146.0 with dots in content
filenames 496730840 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13632">#13632</a></li>
<li>tpl: Fix indeterminate template lookup with templates with and
without lang 6d69dc88a <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13636">#13636</a></li>
<li>tpl/collections: Fix where ... not in with empty slice 4eb0e4286 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13621">#13621</a></li>
<li>tpl: Fix layout fall back logic when layout is set in front matter
but not found 5e62cc6fc <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13630">#13630</a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>parser/metadecoders: Add CSV targetType (map or slice) option to
transform.Unmarshal db72a1f07 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/8859">#8859</a></li>
<li>tpl: Detect and fail on infinite template recursion 1408c156d <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13627">#13627</a></li>
</ul>
<h2>Dependency Updates</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/7d0039b86ddd6397816cc3383cb0cfa481b15f32"><code>7d0039b</code></a>
releaser: Bump versions for release of 0.147.0</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/07983e04e29986a683c7a9f15d48b83e90aff09c"><code>07983e0</code></a>
tpl: Fix it so we always prefer internal codeblock rendering over
render-code...</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/5c491409d36d31f77cdc0407ed29ae2dca71363b"><code>5c49140</code></a>
tpl/tplimpl: Fix allowFullScreen option in Vimeo and YouTube
shortcodes</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/75b219db896cd0ae962f062b39fd67c38dfc8e5b"><code>75b219d</code></a>
create/skeletons: Adjust template names in theme skeleton</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/ad4f63c92f41824b861d317f9248fb30b7e68076"><code>ad4f63c</code></a>
tpl: Remove some unreached code branches</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/53202314abdd05d8f0b6ffdcef96640ac3267344"><code>5320231</code></a>
images: Add some test cases for aligny on images.Text</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/2fce0bac033d8b7e98046f85f669ba813d862788"><code>2fce0ba</code></a>
images: Add option for vertical alignment to images.Text</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/179aea11ac2ce80a38b211e11fd513cead63b17e"><code>179aea1</code></a>
config: Fix _merge issue when key doesn't exist on the left side</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/61a286595e9a333fef95db1e9a086ef9367b3d87"><code>61a2865</code></a>
Merge commit 'b3d87dd0fd746f07f9afa6e6a2969aea41da6a38'</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/b3d87dd0fd746f07f9afa6e6a2969aea41da6a38"><code>b3d87dd</code></a>
Squashed 'docs/' changes from dc7a9ae12..b654fcba0</li>
<li>Additional commits viewable in <a
href="https://github.com/gohugoio/hugo/compare/v0.146.3...v0.147.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.146.3&new-version=0.147.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 12:22:14 +00:00
dependabot[bot] 42e91de81d chore: bump google.golang.org/api from 0.229.0 to 0.230.0 (#17578)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.229.0 to 0.230.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.230.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.229.0...v0.230.0">0.230.0</a>
(2025-04-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3111">#3111</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/59f08c8d98394de1311907950ae52b75db151a6a">59f08c8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3113">#3113</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/40e4fb1ee01719658774befbfc582c20ee06581f">40e4fb1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3114">#3114</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f0bb0a13159f29b30624027724b3ea0ad08c0ff0">f0bb0a1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3115">#3115</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c122b14b51ab658a5f666b9ec9ab318288c4273d">c122b14</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3117">#3117</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1c0aadbeaf819dfcb52903b978085ac96c12522c">1c0aadb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3118">#3118</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2b6fa61936ada3252efc355ea176dd638c2f5baa">2b6fa61</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3120">#3120</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/18c546ede7af9fae3ff7115c01a31208c3a9d734">18c546e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3121">#3121</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ff1b166e4564423ae96c464cad4435db71cefded">ff1b166</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Removes-redundant (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3095">#3095</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9e9ff112acacecddc17be15d4f37ca45fb9177ad">9e9ff11</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.229.0...v0.230.0">0.230.0</a>
(2025-04-22)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3111">#3111</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/59f08c8d98394de1311907950ae52b75db151a6a">59f08c8</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3113">#3113</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/40e4fb1ee01719658774befbfc582c20ee06581f">40e4fb1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3114">#3114</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f0bb0a13159f29b30624027724b3ea0ad08c0ff0">f0bb0a1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3115">#3115</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c122b14b51ab658a5f666b9ec9ab318288c4273d">c122b14</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3117">#3117</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1c0aadbeaf819dfcb52903b978085ac96c12522c">1c0aadb</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3118">#3118</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/2b6fa61936ada3252efc355ea176dd638c2f5baa">2b6fa61</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3120">#3120</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/18c546ede7af9fae3ff7115c01a31208c3a9d734">18c546e</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3121">#3121</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ff1b166e4564423ae96c464cad4435db71cefded">ff1b166</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Removes-redundant (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3095">#3095</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9e9ff112acacecddc17be15d4f37ca45fb9177ad">9e9ff11</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/e4f4ca981adfca5cdf031dd30c645ee356591d12"><code>e4f4ca9</code></a>
chore(main): release 0.230.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3112">#3112</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ff1b166e4564423ae96c464cad4435db71cefded"><code>ff1b166</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3121">#3121</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/5b0e60da0b3c608ab354297a727eedac9c403fde"><code>5b0e60d</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3119">#3119</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/18c546ede7af9fae3ff7115c01a31208c3a9d734"><code>18c546e</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3120">#3120</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/2b6fa61936ada3252efc355ea176dd638c2f5baa"><code>2b6fa61</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3118">#3118</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/1c0aadbeaf819dfcb52903b978085ac96c12522c"><code>1c0aadb</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3117">#3117</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/c122b14b51ab658a5f666b9ec9ab318288c4273d"><code>c122b14</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3115">#3115</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f0bb0a13159f29b30624027724b3ea0ad08c0ff0"><code>f0bb0a1</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3114">#3114</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/9e9ff112acacecddc17be15d4f37ca45fb9177ad"><code>9e9ff11</code></a>
fix: removes-redundant (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3095">#3095</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/40e4fb1ee01719658774befbfc582c20ee06581f"><code>40e4fb1</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3113">#3113</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.229.0...v0.230.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.229.0&new-version=0.230.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 12:21:55 +00:00
dependabot[bot] cabfc98030 chore: bump github.com/mark3labs/mcp-go from 0.22.0 to 0.23.1 (#17576)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.22.0 to 0.23.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.23.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(client): prevent panics by <a
href="https://github.com/jkoelker"><code>@​jkoelker</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/192">mark3labs/mcp-go#192</a></li>
<li>fix: correct JSON key for client capabilities by <a
href="https://github.com/TBXark"><code>@​TBXark</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/197">mark3labs/mcp-go#197</a></li>
<li>fix(client): check stdio started before sending notification by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/199">mark3labs/mcp-go#199</a></li>
<li>fix(client): potential risk of sending on closed channel by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/194">mark3labs/mcp-go#194</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/TBXark"><code>@​TBXark</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/197">mark3labs/mcp-go#197</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.23.0...v0.23.1">https://github.com/mark3labs/mcp-go/compare/v0.23.0...v0.23.1</a></p>
<h2>Release v0.23.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Export SendNotificationToAllClients by <a
href="https://github.com/scottfeldman"><code>@​scottfeldman</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/176">mark3labs/mcp-go#176</a></li>
<li>feat(server): Add hooks.AddOnUnregisterSession functionality by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/175">mark3labs/mcp-go#175</a></li>
<li>Refact: pre-allocate memory for memory-efficiency by <a
href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/178">mark3labs/mcp-go#178</a></li>
<li>fix sse shutdown by <a
href="https://github.com/karngyan"><code>@​karngyan</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/128">mark3labs/mcp-go#128</a></li>
<li>fix: update spec link by <a
href="https://github.com/warjiang"><code>@​warjiang</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/188">mark3labs/mcp-go#188</a></li>
<li>Add <code>InProcessTransport</code> by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/189">mark3labs/mcp-go#189</a></li>
<li>Optimize capability and notification according to specification by
<a href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/184">mark3labs/mcp-go#184</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/scottfeldman"><code>@​scottfeldman</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/176">mark3labs/mcp-go#176</a></li>
<li><a href="https://github.com/cryo-zd"><code>@​cryo-zd</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/178">mark3labs/mcp-go#178</a></li>
<li><a href="https://github.com/karngyan"><code>@​karngyan</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/128">mark3labs/mcp-go#128</a></li>
<li><a href="https://github.com/warjiang"><code>@​warjiang</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/188">mark3labs/mcp-go#188</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.22.0...v0.23.0">https://github.com/mark3labs/mcp-go/compare/v0.22.0...v0.23.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/edda393a1a231aefaaef41086ba7344e30c6b559"><code>edda393</code></a>
fix potential risk of sending on closed channel (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/194">#194</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6e000c30767a9e03f90d2a3932af91c620945323"><code>6e000c3</code></a>
check stdio start before sending notification (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/199">#199</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/fb13cfbf97dfa75c4245e3924a8e9ced99871a55"><code>fb13cfb</code></a>
fix: correct JSON key for client capabilities (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/197">#197</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d343bff720e8ce4c21415dd7bb253bd107d2d0d7"><code>d343bff</code></a>
fix(client): prevent panics (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/192">#192</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/781b7327ad04888293d38d0bf0a9cd0588d3af79"><code>781b732</code></a>
optimize capability and notification (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/184">#184</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6760d870f40fa9df86a733170d2d3951ebe5659c"><code>6760d87</code></a>
in process transport (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/189">#189</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/be0d8cbfe8cefde1ad0116b76b4abebd93bf323f"><code>be0d8cb</code></a>
fix: update spec link (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/188">#188</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/2e4af4cf0c6dd36013aeb725f547ad4963c2155d"><code>2e4af4c</code></a>
fix sse shutdown (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/128">#128</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/9f39a43b4e9d756e386289dd687f57cf9ffacfe0"><code>9f39a43</code></a>
Merge branch 'main' of github.com:mark3labs/mcp-go</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/dd7dcc515d62b442b53b1789a4d41959547719a3"><code>dd7dcc5</code></a>
Fix spelling</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.22.0...v0.23.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.22.0&new-version=0.23.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 12:20:30 +00:00
Danny Kopping e0483e3136 feat: add prebuilds metrics collector (#17547)
Closes https://github.com/coder/internal/issues/509

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-04-28 12:28:56 +02:00
Hugo Dutka b47d54d777 chore: cache terraform providers between CI test runs (#17373)
Addresses https://github.com/coder/internal/issues/322.

This PR starts caching Terraform providers used by `TestProvision` in
`provisioner/terraform/provision_test.go`. The goal is to improve the
reliability of this test by cutting down on the number of network calls
to external services. It leverages GitHub Actions cache, which [on depot
runners is persisted for 14 days by
default](https://depot.dev/docs/github-actions/overview#cache-retention-policy).

Other than the aforementioned `TestProvision`, I couldn't find any other
tests which depend on external terraform providers.
2025-04-28 10:57:24 +02:00
Danny Kopping 08ad910171 feat: add prebuilds configuration & bootstrapping (#17527)
Closes https://github.com/coder/internal/issues/508

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Cian Johnston <cian@coder.com>
2025-04-25 11:07:15 +02:00
Jaayden Halko e562e3c882 chore: mark parameters as required (#17551)
This adds a red asterisk next to a parameter name if it is required and
marks passes the parameter required value to input and textarea form
controls.

The multi-select combobox needs additional work (in a separate PR) so
that it can handle the required prop correctly for form submit.

<img width="544" alt="Screenshot 2025-04-24 at 00 02 10"
src="https://github.com/user-attachments/assets/5c6758d3-41a4-444d-b7e9-e1fe011703d3"
/>
2025-04-24 17:14:21 -04:00
M Atif Ali fc921a584f chore(docs): update release calendar dates and next release calculation (#17560) 2025-04-24 19:42:33 +05:00
Yevhenii Shcherbina 118f12ac3a feat: implement claiming of prebuilt workspaces (#17458)
Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <danny@coder.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
Co-authored-by: Aericio <16523741+Aericio@users.noreply.github.com>
Co-authored-by: M Atif Ali <me@matifali.dev>
Co-authored-by: Michael Suchacz <203725896+ibetitsmike@users.noreply.github.com>
2025-04-24 09:39:38 -04:00
dependabot[bot] 25dacd39e7 chore: bump github.com/prometheus-community/pro-bing from 0.6.0 to 0.7.0 (#17378)
Bumps
[github.com/prometheus-community/pro-bing](https://github.com/prometheus-community/pro-bing)
from 0.6.0 to 0.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus-community/pro-bing/releases">github.com/prometheus-community/pro-bing's
releases</a>.</em></p>
<blockquote>
<h2>v0.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/146">prometheus-community/pro-bing#146</a></li>
<li>Bump golang.org/x/net from 0.34.0 to 0.35.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/147">prometheus-community/pro-bing#147</a></li>
<li>Bump golang.org/x/sync from 0.10.0 to 0.11.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/148">prometheus-community/pro-bing#148</a></li>
<li>Update Go by <a
href="https://github.com/SuperQ"><code>@​SuperQ</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/152">prometheus-community/pro-bing#152</a></li>
<li>Bump golang.org/x/net from 0.35.0 to 0.38.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/150">prometheus-community/pro-bing#150</a></li>
<li>Bump golang.org/x/sync from 0.11.0 to 0.13.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/153">prometheus-community/pro-bing#153</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prometheus-community/pro-bing/compare/v0.6.1...v0.7.0">https://github.com/prometheus-community/pro-bing/compare/v0.6.1...v0.7.0</a></p>
<h2>v0.6.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix/stats race by <a
href="https://github.com/perhallgren"><code>@​perhallgren</code></a> in
<a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/145">prometheus-community/pro-bing#145</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/perhallgren"><code>@​perhallgren</code></a>
made their first contribution in <a
href="https://redirect.github.com/prometheus-community/pro-bing/pull/145">prometheus-community/pro-bing#145</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prometheus-community/pro-bing/compare/v0.6.0...v0.6.1">https://github.com/prometheus-community/pro-bing/compare/v0.6.0...v0.6.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/85df87ee97d5a448f5bc5c2ccc6f43d54e68b0cd"><code>85df87e</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus-community/pro-bing/issues/153">#153</a>
from prometheus-community/dependabot/go_modules/golan...</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/4df7cf6d8a2e926bd84f0c23ef3c70d207e08648"><code>4df7cf6</code></a>
Bump golang.org/x/sync from 0.11.0 to 0.13.0</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/0748554038ca051940674fa98cf8ae470b0bfb2d"><code>0748554</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus-community/pro-bing/issues/150">#150</a>
from prometheus-community/dependabot/go_modules/golan...</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/0a802c09eea30c0d7232e5b23cd02ac0a0063bb0"><code>0a802c0</code></a>
Bump golang.org/x/net from 0.35.0 to 0.38.0</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/a184532955ba6a987d1a2b406ab2708c41e9b9d0"><code>a184532</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus-community/pro-bing/issues/152">#152</a>
from prometheus-community/superq/bump_go</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/ed8beb88ca19f00c9d5dfc8f93f99733366c89aa"><code>ed8beb8</code></a>
Update Go</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/c9b2c133ccf6c6212f29ca33c6258f7400ea76f6"><code>c9b2c13</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus-community/pro-bing/issues/148">#148</a>
from prometheus-community/dependabot/go_modules/golan...</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/b3180894e532d3a854cb025d889e50e4cac5f9fe"><code>b318089</code></a>
Bump golang.org/x/sync from 0.10.0 to 0.11.0</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/ba53383b80d9cd150307779f2d7e09ef3985f689"><code>ba53383</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus-community/pro-bing/issues/147">#147</a>
from prometheus-community/dependabot/go_modules/golan...</li>
<li><a
href="https://github.com/prometheus-community/pro-bing/commit/a683c097aea7c567a2d4e4c91b001822fbe48850"><code>a683c09</code></a>
Bump golang.org/x/net from 0.34.0 to 0.35.0</li>
<li>Additional commits viewable in <a
href="https://github.com/prometheus-community/pro-bing/compare/v0.6.0...v0.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/prometheus-community/pro-bing&package-manager=go_modules&previous-version=0.6.0&new-version=0.7.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-24 09:45:15 +00:00
M Atif Ali c45343aa99 chore(dogfood): add windsurf module (#17558) 2025-04-24 14:14:50 +05:00
M Atif Ali 166d88e279 docs: add automatic release calendar updates in docs (#17531) 2025-04-24 13:52:34 +05:00
M Atif Ali ad38a3bddc fix(examples/templates/kubernetes-devcontainer): update coder provider (#17555) 2025-04-24 12:56:07 +05:00
Michael Suchacz 9922240fd4 feat: enable masking password inputs instead of blocking echo (#17469)
Closes #17059
2025-04-24 09:54:00 +02:00
Aericio 614a7d0d58 fix(examples/templates/docker-devcontainer): update folder path and provider version constraint (#17553)
Co-authored-by: M Atif Ali <me@matifali.dev>
2025-04-24 07:21:35 +00:00
M Atif Ali 4759e17acd chore(dogfood): allow provider minor version updates (#17554) 2025-04-24 07:21:31 +00:00
Ethan 4f70b596dc ci: move go install tools to separate action (#17552)
I think using an older version of mockgen on the schmoder CI broke the
workflow, so I'm gonna sync it via this action, like we do with the
other `make build` dependencies.
2025-04-24 03:02:57 +00:00
Jaayden Halko ef6e6e41ff fix: add websocket close handling (#17548)
resolves #17508 

Display an error in the UI that the websocket closed if the user is
still interacting with the dynamic parameters form

<img width="795" alt="Screenshot 2025-04-23 at 17 57 25"
src="https://github.com/user-attachments/assets/15362ddb-fe01-462e-8537-a48302c5c621"
/>
2025-04-23 19:19:25 -04:00
Edward Angert 3567d455a7 docs: fix ssh coder example in testing-templates doc (#17550)
from @NickSquangler and @angrycub on Slack

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-23 16:13:13 -04:00
Edward Angert e6facaa41b docs: clarify that parameter autofill requires experimental flag (#17546)
Update documentation to indicate that parameter autofill requires
`--experiments=auto-fill-parameters` enabled

Fixes #14673

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-23 17:13:08 +00:00
Jaayden Halko 03eeb01247 chore: use new table design for markdown rendering (#17530)
resolves #17502 

<img width="756" alt="Screenshot 2025-04-23 at 11 26 19"
src="https://github.com/user-attachments/assets/667c595c-21de-496c-8f25-3dca9f840c7c"
/>
2025-04-23 13:02:14 -04:00
Jaayden Halko 3306f0f2a2 fix: fix broken img layout (#17525)
resolves #17507 

Before

<img width="629" alt="Screenshot 2025-04-23 at 11 01 55"
src="https://github.com/user-attachments/assets/79e2945b-0301-4cf5-9b25-f112bac9c2ff"
/>

After

<img width="629" alt="Screenshot 2025-04-23 at 11 02 45"
src="https://github.com/user-attachments/assets/c74d3c03-ebee-42e6-bd16-b4610139cb86"
/>
2025-04-23 13:01:36 -04:00
Jaayden Halko c1162eb9a8 fix: only highlight checkbox on hover when checkbox is enabled (#17526)
resolves #17503
2025-04-23 13:01:02 -04:00
ケイラ 36a72a2b25 chore: loosen static validation when using dynamic parameters (#17516)
Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-04-23 10:15:49 -06:00
ケイラ 3b4343ddf3 fix: fix workspace creation on template page (#17518) 2025-04-23 09:44:36 -06:00
Edward Angert 5a7d531aef docs: edit the ai agents doc (#17521)
general edit and adding some highlights as I work through the section

[preview](https://coder.com/docs/@ai-coder-edit/ai-coder/agents)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-23 11:14:57 -04:00
Edward Angert 9dea568027 docs: document GIT_ASKPASS for OAuth connections (#17457)
closes #17375 

from @ericpaulsen 

> a prospect recently inquired about how our OAuth integration with
GitLab works, and I realized we do not have any information on
`GIT_ASKPASS` is used to retreive the OAuth token for users when they
run `git` operations.

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-23 11:14:15 -04:00
Bruno Quaresma 88589ef32f fix: fix build timeline scale for longer builds (#17514)
Fix https://github.com/coder/coder/issues/15374
2025-04-23 11:34:08 -03:00
Steven Masley 71dbd0c888 fix: nil ptr deref when removing OIDC from deployment and accessing old users (#17501)
If OIDC is removed from a deployment, trying to create a workspace for a previous user
on OIDC would panic.
2025-04-23 08:45:26 -05:00
Mathias Fredriksson c106aee0d6 fix(scripts/release): handle cherry-pick bot titles in check commit metadata (#17535) 2025-04-23 12:20:00 +00:00
Danny Kopping b3cc8e56d2 chore: set timezone on all golden file make targets (#17533)
We replace timestamps in our golden files to keep the values constant.

However, if a non-UTC timezone is used then the timestamp will still be
replaced but the whitespace will be messed up (since it was aligned to
the original value).


![image](https://github.com/user-attachments/assets/b7ebf615-5b41-41bb-8939-682a45a61952)

Therefore we must force a timezone when generating golden files.

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-04-23 11:26:46 +00:00
Mathias Fredriksson 35553a5815 chore(Makefile): fix incorrect redirection of output (#17532) 2025-04-23 11:01:28 +00:00
Mathias Fredriksson 1ba02f4297 chore(dogfood): increase container graceful stop time (#17528)
Fixes workspace stop when you've run `devcontainer up` in coder/coder.

The previous attempt in #17110 gave insufficient time.
2025-04-23 13:40:51 +03:00
Spike Curtis 0ef7d0b3e5 docs: correct low MTU troubleshooting language (#17468)
Fixes docs troubleshooting language around low MTU. In fact, we see
conenctions hanging rather than just showing low performance, since
packets are dropped rather than fragmented.

---------

Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-23 10:00:33 +04:00
Dean Sheather b15d060410 fix(agent): return listed drives on failure on windows (#17505)
The behavior of the partitions listing function from gopsutil is that it
will return all partitions that didn't fail to be read, but will return
something similar to a multierror.

Errors are now ignored unless there are no drives returned.
2025-04-23 03:31:43 +10:00
Steven Masley ca38729840 chore: revert dynamic params as a safe experiment (#17510) 2025-04-22 16:21:15 +00:00
Steven Masley 5d97d82422 chore: update coder/preview dep (#17512)
Using latest release of coder/preview
2025-04-22 16:21:01 +00:00
Bruno Quaresma 83b2c9bf41 fix: don't show promote button for members (#17511)
Fix https://github.com/coder/coder/issues/15850
2025-04-22 12:50:46 -03:00
Eric Paulsen cbc699b6df chore: set default requests/limits in helm chart (#16844)
closes #16825 - my first commit from across the pond 😄

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-04-22 11:05:34 +01:00
Dean Sheather d566008087 fix: update tailscale to improve block endpoints functionality (#17496)
Direct endpoints from the peer will no longer be processed.
2025-04-22 09:32:21 +00:00
Jaayden Halko afb175d9ee chore: make dynamic params a valid experiment (#17492) 2025-04-22 05:09:16 -04:00
Cian Johnston 444bd6a212 fix(cli/server.go): switch to alternate maven repo for postgres binaries (#17451)
Not really guaranteed, but worth a shot.

---------

Co-authored-by: Danny Kopping <danny@coder.com>
2025-04-22 09:02:35 +01:00
Jaayden Halko 56ee5d8f1b fix: update dynamic params styles (#17489)
1. increase form width and adjust form field width #17471 
2. Move slider value display as its currently broken for long parameter
titles and descriptions
3. increase the height of the slider
4. automatically increase the height of the textarea as the user types
#17472
2025-04-21 17:50:57 -04:00
dependabot[bot] 823d3ea64e chore: bump google.golang.org/grpc from 1.71.0 to 1.72.0 (#17481)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from
1.71.0 to 1.72.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/grpc/grpc-go/releases">google.golang.org/grpc's
releases</a>.</em></p>
<blockquote>
<h2>Release 1.72.0</h2>
<h1>Dependencies</h1>
<ul>
<li>Minimum supported Go version is now 1.23 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8108">#8108</a>)</li>
</ul>
<h1>API Changes</h1>
<ul>
<li>resolver: add experimental <code>AddressMapV2</code> with generics
to ultimately replace <code>AddressMap</code>. Deprecate
<code>AddressMap</code> for deletion (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8187">#8187</a>)</li>
<li>resolver: convert EndpointMap in place to use generics (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8189">#8189</a>)</li>
</ul>
<h1>New Features</h1>
<ul>
<li>xds: add <code>grpc.xds_client.server_failure</code> counter metric
on xDS client to record connectivity errors (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8203">#8203</a>)</li>
<li>balancer/rls: allow <code>maxAge</code> to exceed 5 minutes if
<code>staleAge</code> is set in the LB policy configuration (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8137">#8137</a>)</li>
<li>ringhash: implement <a
href="https://github.com/grpc/proposal/blob/master/A76-ring-hash-improvements.md">gRFC
A76</a> improvements. (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8159">#8159</a>)</li>
</ul>
<h1>Bug Fixes</h1>
<ul>
<li>xds: fix support for circuit breakers and load reporting in
LOGICAL_DNS clusters (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8169">#8169</a>,
<a
href="https://redirect.github.com/grpc/grpc-go/issues/8170">#8170</a>)</li>
<li>cds: improve RPC error messages when resources are not found (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8122">#8122</a>)</li>
<li>priority: fix race that could leak balancers and goroutines during
shutdown (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8095">#8095</a>)</li>
<li>stats/opentelemetry: fix trace attributes message sequence numbers
to start from 0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8237">#8237</a>)</li>
<li>balancer/pickfirstleaf: fix panic if deprecated Address.Metadata
field is set to a non-comparable value by ignoring the field (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8227">#8227</a>)</li>
</ul>
<h1>Behavior Changes</h1>
<ul>
<li>transport: make servers send an HTTP/2 RST_STREAM frame to cancel a
stream when the deadline expires (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8071">#8071</a>)</li>
</ul>
<h1>Documentation</h1>
<ul>
<li>stats: clarify the expected sequence of events on a stats handler
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/7885">#7885</a>)
<ul>
<li>Special Thanks: <a
href="https://github.com/RyanBlaney"><code>@​RyanBlaney</code></a></li>
</ul>
</li>
</ul>
<h2>Release 1.71.1</h2>
<h1>Bug Fixes</h1>
<ul>
<li>grpc: fix a bug causing an extra Read from the compressor if a
compressed message is the same size as the limit. This could result in a
panic with the built-in gzip compressor (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8178">#8178</a>)</li>
<li>xds: restore the behavior of reading the bootstrap config before
creating the first xDS client instead of at package init time (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8164">#8164</a>)</li>
<li>stats/opentelemetry: use <code>TextMapPropagator</code> and
<code>TracerProvider</code> from <code>TraceOptions</code> instead of
OpenTelemetry globals (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8166">#8166</a>)</li>
<li>client: fix races when an http proxy is configured that could lead
to deadlocks or panics (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8195">#8195</a>)</li>
<li>client: fix bug causing RPC failures with message &quot;no children
to pick from&quot; when using a custom resolver that calls the
deprecated <code>NewAddress</code> API (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8149">#8149</a>)</li>
<li>wrr: fix slow processing of address updates that could result in
problems including RPC failures for servers with a large number of
backends (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8179">#8179</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/grpc/grpc-go/commit/a43eba6fed49b81b84cfdba85c356aca22086d7e"><code>a43eba6</code></a>
Change version to 1.72.0 (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8218">#8218</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/48f48c14f7a670d4405680d4ae121b557ae89f55"><code>48f48c1</code></a>
balancer/pickfirstleaf: Avoid reading Address.Metadata (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8227">#8227</a>)
(<a
href="https://redirect.github.com/grpc/grpc-go/issues/8259">#8259</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/fd6f5852919a08d9a5aaa421c2910405da6a5ed0"><code>fd6f585</code></a>
Cherry-pick <a
href="https://redirect.github.com/grpc/grpc-go/issues/8159">#8159</a>
and <a
href="https://redirect.github.com/grpc/grpc-go/issues/8243">#8243</a> to
v1.72.x (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8255">#8255</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/79ca1744edd19936966a4ef45bcef2d240587812"><code>79ca174</code></a>
stats/opentelemetry: fix trace attributes message sequence numbers to
start f...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/57a2605e35a0608f1cbdb1e471db94d2a28ec42c"><code>57a2605</code></a>
xdsclient: fix TestServerFailureMetrics_BeforeResponseRecv test to wait
for w...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/5edab9e55414068e74320716117a2659c5d2174e"><code>5edab9e</code></a>
xdsclient: add grpc.xds_client.server_failure counter mertric (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8203">#8203</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/78ba6616c1c3d641cf2cc861a0696fd5beb90aa3"><code>78ba661</code></a>
regenerate protos (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8208">#8208</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/6819ed796fcd0232a46dab21c1b7826aa7f1d561"><code>6819ed7</code></a>
delegatingresolver: Stop calls into delegates once the parent resolver
is clo...</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/a51009d1d7074ee1efcd323578064cbe44ef87e5"><code>a51009d</code></a>
resolver: convert EndpointMap to use generics (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8189">#8189</a>)</li>
<li><a
href="https://github.com/grpc/grpc-go/commit/b0d120384670bde5a2fa830d65e43b250c24d8fd"><code>b0d1203</code></a>
resolver: create AddressMapV2 with generics to replace AddressMap (<a
href="https://redirect.github.com/grpc/grpc-go/issues/8187">#8187</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/grpc/grpc-go/compare/v1.71.0...v1.72.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/grpc&package-manager=go_modules&previous-version=1.71.0&new-version=1.72.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 18:00:54 +00:00
dependabot[bot] 36625af3bc chore: bump google.golang.org/api from 0.228.0 to 0.229.0 (#17480)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.228.0 to 0.229.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.229.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.228.0...v0.229.0">0.229.0</a>
(2025-04-14)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3082">#3082</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ab1e35bd922013503c83b13ceeca77261b161bbc">ab1e35b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3084">#3084</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/eab21799a214ec6b03e74ea0c8c1bde79c851faf">eab2179</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3085">#3085</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9af4079c0c6bab3c5567b42888be725bfc47b3b0">9af4079</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3086">#3086</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9c927b65141cbfc1019dbc4350836fb363167de9">9c927b6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3087">#3087</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3c387cdc0b26846f2c2ae02f9871020fe732c87d">3c387cd</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3089">#3089</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b64e7929166b212d1721afd68bf9fe8d40dc5775">b64e792</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3090">#3090</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/65fc9d3edb75cb38ceb96a383dcf6d7fee89662e">65fc9d3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3093">#3093</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3a51a3a77ef75d10dc75fb4af0e5c791809cb568">3a51a3a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3094">#3094</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ca845161fd6688acdf5818fcb06f91d314866e4c">ca84516</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3096">#3096</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9e992f492d43134b44b0a830e99c8b78dd8fc524">9e992f4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3097">#3097</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c09b6a9455c6aab4dbd7422245e4c9b2502c5806">c09b6a9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3099">#3099</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/66d217562f865a6e93e9cd680c2e65cd815c441a">66d2175</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3101">#3101</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9ad998bc308b688bb47fd1621d73789bc66ec565">9ad998b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3102">#3102</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/70d6fb25935cb233a3d8cdc144d04add6f1ed5f9">70d6fb2</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3103">#3103</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/414e575ddac0ec40cbd77dccb2b376f2a16c7675">414e575</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3104">#3104</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/91f658957210bd86c3365cbed6d7753a3cc7ff07">91f6589</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3105">#3105</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1c5ea6cfdd2437d3d2f790a5ab252b070e68bbbe">1c5ea6c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3106">#3106</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fabfddf97037bebce44fbbd9b85473a621649802">fabfddf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3107">#3107</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ecbc1a9e09191e81577ac480e32234b9d146d217">ecbc1a9</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.228.0...v0.229.0">0.229.0</a>
(2025-04-14)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3082">#3082</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ab1e35bd922013503c83b13ceeca77261b161bbc">ab1e35b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3084">#3084</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/eab21799a214ec6b03e74ea0c8c1bde79c851faf">eab2179</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3085">#3085</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9af4079c0c6bab3c5567b42888be725bfc47b3b0">9af4079</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3086">#3086</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9c927b65141cbfc1019dbc4350836fb363167de9">9c927b6</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3087">#3087</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3c387cdc0b26846f2c2ae02f9871020fe732c87d">3c387cd</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3089">#3089</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/b64e7929166b212d1721afd68bf9fe8d40dc5775">b64e792</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3090">#3090</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/65fc9d3edb75cb38ceb96a383dcf6d7fee89662e">65fc9d3</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3093">#3093</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3a51a3a77ef75d10dc75fb4af0e5c791809cb568">3a51a3a</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3094">#3094</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ca845161fd6688acdf5818fcb06f91d314866e4c">ca84516</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3096">#3096</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9e992f492d43134b44b0a830e99c8b78dd8fc524">9e992f4</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3097">#3097</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c09b6a9455c6aab4dbd7422245e4c9b2502c5806">c09b6a9</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3099">#3099</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/66d217562f865a6e93e9cd680c2e65cd815c441a">66d2175</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3101">#3101</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/9ad998bc308b688bb47fd1621d73789bc66ec565">9ad998b</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3102">#3102</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/70d6fb25935cb233a3d8cdc144d04add6f1ed5f9">70d6fb2</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3103">#3103</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/414e575ddac0ec40cbd77dccb2b376f2a16c7675">414e575</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3104">#3104</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/91f658957210bd86c3365cbed6d7753a3cc7ff07">91f6589</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3105">#3105</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1c5ea6cfdd2437d3d2f790a5ab252b070e68bbbe">1c5ea6c</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3106">#3106</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fabfddf97037bebce44fbbd9b85473a621649802">fabfddf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3107">#3107</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/ecbc1a9e09191e81577ac480e32234b9d146d217">ecbc1a9</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/8448bf2ae14fbf6a239ceea036ab6b69930db02a"><code>8448bf2</code></a>
chore(main): release 0.229.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3083">#3083</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/8dd21ed8ab64b874d31b1096edf6923b0f9e1912"><code>8dd21ed</code></a>
chore(all): update cloud.google.com/go/auth to v0.16.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3109">#3109</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ac04e77c5460d05f02165272051ffb006dab01ae"><code>ac04e77</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3108">#3108</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/ecbc1a9e09191e81577ac480e32234b9d146d217"><code>ecbc1a9</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3107">#3107</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/fabfddf97037bebce44fbbd9b85473a621649802"><code>fabfddf</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3106">#3106</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/1c5ea6cfdd2437d3d2f790a5ab252b070e68bbbe"><code>1c5ea6c</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3105">#3105</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/91f658957210bd86c3365cbed6d7753a3cc7ff07"><code>91f6589</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3104">#3104</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/414e575ddac0ec40cbd77dccb2b376f2a16c7675"><code>414e575</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3103">#3103</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/70d6fb25935cb233a3d8cdc144d04add6f1ed5f9"><code>70d6fb2</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3102">#3102</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f7272c9d0bb58186d5ddab19f4671ac67c914915"><code>f7272c9</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3100">#3100</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.228.0...v0.229.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.228.0&new-version=0.229.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 17:48:34 +00:00
ケイラ f6364a2f6e feat: add opt-out option to new parameters form (#17456)
Closes https://github.com/coder/preview/issues/62
2025-04-21 10:44:44 -06:00
dependabot[bot] c0ca47d015 chore: bump github.com/charmbracelet/glamour from 0.9.1 to 0.10.0 (#17476)
Bumps
[github.com/charmbracelet/glamour](https://github.com/charmbracelet/glamour)
from 0.9.1 to 0.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/charmbracelet/glamour/releases">github.com/charmbracelet/glamour's
releases</a>.</em></p>
<blockquote>
<h2>v0.10.0</h2>
<h1>Actually readable tables</h1>
<p>Big tables that included links were always hard to read. Links can be
very long, and tables often have limited space to render them. This
means that links often took the space of many lines and weren't properly
clickable because they were being truncated in practice.</p>
<p>Starting on this release, Glamour will render links and images at the
footer of the table, with a reference number so you can easily find the
link you're looking for. If you want the old behavior, it is still
supported via the new <code>WithInlineTableLinks</code> option.</p>
<h2>The New Way</h2>
<p><img
src="https://github.com/user-attachments/assets/9ea84076-c318-4835-b5be-a583745a4953"
alt="table_with_footer_links_and_images" /></p>
<h2>The Old Way</h2>
<p>Wanna render tables with inline links? You still can:</p>
<pre lang="go"><code>r, err :=
glamour.NewTermRenderer(glamour.WithInlineTableLinks(true))
if err != nil { /*...*/ }
<p>out, err := r.RenderBytes(in)<br />
if err != nil { /<em>...</em>/ }</p>
<p>fmt.Fprintf(os.Stdout, &quot;%s\n&quot;, out)<br />
</code></pre></p>
<p><img
src="https://github.com/user-attachments/assets/de3d3d33-9592-44ea-99d2-f3d8e9e94f9c"
alt="table_with_inline_links_and_images" /></p>
<h1>Prettier GitHub links</h1>
<p>We also introduced a change so that GitHub links inside tables that
reference issues, discussions or PRs will be shown in its shortened
form, similar to how GitHub itself present the links on issue
descriptions: <code>owner/repo#123</code>.</p>
<p><img
src="https://github.com/user-attachments/assets/8adb2498-a361-4749-8e98-02f17d4f9062"
alt="table_with_footer_auto_links_short" /></p>
<h1>Extra</h1>
<p>Also, we introduced <code>WithTableWrap</code>, so you can disable
table text wrapping if really want:</p>
<pre lang="go"><code>r, err :=
glamour.NewTermRenderer(glamour.WithTableWrap(false))
if err != nil { ... }
<p>out, err := r.RenderBytes(in)<br />
if err != nil { ... }</p>
<p>fmt.Fprintf(os.Stdout, &quot;%s\n&quot;, out)<br />
</code></pre></p>
<h2>Changelog</h2>
<h3>New Features</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/charmbracelet/glamour/commit/05ee9b5f4dcf3e4426c4ba41e1f9d7ea4f34d603"><code>05ee9b5</code></a>
v0.10.0</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/c9af0458d403e584402ff683e0e8403a194d73d3"><code>c9af045</code></a>
feat(tables): format github links inside tables in a more readable
manner</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/f2eb484a992f6a31bad968205b6d63719b8c7fa2"><code>f2eb484</code></a>
feat: add autolink package with patterns for more readable github
urls</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/9d873734c11cf9d1e29853643a751624042df3b0"><code>9d87373</code></a>
feat(table): pad position on table link list</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/a11e9a0c3a66a55d411a0aa4dcd6685d4ba9d823"><code>a11e9a0</code></a>
feat(table): show position of link also inside the table</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/42f47a22f34bbbf73421210e7aff4f6438ffd052"><code>42f47a2</code></a>
feat(table): prefix all links with the position in the footer</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/61cfc45c6bcd582a4d0ca810690d668f276ede13"><code>61cfc45</code></a>
feat(table): add ability to render links at the bottom</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/5437e4a1a7dfc095a4afe063feaab079ab5a9629"><code>5437e4a</code></a>
fix: ensure that prop is always cleared</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/60534f9196f23ed0849ba1ac05df41325d8968b5"><code>60534f9</code></a>
chore(deps): bump golang.org/x/term from 0.30.0 to 0.31.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/418">#418</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/606f55a8d8fe2adc7251ad2e269fe9f4a32a0172"><code>606f55a</code></a>
chore(deps): bump golang.org/x/text from 0.23.0 to 0.24.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/419">#419</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/charmbracelet/glamour/compare/v0.9.1...v0.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/charmbracelet/glamour&package-manager=go_modules&previous-version=0.9.1&new-version=0.10.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 16:06:47 +00:00
Bruno Quaresma 6c1f0d42dd fix: fix empty workspaces result (#17484)
After refactoring the workspaces table to use the new table
components://github.com/coder/coder/pull/17404), the empty styles got
broken. You can see the related PR
[here](https://github.com/coder/coder/pull/17404).

Before:

![image](https://github.com/user-attachments/assets/9592d65c-9a63-4d22-8a01-8a1ce174422e)

After:
<img width="1210" alt="Screenshot 2025-04-21 at 10 34 19"
src="https://github.com/user-attachments/assets/6545d078-80f1-4251-8816-04eb0f41e848"
/>
2025-04-21 10:45:26 -03:00
dependabot[bot] a1925bccd7 chore: bump github.com/coder/terraform-provider-coder/v2 from 2.4.0-pre0 to 2.4.0-pre1 (#17483)
Bumps
[github.com/coder/terraform-provider-coder/v2](https://github.com/coder/terraform-provider-coder)
from 2.4.0-pre0 to 2.4.0-pre1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coder/terraform-provider-coder/releases">github.com/coder/terraform-provider-coder/v2's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.0-pre1</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add the option to debug the coder terraform provider by <a
href="https://github.com/SasSwart"><code>@​SasSwart</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/378">coder/terraform-provider-coder#378</a></li>
<li>chore: enhance parameter validation error messages by <a
href="https://github.com/Emyrk"><code>@​Emyrk</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/379">coder/terraform-provider-coder#379</a></li>
<li>chore: update to go 1.24.1 by <a
href="https://github.com/johnstcn"><code>@​johnstcn</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/382">coder/terraform-provider-coder#382</a></li>
<li>build(deps): Bump golang.org/x/crypto from 0.33.0 to 0.35.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/coder/terraform-provider-coder/pull/380">coder/terraform-provider-coder#380</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.4.0-pre0...v2.4.0-pre1">https://github.com/coder/terraform-provider-coder/compare/v2.4.0-pre0...v2.4.0-pre1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/e51ae3aff8c4c0c3c0559841fabb59eafea1f86a"><code>e51ae3a</code></a>
build(deps): Bump golang.org/x/crypto from 0.33.0 to 0.35.0 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/380">#380</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/e40c9b9278ad0a7574bbeb067e2119f850b0df5c"><code>e40c9b9</code></a>
chore: update to go 1.24.2 (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/382">#382</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/f66adaca2adfb6b19108200483855c4023fcc982"><code>f66adac</code></a>
chore: enhance parameter validation error messages (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/379">#379</a>)</li>
<li><a
href="https://github.com/coder/terraform-provider-coder/commit/53a68cd7496371d6f325f9c7bd8c6808069c4664"><code>53a68cd</code></a>
feat: add the option to debug the coder terraform provider (<a
href="https://redirect.github.com/coder/terraform-provider-coder/issues/378">#378</a>)</li>
<li>See full diff in <a
href="https://github.com/coder/terraform-provider-coder/compare/v2.4.0-pre0...v2.4.0-pre1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coder/terraform-provider-coder/v2&package-manager=go_modules&previous-version=2.4.0-pre0&new-version=2.4.0-pre1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 12:59:04 +00:00
dependabot[bot] 54b2b7a689 chore: bump github.com/mark3labs/mcp-go from 0.20.1 to 0.22.0 (#17482)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.20.1 to 0.22.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.22.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: add mutex to SSEServer to avoid data race between Start and
Shutdown; fix test error on Windows (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/166">#166</a>
<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/172">#172</a>)
by <a href="https://github.com/Wood-Q"><code>@​Wood-Q</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/170">mark3labs/mcp-go#170</a></li>
<li>feat(server): convert ping messages to be spec compliant by <a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/169">mark3labs/mcp-go#169</a></li>
<li>feat: Implement Streamable-HTTP Client Basic by <a
href="https://github.com/leavez"><code>@​leavez</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/168">mark3labs/mcp-go#168</a></li>
<li>feat:Added the parameter parsing mode to parse any to the specified
type by <a href="https://github.com/hl540"><code>@​hl540</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/148">mark3labs/mcp-go#148</a></li>
<li>Add RemoveResource method to MCPServer by <a
href="https://github.com/isaacphi"><code>@​isaacphi</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/141">mark3labs/mcp-go#141</a></li>
<li>feat: add message to ProgressNotification by <a
href="https://github.com/xhdd123321"><code>@​xhdd123321</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/119">mark3labs/mcp-go#119</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Wood-Q"><code>@​Wood-Q</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/170">mark3labs/mcp-go#170</a></li>
<li><a
href="https://github.com/robert-jackson-glean"><code>@​robert-jackson-glean</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/169">mark3labs/mcp-go#169</a></li>
<li><a href="https://github.com/hl540"><code>@​hl540</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/148">mark3labs/mcp-go#148</a></li>
<li><a href="https://github.com/isaacphi"><code>@​isaacphi</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/141">mark3labs/mcp-go#141</a></li>
<li><a
href="https://github.com/xhdd123321"><code>@​xhdd123321</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/119">mark3labs/mcp-go#119</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.21.1...v0.22.0">https://github.com/mark3labs/mcp-go/compare/v0.21.1...v0.22.0</a></p>
<h2>Release v0.21.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: tool annotation by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/165">mark3labs/mcp-go#165</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.21.0...v0.21.1">https://github.com/mark3labs/mcp-go/compare/v0.21.0...v0.21.1</a></p>
<h2>Release v0.21.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add DefaultArray by <a
href="https://github.com/tiborvass"><code>@​tiborvass</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/67">mark3labs/mcp-go#67</a></li>
<li>Unified Client Transport Layer for Streamable HTTP Support by <a
href="https://github.com/leavez"><code>@​leavez</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/114">mark3labs/mcp-go#114</a></li>
<li>fix(tools): add <code>omitempty</code> to properties by <a
href="https://github.com/jkoelker"><code>@​jkoelker</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/116">mark3labs/mcp-go#116</a></li>
<li>new feat: tool annotation by <a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/158">mark3labs/mcp-go#158</a></li>
<li>introduce NewToolResultErrorWithErr and update docs by <a
href="https://github.com/deviantony"><code>@​deviantony</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/140">mark3labs/mcp-go#140</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/tiborvass"><code>@​tiborvass</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/67">mark3labs/mcp-go#67</a></li>
<li><a href="https://github.com/leavez"><code>@​leavez</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/114">mark3labs/mcp-go#114</a></li>
<li><a
href="https://github.com/dugenkui03"><code>@​dugenkui03</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/158">mark3labs/mcp-go#158</a></li>
<li><a
href="https://github.com/deviantony"><code>@​deviantony</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/140">mark3labs/mcp-go#140</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.20.1...v0.21.0">https://github.com/mark3labs/mcp-go/compare/v0.20.1...v0.21.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/013c0472999e4cf5092a5c59966e081c0f8a9ea3"><code>013c047</code></a>
Use correct mutex</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/5378d0fc7d24957b72eb11d16eede5114c52c99e"><code>5378d0f</code></a>
feat: add message to ProgressNotification (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/119">#119</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/79a0ac0746186d1984f52a28ee2f7fac95ecbf53"><code>79a0ac0</code></a>
Add RemoveResource method to MCPServer (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/141">#141</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/0448984faa43f51a5c2da24b6ca7c6de392d025c"><code>0448984</code></a>
feat:Added the parameter parsing mode to parse any to the specified type
(<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/148">#148</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/dd3210c24230aa2b26c7cfb4f85fdce3197698f8"><code>dd3210c</code></a>
feat: Implement Streamable-HTTP Client Basic (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/168">#168</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/8c0f2be0e36beeac97644ea440f583cbbfe6772d"><code>8c0f2be</code></a>
feat(server): convert ping messages to be spec compliant (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/169">#169</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d3c77dfa96811eb9de24087b4fedcbeba7782ac3"><code>d3c77df</code></a>
fix: add mutex to SSEServer to avoid data race between Start and
Shutdown; fi...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/71b910bee8fee098e3412177dac8548453eee5c0"><code>71b910b</code></a>
fix: tool annotation (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/165">#165</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/37ac814a6010484d409bef15f6f4b015f486bdaa"><code>37ac814</code></a>
introduce NewToolResultErrorWithErr and update docs (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/140">#140</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/3fa49a8e7593122bc9a361214846a6e1e8f69116"><code>3fa49a8</code></a>
new feature: add tool annnotation (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/158">#158</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.20.1...v0.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.20.1&new-version=0.22.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 12:41:07 +00:00
dependabot[bot] b62335ea39 chore: bump github.com/moby/moby from 28.0.0+incompatible to 28.1.1+incompatible (#17477)
Bumps [github.com/moby/moby](https://github.com/moby/moby) from
28.0.0+incompatible to 28.1.1+incompatible.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>v28.1.1</h2>
<h2>28.1.1</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.1.1">docker/cli,
28.1.1 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.1.1">moby/moby,
28.1.1 milestone</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Fix <code>dockerd-rootless-setuptool.sh</code> incorrectly reporting
missing <code>iptables</code>. <a
href="https://redirect.github.com/moby/moby/pull/49833">moby/moby#49833</a></li>
<li>containerd image store: Fix a potential daemon crash when using
<code>docker load</code> with archives containing zero-size tar headers.
<a
href="https://redirect.github.com/moby/moby/pull/49837">moby/moby#49837</a></li>
</ul>
<h3>Packaging updates</h3>
<ul>
<li>Update Buildx to <a
href="https://github.com/docker/buildx/releases/tag/v0.23.0">v0.23.0</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1185">docker/docker-ce-packaging#1185</a></li>
<li>Update Compose to <a
href="https://github.com/docker/compose/releases/tag/v2.35.1">v2.35.1</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/1188">docker/docker-ce-packaging#1188</a></li>
</ul>
<h3>Networking</h3>
<ul>
<li>Add a warning to a container's <code>/etc/resolv.conf</code> when no
upstream DNS servers were found. <a
href="https://redirect.github.com/moby/moby/pull/49827">moby/moby#49827</a></li>
</ul>
<h2>v28.1.0</h2>
<h2>28.1.0</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A28.1.0">docker/cli,
28.1.0 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A28.1.0">moby/moby,
28.1.0 milestone</a></li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v28.1.0/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<h3>New</h3>
<ul>
<li>Add <code>docker bake</code> sub-command as alias for <code>docker
buildx bake</code>. <a
href="https://redirect.github.com/docker/cli/pull/5947">docker/cli#5947</a></li>
<li>Experimental: add a new <code>--use-api-socket</code> flag on
<code>docker run</code> and <code>docker create</code> to enable access
to Docker socket from inside a container and to share credentials from
the host with the container. <a
href="https://redirect.github.com/docker/cli/pull/5858">docker/cli#5858</a></li>
<li><code>docker image inspect</code> now supports a
<code>--platform</code> flag to inspect a specific platform of a
multi-platform image. <a
href="https://redirect.github.com/docker/cli/pull/5934">docker/cli#5934</a></li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Add CLI shell-completion for context names. <a
href="https://redirect.github.com/docker/cli/pull/6016">docker/cli#6016</a></li>
<li>Fix <code>docker images --tree</code> not including non-container
images content size in the total image content size. <a
href="https://redirect.github.com/docker/cli/pull/6000">docker/cli#6000</a></li>
<li>Fix <code>docker load</code> not preserving replaced images. <a
href="https://redirect.github.com/moby/moby/pull/49650">moby/moby#49650</a></li>
<li>Fix <code>docker login</code> hints when logging in to a custom
registry. <a
href="https://redirect.github.com/docker/cli/pull/6015">docker/cli#6015</a></li>
<li>Fix <code>docker stats</code> not working properly on machines with
high CPU core count. <a
href="https://redirect.github.com/moby/moby/pull/49734">moby/moby#49734</a></li>
<li>Fix a regression causing <code>docker pull/push</code> to fail when
interacting with a private repository. <a
href="https://redirect.github.com/docker/cli/pull/5964">docker/cli#5964</a></li>
<li>Fix an issue preventing rootless Docker setup on a host with no
<code>ip_tables</code> kernel module. <a
href="https://redirect.github.com/moby/moby/pull/49727">moby/moby#49727</a></li>
<li>Fix an issue that could lead to unwanted iptables rules being
restored and never deleted following a firewalld reload. <a
href="https://redirect.github.com/moby/moby/pull/49728">moby/moby#49728</a></li>
<li>Improve CLI completion of <code>docker service scale</code>. <a
href="https://redirect.github.com/docker/cli/pull/5968">docker/cli#5968</a></li>
<li><code>docker images --tree</code> now hides both untagged and
dangling images by default. <a
href="https://redirect.github.com/docker/cli/pull/5924">docker/cli#5924</a></li>
<li><code>docker system info</code> will provide an exit code if a
connection cannot be established to the Docker daemon. <a
href="https://redirect.github.com/docker/cli/pull/5918">docker/cli#5918</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/01f442b84d6a669c1e335b800d4670997cd5aa93"><code>01f442b</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/49588">#49588</a>
from thaJeztah/bump_go_build_tags</li>
<li><a
href="https://github.com/moby/moby/commit/e03c0f03e7178cb4b9e927ffaeea73f228a7ad45"><code>e03c0f0</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/49834">#49834</a>
from thaJeztah/cleanup_ignore</li>
<li><a
href="https://github.com/moby/moby/commit/8dde918e774b73971544b1e43586870e8e4acfeb"><code>8dde918</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/49837">#49837</a>
from thaJeztah/bump_containerd_2.0.5</li>
<li><a
href="https://github.com/moby/moby/commit/e70ce7a35b94b0915dae5ba356a69d07ded2fd46"><code>e70ce7a</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/49833">#49833</a>
from vvoland/rootless-iptables-check</li>
<li><a
href="https://github.com/moby/moby/commit/fc8361c0784a8a29347633d0b8f2280e57068078"><code>fc8361c</code></a>
vendor: github.com/containerd/containerd v2.0.5</li>
<li><a
href="https://github.com/moby/moby/commit/62f51e43670ffd1aa18672909cfa9e4300a2ab13"><code>62f51e4</code></a>
vendor: golang.org/x/oauth2 v0.29.0</li>
<li><a
href="https://github.com/moby/moby/commit/bbbb0036df25d56766bc5ce869080bdf0265e511"><code>bbbb003</code></a>
cleanup ignore files</li>
<li><a
href="https://github.com/moby/moby/commit/ead379a46457986eadf07273fedec378e87e515f"><code>ead379a</code></a>
contrib/rootless-setuptool: Fix iptables detection</li>
<li><a
href="https://github.com/moby/moby/commit/7c52c4d92e4fe584e2d25209a54c7d07c24baee1"><code>7c52c4d</code></a>
update go:build tags to go1.23 to align with vendor.mod</li>
<li><a
href="https://github.com/moby/moby/commit/6573a13e4adf5d9d3b2e0ab4e44ade244dd3c798"><code>6573a13</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/49827">#49827</a>
from robmry/warn_no_ext_nameservers</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v28.0.0...v28.1.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=28.0.0+incompatible&new-version=28.1.1+incompatible)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-21 12:17:43 +00:00
Spike Curtis 345435a04c feat: modify coordinators to send errors and peers to log them (#17467)
Adds support to our coordinator implementations to send Error updates before disconnecting clients.

I was recently debugging a connection issue where the client was getting repeatedly disconnected from the Coordinator, but since we never send any error information it was really hard without server logs.

This PR aims to correct that, by sending a CoordinateResponse with `Error` set in cases where we disconnect a client without them asking us to.

It also logs the error whenever we get one in the client controller.
2025-04-21 11:40:56 +04:00
Jaayden Halko ea017a1de8 feat: add textarea component and placeholders for dynamic parameters component (#17466)
- Hooks up the textarea component
- Adds placeholders for dropdown, input and multi-select combobox

---------

Co-authored-by: brettkolodny <brettkolodny@gmail.com>
2025-04-18 10:51:32 -04:00
Jaayden Halko 41b2165b47 feat: add textarea component (#17465)
This adds the shadcn textarea component along with storybook stories

Figma:
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=1949-13239&t=NSt5S88hAsE4Q9di-1

<img width="612" alt="Screenshot 2025-04-18 at 12 16 57"
src="https://github.com/user-attachments/assets/dcd0281f-5d80-4047-9ba4-e456290ceb61"
/>
2025-04-18 10:43:07 -04:00
Ethan 6e0e29af13 chore: add agent query parameter to VSCodeDevContainerButton (#17464)
This is less work for the VSCode extension to do, and since the
workspace is running, we'll always know what agent to use.
2025-04-18 06:07:16 +00:00
ケイラ 03890aa904 chore: add jj to dogfood (#17434) 2025-04-17 16:08:51 -06:00
ケイラ 5f0ce7f543 fix: update url for parameters websocket endpoint (#17462) 2025-04-17 17:01:44 -05:00
ケイラ 2cc56ab515 chore: fill out workspace owner data for dynamic parameters (#17366) 2025-04-17 14:51:50 -06:00
Steven Masley ea65ddc17d fix: correct user roles being passed into terraform context (#17460)
Roles were being passed into the workspace context incorrectly. Site
wide scopes were being org scoped. Roles outside the org should also not
be sent.
2025-04-17 15:42:23 -05:00
Jaayden Halko 90eacc17de fix: fix issues with dynamic parameters in the state (#17459) 2025-04-17 16:16:08 -04:00
Yevhenii Shcherbina 183146e2c9 fix: add minor fix to reconciliation loop (#17454)
Follow-up PR to https://github.com/coder/coder/pull/17261
I noticed that 1 metrics-related test fails in `dk/prebuilds` after
merging my PR into `dk/prebuilds`.
2025-04-17 13:43:24 -04:00
ケイラ 144c60dd87 chore: upgrade fish to v4 (#17440) 2025-04-17 11:17:09 -06:00
Jaayden Halko 8723fe99f5 feat: add slider to dynamic parameters (#17453)
This adds the slider to the dynamic parameters component and does some
additional styling cleanup for the dynamic parameters form

<img width="630" alt="Screenshot 2025-04-17 at 16 54 05"
src="https://github.com/user-attachments/assets/1640e8df-7483-4275-99ee-682ff6218658"
/>
2025-04-17 12:40:37 -04:00
Bruno Quaresma 5e4050e529 chore: fix additional storybook flakes (#17450)
Fix new storybook flakes catch by
https://www.chromatic.com/test?appId=624de63c6aacee003aa84340&id=680107825818a9747e57236c
2025-04-17 11:08:13 -03:00
Bruno Quaresma c8edadae10 refactor: redesign workspace status on workspaces table (#17425)
Closes https://github.com/coder/coder/issues/17310

**Before:**
<img width="1624" alt="Screenshot 2025-04-16 at 11 49 52"
src="https://github.com/user-attachments/assets/4fb6c8e5-329f-476f-99bb-192c0f9562a2"
/>

**After:**
<img width="1624" alt="Screenshot 2025-04-16 at 11 49 19"
src="https://github.com/user-attachments/assets/c7025fee-fefd-4064-9101-d7a1b364dd80"
/>

**Notice!**
- I've create a new size variation for the badge, `xs`. Since we reduced
the line-height for the `text-xs` to be 16px instead of 18px, having a
smaller badge, reducing the vertical size and horizontal paddings, just
worked better.
- I have to update Figma to reflect these changes. I tried, but I was
not able to get it working and updated correctly. I'm going to take a
pause during this week to learn that.
- Updated the destructive, and warning badges to use borders as defined
in the designs
[here](https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=489-3472&t=gfnYeLOIFUqHx6qv-0).
2025-04-17 10:57:02 -03:00
Bruno Quaresma aa02c9ffb8 chore: reduce storybook flakes (#17427)
A few storybook tests have been false positives quite frequently. To
reduce this noise, I'm implementing a few hacks to avoid that. We can
always rollback these changes if we notice they were leading to a lack
in the tests.
2025-04-17 10:48:23 -03:00
Yevhenii Shcherbina 27bc60d1b9 feat: implement reconciliation loop (#17261)
Closes https://github.com/coder/internal/issues/510

<details>
<summary> Refactoring Summary </summary>

### 1) `CalculateActions` Function

#### Issues Before Refactoring:

- Large function (~150 lines), making it difficult to read and maintain.
- The control flow is hard to follow due to complex conditional logic.
- The `ReconciliationActions` struct was partially initialized early,
then mutated in multiple places, making the flow error-prone.

Original source:  

https://github.com/coder/coder/blob/fe60b569ad754245e28bac71e0ef3c83536631bb/coderd/prebuilds/state.go#L13-L167

#### Improvements After Refactoring:

- Simplified and broken down into smaller, focused helper methods.
- The flow of the function is now more linear and easier to understand.
- Struct initialization is cleaner, avoiding partial and incremental
mutations.

Refactored function:  

https://github.com/coder/coder/blob/eeb0407d783cdda71ec2418c113f325542c47b1c/coderd/prebuilds/state.go#L67-L84

---

### 2) `ReconciliationActions` Struct

#### Issues Before Refactoring:

- The struct mixed both actionable decisions and diagnostic state, which
blurred its purpose.
- It was unclear which fields were necessary for reconciliation logic,
and which were purely for logging/observability.

#### Improvements After Refactoring:

- Split into two clear, purpose-specific structs:
- **`ReconciliationActions`** — defines the intended reconciliation
action.
- **`ReconciliationState`** — captures runtime state and metadata,
primarily for logging and diagnostics.

Original struct:  

https://github.com/coder/coder/blob/fe60b569ad754245e28bac71e0ef3c83536631bb/coderd/prebuilds/reconcile.go#L29-L41

</details>

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Sas Swart <sas.swart.cdk@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Dean Sheather <dean@deansheather.com>
Co-authored-by: Spike Curtis <spike@coder.com>
Co-authored-by: Danny Kopping <danny@coder.com>
2025-04-17 09:29:29 -04:00
Cian Johnston 6a79965948 fix(agent/agentcontainers): handle race between docker ps and docker inspect (#17447)
Fixes https://github.com/coder/internal/issues/586#event-17291038671
2025-04-17 13:50:51 +01:00
Spike Curtis b3aba6dab7 test: ignore context.Canceled in acquireWithCancel (#17448)
fixes https://github.com/coder/internal/issues/584

Ignore canceled error when sending an acquired job, since dRPC is racy and will sometimes return this error even after successfully sending the job, if the test is quickly finished.
2025-04-17 16:17:19 +04:00
Michael Suchacz daafa0d689 chore: add missing prometheus tests for UNKNOWN/STATIC paths (#17446) 2025-04-17 13:50:18 +02:00
Jaayden Halko 67a912796a feat: add slider component (#17431)
The slider component is part of the components supported by Dynamic
Parameters

There are no Figma designs for the slider component. This is based on
the shadcn slider.

<img width="474" alt="Screenshot 2025-04-16 at 19 26 11"
src="https://github.com/user-attachments/assets/87370a22-4984-48f7-875b-105568739003"
/>
2025-04-17 06:27:18 -04:00
Spike Curtis 9fe3fd4e28 chore: change config-ssh Call to Action to use suffix (#17445)
fixes #16828

With all the recent changes, I believe it is now safe to change the Call to Action for `config-ssh` to use the hostname suffix rather than prefix if it was set.
2025-04-17 12:16:29 +04:00
Spike Curtis b0854aa971 feat: modify config-ssh to check for Coder Connect (#17419)
relates to #16828

Changes SSH config so that suffixes only match if Coder Connect is not running / available. This means that we will use the existing Coder Connect tunnel if it is available, rather than creating a new tunnel via `coder ssh --stdio`.
2025-04-17 12:04:00 +04:00
Spike Curtis 3b54254177 feat: add coder connect exists hidden subcommand (#17418)
Adds a new hidden subcommand `coder connect exists <hostname>` that checks if the name exists via Coder Connect. This will be used in SSH config to match only if Coder Connect is unavailable for the hostname in question, so that the SSH client will directly dial the workspace over an existing Coder Connect tunnel.

Also refactors the way we inject a test DNS resolver into the lookup functions so that we can test from outside the `workspacesdk` package.
2025-04-17 11:23:24 +04:00
M Atif Ali 6f5da1e2ee chore: add windsurf icon (#17443) 2025-04-17 07:09:46 +00:00
Steven Masley 0bc49ff5ae test: fix flake in TestRoleSyncTable with test cases sharing resources (#17441)
The test case definition shares maps that can have concurrent access if run in parallel.
2025-04-17 00:14:11 +00:00
ケイラ 7f6e5139eb chore: format code (#17438) 2025-04-16 17:21:14 -06:00
Steven Masley 2e5cd299f2 chore: load 'assign_default' value from legacy value (#17428)
If this value was set before v2.19.0, then assign_default was in a json
field that would not match. And it would default to `false`. This
corrects that.
2025-04-16 15:55:37 -05:00
Steven Masley c4d3dd2791 chore: prevent null loading sync settings (#17430)
Nulls passed to the frontend caused a page to fail to load.

`Record<string,string>` can be `nil` in golang
2025-04-16 14:39:57 -05:00
Eric Paulsen d20966d500 chore: update go to 1.24.2 (#17356)
this updates `go` to the latest stable patch version `1.24.2` in:
- `go.mod`
- `dogfood/coder/Dockerfile`
- `.github/actions/setup-go/action.yaml`
- `flake.nix`

written with the assistance of ClaudeCode.

---------

Co-authored-by: Thomas Kosiewski <tk@coder.com>
2025-04-16 11:11:02 -07:00
Jaayden Halko a8c2586404 feat: implement UI for top level dynamic parameters diagnostics (#17394)
<img width="672" alt="Screenshot 2025-04-14 at 21 31 11"
src="https://github.com/user-attachments/assets/5ca25c9d-e82e-4d52-8c43-91e4dc31117d"
/>
2025-04-16 13:00:56 -04:00
Jaayden Halko 3d787da83b feat: setup connection to dynamic parameters websocket (#17393)
resolves coder/preview#57
2025-04-16 12:49:18 -04:00
ケイラ f670bc31f5 chore: update testutil chan helpers (#17408) 2025-04-16 10:37:09 -06:00
ケイラ 2a76f5028e fix: don't attempt to insert empty terraform plans into the database (#17426) 2025-04-16 10:14:35 -06:00
dependabot[bot] feb1a3dc02 chore: bump github.com/mark3labs/mcp-go from 0.17.0 to 0.20.0 (#17380)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.17.0 to 0.20.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.20.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add ping for sse server by <a
href="https://github.com/lcgash"><code>@​lcgash</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/80">mark3labs/mcp-go#80</a></li>
<li>fix(client): allow interface to be implemented by <a
href="https://github.com/jkoelker"><code>@​jkoelker</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/135">mark3labs/mcp-go#135</a></li>
<li>feat: Tool Handler Middleware by <a
href="https://github.com/wimspaargaren"><code>@​wimspaargaren</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/123">mark3labs/mcp-go#123</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lcgash"><code>@​lcgash</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/80">mark3labs/mcp-go#80</a></li>
<li><a href="https://github.com/jkoelker"><code>@​jkoelker</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/135">mark3labs/mcp-go#135</a></li>
<li><a
href="https://github.com/wimspaargaren"><code>@​wimspaargaren</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/123">mark3labs/mcp-go#123</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.19.0...v0.20.0">https://github.com/mark3labs/mcp-go/compare/v0.19.0...v0.20.0</a></p>
<h2>Release v0.19.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: SSE client hangs after 30 seconds by <a
href="https://github.com/mrene"><code>@​mrene</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/88">mark3labs/mcp-go#88</a></li>
<li>fix: change the default SSE endpoint to match the standard one used
in the official servers by <a
href="https://github.com/deadprogram"><code>@​deadprogram</code></a> in
<a
href="https://redirect.github.com/mark3labs/mcp-go/pull/91">mark3labs/mcp-go#91</a></li>
<li>fix: mcp-client should also include configurable http headers in the
/sse request by <a
href="https://github.com/kagezhao"><code>@​kagezhao</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/100">mark3labs/mcp-go#100</a></li>
<li>feat: use defer processing error by <a
href="https://github.com/songzhibin97"><code>@​songzhibin97</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/98">mark3labs/mcp-go#98</a></li>
<li>Feature/pagination functionality by <a
href="https://github.com/Jinlkj"><code>@​Jinlkj</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/107">mark3labs/mcp-go#107</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mrene"><code>@​mrene</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/88">mark3labs/mcp-go#88</a></li>
<li><a
href="https://github.com/deadprogram"><code>@​deadprogram</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/91">mark3labs/mcp-go#91</a></li>
<li><a href="https://github.com/kagezhao"><code>@​kagezhao</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/100">mark3labs/mcp-go#100</a></li>
<li><a
href="https://github.com/songzhibin97"><code>@​songzhibin97</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/98">mark3labs/mcp-go#98</a></li>
<li><a href="https://github.com/Jinlkj"><code>@​Jinlkj</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/107">mark3labs/mcp-go#107</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.18.0...v0.19.0">https://github.com/mark3labs/mcp-go/compare/v0.18.0...v0.19.0</a></p>
<h2>Release v0.18.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add NewToolResultError by <a
href="https://github.com/daimatz"><code>@​daimatz</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/87">mark3labs/mcp-go#87</a></li>
<li>refactor(stdio): improve stdio server message handling by <a
href="https://github.com/winterfx"><code>@​winterfx</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/73">mark3labs/mcp-go#73</a></li>
<li>Add Stderr() Method to StdioMCPClient by <a
href="https://github.com/mashiike"><code>@​mashiike</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/72">mark3labs/mcp-go#72</a></li>
<li>fix java mcp message endpoint by <a
href="https://github.com/a67793581"><code>@​a67793581</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/75">mark3labs/mcp-go#75</a></li>
<li>simplify required field handling in inputSchema by <a
href="https://github.com/yikakia"><code>@​yikakia</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/82">mark3labs/mcp-go#82</a></li>
<li>make context available in hooks, add OnRegisterSession hook by <a
href="https://github.com/zahmadsaleem"><code>@​zahmadsaleem</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/92">mark3labs/mcp-go#92</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/daimatz"><code>@​daimatz</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/87">mark3labs/mcp-go#87</a></li>
<li><a href="https://github.com/winterfx"><code>@​winterfx</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/73">mark3labs/mcp-go#73</a></li>
<li><a href="https://github.com/mashiike"><code>@​mashiike</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/72">mark3labs/mcp-go#72</a></li>
<li><a href="https://github.com/yikakia"><code>@​yikakia</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/82">mark3labs/mcp-go#82</a></li>
<li><a
href="https://github.com/zahmadsaleem"><code>@​zahmadsaleem</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/92">mark3labs/mcp-go#92</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.18.0">https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.18.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/b8dc82de3e48d514d6ceac39aa5019064f437a53"><code>b8dc82d</code></a>
feat: Tool Handler Middleware (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/123">#123</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6b923f677470564750cabbda1bb128912a735191"><code>6b923f6</code></a>
fix(client): allow interface to be implemented (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/135">#135</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/cc777fcbf3176d0e76634f58047707d1f666cae8"><code>cc777fc</code></a>
feat: add ping for sse server (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/80">#80</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/c7390feedf888e30cb29a1262a8827e3cd77b0e3"><code>c7390fe</code></a>
Feature/pagination functionality (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/107">#107</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/62cdf7131a59d291eb26f8172a4ecf1e8daefe7c"><code>62cdf71</code></a>
feat: use defer processing error (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/98">#98</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/1b7e34cc02be41251bdd4e6d5c2ccdfd0ba6f5d4"><code>1b7e34c</code></a>
mcp-client should also include configurable http headers in the /sse
request ...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/d1e5f33feb16ee870198d462a4226e17a9eb57ce"><code>d1e5f33</code></a>
fix: make the default sse endpoint match the standard one used in the
officia...</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/f3149bfa6cc0b79e231f39214b76030ae0973409"><code>f3149bf</code></a>
fix: remove sse read timeout to avoid ignoring future sse messages (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/88">#88</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a0e968a752722d87063eb36ea0d55938e752f6dd"><code>a0e968a</code></a>
feat: add context to hooks (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/92">#92</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/607d6c29bb8f56bc30e3154e99e58da1db78fcb9"><code>607d6c2</code></a>
simplify required field handling in inputSchema (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/82">#82</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.20.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.17.0&new-version=0.20.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-16 14:56:12 +00:00
M Atif Ali 99979a78f5 docs: update jfrog-artifactory integration docs (#17413) 2025-04-16 19:48:26 +05:00
Steven Masley 669e790df6 test: add unit test to excercise bug when idp sync hits deleted orgs (#17405)
Deleted organizations are still attempting to sync members. This causes
an error on inserting the member, and would likely cause issues later in
the sync process even if that member is inserted. Deleted orgs should be
skipped.
2025-04-16 09:27:35 -05:00
Sas Swart 64172d374f fix: set preset parameters in the API rather than the frontend (#17403)
Follow-up from a [previous Pull
Request](https://github.com/coder/coder/pull/16965) required some
additional testing of Presets from the API perspective.

In the process of adding the new tests, I updated the API to enforce
preset parameter values based on the selected preset instead of trusting
whichever frontend makes the request. This avoids errors scenarios in
prebuilds where a prebuild might expect a certain preset but find a
different set of actual parameter values.
2025-04-16 15:54:06 +02:00
Borg93 d78215cdcb chore(site): add mlflow, lakefs and argo logos (#17332) 2025-04-16 11:25:02 +00:00
Spike Curtis b7cd545d0a test: fix TestConfigSSH_FileWriteAndOptionsFlow on Windows 11 24H2 (#17410)
Fixes tests on Windows 11 due to `printf` not being a recognized command name.
2025-04-16 14:29:45 +04:00
Aaron Lehmann 8cc743a812 chore: clarify error variable name in doAttach (#17284) 2025-04-16 14:44:33 +05:00
Michael Suchacz f8971bb3cc feat: add path & method labels to prometheus metrics for current requests (#17362)
Closes: #17212
2025-04-16 11:10:39 +02:00
Jaayden Halko 1db70bef5d feat: create dynamic parameter component (#17351)
- Create DynamicParameter component and test with locally run preview
websocket.
- Adapt CreateWorkspacePageExperimental to work with PreviewParameter
instead of TemplateVersionParameter
- Small changes to checkbox, multi-select combobox and radiogroup

The websocket implementation is temporary for testing purpose with a
locally run preview websocket
2025-04-16 05:00:25 -04:00
Steven Masley a7646d1524 chore: disable authz-header in all builds (#17409)
Header payload being large is causing some issues in dev builds. Another
method of opting in needs to be determined
2025-04-16 01:22:21 +00:00
brettkolodny 70b113de7b feat: add edit-role within user command (#17341) 2025-04-15 18:30:20 -04:00
Kyle Carberry 57ddb3c615 fix: update ai code prompt parameter in start-workspace.yaml 2025-04-15 15:15:00 -04:00
Kyle Carberry 362dcfefdd fix: update start-workspace.yaml for dev.coder.com (#17407)
I added the secrets and removed the aidev env secrets.
2025-04-15 15:10:30 -04:00
Edward Angert 0cd531dd33 docs: document workspace naming rules and restrictions (#17312)
closes #12047 


[preview](https://coder.com/docs/@12047-workspace-names/user-guides/workspace-management)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-15 14:11:05 -04:00
Bruno Quaresma b0fe626250 refactor: update the workspace table design (#17404)
Related to https://github.com/coder/coder/issues/17309

**Before:**
<img width="1624" alt="Screenshot 2025-04-15 at 11 36 32"
src="https://github.com/user-attachments/assets/ecca4c22-8d9c-4ee9-8c1d-193f538a0515"
/>

**After:**
<img width="1624" alt="Screenshot 2025-04-15 at 11 36 22"
src="https://github.com/user-attachments/assets/dd95b5cb-12c0-4806-8253-9be97d5a3a8a"
/>
2025-04-15 13:52:32 -03:00
Mathias Fredriksson 00b5f56734 feat(agent/agentcontainers): add devcontainers list endpoint (#17389)
This change allows listing both predefined and runtime-detected
devcontainers, as well as showing whether or not the devcontainer is
running and which container represents it.

Fixes coder/internal#478
2025-04-15 17:53:37 +03:00
Benjamin Peinhardt c8c4de5f7a chore(dogfood): add tmux (#17397) 2025-04-15 08:26:13 -05:00
Michael Suchacz 06d39151dc feat: extend request logs with auth & DB info (#17304)
Closes #16903
2025-04-15 13:27:23 +02:00
Cian Johnston 979687c37f chore(codersdk): deprecate WorkspaceAppStatus.{NeedsUserAttention,Icon} (#17358)
https://github.com/coder/coder/pull/17163 introduced the
`workspace_app_statuses` table. Two of these fields
(`needs_user_attention`, `icon`) turned out to be surplus to
requirements.

- Removes columns `needs_user_attention` and `icon` from
`workspace_app_statuses`
- Marks the corresponding fields of `codersdk.WorkspaceAppStatus` as
deprecated.
2025-04-15 10:47:42 +01:00
Danny Kopping 95f03c561f fix: increase context timeout in TestProvisionerd/MaliciousTar to avoid flake (#17400)
Fixing a flake seen here:
https://github.com/coder/coder/actions/runs/14465389766/job/40566518088

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-04-15 09:39:23 +00:00
Danny Kopping 0b18e458f4 fix: reduce excessive logging when database is unreachable (#17363)
Fixes #17045

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-04-15 10:55:30 +02:00
Hugo Dutka 2f99d70640 fix: configure start workspace action after version upgrade (#17398)
Dependabot recently upgraded `coder/start-workspace-action` to the
latest version. Compared to the version we were using previously, the
new version expects a different configuration.
2025-04-15 12:50:57 +05:00
dependabot[bot] fa594f4f6a ci: bump the github-actions group across 1 directory with 8 updates (#17377)
Bumps the github-actions group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[step-security/harden-runner](https://github.com/step-security/harden-runner)
| `2.11.0` | `2.11.1` |
| [crate-ci/typos](https://github.com/crate-ci/typos) | `1.29.10` |
`1.31.1` |
| [actions/setup-java](https://github.com/actions/setup-java) | `4.7.0`
| `4.7.1` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99` |
`9934ab3fdf63239da75d9e0fbd339c48620c72c4` |
| [tj-actions/branch-names](https://github.com/tj-actions/branch-names)
| `8.1.0` | `8.2.1` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.28.12` | `3.28.15` |
|
[coder/start-workspace-action](https://github.com/coder/start-workspace-action)
| `26d3600161d67901f24d8612793d3b82771cde2d` |
`35a4608cefc7e8cc56573cae7c3b85304575cb72` |
|
[umbrelladocs/action-linkspector](https://github.com/umbrelladocs/action-linkspector)
| `1.3.2` | `1.3.4` |


Updates `step-security/harden-runner` from 2.11.0 to 2.11.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/step-security/harden-runner/releases">step-security/harden-runner's
releases</a>.</em></p>
<blockquote>
<h2>v2.11.1</h2>
<h2>What's Changed</h2>
<ul>
<li>cache: add support for GitHub Actions cache v2 by <a
href="https://github.com/h0x0er"><code>@​h0x0er</code></a> in <a
href="https://redirect.github.com/step-security/harden-runner/pull/529">step-security/harden-runner#529</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/step-security/harden-runner/compare/v2...v2.11.1">https://github.com/step-security/harden-runner/compare/v2...v2.11.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/step-security/harden-runner/commit/c6295a65d1254861815972266d5933fd6e532bdf"><code>c6295a6</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/530">#530</a>
from step-security/rc-19</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/3e118b145bd13a08b2e465cf3a216df0f6c7746e"><code>3e118b1</code></a>
Improve error handling</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b38e918ba8cf8d08113e53089af0d89429dcc51a"><code>b38e918</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/529">#529</a>
from h0x0er/jatin/cache-fix</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/0664d30cda4109be234d326b54ac1cc6385597a2"><code>0664d30</code></a>
cache: added support for cache v2</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/b131ca5ebfca4930fe6d4a3e82d1e386b4873c94"><code>b131ca5</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/524">#524</a>
from step-security/fix/security/GHSA-968p-4wvh-cqc8</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/2dc9579753e01c4033425fcc7b74e652b583ca50"><code>2dc9579</code></a>
Address vulnerabilities</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/f054d811b5b89fde2f954d54dc8622ec3aaab9ab"><code>f054d81</code></a>
Update README (<a
href="https://redirect.github.com/step-security/harden-runner/issues/522">#522</a>)</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/8a09271fed8277ab7fb02dbb5917c8d0e78323b4"><code>8a09271</code></a>
Update Readme (<a
href="https://redirect.github.com/step-security/harden-runner/issues/520">#520</a>)</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/6ec6af7d622602bd852df48848f3cae95c760a48"><code>6ec6af7</code></a>
Update readme (<a
href="https://redirect.github.com/step-security/harden-runner/issues/518">#518</a>)</li>
<li><a
href="https://github.com/step-security/harden-runner/commit/539365ba33fd040cf8c4db243b6f0ed3b32c3283"><code>539365b</code></a>
Merge pull request <a
href="https://redirect.github.com/step-security/harden-runner/issues/516">#516</a>
from vorburger/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/step-security/harden-runner/compare/4d991eb9b905ef189e4c376166672c3f2f230481...c6295a65d1254861815972266d5933fd6e532bdf">compare
view</a></li>
</ul>
</details>
<br />

Updates `crate-ci/typos` from 1.29.10 to 1.31.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.31.1</h2>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>v1.31.0</h2>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">March
2025</a> changes</li>
</ul>
<h2>v1.30.3</h2>
<h2>[1.30.3] - 2025-03-24</h2>
<h3>Features</h3>
<ul>
<li>Support detecting <code>go.work</code> and <code>go.work.sum</code>
files</li>
</ul>
<h2>v1.30.2</h2>
<h2>[1.30.2] - 2025-03-10</h2>
<h3>Features</h3>
<ul>
<li>Add <code>--highlight-words</code> and
<code>--highlight-identifiers</code> for easier debugging of config</li>
</ul>
<h2>v1.30.1</h2>
<h2>[1.30.1] - 2025-03-04</h2>
<h3>Features</h3>
<ul>
<li><em>(action)</em> Create <code>v1</code> tag</li>
</ul>
<h2>v1.30.0</h2>
<h2>[1.30.0] - 2025-03-01</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1221">February
2025</a> changes</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.31.1] - 2025-03-31</h2>
<h3>Fixes</h3>
<ul>
<li><em>(dict)</em> Also correct <code>typ</code> to
<code>type</code></li>
</ul>
<h2>[1.31.0] - 2025-03-28</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">March
2025</a> changes</li>
</ul>
<h2>[1.30.3] - 2025-03-24</h2>
<h3>Features</h3>
<ul>
<li>Support detecting <code>go.work</code> and <code>go.work.sum</code>
files</li>
</ul>
<h2>[1.30.2] - 2025-03-10</h2>
<h3>Features</h3>
<ul>
<li>Add <code>--highlight-words</code> and
<code>--highlight-identifiers</code> for easier debugging of config</li>
</ul>
<h2>[1.30.1] - 2025-03-04</h2>
<h3>Features</h3>
<ul>
<li><em>(action)</em> Create <code>v1</code> tag</li>
</ul>
<h2>[1.30.0] - 2025-03-01</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1221">February
2025</a> changes</li>
</ul>
<h2>[1.29.10] - 2025-02-25</h2>
<h3>Fixes</h3>
<ul>
<li>Also correct <code>contaminent</code> as
<code>contaminant</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/b1a1ef3893ff35ade0cfa71523852a49bfd05d19"><code>b1a1ef3</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9c8a2c384f9b92ac5e7166040a1571141e271e7a"><code>9c8a2c3</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/12195d75fea9498ad83cb8d85e357a986e90fb7e"><code>12195d7</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1267">#1267</a>
from epage/type</li>
<li><a
href="https://github.com/crate-ci/typos/commit/d4dbe5f77bde37609ce3424df4a713a61f87ad2b"><code>d4dbe5f</code></a>
fix(dict): Also correct typ to type</li>
<li><a
href="https://github.com/crate-ci/typos/commit/718c4ff697435edabd4f1c52c3775521adbb33a3"><code>718c4ff</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/bfbf137ed65f9abe0e9a3a92a354a787ca084240"><code>bfbf137</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/d47e90e4ffad8924461124c3b3787e220b811956"><code>d47e90e</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/0694c2a98227bebeefdfff96f2086480295d00a5"><code>0694c2a</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1266">#1266</a>
from epage/march</li>
<li><a
href="https://github.com/crate-ci/typos/commit/f715ca8b0824515b13e3e51ed80c8a255d8a7d07"><code>f715ca8</code></a>
feat(dict): March 2025 updates</li>
<li><a
href="https://github.com/crate-ci/typos/commit/d08e4083f112e684fb88f6babd9ae60a1f1cd84f"><code>d08e408</code></a>
chore: Release</li>
<li>Additional commits viewable in <a
href="https://github.com/crate-ci/typos/compare/db35ee91e80fbb447f33b0e5fbddb24d2a1a884f...b1a1ef3893ff35ade0cfa71523852a49bfd05d19">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/setup-java` from 4.7.0 to 4.7.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/setup-java/releases">actions/setup-java's
releases</a>.</em></p>
<blockquote>
<h2>v4.7.1</h2>
<h2>What's Changed</h2>
<h3>Documentation changes</h3>
<ul>
<li>Add Documentation to Recommend Using GraalVM JDK 17 Version to
17.0.12 to Align with GFTC License Terms by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-java/pull/704">actions/setup-java#704</a></li>
<li>Remove duplicated GraalVM section in documentation by <a
href="https://github.com/Marcono1234"><code>@​Marcono1234</code></a> in
<a
href="https://redirect.github.com/actions/setup-java/pull/716">actions/setup-java#716</a></li>
</ul>
<h3>Dependency updates:</h3>
<ul>
<li>Upgrade <code>@​action/cache</code> from 4.0.0 to 4.0.2 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-java/pull/766">actions/setup-java#766</a></li>
<li>Upgrade <code>@​actions/glob</code> from 0.4.0 to 0.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-java/pull/744">actions/setup-java#744</a></li>
<li>Upgrade ts-jest from 29.1.2 to 29.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/setup-java/pull/743">actions/setup-java#743</a></li>
<li>Upgrade <code>@​action/cache</code> to 4.0.3 by <a
href="https://github.com/aparnajyothi-y"><code>@​aparnajyothi-y</code></a>
in <a
href="https://redirect.github.com/actions/setup-java/pull/773">actions/setup-java#773</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/setup-java/compare/v4...v4.7.1">https://github.com/actions/setup-java/compare/v4...v4.7.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/setup-java/commit/c5195efecf7bdfc987ee8bae7a71cb8b11521c00"><code>c5195ef</code></a>
actions/cache upgrade to 4.0.3 (<a
href="https://redirect.github.com/actions/setup-java/issues/773">#773</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/dd38875f930accc291b5816356a21f72056c0b70"><code>dd38875</code></a>
Bump ts-jest from 29.1.2 to 29.2.5 (<a
href="https://redirect.github.com/actions/setup-java/issues/743">#743</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/148017a9b0c6af80330bcc5db11d1c670d2e7074"><code>148017a</code></a>
Bump <code>@​actions/glob</code> from 0.4.0 to 0.5.0 (<a
href="https://redirect.github.com/actions/setup-java/issues/744">#744</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/3b6c050358614dd082e53cdbc55580431fc4e437"><code>3b6c050</code></a>
Remove duplicated GraalVM section in documentation (<a
href="https://redirect.github.com/actions/setup-java/issues/716">#716</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/b8ebb8ba1d9655f7f159c0a8b8135606ae11b5c9"><code>b8ebb8b</code></a>
upgrade <code>@​action/cache</code> from 4.0.0 to 4.0.2 (<a
href="https://redirect.github.com/actions/setup-java/issues/766">#766</a>)</li>
<li><a
href="https://github.com/actions/setup-java/commit/799ee7c97e9721ef38d1a7e8486c39753b9d6102"><code>799ee7c</code></a>
Add Documentation to Recommend Using GraalVM JDK 17 Version to 17.0.12
to Ali...</li>
<li>See full diff in <a
href="https://github.com/actions/setup-java/compare/3a4f6e1af504cf6a31855fa899c6aa5355ba6c12...c5195efecf7bdfc987ee8bae7a71cb8b11521c00">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99 to
9934ab3fdf63239da75d9e0fbd339c48620c72c4
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.4...v46.0.5">46.0.5</a>
- (2025-04-09)</h1>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c">ed68ef8</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5">a7bc14b</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.11 to 22.14.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab">3d751f6</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump eslint-plugin-prettier from 5.2.3 to
5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f">e2fda4e</a>)
- (dependabot[bot])</li>
<li><strong>deps-dev:</strong> Bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48">0bed1b1</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump github/codeql-action from 3.28.12 to
3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb">6802458</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/branch-names from 8.0.1 to
8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792">cf2e39e</a>)
- (dependabot[bot])</li>
<li><strong>deps:</strong> Bump tj-actions/verify-changed-files from
20.0.1 to 20.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4">6abeaa5</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.4 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2511">#2511</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/6f67ee9ac810f0192ea7b3d2086406f97847bcf9">6f67ee9</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.3...v46.0.4">46.0.4</a>
- (2025-04-03)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Bug modified_keys and changed_key outputs not set when no changes
detected (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2509">#2509</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/6cb76d07bee4c9772c6882c06c37837bf82a04d3">6cb76d0</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update readme (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2508">#2508</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/b74df86ccb65173a8e33ba5492ac1a2ca6b216fd">b74df86</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">27ae6b3</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9934ab3fdf63239da75d9e0fbd339c48620c72c4"><code>9934ab3</code></a>
chore(deps-dev): bump eslint-config-prettier from 10.1.1 to 10.1.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2532">#2532</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/db731a131ccd81ed52a3d463b6d2a4b2856c7ec9"><code>db731a1</code></a>
Upgraded to v46.0.5 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2531">#2531</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/ed68ef82c095e0d48ec87eccea555d944a631a4c"><code>ed68ef8</code></a>
chore(deps): bump yaml from 2.7.0 to 2.7.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2520">#2520</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/a7bc14b808f23d3b467a4079c69a81f1a4500fd5"><code>a7bc14b</code></a>
chore(deps-dev): bump typescript from 5.8.2 to 5.8.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2516">#2516</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/3d751f6b6d84071a17e1b9cf4ed79a80a27dd0ab"><code>3d751f6</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.13.11 to 22.14.0
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2517">#2517</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/e2fda4ec3cb0bc2a353843cae823430b3124db8f"><code>e2fda4e</code></a>
chore(deps-dev): bump eslint-plugin-prettier from 5.2.3 to 5.2.6 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2519">#2519</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/0bed1b1132ec4879a39a2d624cf82a00d0bcfa48"><code>0bed1b1</code></a>
chore(deps-dev): bump ts-jest from 29.2.6 to 29.3.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2518">#2518</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/68024587dc36f49685c96d59d3f1081830f968bb"><code>6802458</code></a>
chore(deps): bump github/codeql-action from 3.28.12 to 3.28.15 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2530">#2530</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/cf2e39e86bf842d1f9bc5bca56c0a6b207cca792"><code>cf2e39e</code></a>
chore(deps): bump tj-actions/branch-names from 8.0.1 to 8.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2521">#2521</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/6abeaa506a419f85fa9e681260b443adbeebb3d4"><code>6abeaa5</code></a>
chore(deps): bump tj-actions/verify-changed-files from 20.0.1 to 20.0.4
(<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2523">#2523</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/changed-files/compare/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99...9934ab3fdf63239da75d9e0fbd339c48620c72c4">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/branch-names` from 8.1.0 to 8.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/releases">tj-actions/branch-names's
releases</a>.</em></p>
<blockquote>
<h2>v8.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: update sync-release-version.yml to sign commits by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/416">tj-actions/branch-names#416</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v8.2.0...v8.2.1">https://github.com/tj-actions/branch-names/compare/v8.2.0...v8.2.1</a></p>
<h2>v8.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v8.1.0 by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/410">tj-actions/branch-names#410</a></li>
<li>feat: add support for replace forward slashes with hyphens by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/412">tj-actions/branch-names#412</a></li>
<li>chore: update update-readme.yml by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/414">tj-actions/branch-names#414</a></li>
<li>Updated README.md by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/415">tj-actions/branch-names#415</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
made their first contribution in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/415">tj-actions/branch-names#415</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v8...v8.2.0">https://github.com/tj-actions/branch-names/compare/v8...v8.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/blob/main/HISTORY.md">tj-actions/branch-names's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.2.0...v8.2.1">8.2.1</a>
- (2025-04-11)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Update sync-release-version.yml to sign commits (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/416">#416</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/dde14ac574a8b9b1cedc59a1cf312788af43d8d8">dde14ac</a>)
- (Tonye Jack)</li>
</ul>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.1.0...v8.2.0">8.2.0</a>
- (2025-04-11)</h1>
<h2><!-- raw HTML omitted -->🚀 Features</h2>
<ul>
<li>Add support for replace forward slashes with hyphens (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/412">#412</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/af406356b42c0855d5d112babee4a0b76ee630df">af40635</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted --> Remove</h2>
<ul>
<li>Deleted .github/workflows/rebase.yml (<a
href="https://github.com/tj-actions/branch-names/commit/c209967c9a91450d7dced6e5adc3c61ca030c868">c209967</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/415">#415</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/branch-names/commit/47dfecabcf7a70329c1d7fc49d56ce56739c5420">47dfeca</a>)
- (github-actions[bot])</p>
<ul>
<li>Update update-readme.yml (<a
href="https://github.com/tj-actions/branch-names/commit/c9cf6f9a0e21d41fb9acf4025894c022a1dd22db">c9cf6f9</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li>Update update-readme.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/414">#414</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/b1f61bc147718240eda9ab8a823f836416ab297c">b1f61bc</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded from v8.0.2 -&gt; v8.1.0 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/410">#410</a>)</li>
</ul>
<p>(<a
href="https://github.com/tj-actions/branch-names/commit/96012203a066021edaf47a9381953d843444eacf">9601220</a>)
- (Tonye Jack)</p>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.0.2...v8.1.0">8.1.0</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🚀 Features</h2>
<ul>
<li>Add support for strip_branch_prefix (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/406">#406</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/c83c87ab5379a8ff88c905ea78c391c0d53972ac">c83c87a</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/408">#408</a>)</li>
</ul>
<p>(<a
href="https://github.com/tj-actions/branch-names/commit/d18e657ed32f367301fdebeb9a88b7e5539f3052">d18e657</a>)
- (Tonye Jack)</p>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li>Update test.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/409">#409</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/f44339b51f74753b57583fbbd124e18a81170ab1">f44339b</a>)
- (Tonye Jack)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/branch-names/commit/dde14ac574a8b9b1cedc59a1cf312788af43d8d8"><code>dde14ac</code></a>
fix: update sync-release-version.yml to sign commits (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/416">#416</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/47dfecabcf7a70329c1d7fc49d56ce56739c5420"><code>47dfeca</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/415">#415</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/c9cf6f9a0e21d41fb9acf4025894c022a1dd22db"><code>c9cf6f9</code></a>
Update update-readme.yml</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/b1f61bc147718240eda9ab8a823f836416ab297c"><code>b1f61bc</code></a>
chore: update update-readme.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/414">#414</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/af406356b42c0855d5d112babee4a0b76ee630df"><code>af40635</code></a>
feat: add support for replace forward slashes with hyphens (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/412">#412</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/c209967c9a91450d7dced6e5adc3c61ca030c868"><code>c209967</code></a>
Deleted .github/workflows/rebase.yml</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/96012203a066021edaf47a9381953d843444eacf"><code>9601220</code></a>
Upgraded from v8.0.2 -&gt; v8.1.0 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/410">#410</a>)</li>
<li>See full diff in <a
href="https://github.com/tj-actions/branch-names/compare/f44339b51f74753b57583fbbd124e18a81170ab1...dde14ac574a8b9b1cedc59a1cf312788af43d8d8">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.12 to 3.28.15
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.15</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.15/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.28.14</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.14/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
<h2>v3.28.13</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.13/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.15 - 07 Apr 2025</h2>
<ul>
<li>Fix bug where the action would fail if it tried to produce a debug
artifact with more than 65535 files. <a
href="https://redirect.github.com/github/codeql-action/pull/2842">#2842</a></li>
</ul>
<h2>3.28.14 - 07 Apr 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.21.0. <a
href="https://redirect.github.com/github/codeql-action/pull/2838">#2838</a></li>
</ul>
<h2>3.28.13 - 24 Mar 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2753">#2753</a></li>
</ul>
<h2>3.28.8 - 29 Jan 2025</h2>
<ul>
<li>Enable support for Kotlin 2.1.10 when running with CodeQL CLI
v2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2744">#2744</a></li>
</ul>
<h2>3.28.7 - 29 Jan 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.6 - 27 Jan 2025</h2>
<ul>
<li>Re-enable debug artifact upload for CLI versions 2.20.3 or greater.
<a
href="https://redirect.github.com/github/codeql-action/pull/2726">#2726</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/45775bd8235c68ba998cffa5171334d58593da47"><code>45775bd</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2854">#2854</a>
from github/update-v3.28.15-a35ae8c38</li>
<li><a
href="https://github.com/github/codeql-action/commit/dd78aab4078b17a672a66d6a80a990beb672ede1"><code>dd78aab</code></a>
Update CHANGELOG.md with bug fix details</li>
<li><a
href="https://github.com/github/codeql-action/commit/e40af591743761de70080085b4e6ce37f7f6e657"><code>e40af59</code></a>
Update changelog for v3.28.15</li>
<li><a
href="https://github.com/github/codeql-action/commit/a35ae8c380fa35365cd546f9a397a46f60dd82cf"><code>a35ae8c</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2843">#2843</a>
from github/cklin/diff-informed-compat</li>
<li><a
href="https://github.com/github/codeql-action/commit/bb59df6c174a91d88eec1c48f2ab0ef7b5f96e99"><code>bb59df6</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2842">#2842</a>
from github/henrymercer/zip64</li>
<li><a
href="https://github.com/github/codeql-action/commit/4b508f59648bef88ef72c74f1ffff531fda55ea8"><code>4b508f5</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2845">#2845</a>
from github/mergeback/v3.28.14-to-main-fc7e4a0f</li>
<li><a
href="https://github.com/github/codeql-action/commit/ca00afb5f1457cf1c85da6cda07d73e720ff061a"><code>ca00afb</code></a>
Update checked-in dependencies</li>
<li><a
href="https://github.com/github/codeql-action/commit/2969c78ce0262bf75658058604498d2b4bdb0b9b"><code>2969c78</code></a>
Update changelog and version after v3.28.14</li>
<li><a
href="https://github.com/github/codeql-action/commit/fc7e4a0fa01c3cca5fd6a1fddec5c0740c977aa2"><code>fc7e4a0</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2844">#2844</a>
from github/update-v3.28.14-362ef4ce2</li>
<li><a
href="https://github.com/github/codeql-action/commit/be0175c800fe14dd962aaa2c97f55371f6f95b35"><code>be0175c</code></a>
Update changelog for v3.28.14</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/5f8171a638ada777af81d42b55959a643bb29017...45775bd8235c68ba998cffa5171334d58593da47">compare
view</a></li>
</ul>
</details>
<br />

Updates `coder/start-workspace-action` from
26d3600161d67901f24d8612793d3b82771cde2d to
35a4608cefc7e8cc56573cae7c3b85304575cb72
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coder/start-workspace-action/commit/35a4608cefc7e8cc56573cae7c3b85304575cb72"><code>35a4608</code></a>
update <code>github-username</code> description to specify requirement
for Coder 2.21 or...</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/0054568c043bba479899edb91ef96a5cfca21c55"><code>0054568</code></a>
clarify requirements for the <code>github-username</code> input</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/f3cda2e65a469e6dd60478c111c745b919c0ec68"><code>f3cda2e</code></a>
fix variable names</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/a6a41dc1eb63a8e58dc43a97a2c2cb04ccc40b36"><code>a6a41dc</code></a>
update readme</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/a09e31de35a1d153448ed707d63708e2a2acef3c"><code>a09e31d</code></a>
more defaults for inputs</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/13304209b2b4449befcb6d0392693311aad1faff"><code>1330420</code></a>
Add a screenshot to the README</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/8d0b0d4118b6fa0c504b79c06dc99f4ed024c749"><code>8d0b0d4</code></a>
clarify status comment</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/747b408cb53f6e3440ba04f951c75077994ff95a"><code>747b408</code></a>
update input descriptions</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/e526e6fb8e781ffacf59c6066194286a9f3cee8a"><code>e526e6f</code></a>
update example action tag</li>
<li><a
href="https://github.com/coder/start-workspace-action/commit/212ab2f68a115ca64029be34610433cfa16a89e0"><code>212ab2f</code></a>
update readme and add a license</li>
<li>Additional commits viewable in <a
href="https://github.com/coder/start-workspace-action/compare/26d3600161d67901f24d8612793d3b82771cde2d...35a4608cefc7e8cc56573cae7c3b85304575cb72">compare
view</a></li>
</ul>
</details>
<br />

Updates `umbrelladocs/action-linkspector` from 1.3.2 to 1.3.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/umbrelladocs/action-linkspector/releases">umbrelladocs/action-linkspector's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.3.4</h2>
<p>v1.3.4: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/42">#42</a>
- Update linkspector version to 0.4.4</p>
<h2>Release v1.3.3</h2>
<p>v1.3.3: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/41">#41</a>
- Update linkspector version to 0.4.3</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/a0567ce1c7c13de4a2358587492ed43cab5d0102"><code>a0567ce</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/42">#42</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/f5418fddbc33d4b79076fee4e41451501c6ceb0f"><code>f5418fd</code></a>
Update linkspector version to 0.4.4</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/3e12ade1e0b1823455dae8cf8b4f9cc92ec7dd20"><code>3e12ade</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/41">#41</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/8dfab6548de1b83b975ac3262626c2d1875f59f1"><code>8dfab65</code></a>
Update linkspector version to 0.4.3</li>
<li>See full diff in <a
href="https://github.com/umbrelladocs/action-linkspector/compare/49cf4f8da82db70e691bb8284053add5028fa244...a0567ce1c7c13de4a2358587492ed43cab5d0102">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| crate-ci/typos | [>= 1.30.a, < 1.31] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
2025-04-14 19:55:01 +00:00
M Atif Ali e54aa442eb chore(dogfood): switch to JetBrains Toolbox module (#17392) 2025-04-14 21:34:52 +05:00
Cian Johnston 272edba1d8 feat(codersdk/toolsdk): add template_version_id to coder_create_workspace_build (#17364)
The `coder_create_workspace_build` tool was missing the ability to
change the template version.
2025-04-14 17:29:43 +01:00
Cian Johnston 2d2c9bda98 fix(cli): correct logic around CODER_MCP_APP_STATUS_SLUG (#17391)
Past me was not smart.
2025-04-14 16:24:02 +01:00
Sas Swart a98605913a feat: mark prebuilds as such and set their preset ids (#16965)
This pull request closes https://github.com/coder/internal/issues/513
2025-04-14 15:34:50 +02:00
Spike Curtis 73f5af82ad test: fix TestAgent_Lifecycle/ShutdownScriptOnce to wait for stats (#17387)
fixes: https://github.com/coder/internal/issues/576

TestAgent_Lifecycle/ShutdownScriptOnce hits error logs which cause test
failures. These logs are legit errors and have to do with shutting down
the agent before it has fully come up.

This PR changes the test to wait for the agent to send stats (a good
indicator that it's fully up, and beyond the errors that have triggered
test failures in past) before closing it.
2025-04-14 12:20:50 +00:00
Spike Curtis d8fcb062bc chore: add logging for coderdtest server lifecycle (#17376)
regarding https://github.com/coder/internal/issues/581

Adds logging around the lifecyle of the coderd HTTP server.
2025-04-14 16:15:06 +04:00
Edward Angert 34752fa148 docs: add note about sign in with GitHub button should be hidden when flow is disabled (#17367)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-14 17:03:25 +05:00
dependabot[bot] 1c040edec4 chore: bump vite from 5.4.17 to 5.4.18 in /site (#17385)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.17 to 5.4.18.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.18</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.18/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.18/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.18 (2025-04-10)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19830">#19830</a>,
reject requests with <code>#</code> in request-target (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19831">#19831</a>)
(<a
href="https://github.com/vitejs/vite/commit/823675baff2bd6809c74ba2d9acca0327923a54f">823675b</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19830">#19830</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19831">#19831</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/731b77d19d36f5682a5441b49cb2f6473389ad99"><code>731b77d</code></a>
release: v5.4.18</li>
<li><a
href="https://github.com/vitejs/vite/commit/823675baff2bd6809c74ba2d9acca0327923a54f"><code>823675b</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19830">#19830</a>,
reject requests with <code>#</code> in request-target (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19831">#19831</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.18/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.17&new-version=5.4.18)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-04-14 12:02:26 +00:00
dependabot[bot] f75d01fd58 chore: bump github.com/gohugoio/hugo from 0.143.0 to 0.146.3 (#17384)
Bumps [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) from
0.143.0 to 0.146.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/gohugoio/hugo/releases">github.com/gohugoio/hugo's
releases</a>.</em></p>
<blockquote>
<h2>v0.146.3</h2>
<h2>What's Changed</h2>
<ul>
<li>tpl: Make any layout set in front matter higher priority 30b9c19c7
<a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13588">#13588</a></li>
<li>tpl: Fix it so embedded render-codeblock-goat is used even if custom
render-codeblock exists c8710625b <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13595">#13595</a></li>
</ul>
<h2>v0.146.2</h2>
<h2>What's Changed</h2>
<ul>
<li>tpl: Fix codeblock hook resolve issue d1c394442 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13593">#13593</a></li>
<li>tpl: Fix legacy section mappings 1074e0115 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13584">#13584</a></li>
<li>tpl: Resolve layouts/all.html for all html output formats c19f1f236
<a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13587">#13587</a></li>
<li>tpl: Fix some baseof lookup issues 9221cbca4 <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13583">#13583</a></li>
</ul>
<h2>v0.146.1</h2>
<p>This fixes a regression introduced in <a
href="https://github.com/gohugoio/hugo/releases/tag/v0.146.0">v0.146.0</a>
released earlier today.</p>
<ul>
<li>tpl: Skip dot and temp files inside /layouts 3b9f2a7de <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13579">#13579</a></li>
</ul>
<h2>v0.146.0</h2>
<blockquote>
<p>[!NOTE]
There's a <a
href="https://github.com/gohugoio/hugo/releases/tag/v0.146.1">v0.146.1</a>
bug fix release that fixes a regression introduced in this release.</p>
</blockquote>
<p>The big new thing in this release is a fully refreshed template
system – simpler and much better. We're working on the updated
documentation for this, but see <a
href="https://redirect.github.com/gohugoio/hugo/pull/13541">this
issue</a> for some more information. We have gone to great lengths to
make this as backwards compatible as possible, but make sure you test
your site before going live with this new version. This version also
comes with a full dependency refresh and some useful new template
funcs:</p>
<ul>
<li><a
href="https://gohugo.io/functions/templates/current/">templates.Current</a>:
Info about the current executing template and its call stack. Very
useful for debugging.</li>
<li><a href="https://gohugo.io/functions/time/in/">time.In</a>: Returns
the given date/time as represented in the specified IANA time zone.</li>
</ul>
<h2>Bug fixes</h2>
<ul>
<li>tpl/tplimpl: Fix full screen option in vimeo and youtube shortcodes
6f14dbe24 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13531">#13531</a></li>
</ul>
<h2>Improvements</h2>
<ul>
<li>tpl: Warn and skip non-hook templates inside /layouts/_markup
383dd82f9 <a href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13577">#13577</a></li>
<li>tpl: Add a partial lookup cache 208a0de6c <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13571">#13571</a></li>
<li>tpl: Add templates.Current d4c6dd16b <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13571">#13571</a></li>
<li>commands/new: Improve theme creation 24ac6a9de <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13489">#13489</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13544">#13544</a></li>
<li>tpl/tplimpl: Update embedded pagination template 1e0084248 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a></li>
<li>Reimplement and simplify Hugo's template system 83cfdd78c <a
href="https://github.com/bep"><code>@​bep</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13541">#13541</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13545">#13545</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13515">#13515</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/7964">#7964</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/13365">#13365</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/12988">#12988</a>
<a
href="https://redirect.github.com/gohugoio/hugo/issues/4891">#4891</a></li>
<li>config: Use the non-global logger for deprecations when possible
812ea0b32 <a href="https://github.com/bep"><code>@​bep</code></a></li>
<li>tpl/time: Add time.In function 07cbe5701 <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13548">#13548</a></li>
<li>resources: Add option to silence dependency deprecation warnings
c15ebce2f <a
href="https://github.com/jmooring"><code>@​jmooring</code></a> <a
href="https://redirect.github.com/gohugoio/hugo/issues/13530">#13530</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/gohugoio/hugo/commit/05ef8b713a3c091bfca7a3543ed016c64b3c6f88"><code>05ef8b7</code></a>
releaser: Bump versions for release of 0.146.3</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/30b9c19c7691aa3d90854c92a355bd8a248bb5b0"><code>30b9c19</code></a>
tpl: Make any layout set in front matter higher priority</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/c8710625b7c01a0d580f9d896b1fea96ec5463d1"><code>c871062</code></a>
tpl: Fix it so embedded render-codeblock-goat is used even if custom
render-c...</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/53221f88ca57634b1b8afeeeacdc923e25b6617c"><code>53221f8</code></a>
releaser: Prepare repository for 0.147.0-DEV</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/ff3ab192c27fccdd82393f223040874904a44e98"><code>ff3ab19</code></a>
releaser: Bump versions for release of 0.146.2</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/d1c394442be0858b12fb1dbb42a98237e95c6d75"><code>d1c3944</code></a>
tpl: Fix codeblock hook resolve issue</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/1074e011520a82a17524d2e68082e5a04e291c2a"><code>1074e01</code></a>
tpl: Fix legacy section mappings</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/c19f1f2363fe96cfa8b6e4a5b9e5d75886bcff8b"><code>c19f1f2</code></a>
tpl: Resolve layouts/all.html for all html output formats</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/9221cbca496752fb1d06d664871e3d4532f473f5"><code>9221cbc</code></a>
tpl: Fix some baseof lookup issues</li>
<li><a
href="https://github.com/gohugoio/hugo/commit/e3e3f9ae17395220e2c13ddc8afa7000a5a7e21e"><code>e3e3f9a</code></a>
releaser: Prepare repository for 0.147.0-DEV</li>
<li>Additional commits viewable in <a
href="https://github.com/gohugoio/hugo/compare/v0.143.0...v0.146.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/gohugoio/hugo&package-manager=go_modules&previous-version=0.143.0&new-version=0.146.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 11:54:47 +00:00
dependabot[bot] 06d707d865 chore: bump github.com/prometheus/client_golang from 1.21.1 to 1.22.0 (#17382)
Bumps
[github.com/prometheus/client_golang](https://github.com/prometheus/client_golang)
from 1.21.1 to 1.22.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/releases">github.com/prometheus/client_golang's
releases</a>.</em></p>
<blockquote>
<h2>v1.22.0 - 2025-04-07</h2>
<p>⚠️ This release contains potential breaking change if you use
experimental <code>zstd</code> support introduce in <a
href="https://redirect.github.com/prometheus/client_golang/issues/1496">#1496</a>
⚠️</p>
<p>Experimental support for <code>zstd</code> on scrape was added,
controlled by the request <code>Accept-Encoding</code> header.
It was enabled by default since version 1.20, but now you need to add a
blank import to enable it.
The decision to make it opt-in by default was originally made because
the Go standard library was expected to have default zstd support added
soon,
<a
href="https://redirect.github.com/golang/go/issues/62513">golang/go#62513</a>
however, the work took longer than anticipated and it will be postponed
to upcoming major Go versions.</p>
<p>e.g.:</p>
<blockquote>
<pre lang="go"><code>import (
_
&quot;github.com/prometheus/client_golang/prometheus/promhttp/zstd&quot;
)
</code></pre>
</blockquote>
<ul>
<li>[FEATURE] prometheus: Add new CollectorFunc utility <a
href="https://redirect.github.com/prometheus/client_golang/issues/1724">#1724</a></li>
<li>[CHANGE] Minimum required Go version is now 1.22 (we also test
client_golang against latest go version - 1.24) <a
href="https://redirect.github.com/prometheus/client_golang/issues/1738">#1738</a></li>
<li>[FEATURE] api: <code>WithLookbackDelta</code> and
<code>WithStats</code> options have been added to API client. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1743">#1743</a></li>
<li>[CHANGE] ⚠️ promhttp: Isolate zstd support and
klauspost/compress library use to promhttp/zstd package. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1765">#1765</a></li>
</ul>
<!-- raw HTML omitted -->
<ul>
<li>build(deps): bump golang.org/x/sys from 0.28.0 to 0.29.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1720">prometheus/client_golang#1720</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.36.1 to 1.36.3
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1719">prometheus/client_golang#1719</a></li>
<li>Update RELEASE.md by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1721">prometheus/client_golang#1721</a></li>
<li>chore(docs): Add links for the upstream PRs by <a
href="https://github.com/kakkoyun"><code>@​kakkoyun</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1722">prometheus/client_golang#1722</a></li>
<li>Added tips on releasing client and checking with k8s. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1723">prometheus/client_golang#1723</a></li>
<li>feat: Add new CollectorFunc utility by <a
href="https://github.com/Saumya40-codes"><code>@​Saumya40-codes</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1724">prometheus/client_golang#1724</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.36.3 to 1.36.4
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1725">prometheus/client_golang#1725</a></li>
<li>build(deps): bump the github-actions group with 5 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1726">prometheus/client_golang#1726</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1727">prometheus/client_golang#1727</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1731">prometheus/client_golang#1731</a></li>
<li>build(deps): bump golang.org/x/sys from 0.29.0 to 0.30.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1739">prometheus/client_golang#1739</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.36.4 to 1.36.5
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1740">prometheus/client_golang#1740</a></li>
<li>Cleanup dependabot config by <a
href="https://github.com/SuperQ"><code>@​SuperQ</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1741">prometheus/client_golang#1741</a></li>
<li>Upgrade Golang version v1.24 by <a
href="https://github.com/dongjiang1989"><code>@​dongjiang1989</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1738">prometheus/client_golang#1738</a></li>
<li>build(deps): bump the github-actions group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1742">prometheus/client_golang#1742</a></li>
<li>Merging 1.21 release back to main. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1744">prometheus/client_golang#1744</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1745">prometheus/client_golang#1745</a></li>
<li>Add support for undocumented query options for API by <a
href="https://github.com/mahendrapaipuri"><code>@​mahendrapaipuri</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1743">prometheus/client_golang#1743</a></li>
<li>exp/api: Add experimental exp module; Add remote API with write
client and handler. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1658">prometheus/client_golang#1658</a></li>
<li>exp/api: Add accepted msg type validation to handler by <a
href="https://github.com/saswatamcode"><code>@​saswatamcode</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1750">prometheus/client_golang#1750</a></li>
<li>build(deps): bump the github-actions group with 5 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1751">prometheus/client_golang#1751</a></li>
<li>build(deps): bump github.com/klauspost/compress from 1.17.11 to
1.18.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1752">prometheus/client_golang#1752</a></li>
<li>build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1753">prometheus/client_golang#1753</a></li>
<li>exp: Reset snappy buf by <a
href="https://github.com/saswatamcode"><code>@​saswatamcode</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1756">prometheus/client_golang#1756</a></li>
<li>Merge release 1.21.1 to main. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1762">prometheus/client_golang#1762</a></li>
<li>exp: Add dependabot config by <a
href="https://github.com/saswatamcode"><code>@​saswatamcode</code></a>
in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1754">prometheus/client_golang#1754</a></li>
<li>build(deps): bump peter-evans/create-pull-request from 7.0.7 to
7.0.8 in the github-actions group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/client_golang/pull/1764">prometheus/client_golang#1764</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md">github.com/prometheus/client_golang's
changelog</a>.</em></p>
<blockquote>
<h2>1.22.0 / 2025-04-07</h2>
<p>⚠️ This release contains potential breaking change if you use
experimental <code>zstd</code> support introduce in <a
href="https://redirect.github.com/prometheus/client_golang/issues/1496">#1496</a>
⚠️</p>
<p>Experimental support for <code>zstd</code> on scrape was added,
controlled by the request <code>Accept-Encoding</code> header.
It was enabled by default since version 1.20, but now you need to add a
blank import to enable it.
The decision to make it opt-in by default was originally made because
the Go standard library was expected to have default zstd support added
soon,
<a
href="https://redirect.github.com/golang/go/issues/62513">golang/go#62513</a>
however, the work took longer than anticipated and it will be postponed
to upcoming major Go versions.</p>
<p>e.g.:</p>
<blockquote>
<pre lang="go"><code>import (
_
&quot;github.com/prometheus/client_golang/prometheus/promhttp/zstd&quot;
)
</code></pre>
</blockquote>
<ul>
<li>[FEATURE] prometheus: Add new CollectorFunc utility <a
href="https://redirect.github.com/prometheus/client_golang/issues/1724">#1724</a></li>
<li>[CHANGE] Minimum required Go version is now 1.22 (we also test
client_golang against latest go version - 1.24) <a
href="https://redirect.github.com/prometheus/client_golang/issues/1738">#1738</a></li>
<li>[FEATURE] api: <code>WithLookbackDelta</code> and
<code>WithStats</code> options have been added to API client. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1743">#1743</a></li>
<li>[CHANGE] ⚠️ promhttp: Isolate zstd support and
klauspost/compress library use to promhttp/zstd package. <a
href="https://redirect.github.com/prometheus/client_golang/issues/1765">#1765</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prometheus/client_golang/commit/d50be25511d790f4c166d68ce7d046c2977d148b"><code>d50be25</code></a>
Cut 1.22.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1793">#1793</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/1043db7cb8735186b341bbff6ae45d7ff56018dd"><code>1043db7</code></a>
Cut 1.22.0-rc.0 (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1768">#1768</a>)</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/e575c9c04e40fe0784d4fee7f1f56c1a66ef090d"><code>e575c9c</code></a>
promhttp: Isolate zstd support and klauspost/compress library use to
promhttp...</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/f2276aa7d4b6e6526e0011762d0e4070513cf9cd"><code>f2276aa</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1764">#1764</a>
from prometheus/dependabot/github_actions/github-act...</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/9df772cc5f399a2946a9158e57fd0aff66daf7d1"><code>9df772c</code></a>
build(deps): bump peter-evans/create-pull-request</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/a3548c5aa811a0a52d1d723c3dfb3b01930481fb"><code>a3548c5</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1754">#1754</a>
from saswatamcode/exp-eh</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/60fd2b0490db6e7c74e623651031feae93c7ebc1"><code>60fd2b0</code></a>
Remove go.work file for now</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/8f9d0de6893dd7a470cdb1cffc5d98d1b5d7b50d"><code>8f9d0de</code></a>
exp: Add dependabot config</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/c5cf981312d510414c209927e4f9e888d6776b5c"><code>c5cf981</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/client_golang/issues/1762">#1762</a>
from prometheus/release-1.21</li>
<li><a
href="https://github.com/prometheus/client_golang/commit/e84c30512a658de7fdccce84b434c9a5696ec5af"><code>e84c305</code></a>
exp: Reset snappy buf (<a
href="https://redirect.github.com/prometheus/client_golang/issues/1756">#1756</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prometheus/client_golang/compare/v1.21.1...v1.22.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/prometheus/client_golang&package-manager=go_modules&previous-version=1.21.1&new-version=1.22.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 11:54:29 +00:00
dependabot[bot] b6ff6b160a chore: bump github.com/charmbracelet/bubbles from 0.20.0 to 0.21.0 (#17381)
Bumps
[github.com/charmbracelet/bubbles](https://github.com/charmbracelet/bubbles)
from 0.20.0 to 0.21.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/charmbracelet/bubbles/releases">github.com/charmbracelet/bubbles's
releases</a>.</em></p>
<blockquote>
<h2>v0.21.0</h2>
<h2>Viewport improvements</h2>
<p>Finally, <code>viewport</code> finally has <em>horizontal
scrolling</em> ![^v1]
To enable it, use <code>SetHorizontalStep</code> (default in v2 will be
<code>6</code>).</p>
<p>You can also scroll manually with <code>ScrollLeft</code> and
<code>ScrollRight</code>, and use
<code>SetXOffset</code> to scroll to a specific position (or
<code>0</code> to reset):</p>
<pre lang="go"><code>vp := viewport.New()
vp.SetHorizontalStep(10) // how many columns to scroll on each key press
vp.ScrollRight(30)       // pan 30 columns to the right!
vp.ScrollLeft(10)        // pan 10 columns to the left!
vp.SetXOffset(0)         // back to the left edge
</code></pre>
<p>To make the API more consistent, vertical scroll functions were also
renamed,
and the old ones were deprecated (and will be removed in v2):</p>
<pre lang="go"><code>// Scroll n lines up/down:
func (m Model) LineUp(int)     // deprecated
func (m Model) ScrollUp(int)   // new!
func (m Model) LineDown(int)   // deprecated
func (m Model) ScrollDown(int) // new!
<p>// Scroll half page up/down:
func (m Model) HalfViewUp() []string   // deprecated
func (m Model) HalfPageUp() []string   // new!
func (m Model) HalfViewDown() []string // deprecated
func (m Model) HalfPageDown() []string // new!</p>
<p>// Scroll a full page up/down:
func (m Model) ViewUp(int) []string   // deprecated
func (m Model) PageUp(int) []string   // new!
func (m Model) ViewDown(int) []string // deprecated
func (m Model) PageDown(int) []string // new!
</code></pre></p>
<blockquote>
<p>[!NOTE]
In v2, these functions will not return <code>lines []string</code>
anymore, as it is no
longer needed due to <code>HighPerformanceRendering</code> being
deprecated as well.</p>
</blockquote>
<h2>Other improvements</h2>
<p>The <code>list</code> bubble got a couple of new functions:
<code>SetFilterText</code>,
<code>SetFilterState</code>, and <code>GlobalIndex</code> - which you
can use to get the index of the
item in the unfiltered, original item list.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/8b55efb2944ed8eb81df685f8dcfabbbf8897698"><code>8b55efb</code></a>
fix(textarea): placeholder with chinese chars (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/767">#767</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/bd2a5b0c6a7abc66b8a009d2aded233e6ba02fa4"><code>bd2a5b0</code></a>
fix: golangci-lint 2 fixes (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/769">#769</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/cce848148cbea9e1bc5ca7d2c3d1ef89702db0e4"><code>cce8481</code></a>
ci: sync golangci-lint config (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/770">#770</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/ea344ab907bddf5e8f71cd73b9583b070e8f1b2f"><code>ea344ab</code></a>
feat(viewport): horizontal scroll with mouse wheel (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/761">#761</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/39668ec6291e1fc3e574f30c650e1ba0801e1f6d"><code>39668ec</code></a>
fix(viewport): normalize method names (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/763">#763</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/f2434c374bd0f55ac0d5b3e8261161b97ea41a30"><code>f2434c3</code></a>
Revert &quot;fix(viewport): normalize method names&quot;</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/c7f889e364e15dc5b08a8c799e80164031847ab9"><code>c7f889e</code></a>
fix(viewport): normalize method names</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/9e5365e0ec0c4005efc7a3cc47f67941840e4144"><code>9e5365e</code></a>
docs: add example for ValidateFunc (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/705">#705</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/c814ac75c3b4be111bf163c07655971543be33f9"><code>c814ac7</code></a>
chore(deps): bump github.com/charmbracelet/lipgloss from 1.0.0 to 1.1.0
(<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/751">#751</a>)</li>
<li><a
href="https://github.com/charmbracelet/bubbles/commit/3befcccf8702cb29ad196acc10b4899aa16b47f0"><code>3befccc</code></a>
chore(deps): bump github.com/muesli/termenv from 0.15.2 to 0.16.0 (<a
href="https://redirect.github.com/charmbracelet/bubbles/issues/740">#740</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/charmbracelet/bubbles/compare/v0.20.0...v0.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/charmbracelet/bubbles&package-manager=go_modules&previous-version=0.20.0&new-version=0.21.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 11:53:56 +00:00
dependabot[bot] 199c408dd9 chore: bump the x group with 2 updates (#17379)
Bumps the x group with 2 updates:
[golang.org/x/net](https://github.com/golang/net) and
[golang.org/x/tools](https://github.com/golang/tools).

Updates `golang.org/x/net` from 0.38.0 to 0.39.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/b8d88774daf2a7cf137dad5173fc9bb981fc18fb"><code>b8d8877</code></a>
go.mod: update golang.org/x dependencies</li>
<li>See full diff in <a
href="https://github.com/golang/net/compare/v0.38.0...v0.39.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.31.0 to 0.32.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/456962ef0d65798b244374a272fb19b7d9723b62"><code>456962e</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/5916e3cbd8b65f73c18253607fa0b696fc5b9da6"><code>5916e3c</code></a>
internal/tokeninternal: AddExistingFiles: tweaks for proposal</li>
<li><a
href="https://github.com/golang/tools/commit/9a1fbbdb530258f2c0db9c411aecf399d1ec256b"><code>9a1fbbd</code></a>
internal/typesinternal: change Used to UsedIdent</li>
<li><a
href="https://github.com/golang/tools/commit/e73cd5af773602fdbc6cab94bdc0dc38abf828ab"><code>e73cd5a</code></a>
gopls/internal/golang: implement dynamicFuncCallType with
typeutil.ClassifyCall</li>
<li><a
href="https://github.com/golang/tools/commit/11a9b3f89dc9e5a2e6d738d243258495a9c53005"><code>11a9b3f</code></a>
gopls/internal/server: fix event labels after the big rename</li>
<li><a
href="https://github.com/golang/tools/commit/3e7f74d009150bf5e66483f3759d8c59f50e873d"><code>3e7f74d</code></a>
go/types/typeutil: used doesn't need Info.Selections</li>
<li><a
href="https://github.com/golang/tools/commit/b97074b9c8ebe7cce7db7be133120bc966f9c33f"><code>b97074b</code></a>
internal/gofix: fix URLs</li>
<li><a
href="https://github.com/golang/tools/commit/e850fe1872cee508a221a3efd67dd2901deddc4c"><code>e850fe1</code></a>
gopls/internal/golang: CodeAction: place gopls doc as the last
action</li>
<li><a
href="https://github.com/golang/tools/commit/b948add7e7e4926ce52fb3a01e15c18e4558c252"><code>b948add</code></a>
internal/gofix: move from gopls/internal/analysis/gofix</li>
<li><a
href="https://github.com/golang/tools/commit/b437eff8291cf46efe66e499f4c0ac5c8df770d5"><code>b437eff</code></a>
go/types/typeutil: implement Callee and StaticCallee with Used</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.31.0...v0.32.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 11:53:37 +00:00
dependabot[bot] e2ebc9d549 chore: bump github.com/go-jose/go-jose/v4 from 4.0.5 to 4.1.0 (#17383)
Bumps
[github.com/go-jose/go-jose/v4](https://github.com/go-jose/go-jose) from
4.0.5 to 4.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-jose/go-jose/releases">github.com/go-jose/go-jose/v4's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Document <code>signatureAlgorithms</code> argument by <a
href="https://github.com/tgeoghegan"><code>@​tgeoghegan</code></a> in <a
href="https://redirect.github.com/go-jose/go-jose/pull/163">go-jose/go-jose#163</a></li>
<li>Add custom error for unsupported JWS signature algorithms by <a
href="https://github.com/beautifulentropy"><code>@​beautifulentropy</code></a>
in <a
href="https://redirect.github.com/go-jose/go-jose/pull/181">go-jose/go-jose#181</a></li>
<li>use stdlib pbkdf2 package on go 1.24 by <a
href="https://github.com/kruskall"><code>@​kruskall</code></a> in <a
href="https://redirect.github.com/go-jose/go-jose/pull/180">go-jose/go-jose#180</a></li>
<li>The minimum supported Go version is now 1.24</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/kruskall"><code>@​kruskall</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-jose/go-jose/pull/180">go-jose/go-jose#180</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-jose/go-jose/compare/v4.0.5...v4.1.0">https://github.com/go-jose/go-jose/compare/v4.0.5...v4.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-jose/go-jose/commit/4f005daa10d11cacd7376358a5fe5d0c1c0ee487"><code>4f005da</code></a>
Add changelog entry for <a
href="https://redirect.github.com/go-jose/go-jose/issues/181">#181</a>
(<a
href="https://redirect.github.com/go-jose/go-jose/issues/183">#183</a>)</li>
<li><a
href="https://github.com/go-jose/go-jose/commit/fed5f4a89ce20a6c826bf3d6871c47c22b280178"><code>fed5f4a</code></a>
feat: use stdlib pbkdf2 package on go 1.24 (<a
href="https://redirect.github.com/go-jose/go-jose/issues/180">#180</a>)</li>
<li><a
href="https://github.com/go-jose/go-jose/commit/6e50d10239d754e5544fcc28b79b78b87a177a4c"><code>6e50d10</code></a>
Add custom error for unsupported JWS signature algorithms (<a
href="https://redirect.github.com/go-jose/go-jose/issues/181">#181</a>)</li>
<li><a
href="https://github.com/go-jose/go-jose/commit/0e4ab6846ac17cad0096f6391736270a5c4f630f"><code>0e4ab68</code></a>
Bump CI Go to 1.23.x and 1.24.x (<a
href="https://redirect.github.com/go-jose/go-jose/issues/177">#177</a>)</li>
<li><a
href="https://github.com/go-jose/go-jose/commit/9dc538453357899787e4695857167e75f1c16745"><code>9dc5384</code></a>
Document <code>signatureAlgorithms</code> argument (<a
href="https://redirect.github.com/go-jose/go-jose/issues/163">#163</a>)</li>
<li><a
href="https://github.com/go-jose/go-jose/commit/783e3f5b2d4b8c3c3fd19e739306cb9db1ced8bc"><code>783e3f5</code></a>
Bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (<a
href="https://redirect.github.com/go-jose/go-jose/issues/165">#165</a>)</li>
<li>See full diff in <a
href="https://github.com/go-jose/go-jose/compare/v4.0.5...v4.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-jose/go-jose/v4&package-manager=go_modules&previous-version=4.0.5&new-version=4.1.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 11:53:27 +00:00
Spike Curtis e5ce3824ca feat: add IsCoderConnectRunning to workspacesdk (#17361)
Adds `IsCoderConnectRunning()` to the workspacesdk. This will support the `coder` CLI being able to use CoderConnect when it's running.

part of #16828
2025-04-14 09:47:46 +04:00
Steven Masley 39b9d23d96 chore: remove nullable list elements in ts typegen (#17369)
Backend will not send partially null slices.
2025-04-11 15:49:18 -05:00
Jon Ayers c06ef7c1eb chore!: remove JFrog integration (#17353)
- Removes displaying XRay scan results in the dashboard. I'm not sure
  anyone was even using this integration so it's just debt for us to
  maintain. We can open up a separate issue to get rid of the db tables
  once we know for sure that we haven't broken anyone.
2025-04-11 14:45:21 -04:00
Steven Masley 15584e69ef chore: fixup typegen for preview types (#17339)
Preview types override the json marshal behavior.
2025-04-11 13:21:46 -05:00
Cian Johnston 7b0422b49b fix(codersdk/toolsdk): fix tool schemata (#17365)
Fixes two issues with the MCP server:
- Ensures we have a non-null schema, as the following schema was making
claude-code unhappy:

 
```
        "inputSchema": { "type": "object", "properties": null },
```


- Skip adding the coder_report_task tool if an agent client is not
available. Otherwise the agent may try to report tasks and get confused.
2025-04-11 18:58:17 +01:00
Edward Angert 6330b0d545 docs: add steps to pre-install JetBrains IDE backend (#15962)
closes #13207 


[preview](https://coder.com/docs/@13207-preinstall-jetbrains/user-guides/workspace-access/jetbrains)

---------

Co-authored-by: M Atif Ali <atif@coder.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-11 11:55:04 -04:00
Jaayden Halko 6a6e1ec50c feat: add support for icons and warning variant in Badge component (#17350)
<img width="172" alt="Screenshot 2025-04-10 at 23 11 32"
src="https://github.com/user-attachments/assets/2556feb1-bf49-4044-90fd-6ac15582c258"
/>
2025-04-11 10:16:37 -04:00
Spike Curtis 9e2af3e127 feat: add configurable DNS match domain for tailnet connections (#17336)
Use the hostname suffix to set the DNS match domain when creating a Tailnet as part of the vpn `Tunnel`.

part of: #16828
2025-04-11 15:00:48 +04:00
Spike Curtis 69aa365169 fix: remove provisioner/terraform/testdata/resources/version.txt (#17357)
Removes `provisioner/terraform/testdata/resources/version.txt`

Pretty sure Claude hallucinated it into existence in #17035 based on the similar `provisioner/terraform/testdata/version.txt`
2025-04-11 14:46:32 +04:00
Cian Johnston 1235550637 feat(codersdk): add toolsdk and replace existing mcp server tool impl (#17343)
- Refactors existing `mcp` package to use `kylecarbs/aisdk-go` and moves
to `codersdk/toolsdk` package.
- Updates existing MCP server implementation to use `codersdk/toolsdk`

Co-authored-by: Kyle Carberry <kyle@coder.com>
2025-04-11 10:24:45 +01:00
Spike Curtis 2c573dc023 feat: vpn uses WorkspaceHostnameSuffix for DNS names (#17335)
Use the hostname suffix to set DNS names as programmed into the DNS service and returned by the vpn `Tunnel`.

part of: #16828
2025-04-11 13:24:20 +04:00
Spike Curtis 12dc086628 feat: return hostname suffix on AgentConnectionInfo (#17334)
Adds the Hostname Suffix to `AgentConnectionInfo` --- the VPN provider will use it to control the suffix for DNS hostnames.

part of: #16828
2025-04-11 13:09:51 +04:00
Mathias Fredriksson 60fbe675ed refactor(agent/agentcontainers): implement API service (#17340)
This refactor improves separation of API and containers with minimal
changes to logic.

Highlights:

- Routes are now defined in `agentcontainers` package
- Handler renamed to API
- API lazy init was moved into NewAPI
- Tests that don't need to be internal were made external
2025-04-11 11:41:13 +03:00
Ethan 7bca3e237a chore: update tailscale (#17327)
Relates to https://github.com/coder/internal/issues/466

Brings in https://github.com/coder/tailscale/pull/70
2025-04-11 14:03:00 +10:00
Ethan 3c1cb5d05a chore: add generic DNS record for checking if Coder Connect is running (#17298)
Closes https://github.com/coder/internal/issues/466

```
$ dig -6 @fd60:627a:a42b::53 is.coder--connect--enabled--right--now.coder AAAA

; <<>> DiG 9.10.6 <<>> -6 @fd60:627a:a42b::53 is.coder--connect--enabled--right--now.coder AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62390
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;is.coder--connect--enabled--right--now.coder. IN AAAA

;; ANSWER SECTION:
is.coder--connect--enabled--right--now.coder. 2	IN AAAA	fd60:627a:a42b::53

;; Query time: 3 msec
;; SERVER: fd60:627a:a42b::53#53(fd60:627a:a42b::53)
;; WHEN: Wed Apr 09 16:59:18 AEST 2025
;; MSG SIZE  rcvd: 134
```

Hostname considerations:
- Workspace names, usernames, and agent names can't have double hyphens, so this name can't conflict with a real Coder Connect hostname.
- Components can't start or end with hyphens according to [RFC 952](https://www.rfc-editor.org/rfc/rfc952.html)
- DNS records can't have hyphens in the 3rd and 4th positions, as to not conflict with IDNs https://datatracker.ietf.org/doc/html/rfc5891
2025-04-11 13:59:25 +10:00
Dean Sheather e7e47537c9 chore: fix gpg forwarding test (#17355) 2025-04-11 03:33:53 +00:00
ケイラ 0472a88c2e chore: update trivy (#17347) 2025-04-10 15:19:39 -06:00
dependabot[bot] a451ea73c3 chore: bump github.com/mark3labs/mcp-go from 0.17.0 to 0.18.0 (#17273)
Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go)
from 0.17.0 to 0.18.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/mark3labs/mcp-go/releases">github.com/mark3labs/mcp-go's
releases</a>.</em></p>
<blockquote>
<h2>Release v0.18.0</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: add NewToolResultError by <a
href="https://github.com/daimatz"><code>@​daimatz</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/87">mark3labs/mcp-go#87</a></li>
<li>refactor(stdio): improve stdio server message handling by <a
href="https://github.com/winterfx"><code>@​winterfx</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/73">mark3labs/mcp-go#73</a></li>
<li>Add Stderr() Method to StdioMCPClient by <a
href="https://github.com/mashiike"><code>@​mashiike</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/72">mark3labs/mcp-go#72</a></li>
<li>fix java mcp message endpoint by <a
href="https://github.com/a67793581"><code>@​a67793581</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/75">mark3labs/mcp-go#75</a></li>
<li>simplify required field handling in inputSchema by <a
href="https://github.com/yikakia"><code>@​yikakia</code></a> in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/82">mark3labs/mcp-go#82</a></li>
<li>make context available in hooks, add OnRegisterSession hook by <a
href="https://github.com/zahmadsaleem"><code>@​zahmadsaleem</code></a>
in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/92">mark3labs/mcp-go#92</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/daimatz"><code>@​daimatz</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/87">mark3labs/mcp-go#87</a></li>
<li><a href="https://github.com/winterfx"><code>@​winterfx</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/73">mark3labs/mcp-go#73</a></li>
<li><a href="https://github.com/mashiike"><code>@​mashiike</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/72">mark3labs/mcp-go#72</a></li>
<li><a href="https://github.com/yikakia"><code>@​yikakia</code></a> made
their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/82">mark3labs/mcp-go#82</a></li>
<li><a
href="https://github.com/zahmadsaleem"><code>@​zahmadsaleem</code></a>
made their first contribution in <a
href="https://redirect.github.com/mark3labs/mcp-go/pull/92">mark3labs/mcp-go#92</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.18.0">https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.18.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/a0e968a752722d87063eb36ea0d55938e752f6dd"><code>a0e968a</code></a>
feat: add context to hooks (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/92">#92</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/607d6c29bb8f56bc30e3154e99e58da1db78fcb9"><code>607d6c2</code></a>
simplify required field handling in inputSchema (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/82">#82</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/6d840a447783c1d342b673d8d06069b96b362a1b"><code>6d840a4</code></a>
fix java mcp message endpoint (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/75">#75</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/051cda5533c70021240e7eae61c0a379511abda7"><code>051cda5</code></a>
Add Stderr() Method to StdioMCPClient (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/72">#72</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/2ea0c97e4a15b5a6bf1c354cd3734a6ed8fbb194"><code>2ea0c97</code></a>
refactor(stdio): improve stdio server message handling (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/73">#73</a>)</li>
<li><a
href="https://github.com/mark3labs/mcp-go/commit/ec9e8a21fee1bbb7d392a14c1cb2463398eaab7b"><code>ec9e8a2</code></a>
add NewToolResultError (<a
href="https://redirect.github.com/mark3labs/mcp-go/issues/87">#87</a>)</li>
<li>See full diff in <a
href="https://github.com/mark3labs/mcp-go/compare/v0.17.0...v0.18.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/mark3labs/mcp-go&package-manager=go_modules&previous-version=0.17.0&new-version=0.18.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-10 20:22:57 +00:00
Edward Angert 9978eb63c4 docs: rename coder-ai directory to avoid wildcard removal (#17348)
to something that doesn't get caught in a wildcard redirect

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-10 16:21:20 -04:00
ケイラ 859dd2fc3f feat: add dynamic parameters websocket endpoint (#17165) 2025-04-10 14:08:50 -06:00
Edward Angert c9682cb6cf docs: hotfix rename coder-ai readme to index (#17346)
[preview](https://coder.com/docs/@hotfix-ai-coder-top/)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-10 19:33:46 +00:00
Edward Angert e5ba8b7912 docs: update aws instance recommendations (#17344)
from @jatcod3r on Slack:

> for the AWS recs on our [validated
arch](https://coder.com/docs/admin/infrastructure/validated-architectures/1k-users)
docs, should we be referencing customers to use non-T type instances?
> Once you've exceeded EC2's [CPU
credits](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)
Coder starts performing poorly.
> We do suggest to [scale for peak
demand](https://coder.com/docs/tutorials/best-practices/scale-coder#scaling-3),
so does recommending something from the
[cpu](https://aws.amazon.com/ec2/instance-types/#Compute_Optimized) or
[memory
optimized](https://aws.amazon.com/ec2/instance-types/#Memory_Optimized)
types make sense?


[preview](https://coder.com/docs/@aws-ec2-arch/admin/infrastructure/validated-architectures#aws-instance-types)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-10 14:35:29 -04:00
Edward Angert ed20bab3e0 docs: move AI-agent docs out of tutorials and into a top-level section (#17231)
redirects in: https://github.com/coder/coder.com/pull/873

[preview](https://coder.com/docs/@move-ai-agents-up-1/coder-ai)

- [x] icon
- [x] shorten ~Modify or truncate the current~ title ~to reduce its
length for improved readability, conciseness, or formatting
consistency.~
- [x] Best practices & adding tools via MCP - edit title, desc, headings

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-10 14:21:29 -04:00
Cian Johnston 1e0051a9a2 feat(testutil): add GetRandomNameHyphenated (#17342)
This started coming up more often for me, so time for a test helper!

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-10 19:08:38 +01:00
ケイラ 46d4b28384 chore: add x-authz-checks debug header when running in dev mode (#16873) 2025-04-10 11:36:27 -06:00
Mathias Fredriksson 25fb34cabe feat(agent): implement recreate for devcontainers (#17308)
This change implements an interface for running `@devcontainers/cli up`
and an API endpoint on the agent for triggering recreate for a running
devcontainer.

A couple of limitations:

1. Synchronous HTTP request, meaning the browser might choose to time it
out before it's done => no result/error (and devcontainer cli command
probably gets killed via ctx cancel).
2. Logs are only written to agent logs via slog, not as a "script" in
the UI.

Both 1 and 2 will be improved in future refactors.

Fixes coder/internal#481
Fixes coder/internal#482
2025-04-10 16:16:16 +03:00
Danielle Maywood 6dd1056025 feat(coderd/notifications): group workspace build failure report (#17306)
Closes https://github.com/coder/coder/issues/15745

Instead of sending X many reports to a single template admin, we instead
send only 1.
2025-04-10 13:32:19 +01:00
Mathias Fredriksson 33b9487899 fix(agent/agentcontainers/dcspec): generate unmarshalers and add tests (#17330)
This change allows proper unmarshaling of `devcontainer.json` and will
no longer break EnvInfoer or the Web Terminal.

Fixes coder/internal#556
2025-04-10 12:10:58 +00:00
Spike Curtis c1816e3674 fix(agent): fix deadlock if closed while starting listeners (#17329)
fixes #17328

Fixes a deadlock if we close the Agent in the middle of starting listeners on the tailnet.
2025-04-10 12:46:19 +04:00
Jon Ayers 8faaa14820 chore: update Terraform to 1.11.4 (#17323)
Co-authored-by: Claude <noreply@anthropic.com>
2025-04-09 22:50:15 -04:00
ケイラ f2fb0caf46 chore: remove usage of github.com/go-chi/render (#17324) 2025-04-09 15:35:10 -06:00
Steven Masley 0b58798a1a feat: remove site wide perms from creating a workspace (#17296)
Creating a workspace required `read` on site wide `user`. 
Only organization permissions should be required.
2025-04-09 14:35:43 -05:00
Michael Smith a03a54dd14 fix(site): resolve all Array.prototype.toSorted and Array.prototype.sort bugs (#17307)
Closes https://github.com/coder/coder/issues/16759

## Changes made
- Replaced all instances of `Array.prototype.toSorted` with
`Array.prototype.sort` to provide better support for older browsers
- Updated all `Array.prototype.sort` calls where necessary to remove
risks of mutation render bugs
- Refactored some code (moved things around, added comments) to make it
more clear that certain `.sort` calls are harmless and don't have any
risks
2025-04-09 15:17:02 -04:00
Edward Angert d17bcc727b docs: update note markdown in parameters (#17318)
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-09 18:53:20 +00:00
Mathias Fredriksson 98c05b3568 test(agent/agentssh): fix macos signal flake during close (#17313)
Fixes coder/internal#558
2025-04-09 20:28:32 +03:00
Edward Angert 109e73bf97 docs: add details on external authentication priority (#17164)
## Issue

Closes #16875 

Clarify how Coder authentication works with Git providers, particularly
the order of authentication methods used.

## Changes Made

I've updated the External Authentication documentation to:

1. Clarify that Coder first attempts to use external auth provider
tokens when available, and only defaults to SSH authentication if no
tokens are available
2. Add more detailed explanations about both authentication methods
3. Improve the description of how the `coder gitssh` command works with
existing and Coder-generated SSH keys

## Verification

Claude verified that this accurately describes the behavior of the
codebase by reviewing the `gitssh.go` implementation, which shows how
Coder handles SSH authentication as a fallback when external auth is not
available.


[preview](https://coder.com/docs/@16875-git-workspace-auth/admin/external-auth)

<sub>🤖 Generated with https://claude.ai/code</sub>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Ben Potter <me@bpmct.net>
Co-authored-by: M Atif Ali <atif@coder.com>
Co-authored-by: Bruno Quaresma <bruno@coder.com>
Co-authored-by: Kyle Carberry <kyle@coder.com>
Co-authored-by: Cian Johnston <cian@coder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jon Ayers <jon@coder.com>
Co-authored-by: Hugo Dutka <hugo@coder.com>
Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
Co-authored-by: Michael Smith <throwawayclover@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Sas Swart <sas.swart.cdk@gmail.com>
2025-04-09 15:16:00 +00:00
Spike Curtis 3f3e2017bd fix: fix http cache dir creation order in coderdtest (#17303)
fixes coder/internal#565

Fixes the ordering of creating the HTTP cache temp dir with respect to
starting the Coderd HTTP server, so that they are cleaned up in the
correct (reverse) order.
2025-04-09 11:19:48 +00:00
Cian Johnston 43b1a034b1 chore(agent/agentscripts): disable TestTimeout on macOS (#17300) 2025-04-09 08:23:43 +00:00
Cian Johnston a8fbe71a22 chore(cli): increase healthcheck timeout in TestSupportbundle (#17291)
Fixes https://github.com/coder/internal/issues/272

* Increases healthcheck timeout in tests. This seems to be the most
usual cause of test failures.
* Adds a non-nilness check before caching a healthcheck report.
* Modifies the HTTP response code to 503 (was 404) when no healthcheck
report is available. 503 seems to be a better indicator of the server
state in this case, whereas 404 could be misinterpreted as a typo in the
healthcheck URL.
2025-04-09 09:21:17 +01:00
Cian Johnston 8d122aa4ab chore(cli): avoid use of testutil.RandomPort() in prometheus test (#17297)
Should hopefully fix https://github.com/coder/internal/issues/282

Instead of picking a random port for the prometheus server, listen on
`:0` and read the port from the CLI stdout.
2025-04-09 09:20:47 +01:00
Utsavkumar Lal 0e658219b2 feat: support filtering users table by login type (#17238)
#15896 Mentions ability to add support for filtering by login type

The issue mentions that backend API support exists but the backend did
not seem to have the support for this filter. So I have added the
ability to filter it.

I also added a corresponding update to readme file to make sure the docs
will correctly showcase this feature
2025-04-09 13:59:41 +10:00
Steven Masley f2d24bc3f4 chore: add custom samesite options to auth cookies (#16885)
Allows controlling `samesite` cookie settings from deployment values
2025-04-08 16:39:21 -05:00
Steven Masley 52d555880c chore: add custom samesite options to auth cookies (#16885)
Allows controlling `samesite` cookie settings from the deployment config
2025-04-08 14:15:14 -05:00
Cian Johnston 389e88ec82 chore(cli): refactor TestServer/Prometheus to use testutil.Eventually (#17295)
Updates https://github.com/coder/internal/issues/282

Refactors existing tests to use `testutil.Eventually` which plays nicer
with `testutil.Context`.
2025-04-08 16:53:22 +01:00
Cian Johnston 44ddc9f654 chore(agent/agentscripts): increase timeout in TestTimeout (#17293)
Fixes https://github.com/coder/internal/issues/329

This was due to a race between the process starting and the timeout of
the agent startup script executor. I'm taking the 'lazy' route here and
increasing the timeout to 100ms. This does technically mean that this
makes the test 100 times longer to execute. However, if it takes more
than 100ms to run a `sleep infinity` command on our test runner, I think
we have other issues.
2025-04-08 14:35:13 +00:00
Spike Curtis b1f59aafc1 fix: stop checking gauges unrelated to TestAgent_Stats_Magic (#17290)
Fixes https://github.com/coder/internal/issues/564

The test is asserting too much, including stats guages that are not directly related to the thing we are trying to test: ConnectionCount, RxBytes, and TxBytes.  I think the author assumed that these are counts that only go up, but they are guages and eventually zero back out, so there are race condtions where not all of them are non-zero at the same time.
2025-04-08 17:01:21 +04:00
Marcin Tojek 88b7c9ef5d feat: install more terminal fonts (#17289)
Related: https://github.com/coder/coder/issues/15024
2025-04-08 14:36:15 +02:00
dependabot[bot] 3487f37f9a chore: bump github.com/go-chi/httprate from 0.14.1 to 0.15.0 (#17171)
Bumps [github.com/go-chi/httprate](https://github.com/go-chi/httprate)
from 0.14.1 to 0.15.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-chi/httprate/releases">github.com/go-chi/httprate's
releases</a>.</em></p>
<blockquote>
<h2>v0.15.0</h2>
<ul>
<li>upgrade to xxhash v3</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-chi/httprate/commit/c0b6272bcac673c105a4d29c98dd9be27a0d644d"><code>c0b6272</code></a>
upgrade to xxh3 hashing pkg (<a
href="https://redirect.github.com/go-chi/httprate/issues/54">#54</a>)</li>
<li><a
href="https://github.com/go-chi/httprate/commit/9d627fb3c8a009b20ae198abe84b3a1d10a22a94"><code>9d627fb</code></a>
Update README.md: add missing 'time' import in code example (<a
href="https://redirect.github.com/go-chi/httprate/issues/49">#49</a>)</li>
<li><a
href="https://github.com/go-chi/httprate/commit/24ebb38d02ea7de820e34f890c4206cf6b891955"><code>24ebb38</code></a>
Try to fix Github action access issue (<a
href="https://redirect.github.com/go-chi/httprate/issues/51">#51</a>)</li>
<li>See full diff in <a
href="https://github.com/go-chi/httprate/compare/v0.14.1...v0.15.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-chi/httprate&package-manager=go_modules&previous-version=0.14.1&new-version=0.15.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 09:48:35 +00:00
dependabot[bot] f935e2a1d2 chore: bump github.com/go-playground/validator/v10 from 10.25.0 to 10.26.0 (#17173)
Bumps
[github.com/go-playground/validator/v10](https://github.com/go-playground/validator)
from 10.25.0 to 10.26.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/go-playground/validator/releases">github.com/go-playground/validator/v10's
releases</a>.</em></p>
<blockquote>
<h2>v10.26.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Use correct pointer in errors.As(). Fix &quot;panic: errors: *target
must be interface or implement error&quot; in examples. by <a
href="https://github.com/antonsoroko"><code>@​antonsoroko</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1378">go-playground/validator#1378</a></li>
<li>Create dependabot by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1373">go-playground/validator#1373</a></li>
<li>Bump golangci/golangci-lint-action from 4 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1381">go-playground/validator#1381</a></li>
<li>Bump golang.org/x/text from 0.21.0 to 0.22.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1383">go-playground/validator#1383</a></li>
<li>Bump golang.org/x/crypto from 0.32.0 to 0.33.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1382">go-playground/validator#1382</a></li>
<li>feat(translations): improve Indonesian translations and add tests by
<a href="https://github.com/fathiraz"><code>@​fathiraz</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1376">go-playground/validator#1376</a></li>
<li>Fix time.Duration translation error by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1154">go-playground/validator#1154</a></li>
<li>Update Project Status button by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1380">go-playground/validator#1380</a></li>
<li>Remove gitter.im link from README.md by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1366">go-playground/validator#1366</a></li>
<li>Docs: fix <code>Base64RawURL</code> usage by <a
href="https://github.com/196Ikuchil"><code>@​196Ikuchil</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1336">go-playground/validator#1336</a></li>
<li>Fix length check on dns_rfc1035_label tag by <a
href="https://github.com/KimNorgaard"><code>@​KimNorgaard</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1214">go-playground/validator#1214</a></li>
<li>Add Korean by <a
href="https://github.com/jkh0kr"><code>@​jkh0kr</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1338">go-playground/validator#1338</a></li>
<li>add german translations by <a
href="https://github.com/max-weis"><code>@​max-weis</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1322">go-playground/validator#1322</a></li>
<li>Update workflow to support the last three Go versions by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1393">go-playground/validator#1393</a></li>
<li>Fix: Nil pointer dereference in Arabic translations by <a
href="https://github.com/BlackSud0"><code>@​BlackSud0</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1391">go-playground/validator#1391</a></li>
<li>Translate to thai by <a
href="https://github.com/maetad"><code>@​maetad</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1202">go-playground/validator#1202</a></li>
<li>Feat: add EIN validation by <a
href="https://github.com/henrriusdev"><code>@​henrriusdev</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1384">go-playground/validator#1384</a></li>
<li>Fix reference to parameter name in docs by <a
href="https://github.com/yegvla"><code>@​yegvla</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1400">go-playground/validator#1400</a></li>
<li>use mail.ParseAddress to cover missing email validations by <a
href="https://github.com/eladb2011"><code>@​eladb2011</code></a> in <a
href="https://redirect.github.com/go-playground/validator/pull/1395">go-playground/validator#1395</a></li>
<li>Update linter to v2.0.2 by <a
href="https://github.com/nodivbyzero"><code>@​nodivbyzero</code></a> in
<a
href="https://redirect.github.com/go-playground/validator/pull/1405">go-playground/validator#1405</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/antonsoroko"><code>@​antonsoroko</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1378">go-playground/validator#1378</a></li>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1381">go-playground/validator#1381</a></li>
<li><a href="https://github.com/fathiraz"><code>@​fathiraz</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1376">go-playground/validator#1376</a></li>
<li><a
href="https://github.com/196Ikuchil"><code>@​196Ikuchil</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1336">go-playground/validator#1336</a></li>
<li><a
href="https://github.com/KimNorgaard"><code>@​KimNorgaard</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1214">go-playground/validator#1214</a></li>
<li><a href="https://github.com/jkh0kr"><code>@​jkh0kr</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1338">go-playground/validator#1338</a></li>
<li><a href="https://github.com/max-weis"><code>@​max-weis</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1322">go-playground/validator#1322</a></li>
<li><a href="https://github.com/BlackSud0"><code>@​BlackSud0</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1391">go-playground/validator#1391</a></li>
<li><a href="https://github.com/maetad"><code>@​maetad</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1202">go-playground/validator#1202</a></li>
<li><a
href="https://github.com/henrriusdev"><code>@​henrriusdev</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1384">go-playground/validator#1384</a></li>
<li><a href="https://github.com/yegvla"><code>@​yegvla</code></a> made
their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1400">go-playground/validator#1400</a></li>
<li><a href="https://github.com/eladb2011"><code>@​eladb2011</code></a>
made their first contribution in <a
href="https://redirect.github.com/go-playground/validator/pull/1395">go-playground/validator#1395</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/go-playground/validator/compare/v10.25.0...v10.26.0">https://github.com/go-playground/validator/compare/v10.25.0...v10.26.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/go-playground/validator/commit/433b08283c14b1def28e8f05e36c2bed2f13b3f4"><code>433b082</code></a>
Update linter to v2.0.2 (<a
href="https://redirect.github.com/go-playground/validator/issues/1405">#1405</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/859202275556dac82d4460234867c5c5988d06fd"><code>8592022</code></a>
use mail.ParseAddress to cover missing email validations (<a
href="https://redirect.github.com/go-playground/validator/issues/1395">#1395</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/271abb312cd958fd1c61b58983ecab31026eb252"><code>271abb3</code></a>
Fix reference to parameter name in docs (<a
href="https://redirect.github.com/go-playground/validator/issues/1400">#1400</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/79c42ad73c1fdebee04c93ac6a0e132353662dc6"><code>79c42ad</code></a>
Feat: add EIN validation (<a
href="https://redirect.github.com/go-playground/validator/issues/1384">#1384</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/2cadaff20364eef00f8711e1b6a0dfcc2aceee14"><code>2cadaff</code></a>
Translate to thai (<a
href="https://redirect.github.com/go-playground/validator/issues/1202">#1202</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/bae7f6d3cb253fbd5dddcdf339f8460fa8d091c3"><code>bae7f6d</code></a>
Fix: Nil pointer dereference in Arabic translations (<a
href="https://redirect.github.com/go-playground/validator/issues/1391">#1391</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/909c504042f17c83dc76e8a2c11efd3dd41bd212"><code>909c504</code></a>
Update workflow to support the last three Go versions (<a
href="https://redirect.github.com/go-playground/validator/issues/1393">#1393</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/09c1323276ffada71562c1b8bf0554a0ed5ddd1d"><code>09c1323</code></a>
add german translations (<a
href="https://redirect.github.com/go-playground/validator/issues/1322">#1322</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/45dd6e3bd61a7659b16d9c624e3e0174223a5fd6"><code>45dd6e3</code></a>
Add Korean (<a
href="https://redirect.github.com/go-playground/validator/issues/1338">#1338</a>)</li>
<li><a
href="https://github.com/go-playground/validator/commit/97d2bf07aad31b97b64fcd8213f922f159e62361"><code>97d2bf0</code></a>
Fix length check on dns_rfc1035_label tag (<a
href="https://redirect.github.com/go-playground/validator/issues/1214">#1214</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/go-playground/validator/compare/v10.25.0...v10.26.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/go-playground/validator/v10&package-manager=go_modules&previous-version=10.25.0&new-version=10.26.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-08 09:17:47 +00:00
Michael Suchacz ce22de8d15 feat: log long-lived connections acceptance (#17219)
Closes #16904
2025-04-08 08:30:05 +00:00
Thomas Kosiewski abe3ad68f5 fix: add continue-on-error to SBOM generation and force flag to cosign clean (#17288)
This PR makes the SBOM generation and attestation process more resilient
by:

1. Adding `continue-on-error: true` to the SBOM generation steps in both
CI and release workflows
2. Adding `--force=true` flag to all `cosign clean` commands to ensure
they don't fail if in a non-interactive shell (which is the case for CI)

Change-Id: Ide303c059b1a3d0e3fd77863310e99668325bc69
Signed-off-by: Thomas Kosiewski <tk@coder.com>

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-04-08 10:29:00 +02:00
Edward Angert 0e878a8e98 docs: rename codervpn to coder connect (#16833)
part of: https://github.com/coder/internal/issues/459

- [x] Text
- [x] Screenshots
  - [x] MacOS
  - [x] Windows

[preview](https://coder.com/docs/@459-coder-connect/user-guides/desktop)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-04-08 12:00:23 +04:00
coryb 12e5718b99 feat(provisioner): propagate trace info (#17166)
If tracing is enabled, propagate the trace information to the terraform
provisioner via environment variables. This sets the `TRACEPARENT`
environment variable using the default W3C trace propagators. Users can
choose to continue the trace by adding new spans in the provisioner by
reading from the environment like:

ctx := env.ContextWithRemoteSpanContext(context.Background(),
os.Environ())

---------

Co-authored-by: Spike Curtis <spike@spikecurtis.com>
2025-04-08 11:58:28 +04:00
Spike Curtis 9eeb506ae5 feat: modify config-ssh to set the host suffix (#17280)
Wires up `config-ssh` command to use a hostname suffix if configured.

part of: #16828


e.g. `coder config-ssh --hostname-suffix spiketest` gives:

```
# ------------START-CODER-----------
# This section is managed by coder. DO NOT EDIT.
#
# You should not hand-edit this section unless you are removing it, all
# changes will be lost when running "coder config-ssh".
#
# Last config-ssh options:
# :hostname-suffix=spiketest
#
Host coder.* *.spiketest
        ConnectTimeout=0
        StrictHostKeyChecking=no
        UserKnownHostsFile=/dev/null
        LogLevel ERROR
        ProxyCommand /home/coder/repos/coder/build/coder_config_ssh --global-config /home/coder/.config/coderv2 ssh --stdio --ssh-host-prefix coder. --hostname-suffix spiketest %h
# ------------END-CODER------------
```
2025-04-08 11:48:18 +04:00
ケイラ 114ba4593b chore: fix swagger type of AuditLog AdditionalFields (#17286) 2025-04-07 13:48:58 -06:00
Edward Angert d0aff04aef docs: remove blank inbox doc (#17285)
[preview](https://coder.com/docs/@hotfix-inbox-doc)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-07 14:19:45 -04:00
Edward Angert 2f6682a46f docs: add zed code_app to extending-templates doc (#17281)
continuation of #17236  (thanks @sharkymark )

adds zed as a coder_app to
<https://coder.com/docs/admin/templates/extending-templates>



[preview](https://coder.com/docs/@17236-zed-app/admin/templates/extending-templates#coder-app-examples)

---------

Co-authored-by: sharkymark <mtm20176@gmail.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-07 14:00:43 -04:00
Spike Curtis d312e82a51 feat: support --hostname-suffix flag on coder ssh (#17279)
Adds `hostname-suffix` flag to `coder ssh` command for use in SSH Config ProxyCommands.

Also enforces that Coder server doesn't start the suffix with a dot.

part of: #16828
2025-04-07 21:33:33 +04:00
Aaron Lehmann aa0a63a295 fix(agent): log correct error variable in createTailnet (#17283) 2025-04-07 16:32:52 +00:00
Thomas Kosiewski f48a24c18e feat: add SBOM generation and attestation to GitHub workflow (#17277)
Move SBOM generation and attestation to GitHub workflow

This PR moves the SBOM generation and attestation process from the `build_docker.sh` script to the GitHub workflow. The change:

1. Removes SBOM generation and attestation from the `build_docker.sh` script
2. Adds a new "SBOM Generation and Attestation" step in the GitHub workflow
3. Generates and attests SBOMs for both multi-arch images and latest tags when applicable

This approach ensures SBOM generation happens once for the final multi-architecture image rather than for each architecture separately.

Change-Id: I2e15d7322ddec933bbc9bd7880abba9b0842719f
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-04-07 17:54:05 +02:00
Garrett Delfosse fc471eb384 fix: handle vscodessh style workspace names in coder ssh (#17154)
Fixes an issue where old ssh configs that use the
`owner--workspace--agent` format will fail to properly use the `coder
ssh` command since we migrated off the `coder vscodessh` command.
2025-04-07 10:06:58 -04:00
Marcin Tojek 743d308eb3 feat: support multiple terminal fonts (#17257)
Fixes: https://github.com/coder/coder/issues/15024
2025-04-07 14:30:10 +02:00
dependabot[bot] 30f41cdd42 chore: bump github.com/valyala/fasthttp from 1.59.0 to 1.60.0 (#17274)
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp)
from 1.59.0 to 1.60.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/valyala/fasthttp/releases">github.com/valyala/fasthttp's
releases</a>.</em></p>
<blockquote>
<h2>v1.60.0</h2>
<h2>What's Changed</h2>
<ul>
<li>perf: split delAllArgs into delAllArgs and delAllArgsStable by <a
href="https://github.com/ksw2000"><code>@​ksw2000</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1945">valyala/fasthttp#1945</a></li>
<li>fix: accept invalid headers with a space by <a
href="https://github.com/ksw2000"><code>@​ksw2000</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1953">valyala/fasthttp#1953</a></li>
<li>Drop support for Go 1.21, add support for 1.24 by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1959">valyala/fasthttp#1959</a></li>
<li>chore(deps): bump github.com/klauspost/compress from 1.17.11 to
1.18.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1958">valyala/fasthttp#1958</a></li>
<li>add related project for opentelemetry-go-auto-instrumentation by <a
href="https://github.com/123liuziming"><code>@​123liuziming</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1962">valyala/fasthttp#1962</a></li>
<li>Fix normalizeHeaderValue by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1963">valyala/fasthttp#1963</a></li>
<li>chore(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1968">valyala/fasthttp#1968</a></li>
<li>chore(deps): bump securego/gosec from 2.22.1 to 2.22.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1972">valyala/fasthttp#1972</a></li>
<li>chore(deps): bump golang.org/x/net from 0.36.0 to 0.37.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1971">valyala/fasthttp#1971</a></li>
<li>Update golangci-lint to v2 by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1980">valyala/fasthttp#1980</a></li>
<li>chore(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1983">valyala/fasthttp#1983</a></li>
<li>Remove idleConns mutex for every request by <a
href="https://github.com/erikdubbelboer"><code>@​erikdubbelboer</code></a>
in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1986">valyala/fasthttp#1986</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/123liuziming"><code>@​123liuziming</code></a>
made their first contribution in <a
href="https://redirect.github.com/valyala/fasthttp/pull/1962">valyala/fasthttp#1962</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/valyala/fasthttp/compare/v1.59.0...v1.60.0">https://github.com/valyala/fasthttp/compare/v1.59.0...v1.60.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/valyala/fasthttp/commit/752b0e70040eee46b291b9dedd70266d8aa3e2e7"><code>752b0e7</code></a>
Remove idleConns mutex for every request (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1986">#1986</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/bf3f552c8e564472d6e7aae08804bcf0813f1f73"><code>bf3f552</code></a>
chore(deps): bump golang.org/x/net from 0.37.0 to 0.38.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1983">#1983</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/4891fc5304e3ab9e23e9258a39736a3726b626c2"><code>4891fc5</code></a>
Update golangci-lint to v2 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1980">#1980</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/30b09beff11be4282c37ef6b7d8854589d565447"><code>30b09be</code></a>
Fix untyped int constant 4294967295</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/4269e2d68c33f2242e61f67ad4e104ba26fc4c1c"><code>4269e2d</code></a>
chore(deps): bump golang.org/x/net from 0.36.0 to 0.37.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1971">#1971</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/1353ca59f2044a74111d80087a5e762a71a3e1a2"><code>1353ca5</code></a>
chore(deps): bump securego/gosec from 2.22.1 to 2.22.2 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1972">#1972</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/6c07c2f523de17c866ac4cf86d08386e7bad55e4"><code>6c07c2f</code></a>
chore(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1968">#1968</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/69dc7b1280e58dac05ab46c423b5b7f14cc88fab"><code>69dc7b1</code></a>
Update the supported version to the same as Go itself (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1967">#1967</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/b8969ed8dcb5cba0b037f3fe091a0933fc786a28"><code>b8969ed</code></a>
Fix normalizeHeaderValue (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1963">#1963</a>)</li>
<li><a
href="https://github.com/valyala/fasthttp/commit/31e34c5fe0c3dd3090b0c9d662b74bab1dc87f6d"><code>31e34c5</code></a>
add related project for opentelemetry-go-auto-instrumentation (<a
href="https://redirect.github.com/valyala/fasthttp/issues/1962">#1962</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/valyala/fasthttp/compare/v1.59.0...v1.60.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/valyala/fasthttp&package-manager=go_modules&previous-version=1.59.0&new-version=1.60.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 12:18:23 +00:00
dependabot[bot] 37ef4d8cb9 chore: bump github.com/coreos/go-oidc/v3 from 3.13.0 to 3.14.1 (#17276)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc)
from 3.13.0 to 3.14.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>oidctest: fix import by <a
href="https://github.com/ericchiang"><code>@​ericchiang</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/457">coreos/go-oidc#457</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.14.0...v3.14.1">https://github.com/coreos/go-oidc/compare/v3.14.0...v3.14.1</a></p>
<h2>v3.14.0</h2>
<h2>What's Changed</h2>
<ul>
<li>oidc/oidctest: add new package by <a
href="https://github.com/ericchiang"><code>@​ericchiang</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/400">coreos/go-oidc#400</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.13.0...v3.14.0">https://github.com/coreos/go-oidc/compare/v3.13.0...v3.14.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coreos/go-oidc/commit/a7c457eacb849c163a496b29274242474a8f44ab"><code>a7c457e</code></a>
oidctest: fix import</li>
<li><a
href="https://github.com/coreos/go-oidc/commit/aba1ce200a9dd76b14bbb455d4e5aea55e97cbb3"><code>aba1ce2</code></a>
oidc/oidctest: add new package</li>
<li>See full diff in <a
href="https://github.com/coreos/go-oidc/compare/v3.13.0...v3.14.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coreos/go-oidc/v3&package-manager=go_modules&previous-version=3.13.0&new-version=3.14.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 12:18:05 +00:00
dependabot[bot] e6dc6fb8c1 chore: bump github.com/open-policy-agent/opa from 1.1.0 to 1.3.0 (#17170)
Bumps
[github.com/open-policy-agent/opa](https://github.com/open-policy-agent/opa)
from 1.1.0 to 1.3.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/open-policy-agent/opa/releases">github.com/open-policy-agent/opa's
releases</a>.</em></p>
<blockquote>
<h2>v1.3.0</h2>
<p>This release contains a mix of features, bugfixes, and dependency
updates.</p>
<h3>New Buffer Option for Decision Logs (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/5724">#5724</a>)</h3>
<p>A new, optional, buffering mechanism has been added to decision
logging.
The default buffer is designed around making precise memory footprint
guarantees, which can produce lock contention at high loads, negatively
impacting query performance.
The new event-based buffer is designed to reduce lock contention and
improve performance at high loads, but sacrifices the memory footprint
guarantees of the default buffer.</p>
<p>The new event-based buffer is enabled by setting the
<code>decision_logs.reporting.buffer_type</code> <a
href="https://www.openpolicyagent.org/docs/latest/configuration/#decision-logs">configuration
option</a> to <code>event</code>.</p>
<p>For more details, see the decision log plugin <a
href="https://github.com/open-policy-agent/opa/blob/main/v1/plugins/logs/README.md">README</a>.</p>
<p>Reported by <a
href="https://github.com/mjungsbluth"><code>@​mjungsbluth</code></a>,
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a></p>
<h3>OpenTelemetry: HTTP Support and Expanded Batch Span Configuration
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7412">#7412</a>)</h3>
<p>Distributed tracing through OpenTelemetry has been extended to
support HTTP collectors (enabled by setting the
<code>distributed_tracing.type</code> configuration option to
<code>http</code>).
Additionally, configuration has been expanded with fine-grained batch
span processor <a
href="https://www.openpolicyagent.org/docs/latest/configuration/#distributed-tracing">options</a>.</p>
<p>Authored and reported by <a
href="https://github.com/sqyang94"><code>@​sqyang94</code></a></p>
<h3>Runtime, Tooling, SDK</h3>
<ul>
<li>compile: Require multi-term entrypoint paths for optimized bundle
building (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7321">#7321</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a>
reported by <a
href="https://github.com/nikpivkin"><code>@​nikpivkin</code></a></li>
<li>fmt: Allow one liner rule grouping (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/6760">#6760</a>)
authored by <a
href="https://github.com/anderseknert"><code>@​anderseknert</code></a></li>
<li>fmt: Fix v0-compatible fmt with stdin (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7409">#7409</a>)
authored and reported by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>ir: Fix nil pointer deref in Unmarshal() when handling IsSetStmt (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7415">#7415</a>)
authored and reported by <a
href="https://github.com/KrisKennawayDD"><code>@​KrisKennawayDD</code></a></li>
<li>planner: Fix Wasm vs non-Wasm evaluation difference bug related to
the overeager optimization of ref head rules (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7439">#7439</a>)
authored by <a
href="https://github.com/srenatus"><code>@​srenatus</code></a></li>
<li>sdk: Removing repeat args from sub-func call (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7443">#7443</a>)
authored by <a
href="https://github.com/alingse"><code>@​alingse</code></a></li>
<li>tester: Including parameterized test cases in test report counter
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7407">#7407</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></li>
<li>tester: Only including failed sub-test cases in report summary when
non-verbose (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7426">#7426</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></li>
</ul>
<h3>Docs, Website, Ecosystem</h3>
<ul>
<li>docs: Add some notes about AI assisted patches (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7436">#7436</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Add query_parameters_to_set (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7405">#7405</a>)
authored by <a
href="https://github.com/sedovmik"><code>@​sedovmik</code></a></li>
<li>docs: Delete reference to license key in Envoy tutorial (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7466">#7466</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
<li>docs: Fix typo in Envoy tutorial (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7464">#7464</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
<li>docs: Update slack inviter link (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7450">#7450</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Update terraform examples (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7429">#7429</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Simplify <code>kind</code> usage instruction in Envoy tutorial
(<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7465">#7465</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
</ul>
<h3>Miscellaneous</h3>
<ul>
<li>Enable unused-receiver linter (revive) (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7448">#7448</a>)
authored by <a
href="https://github.com/anderseknert"><code>@​anderseknert</code></a></li>
<li>Dependency updates; notably:
<ul>
<li>build(deps): bump github.com/containerd/containerd from 1.7.26 to
1.7.27</li>
<li>build(deps): bump github.com/dgraph-io/badger/v4 from 4.5.1 to
4.6.0</li>
<li>build(deps): bump github.com/opencontainers/image-spec from 1.1.0 to
1.1.1</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/open-policy-agent/opa/blob/main/CHANGELOG.md">github.com/open-policy-agent/opa's
changelog</a>.</em></p>
<blockquote>
<h2>1.3.0</h2>
<p>This release contains a mix of features, bugfixes, and dependency
updates.</p>
<h3>New Buffer Option for Decision Logs (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/5724">#5724</a>)</h3>
<p>A new, optional, buffering mechanism has been added to decision
logging.
The default buffer is designed around making precise memory footprint
guarantees, which can produce lock contention at high loads, negatively
impacting query performance.
The new event-based buffer is designed to reduce lock contention and
improve performance at high loads, but sacrifices the memory footprint
guarantees of the default buffer.</p>
<p>The new event-based buffer is enabled by setting the
<code>decision_logs.reporting.buffer_type</code> <a
href="https://www.openpolicyagent.org/docs/latest/configuration/#decision-logs">configuration
option</a> to <code>event</code>.</p>
<p>For more details, see the decision log plugin <a
href="https://github.com/open-policy-agent/opa/blob/main/v1/plugins/logs/README.md">README</a>.</p>
<p>Reported by <a
href="https://github.com/mjungsbluth"><code>@​mjungsbluth</code></a>,
authored by <a
href="https://github.com/sspaink"><code>@​sspaink</code></a></p>
<h3>OpenTelemetry: HTTP Support and Expanded Batch Span Configuration
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7412">#7412</a>)</h3>
<p>Distributed tracing through OpenTelemetry has been extended to
support HTTP collectors (enabled by setting the
<code>distributed_tracing.type</code> configuration option to
<code>http</code>).
Additionally, configuration has been expanded with fine-grained batch
span processor <a
href="https://www.openpolicyagent.org/docs/latest/configuration/#distributed-tracing">options</a>.</p>
<p>Authored and reported by <a
href="https://github.com/sqyang94"><code>@​sqyang94</code></a></p>
<h3>Runtime, Tooling, SDK</h3>
<ul>
<li>compile: Require multi-term entrypoint paths for optimized bundle
building (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7321">#7321</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a>
reported by <a
href="https://github.com/nikpivkin"><code>@​nikpivkin</code></a></li>
<li>fmt: Allow one liner rule grouping (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/6760">#6760</a>)
authored by <a
href="https://github.com/anderseknert"><code>@​anderseknert</code></a></li>
<li>fmt: Fix v0-compatible fmt with stdin (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7409">#7409</a>)
authored and reported by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>ir: Fix nil pointer deref in Unmarshal() when handling IsSetStmt (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7415">#7415</a>)
authored and reported by <a
href="https://github.com/KrisKennawayDD"><code>@​KrisKennawayDD</code></a></li>
<li>planner: Fix Wasm vs non-Wasm evaluation difference bug related to
the overeager optimization of ref head rules (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7439">#7439</a>)
authored by <a
href="https://github.com/srenatus"><code>@​srenatus</code></a></li>
<li>sdk: Removing repeat args from sub-func call (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7443">#7443</a>)
authored by <a
href="https://github.com/alingse"><code>@​alingse</code></a></li>
<li>tester: Including parameterized test cases in test report counter
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7407">#7407</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></li>
<li>tester: Only including failed sub-test cases in report summary when
non-verbose (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7426">#7426</a>)
authored by <a
href="https://github.com/johanfylling"><code>@​johanfylling</code></a></li>
</ul>
<h3>Docs, Website, Ecosystem</h3>
<ul>
<li>docs: Add some notes about AI assisted patches (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7436">#7436</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Add query_parameters_to_set (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7405">#7405</a>)
authored by <a
href="https://github.com/sedovmik"><code>@​sedovmik</code></a></li>
<li>docs: Delete reference to license key in Envoy tutorial (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7466">#7466</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
<li>docs: Fix typo in Envoy tutorial (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7464">#7464</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
<li>docs: Update slack inviter link (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7450">#7450</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Update terraform examples (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7429">#7429</a>)
authored by <a
href="https://github.com/charlieegan3"><code>@​charlieegan3</code></a></li>
<li>docs: Simplify <code>kind</code> usage instruction in Envoy tutorial
(<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7465">#7465</a>)
authored by <a
href="https://github.com/joostholslag"><code>@​joostholslag</code></a></li>
</ul>
<h3>Miscellaneous</h3>
<ul>
<li>Enable unused-receiver linter (revive) (<a
href="https://redirect.github.com/open-policy-agent/opa/pull/7448">#7448</a>)
authored by <a
href="https://github.com/anderseknert"><code>@​anderseknert</code></a></li>
<li>Dependency updates; notably:
<ul>
<li>build(deps): bump github.com/containerd/containerd from 1.7.26 to
1.7.27</li>
<li>build(deps): bump github.com/dgraph-io/badger/v4 from 4.5.1 to
4.6.0</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/open-policy-agent/opa/commit/89f48353959c9b08608b6d7160c1f1c5ae2763ee"><code>89f4835</code></a>
Prepare v1.3.0 release (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7467">#7467</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/ee38d8345f4950c6429d4d117e3509c578e36f5f"><code>ee38d83</code></a>
docs/envoy-tutorial-standalone: simplify 'kind' usage instruction (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7465">#7465</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/3d3b45f7522a9e7de3334231d76fbe75d346a677"><code>3d3b45f</code></a>
Delete reference to license key in envoy-tutorial-standalone-envoy.md
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7466">#7466</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/004af4c64454eab7b0c2e48aa4aea8dc6fb17eb7"><code>004af4c</code></a>
docs/envoy-tutorial-standalone: fix typo (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7464">#7464</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/cd66fa36e2b6e8ad396dbb7a0f3adc600118c607"><code>cd66fa3</code></a>
feat: new event-based decisions log buffer implementation (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7446">#7446</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/c8febc8625a626b52195c511a37868c85f9f4b9b"><code>c8febc8</code></a>
feat: add more distributed tracing options (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7421">#7421</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/b3b87ffd830b5b1309ffd95ef0f42e9a4e0c071b"><code>b3b87ff</code></a>
fmt: allow one liner rule grouping (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7453">#7453</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/92ae9a014f984ba39bca1ed19c832ddbf259e88f"><code>92ae9a0</code></a>
build(deps): bump github.com/containerd/containerd from 1.7.26 to 1.7.27
(<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7451">#7451</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/f3de1006f9b59f310d32b9433dc6d76d0a4acde5"><code>f3de100</code></a>
docs: Update slack inviter link (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7450">#7450</a>)</li>
<li><a
href="https://github.com/open-policy-agent/opa/commit/bd5ceb514234f2d0a625dff532abe2167f9d824e"><code>bd5ceb5</code></a>
Enable unused-receiver linter (revive) (<a
href="https://redirect.github.com/open-policy-agent/opa/issues/7448">#7448</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/open-policy-agent/opa/compare/v1.1.0...v1.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/open-policy-agent/opa&package-manager=go_modules&previous-version=1.1.0&new-version=1.3.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 12:17:11 +00:00
dependabot[bot] a2314ad53c chore: bump github.com/ory/dockertest/v3 from 3.11.0 to 3.12.0 (#17275)
Bumps [github.com/ory/dockertest/v3](https://github.com/ory/dockertest)
from 3.11.0 to 3.12.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ory/dockertest/releases">github.com/ory/dockertest/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.12.0</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump github.com/docker/cli from 26.1.4+incompatible to
27.1.2+incompatible by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/524">ory/dockertest#524</a></li>
<li>chore(deps): bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/514">ory/dockertest#514</a></li>
<li>chore(deps): bump actions/stale from 4 to 9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/526">ory/dockertest#526</a></li>
<li>chore(deps): bump github.com/opencontainers/runc from 1.1.13 to
1.1.15 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/538">ory/dockertest#538</a></li>
<li>chore(deps): bump actions/checkout from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/527">ory/dockertest#527</a></li>
<li>feat: use creds helper by <a
href="https://github.com/GuillaumeSmaha"><code>@​GuillaumeSmaha</code></a>
in <a
href="https://redirect.github.com/ory/dockertest/pull/520">ory/dockertest#520</a></li>
<li>added AuthConfigs to BuildOptions and pass that to BuildImage by <a
href="https://github.com/DGollings"><code>@​DGollings</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/488">ory/dockertest#488</a></li>
<li>add multiple test container example by <a
href="https://github.com/akoserwal"><code>@​akoserwal</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/515">ory/dockertest#515</a></li>
<li>fix: trying to bind to an outbound ip returns an empty list of port
bindings by <a
href="https://github.com/atzoum"><code>@​atzoum</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/533">ory/dockertest#533</a></li>
<li>chore(deps): bump golang.org/x/sys from 0.21.0 to 0.28.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/548">ory/dockertest#548</a></li>
<li>chore(deps): bump actions/stale from 4 to 9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/550">ory/dockertest#550</a></li>
<li>chore(deps): bump actions/checkout from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/549">ory/dockertest#549</a></li>
<li>chore(deps): bump actions/checkout from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/555">ory/dockertest#555</a></li>
<li>chore(deps): bump github.com/docker/cli from 27.1.2+incompatible to
27.4.1+incompatible by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/553">ory/dockertest#553</a></li>
<li>chore(deps): bump github.com/opencontainers/runc from 1.1.15 to
1.2.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/551">ory/dockertest#551</a></li>
<li>chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/ory/dockertest/pull/547">ory/dockertest#547</a></li>
<li>feat: add support for BuildKit when building images by <a
href="https://github.com/tmc"><code>@​tmc</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/416">ory/dockertest#416</a></li>
<li>chore(deps): bump actions/setup-node from 2.pre.beta to 4.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/539">ory/dockertest#539</a></li>
<li>chore(deps): bump actions/stale from 4 to 9 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/ory/dockertest/pull/554">ory/dockertest#554</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/GuillaumeSmaha"><code>@​GuillaumeSmaha</code></a>
made their first contribution in <a
href="https://redirect.github.com/ory/dockertest/pull/520">ory/dockertest#520</a></li>
<li><a href="https://github.com/DGollings"><code>@​DGollings</code></a>
made their first contribution in <a
href="https://redirect.github.com/ory/dockertest/pull/488">ory/dockertest#488</a></li>
<li><a href="https://github.com/akoserwal"><code>@​akoserwal</code></a>
made their first contribution in <a
href="https://redirect.github.com/ory/dockertest/pull/515">ory/dockertest#515</a></li>
<li><a href="https://github.com/atzoum"><code>@​atzoum</code></a> made
their first contribution in <a
href="https://redirect.github.com/ory/dockertest/pull/533">ory/dockertest#533</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ory/dockertest/compare/v3.11.0...v3.12.0">https://github.com/ory/dockertest/compare/v3.11.0...v3.12.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ory/dockertest/commit/8a76ff064a81dda59a3839f908b85e4df79d755a"><code>8a76ff0</code></a>
chore: update repository templates to <a
href="https://github.com/ory/meta/commit/bc60">https://github.com/ory/meta/commit/bc60</a>...</li>
<li><a
href="https://github.com/ory/dockertest/commit/207b20aded3b6876a3acb2a6cdc4447eb8f49bfc"><code>207b20a</code></a>
chore: update repository templates to <a
href="https://github.com/ory/meta/commit/83e7">https://github.com/ory/meta/commit/83e7</a>...</li>
<li><a
href="https://github.com/ory/dockertest/commit/fabf5638cd38b571da9f174f777709da3699e419"><code>fabf563</code></a>
autogen: update license overview</li>
<li><a
href="https://github.com/ory/dockertest/commit/4b1e539f23198fc2718bdc3122af50cb123bd621"><code>4b1e539</code></a>
chore: update repository templates to <a
href="https://github.com/ory/meta/commit/44ef">https://github.com/ory/meta/commit/44ef</a>...</li>
<li><a
href="https://github.com/ory/dockertest/commit/46d1a7b148e4ffbef44b5688c3f814a687d0cc84"><code>46d1a7b</code></a>
chore: update repository templates to <a
href="https://github.com/ory/meta/commit/c091">https://github.com/ory/meta/commit/c091</a>...</li>
<li><a
href="https://github.com/ory/dockertest/commit/13e6e33fbdb15fdc137d671a8109cdafee61a9d3"><code>13e6e33</code></a>
chore(deps): bump actions/stale from 4 to 9 (<a
href="https://redirect.github.com/ory/dockertest/issues/554">#554</a>)</li>
<li><a
href="https://github.com/ory/dockertest/commit/91b7d0b413252b891483b989ddc2ecda394b14cf"><code>91b7d0b</code></a>
chore(deps): bump actions/setup-node from 2.pre.beta to 4.1.0 (<a
href="https://redirect.github.com/ory/dockertest/issues/539">#539</a>)</li>
<li><a
href="https://github.com/ory/dockertest/commit/28c8c5b6ab911beb07fc08922fd42fb74ea82b19"><code>28c8c5b</code></a>
chore(deps): bump github.com/containerd/continuity from 0.4.3 to 0.4.5
(<a
href="https://redirect.github.com/ory/dockertest/issues/545">#545</a>)</li>
<li><a
href="https://github.com/ory/dockertest/commit/eec3a4f420353447100008b96eb33c3b5509577b"><code>eec3a4f</code></a>
feat: add support for BuildKit when building images (<a
href="https://redirect.github.com/ory/dockertest/issues/416">#416</a>)</li>
<li><a
href="https://github.com/ory/dockertest/commit/f6e65ba5e18bbca77c5d27d768d67268c01c7178"><code>f6e65ba</code></a>
chore(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (<a
href="https://redirect.github.com/ory/dockertest/issues/547">#547</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ory/dockertest/compare/v3.11.0...v3.12.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/ory/dockertest/v3&package-manager=go_modules&previous-version=3.11.0&new-version=3.12.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 12:03:43 +00:00
dependabot[bot] 4615d29698 chore: bump the x group across 1 directory with 6 updates (#17272)
Bumps the x group with 3 updates in the / directory:
[golang.org/x/crypto](https://github.com/golang/crypto),
[golang.org/x/net](https://github.com/golang/net) and
[golang.org/x/oauth2](https://github.com/golang/oauth2).

Updates `golang.org/x/crypto` from 0.36.0 to 0.37.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/crypto/commit/959f8f3db0fb8c3fb1f9507101058dda21e1fdcf"><code>959f8f3</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/crypto/commit/769bcd6997ac6f3154e27b73b3587295f7720e66"><code>769bcd6</code></a>
ssh: use the configured rand in kex init</li>
<li><a
href="https://github.com/golang/crypto/commit/d0a798f774735c176ed0d3500ac986957a02660f"><code>d0a798f</code></a>
cryptobyte: fix typo 'octects' into 'octets' for asn1.go</li>
<li><a
href="https://github.com/golang/crypto/commit/acbcbef23f9b1b3b7c64673f0ed8baa83475edbe"><code>acbcbef</code></a>
acme: remove unnecessary []byte conversion</li>
<li><a
href="https://github.com/golang/crypto/commit/376eb1400636d0d687bee5520daadb5fdeac3311"><code>376eb14</code></a>
x509roots: support constrained roots</li>
<li><a
href="https://github.com/golang/crypto/commit/b369b723c8ad46b179f3a49d57bfc7d6a2740cdf"><code>b369b72</code></a>
crypto/internal/poly1305: implement function update in assembly on
loong64</li>
<li><a
href="https://github.com/golang/crypto/commit/6b853fbea37a941d918ac0760a5492802df42b9b"><code>6b853fb</code></a>
ssh/knownhosts: check more than one key</li>
<li>See full diff in <a
href="https://github.com/golang/crypto/compare/v0.36.0...v0.37.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/net` from 0.37.0 to 0.38.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/net/commit/e1fcd82abba34df74614020343be8eb1fe85f0d9"><code>e1fcd82</code></a>
html: properly handle trailing solidus in unquoted attribute value in
foreign...</li>
<li><a
href="https://github.com/golang/net/commit/ebed060e8f30f20235f74808c22125fd86b15edd"><code>ebed060</code></a>
internal/http3: fix build of tests with GOEXPERIMENT=nosynctest</li>
<li><a
href="https://github.com/golang/net/commit/1f1fa29e0a46fffe18c43a9da8daa5a0b180dfa9"><code>1f1fa29</code></a>
publicsuffix: regenerate table</li>
<li><a
href="https://github.com/golang/net/commit/12150816f701c912a32a376754ab28dd3878833a"><code>1215081</code></a>
http2: improve error when server sends HTTP/1</li>
<li><a
href="https://github.com/golang/net/commit/312450e473eae9f9e6173ad895c80bc5ea2f79ad"><code>312450e</code></a>
html: ensure &lt;search&gt; tag closes &lt;p&gt; and update tests</li>
<li><a
href="https://github.com/golang/net/commit/09731f9bf919b00b344c763894cd1920b3d96d90"><code>09731f9</code></a>
http2: improve handling of lost PING in Server</li>
<li><a
href="https://github.com/golang/net/commit/55989e24b972a90ab99308fdc7ea1fb58a96fef1"><code>55989e2</code></a>
http2/h2c: use ResponseController for hijacking connections</li>
<li><a
href="https://github.com/golang/net/commit/2914f46773171f4fa13e276df1135bafef677801"><code>2914f46</code></a>
websocket: re-recommend gorilla/websocket</li>
<li>See full diff in <a
href="https://github.com/golang/net/compare/v0.37.0...v0.38.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/oauth2` from 0.28.0 to 0.29.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/oauth2/commit/65c15a35147ccc5127e9f8cdf2e07837596e56b4"><code>65c15a3</code></a>
oauth2: remove extra period</li>
<li><a
href="https://github.com/golang/oauth2/commit/ce56909505b351a755ad0bc294c5ee01ed0ea050"><code>ce56909</code></a>
jws: improve fix for CVE-2025-22868</li>
<li>See full diff in <a
href="https://github.com/golang/oauth2/compare/v0.28.0...v0.29.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sync` from 0.12.0 to 0.13.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sync/commit/396f3a06ea2a49eb410f12e244c0dd77095d0de9"><code>396f3a0</code></a>
errgroup: document calling Go before Wait</li>
<li>See full diff in <a
href="https://github.com/golang/sync/compare/v0.12.0...v0.13.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/sys` from 0.31.0 to 0.32.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/sys/commit/01aaa8342f9d6e36356d05d0baff28e64ee6367e"><code>01aaa83</code></a>
all: simplify code by using modern Go constructs</li>
<li><a
href="https://github.com/golang/sys/commit/1b2bd6bb49091efddfc5ca87435bcea9e2090720"><code>1b2bd6b</code></a>
windows: replace all StringToUTF16 calls with UTF16FromString</li>
<li><a
href="https://github.com/golang/sys/commit/1c3b72f1c1fa7f3a3a355c7a963cd1c958135d01"><code>1c3b72f</code></a>
unix: update Linux kernel to 6.14</li>
<li><a
href="https://github.com/golang/sys/commit/c175b6ba6781614eadf22a0727389d97e25f72ee"><code>c175b6b</code></a>
windows: add cmsghdr and pktinfo structures</li>
<li><a
href="https://github.com/golang/sys/commit/3330b5e756f9a4ffd9510bc98b4c8b5b6d05b9c7"><code>3330b5e</code></a>
unix: support Readv, Preadv, Writev and Pwritev for darwin</li>
<li><a
href="https://github.com/golang/sys/commit/7401cce31392295f531e1d0fcc2f01d782353300"><code>7401cce</code></a>
cpu: replace specific instructions with WORD in the function get_cpucfg
on lo...</li>
<li><a
href="https://github.com/golang/sys/commit/b8f7da6c5a244c4015da1e739f7f40b21f4c40c8"><code>b8f7da6</code></a>
cpu: add support for detecting cpu features on loong64</li>
<li><a
href="https://github.com/golang/sys/commit/f2ce62c21a0ddb543d412be19f3168b09d76d1b8"><code>f2ce62c</code></a>
windows: add constants for PMTUD socket options</li>
<li>See full diff in <a
href="https://github.com/golang/sys/compare/v0.31.0...v0.32.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/term` from 0.30.0 to 0.31.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/term/commit/5d2308b09df8e012ed012f73c878253d901b7f56"><code>5d2308b</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/term/commit/e770dddbf5e3084c939760c50ca84c1adee9c4c4"><code>e770ddd</code></a>
x/term: disabling auto-completion around GetPassword()</li>
<li>See full diff in <a
href="https://github.com/golang/term/compare/v0.30.0...v0.31.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 11:59:56 +00:00
Sas Swart 0b2b643ce2 feat: persist prebuild definitions on template import (#16951)
This PR allows provisioners to recognise and report prebuild definitions
to the coder control plane. It also allows the coder control plane to
then persist these to its store.

closes https://github.com/coder/internal/issues/507

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: evgeniy-scherbina <evgeniy.shcherbina.es@gmail.com>
2025-04-07 10:35:28 +02:00
Mathias Fredriksson 074ec2887d test(agent/agentssh): fix test race and improve Windows compat (#17271)
Fixes coder/internal#558
2025-04-07 11:32:37 +03:00
Spike Curtis 59c5bc9bd2 feat: add hostname-suffix option to config-ssh (#17270)
Adds `hostname-suffix` as a Config SSH option that we get from Coderd, and also accept via a CLI flag.

It doesn't actually do anything with this value --- that's for PRs up the stack, since we need the `coder ssh` command to be updated to understand the suffix first.
2025-04-07 12:11:04 +04:00
Spike Curtis 24248736ac feat: add host suffix to /api/v2/deployment/ssh (#17269)
Adds `HostnameSuffix` to ssh config API and deprecates `HostnamePrefix`. We will still support setting and using the prefix for some time.
2025-04-07 11:57:10 +04:00
Spike Curtis 87d9ff0973 feat: add CODER_WORKSPACE_HOSTNAME_SUFFIX (#17268)
Adds deployment option `CODER_WORKSPACE_HOSTNAME_SUFFIX`. This will eventually replace `CODER_SSH_HOSTNAME_PREFIX`, but we will do this slowly and support both for `coder ssh` for some time.

Note that the name is changed to "workspace" hostname, since this suffix will also be used for Coder Connect on Coder Desktop, which is not limited to SSH.
2025-04-07 11:35:47 +04:00
Vincent Vielle 8f665e364a chore: remove notifications beta label (#17263)
Some notifications `beta` label were remaining after the previous PR -
removing it.
2025-04-06 23:50:18 +02:00
Edward Angert f475555d06 docs: document that default GitHub app requires device flow (#17162)
## Issue

Closes #16824

Document that the default GitHub authentication app provided by Coder
requires device flow, and that this behavior cannot be overridden.

## Changes Made

Claude updated the GitHub authentication documentation to:

1. Add a prominent warning in the Default Configuration section
explaining that the default GitHub app requires device flow and ignores
the `CODER_OAUTH2_GITHUB_DEVICE_FLOW` setting
2. Clarify the Device Flow section to indicate that:
   - Device flow is always enabled for the default GitHub app
   - Device flow is optional for custom GitHub OAuth apps
- The `CODER_OAUTH2_GITHUB_DEVICE_FLOW` setting is ignored when using
the default app


[preview](https://coder.com/docs/@16824-github-device-flow/admin/users/github-auth)

<sub>🤖 Generated with [Claude Code](https://claude.ai/code)</sub>

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-04-05 21:44:13 -04:00
Aaron Lehmann e9863aba81 fix: log correct error on drpc connection close error (#17265) 2025-04-04 22:09:42 +03:00
dependabot[bot] cfb6d56f62 chore: bump vite from 5.4.16 to 5.4.17 in /site (#17266)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.16 to 5.4.17.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.17</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.17/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.17/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.17 (2025-04-03)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19782">#19782</a>,
fs check with svg and relative paths (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19784">#19784</a>)
(<a
href="https://github.com/vitejs/vite/commit/84b2b46ed129be8215108e789a90adbb33a9c42c">84b2b46</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19782">#19782</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19784">#19784</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/0a2518a98d2354c61ee8ef51f7d00fa92aebb511"><code>0a2518a</code></a>
release: v5.4.17</li>
<li><a
href="https://github.com/vitejs/vite/commit/84b2b46ed129be8215108e789a90adbb33a9c42c"><code>84b2b46</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19782">#19782</a>,
fs check with svg and relative paths (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19784">#19784</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.17/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.16&new-version=5.4.17)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-04-04 18:10:01 +00:00
brettkolodny ae7afd1aa0 feat: split cli roles edit command into create and update commands (#17121)
Closes #14239
2025-04-04 14:04:20 -04:00
Jaayden Halko 53af7e1b90 feat: add shadcn radio-group component (#17264)
Based on the Figma designs:
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=1786-4794&t=EAs4E89RAJLhivNj-1

<img width="127" alt="Screenshot 2025-04-04 at 16 38 14"
src="https://github.com/user-attachments/assets/e4c72fa9-0491-4674-aeb8-ed0ca4a58649"
/>
2025-04-04 14:00:13 -04:00
Charlie Voiselle b000a7a093 docs: update markdown list in scale-coder.md (#17262) 2025-04-04 12:15:13 -04:00
Bruno Quaresma 17664f481e refactor: update provisioners page to match the new design (#17232)
**Demo**


https://github.com/user-attachments/assets/b880326c-7e94-4778-8166-91af7699901e



Closes https://github.com/coder/coder/issues/17221
2025-04-04 12:00:40 -03:00
Jon Ayers 900eb251eb chore: update Terraform to 1.11.3 (#17256)
- Generated with Claude Code
2025-04-04 10:31:45 -04:00
Vincent Vielle 6a624e7476 chore: remove beta tag from notifications (#17251)
Related to [this issue](https://github.com/coder/internal/issues/557)
2025-04-04 16:28:37 +02:00
Jaayden Halko 8a24372e4d feat: add shadcn checkbox component (#17248)
contributes to coder/preview#55

Add shadcn checkbox component matching Figma styles from Coder Kit:
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=489-4187&t=Zx137ETWsQZtaCku-1

<img width="52" alt="Screenshot 2025-04-03 at 21 15 52"
src="https://github.com/user-attachments/assets/ff2de95c-cb12-46ed-af31-a6d230e52a31"
/>
2025-04-04 10:05:21 -04:00
Jaayden Halko ae67e33c66 fix: set permissions for experimental Createworkspace page (#17254) 2025-04-04 09:59:01 -04:00
Bruno Quaresma 510bc37cbc refactor: update avatar sizes in groups, users and members (#17230)
We updated the template and workspace avatars to be "lg" so to keep it
consistent we have to do the same for the other avatars too.
2025-04-04 10:09:37 -03:00
Bruno Quaresma 3bfafe3b43 feat: add job status filter (#17202)
Closes https://github.com/coder/coder/issues/17155

**Demo:**


https://github.com/user-attachments/assets/fc57e991-c2d5-4712-adac-e072ee7b318d
2025-04-04 10:02:36 -03:00
Edward Angert 43d584c4f3 docs: add a section about latency and how it's measured (#16734)
closes https://github.com/coder/coder/issues/14942

- what latency is measured
- where it's reported
- how users experience latency
- how to lower latency



[preview](https://coder.com/docs/@14942-latency/admin/networking#latency)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-04 08:12:11 -04:00
Spike Curtis 42e5d71f59 fix: fix closeMutex unlock bug (#17259)
Fixes https://github.com/coder/internal/issues/550

Classic return before unlocking bug.
2025-04-04 14:29:56 +04:00
Spike Curtis f6bf6c6ec4 fix!: use names not IDs for agent SSH key seed (#17258)
Changes the SSH host key seeding to use the owner username, workspace name, and agent name. This prevents SSH from complaining about a mismatched host key if you use Coder Desktop to connect, and delete and recreate your workspace with the same name. Previously this would generate a different key because the workspace ID changed.

We also include the owner's username in anticipation of using Coder Desktop to access shared workspaces (or as a superuser) down the road, so that workspaces with the same name owned by different users will not have the same key.

This change is **BREAKING** in a limited sense that early access users of Coder Desktop will see their SSH clients complain about host keys changing the first time each workspace is rebuilt with this code. It can be resolved by clearing your `.ssh/known_hosts` file of the Coder workspaces you access this way.
2025-04-04 12:51:46 +04:00
Jon Ayers 3a0e8ddf97 chore: update esbuild to 0.25.0 (#17214)
- Resolves GHSA-67mh-4wv8-2f99
2025-04-04 02:21:32 -04:00
brettkolodny e64140e999 fix: fix frontend build errors (#17252) 2025-04-03 18:02:39 -04:00
Jaayden Halko 54ff17bec6 feat: create experimental CreateWorkspacePage and dynamic-parameters experiment (#17240)
The purpose of the PR is to make a copy of the CreateWorkspacePage and
create an experimental version that will use when the dynamic-parameters
experiment is enabled.

The Figma designs for this page are still in progress but this first PR
will start to move to the new designs.

Figma design:
https://www.figma.com/design/SMg6H8VKXnPSkE6h9KPoAD/UX-Presets?node-id=2121-2383&t=CtgPUz8eNsTI5b1t-1

Much of the existing code will be left behind and will slowly migrated
over the course of several PRs to make sure no existing functionality is
forgotten in the migration to dynamic paramaters.
2025-04-03 16:39:12 -04:00
Jon Ayers ae44ecfc07 chore: update prismjs to 1.30.0 (#17215)
- Resolves GHSA-x7hr-w5r2-h6wg
2025-04-03 14:13:34 -04:00
Jaayden Halko ccfe1bda1a fix: fix permissions for workspace creation (#17241)
This fixes the permissions check when creating a workspace by setting
the owner_id to the current user's id. This was originally setting
owner_id to *

```
		createWorkspace: {
			object: {
				resource_type: "workspace",
				organization_id: organizationId,
				owner_id: userId,
			},
			action: "create",
		},
```
2025-04-03 11:46:33 -04:00
Mathias Fredriksson b61f0ab958 fix(agent): ensure SSH server shutdown with process groups (#17227)
Fix hanging workspace shutdowns caused by orphaned SSH child processes.
Key changes:

- Create process groups for non-PTY SSH sessions
- Send SIGHUP to entire process group for proper termination
- Add 5-second timeout to prevent indefinite blocking

Fixes #17108
2025-04-03 16:01:43 +03:00
Jaayden Halko b60934b180 chore: hide workspace creation UI for users without permission (#16871)
resolves coder/internal#426
2025-04-03 06:14:25 -04:00
Danielle Maywood ab8c437abc feat(site): open dev container in vscode (#17182)
Closes https://github.com/coder/coder/issues/16426

Adds a new button `VSCodeDevContainerButton` for connecting to a dev
container with VSCode.
2025-04-03 11:10:38 +01:00
Danielle Maywood aa3d71d169 feat(cli): support opening devcontainers in vscode (#17189)
Closes https://github.com/coder/coder/issues/16427

Adds the option `-c,--container` to `open vscode` that allows opening
VSCode into a running devcontainer.
2025-04-03 10:21:23 +01:00
Sas Swart 99c6f235eb feat: add migrations and queries to support prebuilds (#16891)
Depends on https://github.com/coder/coder/pull/16916 _(change base to
`main` once it is merged)_

Closes https://github.com/coder/internal/issues/514

_This is one of several PRs to decompose the `dk/prebuilds` feature
branch into separate PRs to merge into `main`._

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: evgeniy-scherbina <evgeniy.shcherbina.es@gmail.com>
2025-04-03 10:58:30 +02:00
Cian Johnston 4aa45a5c43 fix(cli): modify exp mcp configure to also read claude API key from CLAUDE_API_KEY env (#17229)
Currently you have to set `CODER_MCP_CLAUDE_API_KEY`, which can be
obnoxious.
2025-04-03 09:45:17 +01:00
Ethan 998724de91 chore: sort agent /list-directory output (#17218)
This sorts the `contents` list alphabetically, but with directories before everything else.
This is purely for UX on the Coder Desktop side, where the user only really cares about directories, and files are just for providing context in the file picker.
2025-04-03 12:31:46 +11:00
ケイラ 5979c3224d chore: skip flakey e2e tests (#17235) 2025-04-02 17:38:52 -06:00
ケイラ ac7ea08873 chore: add files cache for reading template tar archives from db (#17141) 2025-04-02 16:42:16 -06:00
dependabot[bot] c06294235f chore: bump next from 14.2.25 to 14.2.26 in /offlinedocs (#17234)
Bumps [next](https://github.com/vercel/next.js) from 14.2.25 to 14.2.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.26</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Match subrequest handling for edge and node (<a
href="https://redirect.github.com/vercel/next.js/issues/77476">#77476</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/10a042cdca294fd1c6852b320954bc6ccc6064e7"><code>10a042c</code></a>
v14.2.26</li>
<li><a
href="https://github.com/vercel/next.js/commit/8a511d6a22d38132c79b8f70ee29713d42225802"><code>8a511d6</code></a>
Match subrequest handling for edge and node (<a
href="https://redirect.github.com/vercel/next.js/issues/77476">#77476</a>)</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.25...v14.2.26">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=14.2.25&new-version=14.2.26)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-04-02 22:42:01 +00:00
Michael Smith c938bfeaab fix: prevent invalid render output for build logs (#17233)
## Changes made
- Updated `Line` type in `LogLine.tsx` to support an ID value to prevent
key conflicts during React rendering. Also deleted the `LineWithID`
type, which became redundant after the change
- Updated the `Logs` component to use the ID to avoid render key
conflicts
- Updated any component calls to add the ID as a prop

## Notes
- This does prevent a bunch of extra `console.error` calls that React
will automatically spit out, so this should help us a good bit in the
future
- Beyond being a little annoying, there was a chance (that was tiny for
now) that React could accidentally mix up component instances during
re-renders. That wasn't my main goal with this PR (I just wanted less
noisy logs), but that should now be impossible
2025-04-02 17:32:49 -04:00
Edward Angert 0fe7346264 docs: remove enterprise from docs (#17226)
Enterprise is a legacy plan that has been replaced by Premium.

[preview](https://coder.com/docs/@enterprise-feats)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-02 16:51:57 -04:00
Cian Johnston e8b7ce80de ci: re-enable revive and gosec linters (#17225)
* Reenables revive linter for test files (with an exception for the
`unused-parameter` rule)
* Reenables gosec linter for test files
2025-04-02 16:19:23 +01:00
Spike Curtis 83d7147e02 chore: deprecate ResourceSystem (#17217)
Deprecates `ResourceSystem`. It's a large collection of unrelated things, and violates the principle of least privilege because to get access to low-security stuff like various statistics, you also get access to serious-security stuff like crypto keys.

We should eventually break it up and remove it, but the least we can do for now is not make the problem worse.
2025-04-02 19:17:26 +04:00
Michael Smith ac0cf35591 fix: silence One-Way WebSocket error messages in React Strict Mode (#17204)
## Changes made
- Updated `OneWayWebSocket` class to prevent errors from being
dispatched after a connection has been manually closed.
- Renamed one of the class properties for less ambiguity
- Made error messages for the class constructor more specific
2025-04-02 10:24:05 -04:00
Ben Potter c418e86a4d chore: slightly soften disclaimers for AI features (#17223) 2025-04-02 13:00:06 +00:00
Cian Johnston 0163ddaaee ci: linkspector: fix 403 to external site (#17222) 2025-04-02 13:56:02 +01:00
Ben Potter 13997cacb1 docs: clarify details around MCP (#17220) 2025-04-02 12:48:08 +00:00
Cian Johnston 8cecc4f12d chore(coderd/coderdtest/oidctest): protect mutable fields with rwmutex (#17151)
Protects mutable fields of `FakeIDP` to avoid data races.
2025-04-02 13:36:26 +01:00
Jon Ayers d6c034d2a3 chore: pin dogfood npm dependencies (#17216) 2025-04-02 03:54:49 -04:00
Jon Ayers b1f5d45112 chore: disable e2e-premium tests (#17213)
- These tests are providing no value in their current state due to the
frequency of their intermittent failures.
2025-04-02 07:26:12 +00:00
Ethan 6fdad0272d fix: avoid sharing echo.Responses across tests (#17211)
Closes https://github.com/coder/internal/issues/551

We've noticed lots of flakes in `go test -race` tests that use the echo provisioner. I believe the root cause of this to be https://github.com/coder/coder/pull/17012/, where we started mutating the `echo.Responses`. This only caused issues as we previously shared `echo.Responses` across multiple test cases.

This PR is therefore the same as https://github.com/coder/coder/pull/17128, but I believe this is all the cases where an `echo.Responses` is shared between tests - including tests that haven't flaked (yet).
2025-04-02 13:06:19 +11:00
Jon Ayers d575e7f3ff chore: force babel dependency to 7.26.10 (#17193)
A bunch of dependency issues with babel, it seems forcing an update to
7.26.10 is ok for now
2025-04-01 22:05:23 -04:00
Edward Angert 0ec87abaa5 docs: add new section on managing provisioners from the dashboard (#16563)
closes #16513 


[preview](https://coder.com/docs/@16513-manage-ext-provisioners/admin/provisioners/manage-provisioner-jobs)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-01 21:04:31 -05:00
Edward Angert 0125ff4592 docs: add new workspace notifications dashboard and config (#16548)
closes #16511 


[preview](https://coder.com/docs/@16511-dashboard-vscode-notif/admin/monitoring/notifications)

(beta tag is removed in https://github.com/coder/coder/pull/17096)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-01 21:03:55 -05:00
Edward Angert 2efb8088f4 docs: remove beta badge from notifications doc (#17096)
remove beta from notifications doc


[preview](https://coder.com/docs/@notifications-beta/admin/monitoring/notifications)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-01 21:52:09 -04:00
Benjamin Peinhardt 51ce04780d fix: replace aliased import with unaliased import (#17207)
If you take a look at the comment above, these imports need to be
unaliased.
2025-04-01 20:27:51 -05:00
Asher c6e866225f fix: watch workspace agent logs (#17209) 2025-04-01 17:18:44 -08:00
Ben Potter a61c3e7a1c docs: add tutorials for using early access AI agent features (#17186)
Some content is still being merged, but the structure is still there

Preview: https://coder.com/docs/@ai-features/tutorials/ai-agents
2025-04-01 19:57:05 -05:00
Bruno Quaresma 4604f191e9 refactor: increase workspace and template avatar size (#17200)
**Before**
<img width="1363" alt="Screenshot 2025-04-01 at 14 46 10"
src="https://github.com/user-attachments/assets/d3d76d70-df16-4b27-a138-e493e0bcac83"
/>
<img width="1360" alt="Screenshot 2025-04-01 at 14 45 55"
src="https://github.com/user-attachments/assets/bbae38fe-6ed2-42fa-99b0-e24f6c8d382d"
/>

**After**
<img width="1359" alt="Screenshot 2025-04-01 at 14 46 18"
src="https://github.com/user-attachments/assets/230b606b-fd5f-4e42-9ca2-56ddb2e1f617"
/>
<img width="1362" alt="Screenshot 2025-04-01 at 14 46 02"
src="https://github.com/user-attachments/assets/b22d4b59-4660-47dd-a362-e8d842dd2a82"
/>
2025-04-01 21:29:36 -03:00
Stephen Kirby a3248f9364 chore(docs): move feature stage docs to install directory (#17199)
I think the feature stages page should be co-located with releases and
not at the entrance of the docs.


[preview](https://coder.com/docs/@move-feature-stages/install/releases/feature-stages)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-04-01 18:44:51 -05:00
ケイラ 184c1f0a59 chore: add db queries for dynamic parameters (#17137) 2025-04-01 15:47:30 -06:00
Ben Potter fd241164a9 docs: clarify that CODER_EXTERNAL_AUTH_0_ID is used in callback URLs (#16879)
## Summary
- Clarifies that the CODER_EXTERNAL_AUTH_0_ID value is used as part of
the OAuth callback URL path
- Adds explicit callback URL examples to GitLab and Bitbucket Server
sections
- Updates the GitHub OAuth app configuration instructions to be more
explicit
- Fixes the documentation mistake where it claimed this ID was only for
"internal reference"

## Test plan
- Documentation change only
- Verified consistency across all OAuth provider sections

Fixes #16851


[preview](https://coder.com/docs/@fix-external-auth-docs-16851/admin/external-auth)

<sub>🤖 Generated with [Claude Code](https://claude.ai/code)</sub>

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-04-01 17:03:25 -04:00
Sas Swart 00e1ea4ccf feat: add the ability to hide preset parameters (#17168)
This PR adds the ability to hide presets on the workspace creation form.
When showing them, a clear indication is now made as to which inputs
were preset and which weren't.


![image](https://github.com/user-attachments/assets/6c8f690c-7cf6-44a9-9657-65039b2b3cb7)
2025-04-01 22:51:42 +02:00
Cian Johnston 88bae05223 feat(cli): implement exp mcp configure claude-code command (#17195)
Updates `~/.claude.json` and `~/.claude/CLAUDE.md` with required
settings for agentic usage.
2025-04-01 20:06:42 +01:00
Kyle Carberry f3e5bb9276 fix: convert workspace id in db2sdk.WorkspaceAppStatus (#17201)
This was causing no status to be rendered in the list, and
`latest_app_status` to always be nil.
2025-04-01 14:49:32 -04:00
Edward Angert 900e125e4a docs: update SMTP configuration in notifications docs (#17161)
## Issue

Closes #16206

(thanks @bjornrobertsson - not sure why I can't tag you as a reviewer)

Mismatch between the SMTP configuration UI and the documentation.

## Verification

Claude verified this issue by examining:

1. The current SMTP configuration code in the codebase
2. The CLI help documentation for the server command
3. The examples provided in the notifications documentation

The issue was confirmed by finding:
- A reference to a deprecated variable
`CODER_NOTIFICATIONS_EMAIL_FORCE_TLS` instead of the current
`CODER_EMAIL_FORCE_TLS`
- Missing information about the port format required for the SMTP
smarthost

## Changes made

1. Updated the `--email-smarthost` description to clarify that the
format should include both hostname and port: `(format:
     hostname:port)`
2. Fixed the reference to the TLS environment variable in the STARTTLS
description, replacing the deprecated
`CODER_NOTIFICATIONS_EMAIL_FORCE_TLS` with the correct
`CODER_EMAIL_FORCE_TLS`

## Additional information

The Gmail and Outlook examples in the documentation already correctly
show the port included in the smarthost configuration, but the main
description table needed to be updated to explicitly mention this
requirement.


[preview](https://coder.com/docs/@16206-smtp-required-components/admin/monitoring/notifications)

<sub>🤖 Generated with [Claude Code](https://claude.ai/code)</sub>

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-04-01 14:44:09 -04:00
Kyle Carberry 583a0c652f feat: add frontend for app statuses (#17178)
Check out the stories for the exacts...


![image](https://github.com/user-attachments/assets/a1e1b9b0-7b37-4e0d-b99e-64b4766519ef)


![image](https://github.com/user-attachments/assets/d3eb580d-071c-4caf-b393-a7e87da61f5e)
2025-04-01 12:35:58 -04:00
Cian Johnston 27d2343adf fix(cli): exp mcp: remove unnecessary cli flag (#17190) 2025-04-01 16:53:18 +01:00
Edward Angert 037dbc84da docs: add new cursor and windsurf docs (#17092)
closes #16919 

- [x] cursor doc
- [x] windsurf doc

from
https://github.com/coder/coder/issues/16919#issuecomment-2737033477:
- add to access-workspace
- link to module(s)
- how to windsurf with ssh
- temp: install vsix manually (Windsurf)
   - from <https://github.com/coder/vscode-coder>
- log in first
- search extensions for Coder
- ask your admin to add a module:
https://registry.coder.com/modules/cursor

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-04-01 20:13:32 +05:00
Michael Smith fcac4abcca fix(site): standardize headers for Admin Settings page (#16911)
## Changes made
- Switched almost all headers to use the `SettingHeader` component
- Redesigned component to be more composition-based, to stay in line
with the patterns we're starting to use more throughout the codebase
- Refactored `SettingHeader` to be based on Radix and Tailwind, rather
than Emotion/MUI
- Added additional props to `SettingHeader` to help resolve issues with
the component creating invalid HTML
- Beefed up `SettingHeader` to have better out-of-the-box accessibility
- Addressed some typographic problems in `SettingHeader`
- Addressed some responsive layout problems for `SettingsHeader`
- Added first-ever stories for `SettingsHeader`

## Notes
- There are still a few headers that aren't using `SettingHeader` yet.
There were some UI edge cases that meant I couldn't reliably bring it in
without consulting the Design team first. I'm a little less worried
about them, because they at least *look* like the other headers, but
it'd be nice if we could centralize everything in a followup PR
2025-04-01 10:13:56 -04:00
Cian Johnston 1e11e823c9 fix(mcp): report task status correctly (#17187) 2025-04-01 15:02:08 +01:00
Ethan 3a243c111b fix: remove shared mutable state between oidc tests (#17179)
Spotted on main: https://github.com/coder/coder/actions/runs/14179449567/job/39721999486
```
=== FAIL: coderd TestOIDCDomainErrorMessage/MalformedEmailErrorOmitsDomains (0.01s)
==================
WARNING: DATA RACE
Read at 0x00c060b54e68 by goroutine 296485:
  golang.org/x/oauth2.(*Config).Exchange()
      /home/runner/go/pkg/mod/golang.org/x/oauth2@v0.28.0/oauth2.go:228 +0x1d8
  github.com/coder/coder/v2/coderd.(*OIDCConfig).Exchange()
      <autogenerated>:1 +0xb7
  github.com/coder/coder/v2/coderd.New.func11.12.1.2.ExtractOAuth2.1.1()
      /home/runner/work/coder/coder/coderd/httpmw/oauth2.go:168 +0x7b5
  net/http.HandlerFunc.ServeHTTP()
      /opt/hostedtoolcache/go/1.24.1/x64/src/net/http/server.go:2294 +0x47
[...]
Previous write at 0x00c060b54e68 by goroutine 55730:
  github.com/coder/coder/v2/coderd/coderdtest/oidctest.(*FakeIDP).SetRedirect()
      /home/runner/work/coder/coder/coderd/coderdtest/oidctest/idp.go:1280 +0x1e6
  github.com/coder/coder/v2/coderd/coderdtest/oidctest.(*FakeIDP).LoginWithClient()
      /home/runner/work/coder/coder/coderd/coderdtest/oidctest/idp.go:494 +0x170
  github.com/coder/coder/v2/coderd/coderdtest/oidctest.(*FakeIDP).AttemptLogin()
      /home/runner/work/coder/coder/coderd/coderdtest/oidctest/idp.go:479 +0x624
  github.com/coder/coder/v2/coderd_test.TestOIDCDomainErrorMessage.func3()
      /home/runner/work/coder/coder/coderd/userauth_test.go:2041 +0x1f2
```

As seen, this race was caused by sharing a `*oidctest.FakeIDP` between test cases. The fix is to simply do the setup twice.

```
$ go test -race -run "TestOIDCDomainErrorMessage" github.com/coder/coder/v2/coderd -count=100
ok      github.com/coder/coder/v2/coderd        7.551s
````
2025-04-01 22:28:05 +11:00
Hugo Dutka 7d08bf0afe chore: improve error logging in TestServer/EphemeralDeployment (#17184)
There's a flake reported in https://github.com/coder/internal/issues/549
that was caused by the built-in Postgres failing to start. However, the
test was written in a way that didn't log the actual error which caused
Postgres to fail. This PR improves error logging in the affected test so
that the next time the error happens, we know what it is.
2025-04-01 13:23:06 +02:00
Cian Johnston e4cf18989c chore(mcp): fix test flakes (#17183)
Closes https://github.com/coder/internal/issues/547
2025-04-01 11:28:47 +01:00
Cian Johnston cc733aba71 ci: check go versions are consistent (#17149)
Fixes https://github.com/coder/coder/issues/17063

I'm ignoring flake.nix for now.

```
$ IGNORE_NIX=true ./scripts/check_go_versions.sh
INFO : go.mod                   : 1.24.1
INFO : dogfood/coder/Dockerfile : 1.24.1
INFO : setup-go/action.yaml     : 1.24.1
INFO : flake.nix                : 1.22
INFO : Ignoring flake.nix, as IGNORE_NIX=true
Go version check passed, all versions are 1.24.1

$ ./scripts/check_go_versions.sh
INFO : go.mod                   : 1.24.1
INFO : dogfood/coder/Dockerfile : 1.24.1
INFO : setup-go/action.yaml     : 1.24.1
INFO : flake.nix                : 1.22
ERROR: Go version mismatch between go.mod and flake.nix
```
2025-04-01 09:03:54 +01:00
Jon Ayers 989c3ec62e chore: pin various dependencies in CI files (#17180) 2025-04-01 00:15:15 -04:00
Jon Ayers 83405677bf chore: pin goimports to 0.31.0 (#17177) 2025-03-31 22:56:21 -04:00
Jon Ayers 7b14b4f5e1 chore: update msw to 2.4.8 (#17167)
- Fixes a transitive vuln in path-to-regexp
2025-03-31 15:10:00 -04:00
dependabot[bot] 40de51b188 chore: bump vite from 5.4.15 to 5.4.16 in /site (#17176)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.15 to 5.4.16.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.16</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.16/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.16/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.16 (2025-03-31)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19761">#19761</a>,
fs check in transform middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19762">#19762</a>)
(<a
href="https://github.com/vitejs/vite/commit/b627c50d359f3bd9b602408fbbf462cf4a2f019c">b627c50</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19761">#19761</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19762">#19762</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/712cb71aa0e2a03dbf49db92043fb4ecbfc826b1"><code>712cb71</code></a>
release: v5.4.16</li>
<li><a
href="https://github.com/vitejs/vite/commit/b627c50d359f3bd9b602408fbbf462cf4a2f019c"><code>b627c50</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19761">#19761</a>,
fs check in transform middleware (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19762">#19762</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.16/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.15&new-version=5.4.16)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-31 18:02:30 +00:00
Cian Johnston 057cbd4d80 feat(cli): add coder exp mcp command (#17066)
Adds a `coder exp mcp` command which will start a local MCP server
listening on stdio with the following capabilities:
* Show logged in user (`coder whoami`)
* List workspaces (`coder list`)
* List templates (`coder templates list`)
* Start a workspace (`coder start`)
* Stop a workspace (`coder stop`)
* Fetch a single workspace (no direct CLI analogue)
* Execute a command inside a workspace (`coder exp rpty`)
* Report the status of a task (currently a no-op, pending task support)

This can be tested as follows:

```
# Start a local Coder server.
./scripts/develop.sh
# Start a workspace. Currently, creating workspaces is not supported.
./scripts/coder-dev.sh create -t docker --yes
# Add the MCP to your Claude config.
claude mcp add coder ./scripts/coder-dev.sh exp mcp
# Tell Claude to do something Coder-related. You may need to nudge it to use the tools.
claude 'start a docker workspace and tell me what version of python is installed'
```
2025-03-31 18:52:09 +01:00
Kyle Carberry 8ea956fc11 feat: add app status tracking to the backend (#17163)
This does ~95% of the backend work required to integrate the AI work.

Most left to integrate from the tasks branch is just frontend, which
will be a lot smaller I believe.

The real difference between this branch and that one is the abstraction
-- this now attaches statuses to apps, and returns the latest status
reported as part of a workspace.

This change enables us to have a similar UX to in the tasks branch, but
for agents other than Claude Code as well. Any app can report status
now.
2025-03-31 10:55:44 -04:00
Bruno Quaresma 489641d0be feat: set icons for each type of notification (#17115)
Each notification type will have an icon to represent the context:

<img width="503" alt="Screenshot 2025-03-26 at 13 44 35"
src="https://github.com/user-attachments/assets/1187c1c0-1043-4a32-b105-a7f91b52f8ca"
/>

This depends on https://github.com/coder/coder/pull/17013
2025-03-31 09:40:24 -03:00
Michael Smith 9bc727e977 chore: add support for one-way websockets to backend (#16853)
Closes https://github.com/coder/coder/issues/16775

## Changes made
- Added `OneWayWebSocket` function that establishes WebSocket
connections that don't allow client-to-server communication
- Added tests for the new function
- Updated API endpoints to make new WS-based endpoints, and mark
previous SSE-based endpoints as deprecated
- Updated existing SSE handlers to use the same core logic as the new WS
handlers

## Notes
- Frontend changes handled via #16855
2025-03-28 17:13:20 -04:00
dependabot[bot] d3050a7e77 chore: bump github.com/prometheus/common from 0.62.0 to 0.63.0 (#16959)
Bumps
[github.com/prometheus/common](https://github.com/prometheus/common)
from 0.62.0 to 0.63.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prometheus/common/releases">github.com/prometheus/common's
releases</a>.</em></p>
<blockquote>
<h2>v0.63.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Making the map a public variable for promtheus-operator by <a
href="https://github.com/dongjiang1989"><code>@​dongjiang1989</code></a>
in <a
href="https://redirect.github.com/prometheus/common/pull/741">prometheus/common#741</a></li>
<li>setup ossf scorecard and codeql workflows by <a
href="https://github.com/mmorel-35"><code>@​mmorel-35</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/564">prometheus/common#564</a></li>
<li>feat(promslog): implement reserved keys, rename duplicates by <a
href="https://github.com/tjhop"><code>@​tjhop</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/746">prometheus/common#746</a></li>
<li>Bump golang.org/x/oauth2 from 0.24.0 to 0.25.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/750">prometheus/common#750</a></li>
<li>Bump golang.org/x/net from 0.33.0 to 0.34.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/749">prometheus/common#749</a></li>
<li>Bump google.golang.org/protobuf from 1.36.1 to 1.36.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/751">prometheus/common#751</a></li>
<li>promslog: Make AllowedLevel concurrency safe. by <a
href="https://github.com/bwplotka"><code>@​bwplotka</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/754">prometheus/common#754</a></li>
<li>Fix typo 'the an' by <a
href="https://github.com/petern48"><code>@​petern48</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/752">prometheus/common#752</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/757">prometheus/common#757</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.36.3 to 1.36.4
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/prometheus/common/pull/756">prometheus/common#756</a></li>
<li>build(deps): bump google.golang.org/protobuf from 1.36.4 to 1.36.5
by <a href="https://github.com/dependabot"><code>@​dependabot</code></a>
in <a
href="https://redirect.github.com/prometheus/common/pull/761">prometheus/common#761</a></li>
<li>build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/763">prometheus/common#763</a></li>
<li>build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/762">prometheus/common#762</a></li>
<li>model: Clarify the purpose of model.NameValidationScheme by <a
href="https://github.com/ywwg"><code>@​ywwg</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/765">prometheus/common#765</a></li>
<li>Fix spelling mistake in godoc by <a
href="https://github.com/grobinson-grafana"><code>@​grobinson-grafana</code></a>
in <a
href="https://redirect.github.com/prometheus/common/pull/766">prometheus/common#766</a></li>
<li>Synchronize common files from prometheus/prometheus by <a
href="https://github.com/prombot"><code>@​prombot</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/767">prometheus/common#767</a></li>
<li>otlptranslator: Add dependency free package that translates OTLP
data into Prometheus metric/label names by <a
href="https://github.com/ArthurSens"><code>@​ArthurSens</code></a> in <a
href="https://redirect.github.com/prometheus/common/pull/768">prometheus/common#768</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dongjiang1989"><code>@​dongjiang1989</code></a>
made their first contribution in <a
href="https://redirect.github.com/prometheus/common/pull/741">prometheus/common#741</a></li>
<li><a href="https://github.com/petern48"><code>@​petern48</code></a>
made their first contribution in <a
href="https://redirect.github.com/prometheus/common/pull/752">prometheus/common#752</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/prometheus/common/compare/v0.62.0...v0.63.0">https://github.com/prometheus/common/compare/v0.62.0...v0.63.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prometheus/common/commit/cf3c56f7b7d09d67cb46592c5e930651fd2d296e"><code>cf3c56f</code></a>
Merge pull request <a
href="https://redirect.github.com/prometheus/common/issues/768">#768</a>
from prometheus/otlp-translator</li>
<li><a
href="https://github.com/prometheus/common/commit/b35ad995d20d280cd0bc1a30386a4e3bbdc032f5"><code>b35ad99</code></a>
Add test case for BuildCompliantMetricName with a metric that starts
with a d...</li>
<li><a
href="https://github.com/prometheus/common/commit/227989ceacbb831801f90965ed5e8c9c55749774"><code>227989c</code></a>
otlptranslator: Add dependency free package that translator OTLP data
into Pr...</li>
<li><a
href="https://github.com/prometheus/common/commit/a9cc7f7df30d52a26a3937c9d32953ef2bf452c6"><code>a9cc7f7</code></a>
Update common Prometheus files (<a
href="https://redirect.github.com/prometheus/common/issues/767">#767</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/0decf1fe7a23d909d3f5cd400b76b6d178eef576"><code>0decf1f</code></a>
Fix spelling mistake in godoc (<a
href="https://redirect.github.com/prometheus/common/issues/766">#766</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/6b9636ca14ecb6f8bb49d70aea6019c4cef93aab"><code>6b9636c</code></a>
model: Clarify the purpose of model.NameValidationScheme (<a
href="https://redirect.github.com/prometheus/common/issues/765">#765</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/56f6f3853a55cff5c626bc5a04993b3871ff260c"><code>56f6f38</code></a>
build(deps): bump golang.org/x/net from 0.34.0 to 0.35.0 (<a
href="https://redirect.github.com/prometheus/common/issues/762">#762</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/b516f6d622f0d210e24036fe64e2009fcc44885f"><code>b516f6d</code></a>
build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 (<a
href="https://redirect.github.com/prometheus/common/issues/763">#763</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/0db99daa6f43d55a09dbb714fe3173182977bf8f"><code>0db99da</code></a>
build(deps): bump google.golang.org/protobuf from 1.36.4 to 1.36.5 (<a
href="https://redirect.github.com/prometheus/common/issues/761">#761</a>)</li>
<li><a
href="https://github.com/prometheus/common/commit/ca40aa08f025cc1a857cec6d6773363e959b4ea4"><code>ca40aa0</code></a>
build(deps): bump google.golang.org/protobuf from 1.36.3 to 1.36.4 (<a
href="https://redirect.github.com/prometheus/common/issues/756">#756</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/prometheus/common/compare/v0.62.0...v0.63.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/prometheus/common&package-manager=go_modules&previous-version=0.62.0&new-version=0.63.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
2025-03-28 20:10:06 +00:00
Jon Ayers 562a6c9ce0 chore: add .cursorrules config (#17160) 2025-03-28 19:33:13 +00:00
Mathias Fredriksson ac74c65fd7 test(cli): fix data race in TestCreateWithRichParameters (#17128)
Shared echo provisioner responses were being mutated simultaneously,
this change fixes it.
2025-03-28 14:02:58 +00:00
Cian Johnston a9574fb4b1 chore(cli): increase timeout for TestSSH_Container subtests (#17148)
Closes https://github.com/coder/internal/issues/524
2025-03-28 13:52:13 +00:00
Edward Angert c6799911dd docs: edit workspace lifecycle description (#17146)
thanks for pointing this out, @jmshoffs0812 !
2025-03-28 07:24:33 -04:00
Vincent Vielle 148dae1e9f fix: add fallback icons for notifications (#17013)
Related: https://github.com/coder/internal/issues/522
2025-03-28 12:21:48 +01:00
ケイラ ca414b031a fix: fix data race in echo provisioner (#17142) 2025-03-27 18:04:05 -06:00
Jon Ayers 1360bfe60d chore: fix false positives in CodeQL for TS (#17139)
Fixes some false positives flagged by CodeQL
2025-03-27 16:09:53 -05:00
Jon Ayers eded0ed4b6 chore: fix false positives in CodeQL (#17138)
Clears up some false positives being surfaced by CodeQL
2025-03-27 16:06:58 -05:00
Cian Johnston e1f27a7137 feat(site): add webpush notification serviceworker (#17123)
* Improves tests for webpush notifications
* Sets subscriber correctly in web push payload (without this,
notifications do not work in Safari)
* NOTE: for now, I'm using the Coder Access URL. Some push messaging
service don't like it when you use a non-HTTPS URL, so dropping a warn
log about this.
* Adds a service worker and context for push notifications
* Adds a button beside "Inbox" to enable / disable push notifications

Notes:
*  Tested in in Firefox and Safari, and Chrome.
2025-03-27 17:30:25 +00:00
Phorcys 661ed2376a chore(examples/templates): add ec2:DescribeInstanceStatus to permissions (#17134)
([Discord
message](https://discord.com/channels/747933592273027093/991429648200245358/1352357113204314173))

---

One of our community users has mentioned needing to add the
`ec2:DescribeInstanceStatus` to permissions.

From the [API
docs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceStatus.html):
> Describes the status of the specified instances or all of your
instances

I think it's sensible to add it to our README example for the aws-*
templates, it's probably required now due to changes in either the AWS
API or Terraform provider, and shouldn't have a big impact.
2025-03-27 15:06:50 +00:00
Bruno Quaresma 3e64dcefaf chore: upgrade msw to 2.4.3 (#17135)
Fixes a transitive High severity dependency in path-to-regexp. 

We've tried to [upgrade to
2.5.0](https://github.com/coder/coder/pull/17124) (currently, the latest
version) but there are some known bugs related to polyfills as [this
one](https://github.com/mswjs/msw/discussions/2288). As shared in the
comments, the latest version without this issue is 2.4.3.
2025-03-27 12:00:54 -03:00
Bruno Quaresma 2b59cfa7c5 refactor: add nice enter animation for notification badge (#17119) 2025-03-27 11:43:44 -03:00
Eric Paulsen 5bd2a3f190 fix: conceal sensitive domain information in auth error messages (#17132)
## Summary
- Removes exposure of allowed domain list in OIDC authentication error
messages
- Replaces detailed error messages with a generic message that doesn't
expose internal domains
- Adds "Please contact your administrator" to guide users seeking
assistance
- Addresses security concern where third-party contractors could see
internal domain information

## Test plan
- Test accessing Coder with an email that doesn't match allowed domains
- Verify error message no longer displays the list of authorized domains
- Verify message now includes guidance to contact administrator

Fixes issue related to domain information exposure during
authentication. Linked issue:
https://github.com/coder/coder/issues/17130

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-03-27 13:41:01 +00:00
Michael Vincent Patterson 0eec78d714 feat(cli): push dynamically generated templates with version name (#17114)
Closes #17031 
Updated tempatespush.go
2025-03-27 09:09:46 -04:00
Mathias Fredriksson 7d4b3c8634 feat(agent): add devcontainer autostart support (#17076)
This change adds support for devcontainer autostart in workspaces. The
preconditions for utilizing this feature are:

1. The `coder_devcontainer` resource must be defined in Terraform
2. By the time the startup scripts have completed,
	- The `@devcontainers/cli` tool must be installed
	- The given workspace folder must contain a devcontainer configuration

Example Terraform:

```tf
resource "coder_devcontainer" "coder" {
  agent_id         = coder_agent.main.id
  workspace_folder = "/home/coder/coder"
  config_path      = ".devcontainer/devcontainer.json" # (optional)
}
```

Closes #16423
2025-03-27 12:31:30 +02:00
dependabot[bot] 2ba3d77c74 chore: bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 (#17126)
Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt)
from 5.2.1 to 5.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/golang-jwt/jwt/releases">github.com/golang-jwt/jwt/v5's
releases</a>.</em></p>
<blockquote>
<h2>v5.2.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fixed <a
href="https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp">https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp</a>
by <a
href="https://github.com/mfridman"><code>@​mfridman</code></a></li>
<li>Fixed some typos by <a
href="https://github.com/Ashikpaul"><code>@​Ashikpaul</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/382">golang-jwt/jwt#382</a></li>
<li>build: add go1.22 to ci workflows by <a
href="https://github.com/mfridman"><code>@​mfridman</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/383">golang-jwt/jwt#383</a></li>
<li>Bump golangci/golangci-lint-action from 4 to 5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/387">golang-jwt/jwt#387</a></li>
<li>Bump golangci/golangci-lint-action from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/389">golang-jwt/jwt#389</a></li>
<li>chore: bump ci tests to include go1.23 by <a
href="https://github.com/mfridman"><code>@​mfridman</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/405">golang-jwt/jwt#405</a></li>
<li>Fix jwt -show by <a
href="https://github.com/AlexanderYastrebov"><code>@​AlexanderYastrebov</code></a>
in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/406">golang-jwt/jwt#406</a></li>
<li>docs: typo by <a
href="https://github.com/kvii"><code>@​kvii</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/407">golang-jwt/jwt#407</a></li>
<li>Update SECURITY.md by <a
href="https://github.com/oxisto"><code>@​oxisto</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/416">golang-jwt/jwt#416</a></li>
<li>Update <code>jwt.Parse</code> example to use
<code>jwt.WithValidMethods</code> by <a
href="https://github.com/mattt"><code>@​mattt</code></a> in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/425">golang-jwt/jwt#425</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Ashikpaul"><code>@​Ashikpaul</code></a>
made their first contribution in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/382">golang-jwt/jwt#382</a></li>
<li><a href="https://github.com/kvii"><code>@​kvii</code></a> made their
first contribution in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/407">golang-jwt/jwt#407</a></li>
<li><a href="https://github.com/mattt"><code>@​mattt</code></a> made
their first contribution in <a
href="https://redirect.github.com/golang-jwt/jwt/pull/425">golang-jwt/jwt#425</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2">https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang-jwt/jwt/commit/0951d184286dece21f73c85673fd308786ffe9c3"><code>0951d18</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/c035977d9e11c351f4c05dfeae193923cbab49ee"><code>c035977</code></a>
Update Parse example to use WithValidMethods (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/425">#425</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/bc8bdca5cced1caa9787e4a1c313a3538544c877"><code>bc8bdca</code></a>
Update SECURITY.md (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/416">#416</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/5ec246c074b71790eec1f2e05b54daf6ec29ec5f"><code>5ec246c</code></a>
docs: typo (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/407">#407</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/0123f1ad66cbc45013dbfba6eff0cd81472bfc12"><code>0123f1a</code></a>
Fix jwt -show (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/406">#406</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/f961c72abd3b91442a9ab3d3e356bf547636e89b"><code>f961c72</code></a>
chore: bump ci tests to include go1.23 (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/405">#405</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/62e504c2810b67f6b97313424411cfffb25e41b0"><code>62e504c</code></a>
Bump golangci/golangci-lint-action from 5 to 6 (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/389">#389</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/1a56dcf532089fc2bb723a3cb4076a4e45cb1c1a"><code>1a56dcf</code></a>
Bump golangci/golangci-lint-action from 4 to 5 (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/387">#387</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/c8043eab61f0ec5bdd924c1c30caf164a9bb2c66"><code>c8043ea</code></a>
build: add go1.22 to ci workflows (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/383">#383</a>)</li>
<li><a
href="https://github.com/golang-jwt/jwt/commit/7c3f6dc56316e5e222a9df9612ec04243189a989"><code>7c3f6dc</code></a>
Update README.md (<a
href="https://redirect.github.com/golang-jwt/jwt/issues/382">#382</a>)</li>
<li>See full diff in <a
href="https://github.com/golang-jwt/jwt/compare/v5.2.1...v5.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/golang-jwt/jwt/v5&package-manager=go_modules&previous-version=5.2.1&new-version=5.2.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-27 10:29:44 +00:00
Cian Johnston 06e5d9ef21 feat(coderd): add webpush package (#17091)
* Adds `codersdk.ExperimentWebPush` (`web-push`)
* Adds a `coderd/webpush` package that allows sending native push
notifications via `github.com/SherClockHolmes/webpush-go`
* Adds database tables to store push notification subscriptions.
* Adds an API endpoint that allows users to subscribe/unsubscribe, and
send a test notification (404 without experiment, excluded from API docs)
* Adds server CLI command to regenerate VAPID keys (note: regenerating
the VAPID keypair requires deleting all existing subscriptions)

---------

Co-authored-by: Kyle Carberry <kyle@carberry.com>
2025-03-27 10:03:53 +00:00
Cian Johnston 006600ea3e chore(enterprise/dbcrypt): adjust behaviour of TestHelpMeEncryptSomeValue (#17116)
This "utility test" isn't so useful if you have to uncomment the
`t.Skip()` before using it.
2025-03-27 09:45:34 +00:00
Cian Johnston 0d8d5f212a chore: linkspector: ignore 503s from docs.github.com (#17125)
Fixes a 503 seen here:
https://github.com/coder/coder/actions/runs/14094256166/job/39478147255?pr=17091
2025-03-27 09:13:24 +00:00
Cian Johnston b863eca196 fix(scripts/check_unstaged.sh): add argument separator in git diff command (#17122) 2025-03-27 08:57:12 +00:00
Jon Ayers 2dc99c8469 fix: correct spurious edits made during the lint fixing slog (#17113) 2025-03-27 01:13:21 -05:00
Edward Angert 6bb4bdb9cb docs: add troubleshooting section to Desktop docs (#17098)
[preview](https://coder.com/docs/@121-desktop-troubleshoot/user-guides/desktop)

relates to https://github.com/coder/coder-desktop-macos/issues/121

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
2025-03-26 19:00:32 +00:00
Cian Johnston d7a81f1d9b chore(dogfood): add lsof (#17117)
because lsof is a standard linux utility
2025-03-26 18:58:03 +00:00
Vincent Vielle ddb06741c9 chore: improve dormant workspace notification wording (#17100)
Related to #17099
2025-03-26 15:54:03 +01:00
Danielle Maywood cac130346d chore: bump debounce from 5 minutes to 30 minutes (#17111)
To ensure OOM/OOD isn't too spammy we want to have a debounce period of
30 minutes.
2025-03-26 14:33:10 +00:00
Bruno Quaresma 9668cba0e5 refactor: improve markdown rendering on notifications (#17112)
**Before:**
<img width="753" alt="Screenshot 2025-03-26 at 11 11 46"
src="https://github.com/user-attachments/assets/d4504de9-d007-43bf-9e0b-a8ff1b04da2c"
/>

**After:**

![image](https://github.com/user-attachments/assets/5a249a48-e2ec-4573-97ea-7a978fbe3c9a)
2025-03-26 11:24:54 -03:00
Danielle Maywood eaab4045f5 fix: prevent password reset notifications ending up in coder inbox (#17109) 2025-03-26 12:19:14 +01:00
Mathias Fredriksson 310f148cb4 fix(dogfood/coder): add shutdown script and graceful agent shutdown (#17110)
By stopping Docker, we can hopefully avoid errors like this:

```
2025-03-26 12:14:53.280+02:00 Error: Error deleting container aa313fca0f72e59d4571afec898392e0ae34567d56c0ad15554c87394d2ca1e1: Error response from daemon: container aa313fca0f72e59d4571afec898392e0ae34567d56c0ad15554c87394d2ca1e1: driver "overlay2" failed to remove root filesystem: unlinkat /var/data/docker/overlay2/2e8e509237c79ebec972cccae9867f3bd6f71d49d4ed68db1b5ba229c3a2ff62/diff/var/lib/docker/overlay2/9c7c4ab0187ece1ca270d146090a8e852808996279d103cb394b2821c472af4c/diff/usr/lib/python3/dist-packages/ansible_collections: directory not empty
```
2025-03-26 13:17:51 +02:00
Danielle Maywood c8f3b35e13 fix: prevent password reset notifications ending up in coder inbox (#17109)
We do not want password reset notifications to end up in Coder Inbox as
this doesn't make much sense. This implements the logic to ensure they
are not delivered if the method is Coder Inbox.

In the future we might want to investigate a better solution but for now
this works.
2025-03-26 11:08:31 +00:00
Danielle Maywood 1bbbae8d57 chore: migrate to github.com/coder/clistat (#17107)
Migrate from in-tree `clistat` package to
https://github.com/coder/clistat.
2025-03-26 10:36:53 +00:00
Cian Johnston 811097ef03 chore(dogfood): update dogfood Go version to 1.24.1 (#17104)
https://github.com/coder/coder/pull/17035 updated the Go version in
`go.mod` and in GH actions but not in `dogfood/coder/Dockerfile` or
`flake.nix`.

This updates the Go version to 1.24 in `dogfood/coder/Dockerfile`.
Unfortunately at the time of writing, Go 1.24 is not available in NixOS.
So that will have to wait.
2025-03-26 10:32:43 +00:00
Spike Curtis f6a10eeb7f chore: sync vpn.proto with coder/coder-desktop-windows (#17106)
Syncs `vpn.proto` with https://github.com/coder/coder-desktop-windows/blob/main/Vpn.Proto/vpn.proto
2025-03-26 13:38:39 +04:00
dependabot[bot] b4fa8097ef chore: bump the x group across 1 directory with 2 updates (#17103)
Bumps the x group with 2 updates in the / directory:
[golang.org/x/mod](https://github.com/golang/mod) and
[golang.org/x/tools](https://github.com/golang/tools).

Updates `golang.org/x/mod` from 0.23.0 to 0.24.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/mod/commit/dc121ce20ffab6bb810a0f231cfa9c24d3e51b29"><code>dc121ce</code></a>
all: upgrade go directive to at least 1.23.0 [generated]</li>
<li>See full diff in <a
href="https://github.com/golang/mod/compare/v0.23.0...v0.24.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `golang.org/x/tools` from 0.30.0 to 0.31.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang/tools/commit/6a5b66bef78dc7a1cf8593b276f35102ec0cb11c"><code>6a5b66b</code></a>
go.mod: update golang.org/x dependencies</li>
<li><a
href="https://github.com/golang/tools/commit/25a90befcdf96d15f13dd947b7395c8531dc67de"><code>25a90be</code></a>
gopls/internal/golang: Implementations for func types</li>
<li><a
href="https://github.com/golang/tools/commit/db6008cb90f09485deb11255e5dd6da114b4ecef"><code>db6008c</code></a>
go/types/internal/play: show Cursor.Stack of selected node</li>
<li><a
href="https://github.com/golang/tools/commit/ece9e9ba0760eb361376c8a890b24e89db031d9e"><code>ece9e9b</code></a>
gopls/doc/generate: add status in codelenses and inlayhints</li>
<li><a
href="https://github.com/golang/tools/commit/340f21a49b9cad20d07a2b58e483a991084dc481"><code>340f21a</code></a>
gopls: move gopls/doc/generate package</li>
<li><a
href="https://github.com/golang/tools/commit/07219402b2fc707689574d91ee3cfd2c9a544a87"><code>0721940</code></a>
gopls/internal/analysis/modernize: strings.Fields -&gt; FieldsSeq</li>
<li><a
href="https://github.com/golang/tools/commit/8d38122b0b1a9991f490aa06b7bfca7b4140bdad"><code>8d38122</code></a>
gopls/internal/cache: reproduce and fix crash on if cond overflow</li>
<li><a
href="https://github.com/golang/tools/commit/d81d6fcce1a24f2b8d0a9493f4d84b75c80176e4"><code>d81d6fc</code></a>
gopls/internal/util/asm: better assembly parsing</li>
<li><a
href="https://github.com/golang/tools/commit/455db21bd963fea3efdf0473e0ddce37313b8f91"><code>455db21</code></a>
gopls/internal/cache/parsego: fix OOB crash in fixInitStmt</li>
<li><a
href="https://github.com/golang/tools/commit/2b1f55036370bc9a05bed74aa13fa85fecce40e2"><code>2b1f550</code></a>
gopls/internal/analysis/gofix: allow literal array lengths</li>
<li>Additional commits viewable in <a
href="https://github.com/golang/tools/compare/v0.30.0...v0.31.0">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:32:04 +00:00
dependabot[bot] 61fdce85a9 chore: bump google.golang.org/api from 0.221.0 to 0.227.0 (#17073)
Bumps
[google.golang.org/api](https://github.com/googleapis/google-api-go-client)
from 0.221.0 to 0.227.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/releases">google.golang.org/api's
releases</a>.</em></p>
<blockquote>
<h2>v0.227.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.226.0...v0.227.0">0.227.0</a>
(2025-03-19)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3064">#3064</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/086437d5503dc5cc6794bbbfec47cdd90c8b917b">086437d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3066">#3066</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/29203469556eca18b77dcf2f92163047218b5ad7">2920346</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3067">#3067</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c6396b197caa96a22a79dc8f993d8a216e7959db">c6396b1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3069">#3069</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f12f50392dc68907c5616e8d436d7daafa2d9967">f12f503</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3070">#3070</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a5a7982eab05780caeb754e4b489d3c1ff0d868c">a5a7982</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3071">#3071</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a86ed9f6305ee23b7290ee047847ddcdf51c4792">a86ed9f</a>)</li>
</ul>
<h2>v0.226.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.225.0...v0.226.0">0.226.0</a>
(2025-03-13)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3059">#3059</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/36a4396b57da8f0b6f01fb1e4fd0b3a651469b35">36a4396</a>)</li>
</ul>
<h2>v0.225.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.224.0...v0.225.0">0.225.0</a>
(2025-03-11)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3052">#3052</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6fe9ee700e1313bc01613809eb26089680de4f95">6fe9ee7</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3054">#3054</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1f9f6306edf6f040f94cb704c111e867de93b11c">1f9f630</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3055">#3055</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/01546c11d2c2bff28c3df26c055f5a37e2744c15">01546c1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3057">#3057</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7a464eaf63831e1ee3f5d949ba19714560a15303">7a464ea</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3058">#3058</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1b9abf7810e1b19a8e69733377149a443865ec8f">1b9abf7</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>option:</strong> Update WithEndpoint docs (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3032">#3032</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fe0dd61a4ed0f8708486f2aa417876bec8b6e5ae">fe0dd61</a>)</li>
</ul>
<h2>v0.224.0</h2>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.223.0...v0.224.0">0.224.0</a>
(2025-03-06)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3038">#3038</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e50dbcf236706c31864e9dac2da4b8553ace321a">e50dbcf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3040">#3040</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3acb9e0eb5ba64ab2d628cfb72ae9b6455123cba">3acb9e0</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3041">#3041</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3795b39b8e9788eaacb43d3a89681995a9571719">3795b39</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3042">#3042</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7d1e8505fd427beceba3fa3a8fe82ecfa8c57d5c">7d1e850</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3043">#3043</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/eaeb698cbdc350788d93599f4454468dece92d00">eaeb698</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3048">#3048</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0f2af0f23b3bb2fc6f0edb153b947a27e15be9be">0f2af0f</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md">google.golang.org/api's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.226.0...v0.227.0">0.227.0</a>
(2025-03-19)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3064">#3064</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/086437d5503dc5cc6794bbbfec47cdd90c8b917b">086437d</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3066">#3066</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/29203469556eca18b77dcf2f92163047218b5ad7">2920346</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3067">#3067</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/c6396b197caa96a22a79dc8f993d8a216e7959db">c6396b1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3069">#3069</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f12f50392dc68907c5616e8d436d7daafa2d9967">f12f503</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3070">#3070</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a5a7982eab05780caeb754e4b489d3c1ff0d868c">a5a7982</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3071">#3071</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/a86ed9f6305ee23b7290ee047847ddcdf51c4792">a86ed9f</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.225.0...v0.226.0">0.226.0</a>
(2025-03-13)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3059">#3059</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/36a4396b57da8f0b6f01fb1e4fd0b3a651469b35">36a4396</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.224.0...v0.225.0">0.225.0</a>
(2025-03-11)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3052">#3052</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/6fe9ee700e1313bc01613809eb26089680de4f95">6fe9ee7</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3054">#3054</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1f9f6306edf6f040f94cb704c111e867de93b11c">1f9f630</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3055">#3055</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/01546c11d2c2bff28c3df26c055f5a37e2744c15">01546c1</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3057">#3057</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7a464eaf63831e1ee3f5d949ba19714560a15303">7a464ea</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3058">#3058</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/1b9abf7810e1b19a8e69733377149a443865ec8f">1b9abf7</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li><strong>option:</strong> Update WithEndpoint docs (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3032">#3032</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/fe0dd61a4ed0f8708486f2aa417876bec8b6e5ae">fe0dd61</a>)</li>
</ul>
<h2><a
href="https://github.com/googleapis/google-api-go-client/compare/v0.223.0...v0.224.0">0.224.0</a>
(2025-03-06)</h2>
<h3>Features</h3>
<ul>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3038">#3038</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/e50dbcf236706c31864e9dac2da4b8553ace321a">e50dbcf</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3040">#3040</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3acb9e0eb5ba64ab2d628cfb72ae9b6455123cba">3acb9e0</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3041">#3041</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/3795b39b8e9788eaacb43d3a89681995a9571719">3795b39</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3042">#3042</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/7d1e8505fd427beceba3fa3a8fe82ecfa8c57d5c">7d1e850</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3043">#3043</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/eaeb698cbdc350788d93599f4454468dece92d00">eaeb698</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3048">#3048</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/0f2af0f23b3bb2fc6f0edb153b947a27e15be9be">0f2af0f</a>)</li>
<li><strong>all:</strong> Auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3051">#3051</a>)
(<a
href="https://github.com/googleapis/google-api-go-client/commit/f10c130e16796c008f2e129322d5c8b366ecfc92">f10c130</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/6c04eef38b09dc6bb68c69303b7fe5e761b1d523"><code>6c04eef</code></a>
chore(main): release 0.227.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3065">#3065</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/a86ed9f6305ee23b7290ee047847ddcdf51c4792"><code>a86ed9f</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3071">#3071</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/a5a7982eab05780caeb754e4b489d3c1ff0d868c"><code>a5a7982</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3070">#3070</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/4cd83927eccf1dac66ed73ac71b8a15e725cc112"><code>4cd8392</code></a>
chore(all): update all (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3068">#3068</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/f12f50392dc68907c5616e8d436d7daafa2d9967"><code>f12f503</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3069">#3069</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/c6396b197caa96a22a79dc8f993d8a216e7959db"><code>c6396b1</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3067">#3067</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/29203469556eca18b77dcf2f92163047218b5ad7"><code>2920346</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3066">#3066</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/086437d5503dc5cc6794bbbfec47cdd90c8b917b"><code>086437d</code></a>
feat(all): auto-regenerate discovery clients (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3064">#3064</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/be5fb5daa5e9ea3ed5d75a4c2ea98bc9871fe976"><code>be5fb5d</code></a>
chore(main): release 0.226.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3060">#3060</a>)</li>
<li><a
href="https://github.com/googleapis/google-api-go-client/commit/778942391f59823d37e2d7c3e08c07a5d51935a6"><code>7789423</code></a>
chore(deps): bump golang.org/x/net to 0.37.0 (<a
href="https://redirect.github.com/googleapis/google-api-go-client/issues/3063">#3063</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/google-api-go-client/compare/v0.221.0...v0.227.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google.golang.org/api&package-manager=go_modules&previous-version=0.221.0&new-version=0.227.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:22:11 +00:00
dependabot[bot] c35fe22fe9 chore: bump github.com/chromedp/chromedp from 0.11.0 to 0.13.3 (#17072)
Bumps
[github.com/chromedp/chromedp](https://github.com/chromedp/chromedp)
from 0.11.0 to 0.13.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/chromedp/chromedp/releases">github.com/chromedp/chromedp's
releases</a>.</em></p>
<blockquote>
<h2>chromedp v0.13.2</h2>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/chromedp/chromedp/compare/v0.13.1...v0.13.2">https://github.com/chromedp/chromedp/compare/v0.13.1...v0.13.2</a></p>
<h2>chromedp v0.13.0</h2>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/chromedp/chromedp/compare/v0.12.1...v0.13.0">https://github.com/chromedp/chromedp/compare/v0.12.1...v0.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/chromedp/chromedp/commit/f6fdfdd2948cd29f81304e9b8aebe3a5fbbd62d8"><code>f6fdfdd</code></a>
add tests for unmarshalling and marshalling json</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/6c2d3efb05830e6fe89ab8b570b25fb0fd302c4a"><code>6c2d3ef</code></a>
pass unmarshal and marshal options</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/eae0058f610a4cdadf1f4741c667e3b85f4ab635"><code>eae0058</code></a>
log syntactic errors when reading messages</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/9335dc30c27ce7e6cef9b024262074cf7a615ed2"><code>9335dc3</code></a>
Allow setting jsonv2 Marshal/Unmarshal options</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/71458e148d8c224238b015190347d02be51cb7b7"><code>71458e1</code></a>
fix: add page.EventFrameStartedNavigating to ignored events (Google
Chrome 13...</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/79abe0af356a869d2a4cbdb8a80f6a6d2017f522"><code>79abe0a</code></a>
Switching to jsonv2</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/229c63ebdce29abda43bc46a041b9aa14ba28baf"><code>229c63e</code></a>
Updating test workflow</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/a19bb90680a9a57df5dfc4f7e81af78568bef2e7"><code>a19bb90</code></a>
Updating LICENSE</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/6be1bcb299efa5c71570b6258076b896c3fc6690"><code>6be1bcb</code></a>
Updating device emulation</li>
<li><a
href="https://github.com/chromedp/chromedp/commit/f623c2d9f563c8f6512a25dd083d915938179d24"><code>f623c2d</code></a>
Updating dependencies</li>
<li>Additional commits viewable in <a
href="https://github.com/chromedp/chromedp/compare/v0.11.0...v0.13.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/chromedp/chromedp&package-manager=go_modules&previous-version=0.11.0&new-version=0.13.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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:21:43 +00:00
dependabot[bot] 91b7664f9e chore: bump github.com/coreos/go-oidc/v3 from 3.12.0 to 3.13.0 (#16964)
Bumps [github.com/coreos/go-oidc/v3](https://github.com/coreos/go-oidc)
from 3.12.0 to 3.13.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/coreos/go-oidc/releases">github.com/coreos/go-oidc/v3's
releases</a>.</em></p>
<blockquote>
<h2>v3.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>*: bump dependency versions by <a
href="https://github.com/ericchiang"><code>@​ericchiang</code></a> in <a
href="https://redirect.github.com/coreos/go-oidc/pull/453">coreos/go-oidc#453</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/coreos/go-oidc/compare/v3.12.0...v3.13.0">https://github.com/coreos/go-oidc/compare/v3.12.0...v3.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/coreos/go-oidc/commit/60d436e8ea63774802ad6a0955f0c386edfefa8b"><code>60d436e</code></a>
*: bump dependency versions</li>
<li>See full diff in <a
href="https://github.com/coreos/go-oidc/compare/v3.12.0...v3.13.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/coreos/go-oidc/v3&package-manager=go_modules&previous-version=3.12.0&new-version=3.13.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:21:36 +00:00
dependabot[bot] 13f1a3f259 chore: bump github.com/spf13/afero from 1.12.0 to 1.14.0 (#16961)
Bumps [github.com/spf13/afero](https://github.com/spf13/afero) from
1.12.0 to 1.14.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/spf13/afero/releases">github.com/spf13/afero's
releases</a>.</em></p>
<blockquote>
<h2>v1.14.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Split gcsfs and sftpfs into separate modules by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/spf13/afero/pull/462">spf13/afero#462</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/spf13/afero/compare/v1.13.0...v1.14.0">https://github.com/spf13/afero/compare/v1.13.0...v1.14.0</a></p>
<h2>v1.13.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump actions/setup-go from 5.2.0 to 5.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/446">spf13/afero#446</a></li>
<li>Bump golangci/golangci-lint-action from 6.1.1 to 6.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/451">spf13/afero#451</a></li>
<li>Bump golang.org/x/text from 0.21.0 to 0.22.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/452">spf13/afero#452</a></li>
<li>Bump golang.org/x/oauth2 from 0.25.0 to 0.26.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/453">spf13/afero#453</a></li>
<li>Bump golangci/golangci-lint-action from 6.3.0 to 6.3.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/459">spf13/afero#459</a></li>
<li>Bump golang.org/x/crypto from 0.32.0 to 0.33.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/455">spf13/afero#455</a></li>
<li>Bump golangci/golangci-lint-action from 6.3.3 to 6.5.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/460">spf13/afero#460</a></li>
<li>ci: add Go 1.24 to the test matrix by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/spf13/afero/pull/461">spf13/afero#461</a></li>
<li>Bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/spf13/afero/pull/473">spf13/afero#473</a></li>
<li>Update dependencies by <a
href="https://github.com/sagikazarmark"><code>@​sagikazarmark</code></a>
in <a
href="https://redirect.github.com/spf13/afero/pull/477">spf13/afero#477</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a> made
their first contribution in <a
href="https://redirect.github.com/spf13/afero/pull/446">spf13/afero#446</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/spf13/afero/compare/v1.12.0...v1.13.0">https://github.com/spf13/afero/compare/v1.12.0...v1.13.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/spf13/afero/commit/ea38482beffb2485aed022e0c1ed3b4b561f67b6"><code>ea38482</code></a>
Merge pull request <a
href="https://redirect.github.com/spf13/afero/issues/462">#462</a> from
spf13/dependencies</li>
<li><a
href="https://github.com/spf13/afero/commit/a9aaabc51a41042d41595255ba13d62fdefd4561"><code>a9aaabc</code></a>
docs: add release instructions</li>
<li><a
href="https://github.com/spf13/afero/commit/d3a70b6f8258ab362e5190c01c21ade617fad9ec"><code>d3a70b6</code></a>
ci: run tests for submodules</li>
<li><a
href="https://github.com/spf13/afero/commit/2af192559d89b03611b3ce4c70f9a72ec01f0439"><code>2af1925</code></a>
feat: split gcsfs and sftpfs into separate modules</li>
<li><a
href="https://github.com/spf13/afero/commit/dbd6f6174e148a5b54b151b4cfc31dc8a4423451"><code>dbd6f61</code></a>
Merge pull request <a
href="https://redirect.github.com/spf13/afero/issues/477">#477</a> from
spf13/update-dependencies</li>
<li><a
href="https://github.com/spf13/afero/commit/83b8a558532728814aafd233cbfd9e9642abe7af"><code>83b8a55</code></a>
update readme</li>
<li><a
href="https://github.com/spf13/afero/commit/bf3bd7346b551cccadf936d821b982799daa6843"><code>bf3bd73</code></a>
update dependencies</li>
<li><a
href="https://github.com/spf13/afero/commit/464bc9859a5863a4c49e18b973b1398c0ac465f3"><code>464bc98</code></a>
Merge pull request <a
href="https://redirect.github.com/spf13/afero/issues/473">#473</a> from
spf13/dependabot/github_actions/golangci/golangc...</li>
<li><a
href="https://github.com/spf13/afero/commit/da239a4ded2831f87f4df336563d3d4b8bd1abaf"><code>da239a4</code></a>
Bump golangci/golangci-lint-action from 6.5.0 to 6.5.1</li>
<li><a
href="https://github.com/spf13/afero/commit/523f621845f8f2bd5aebb28650957b06b8778598"><code>523f621</code></a>
Merge pull request <a
href="https://redirect.github.com/spf13/afero/issues/461">#461</a> from
spf13/go124</li>
<li>Additional commits viewable in <a
href="https://github.com/spf13/afero/compare/v1.12.0...v1.14.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/spf13/afero&package-manager=go_modules&previous-version=1.12.0&new-version=1.14.0)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:21:21 +00:00
dependabot[bot] 64b434b47b chore: bump github.com/charmbracelet/glamour from 0.8.0 to 0.9.1 (#17071)
Bumps
[github.com/charmbracelet/glamour](https://github.com/charmbracelet/glamour)
from 0.8.0 to 0.9.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/charmbracelet/glamour/releases">github.com/charmbracelet/glamour's
releases</a>.</em></p>
<blockquote>
<h2>v0.9.1</h2>
<p>Some users were reporting occasional checksum miss matches when
building using Glamour v0.9.0.
This release provides a new tag to hopefully fix this.</p>
<h2>Changelog</h2>
<h3>Other work</h3>
<ul>
<li>dddb9a72f081205b9e18a34d093c673230e96f8b: ci: sync golangci-lint
config (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/403">#403</a>)
(<a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot])</li>
</ul>
<hr />
<p><!-- raw HTML omitted --><!-- raw HTML omitted --><!-- raw HTML
omitted --></p>
<p>Thoughts? Questions? We love hearing from you. Feel free to reach out
on <a href="https://twitter.com/charmcli">Twitter</a>, <a
href="https://mastodon.technology/@charm">The Fediverse</a>, or on <a
href="https://charm.sh/chat">Discord</a>.</p>
<h2>v0.9.0</h2>
<h1>Better Syntax Highlighting, Better Tables</h1>
<p>It's totally time for a Glamour release right? This release features
a nice lil' contribution from the <a
href="https://github.com/github"><code>@​github</code></a> CLI team and
pulls in some big table improvements from Lip Gloss upstream. Let's
go!</p>
<h2>Specifying Chroma Styles</h2>
<p>Thanks to valiant efforts of <a
href="https://github.com/andyfeller"><code>@​andyfeller</code></a> and
<a
href="https://github.com/williammartin"><code>@​williammartin</code></a>
at <a href="https://github.com/github"><code>@​github</code></a>, you
can now use <a
href="https://pkg.go.dev/github.com/charmbracelet/glamour@v0.9.0#WithChromaFormatter"><code>glamour.WithChromaFormatter</code></a>
to specify an exact <a
href="https://github.com/alecthomas/chroma">Chroma</a> style to use,
independent of the higher level style.</p>
<pre lang="go"><code>myHotOps := glamour.WithOptions(
    glamour.WithChromaFormatter(&quot;terminal16&quot;),
    glamour.WithStandardStyle(&quot;dark&quot;),
)
</code></pre>
<p>As a bonus, you can also use <a
href="https://pkg.go.dev/github.com/charmbracelet/glamour@v0.9.0#WithOptions"><code>glamour.WithOptions</code></a>
as a meta layer for grouping options.</p>
<h2>Better Tables</h2>
<p>This release also reaps the benefits from the table rendering
overhaul in <a
href="https://github.com/charmbracelet/lipgloss/releases/tag/v1.1.0">Lip
Gloss v1.1.0</a>! Glamour will now be much smarter when it comes to
deciding column widths, and the content will not wrap appropriately
instead of just being cut when it won't fit.</p>
<h2>Changelog</h2>
<h3>New Features</h3>
<ul>
<li>4c040b7fd5c023154de93d5c0f789111ea06c82c: feat: add term renderer
option for chroma formatter (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/395">#395</a>)
(<a
href="https://github.com/williammartin"><code>@​williammartin</code></a>)</li>
<li>39de44871fad9d547af5975ae220f2034642304a: feat(ci): use goreleaser
(<a
href="https://redirect.github.com/charmbracelet/glamour/issues/348">#348</a>)
(<a
href="https://github.com/aymanbagabas"><code>@​aymanbagabas</code></a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>f43b1ad9ef09b10a93837e07ae2c18b66bceac5c: fix(tables): pin lipgloss
to v1.1.0 for table improvements; update tests (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/394">#394</a>)
(<a
href="https://github.com/andreynering"><code>@​andreynering</code></a>)</li>
<li>bdc4ec5217e146f5a57be8a3e0a14a3ddee3f749: fix(table): fix rendering
table in ascii-only mode (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/393">#393</a>)
(<a
href="https://github.com/andreynering"><code>@​andreynering</code></a>)</li>
<li>9cedacac492db45121a984505f3f4d87277dcde3: fix: render right margin
for block stack elements (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/334">#334</a>)
(<a href="https://github.com/jahvon"><code>@​jahvon</code></a>)</li>
</ul>
<h3>Documentation updates</h3>
<ul>
<li>f29dc10685689be9846671030e07a17f97bafb16: docs(example): update
example to demonstrate color downsampling (<a
href="https://github.com/meowgorithm"><code>@​meowgorithm</code></a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/charmbracelet/glamour/commit/dddb9a72f081205b9e18a34d093c673230e96f8b"><code>dddb9a7</code></a>
ci: sync golangci-lint config (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/403">#403</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/f43b1ad9ef09b10a93837e07ae2c18b66bceac5c"><code>f43b1ad</code></a>
test(tables): pin lipgloss to v1.1.0 and update tests (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/394">#394</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/d1d5125cfab42203495f15b846e901d0c1f37aaa"><code>d1d5125</code></a>
chore(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 in /examples
(<a
href="https://redirect.github.com/charmbracelet/glamour/issues/400">#400</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/3b686ba19d5fdb7762e82f1d10348aec65e149c8"><code>3b686ba</code></a>
chore(deps): bump golang.org/x/net from 0.33.0 to 0.36.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/399">#399</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/4c040b7fd5c023154de93d5c0f789111ea06c82c"><code>4c040b7</code></a>
feat: add term renderer option for chroma formatter (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/395">#395</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/3dc6c5b8d878b1164940c0d5ac97f3943717d71d"><code>3dc6c5b</code></a>
chore(deps): bump golang.org/x/text from 0.22.0 to 0.23.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/397">#397</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/5ad6fac7cea48dc390efa654b30edcd05ff81c0a"><code>5ad6fac</code></a>
chore(deps): bump golang.org/x/term from 0.29.0 to 0.30.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/396">#396</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/bdc4ec5217e146f5a57be8a3e0a14a3ddee3f749"><code>bdc4ec5</code></a>
fix(table): fix rendering table in ascii-only mode (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/393">#393</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/b0776ab61085cc90418f9a902ae5c80994d567e3"><code>b0776ab</code></a>
chore(deps): bump github.com/yuin/goldmark-emoji from 1.0.4 to 1.0.5 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/391">#391</a>)</li>
<li><a
href="https://github.com/charmbracelet/glamour/commit/ddc245101b5967e287cbc8f09a163bdc4e7404b5"><code>ddc2451</code></a>
chore(deps): bump golang.org/x/text from 0.21.0 to 0.22.0 (<a
href="https://redirect.github.com/charmbracelet/glamour/issues/392">#392</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/charmbracelet/glamour/compare/v0.8.0...v0.9.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/charmbracelet/glamour&package-manager=go_modules&previous-version=0.8.0&new-version=0.9.1)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 07:09:53 +00:00
dependabot[bot] 38f404fcaf chore: bump vite from 5.4.14 to 5.4.15 in /site (#17101)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.14 to 5.4.15.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.15</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.15 (2025-03-24)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19702">#19702</a>,
fs raw query with query separators (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19703">#19703</a>)
(<a
href="https://github.com/vitejs/vite/commit/807d7f06d33ab49c48a2a3501da3eea1906c0d41">807d7f0</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19702">#19702</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19703">#19703</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/9b0f4c80eea8b136d262c705234353e96abfbe75"><code>9b0f4c8</code></a>
release: v5.4.15</li>
<li><a
href="https://github.com/vitejs/vite/commit/807d7f06d33ab49c48a2a3501da3eea1906c0d41"><code>807d7f0</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19702">#19702</a>,
fs raw query with query separators (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19703">#19703</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.15/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.14&new-version=5.4.15)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-26 07:08:05 +00:00
Jon Ayers 17ddee05e5 chore: update golang to 1.24.1 (#17035)
- Update go.mod to use Go 1.24.1
- Update GitHub Actions setup-go action to use Go 1.24.1
- Fix linting issues with golangci-lint by:
  - Updating to golangci-lint v1.57.1 (more compatible with Go 1.24.1)

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <claude@anthropic.com>
2025-03-26 01:56:39 -05:00
Danielle Maywood c131d01cfd chore: disallow inbox as default method (#17093)
Disallow setting `inbox` as the default notifications method.
2025-03-25 20:10:15 +00:00
brettkolodny cf10d98aab fix: improve error message when deleting organization with resources (#17049)
Closes
[coder/internal#477](https://github.com/coder/internal/issues/477)

![Screenshot 2025-03-21 at 11 25
57 AM](https://github.com/user-attachments/assets/50cc03e9-395d-4fc7-8882-18cb66b1fac9)

I'm solving this issue in two parts:

1. Updated the postgres function so that it doesn't omit 0 values in the
error
2. Created a new query to fetch the number of resources associated with
an organization and using that information to provider a cleaner error
message to the frontend

> **_NOTE:_** SQL is not my strong suit, and the code was created with
the help of AI. So I'd take extra time looking over what I wrote there
2025-03-25 15:31:24 -04:00
Bruno Quaresma 2c53f7ae7c feat: mark notification as read when action is clicked (#17095)
When a user clicks in a notification action we can infer the
notification was read.
2025-03-25 14:29:52 -03:00
Bruno Quaresma 33029c39c0 fix: fix load more notifications only working once (#17094)
The "load more" button in the notifications inbox were only working
once. After taking a look at the code the issue was found and fixed.
2025-03-25 13:43:01 -03:00
Mathias Fredriksson 5c8cac9fb7 feat: add name to workspace agent devcontainers (#17089)
In the presence of multiple devcontainers, it would be nice to
differentiate them by name. This change inherits the resource name from
terraform.

Refs #17076
2025-03-25 12:59:20 +00:00
Marcin Tojek 56082f3b83 feat(cli): start workspace in no-wait mode (#17087)
Fixes: https://github.com/coder/coder/issues/16408
2025-03-25 13:54:53 +01:00
Danielle Maywood cd19e79d9b chore: enable coder inbox by default (#17077)
Add a flag to enable Coder Inbox by default, as well as supporting disabling the feature.
2025-03-25 12:51:26 +00:00
Spike Curtis 5f3a53f01b fix: fix race condition in pubsub startup (#17088)
fixes https://github.com/coder/internal/issues/525

If the context is canceled, the goroutine that is supposed to read from the `errCh` could exit prematurely, leading to a goroutine leak. Refactors this code so it cannot block.
2025-03-25 16:45:45 +04:00
Danny Kopping 4c33846f6d chore: add prebuilds system user (#16916)
Pre-requisite for https://github.com/coder/coder/pull/16891

Closes https://github.com/coder/internal/issues/515

This PR introduces a new concept of a "system" user.

Our data model requires that all workspaces have an owner (a `users`
relation), and prebuilds is a feature that will spin up workspaces to be
claimed later by actual users - and thus needs to own the workspaces in
the interim.

Naturally, introducing a change like this touches a few aspects around
the codebase and we've taken the approach _default hidden_ here; in
other words, queries for users will by default _exclude_ all system
users, but there is a flag to ensure they can be displayed. This keeps
the changeset relatively small.

This user has minimal permissions (it's equivalent to a `member` since
it has no roles). It will be associated with the default org in the
initial migration, and thereafter we'll need to somehow ensure its
membership aligns with templates (which are org-scoped) for which it'll
need to provision prebuilds; that's a solution we'll have in a
subsequent PR.

---------

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
Co-authored-by: Sas Swart <sas.swart.cdk@gmail.com>
2025-03-25 12:18:06 +00:00
Spike Curtis 117e4c2fe7 feat: adds device_id, device_os, and coder_desktop_version to telemetry (#17086)
Records the Device ID, Device OS and Coder Desktop version to telemetry.

These values are provided by the Coder Desktop client in the StartRequest method of the VPN protocol. We render them as an HTTP header to transmit to Coderd, where they are decoded and added to telemetry.
2025-03-25 15:26:05 +04:00
Hugo Dutka d5557fcbf5 fix: implement device auth rate limit handling (#17079)
The [OAuth2
specification](https://datatracker.ietf.org/doc/html/rfc8628) describes
how clients in the device flow should handle retrying requests when they
are rate limited.

We didn't respect it, which sometimes prevented users from logging in or
setting up external auth. They'd see a `slow_down` error in the UI and
would be unable to complete the authentication flow. This PR implements
rate limit handling according to the spec.
2025-03-25 11:32:03 +01:00
Vincent Vielle 7b65422ef3 fix: change notifications actions url (#17083)
Related to #17082

Some notifications ( workspace created and workspace manually updated )
are using wrong variables to build the Action URL. Fixing it.
2025-03-25 11:29:02 +01:00
Marcin Tojek 081679f431 fix: display force-tty flag (#17067)
Fixes: https://github.com/coder/coder/issues/17033
2025-03-25 10:25:35 +01:00
Jon Ayers 8da568b132 chore: update Terraform version from 1.11.0 to 1.11.2 (#17081)
🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude <claude@anthropic.com>
2025-03-25 00:57:15 -05:00
Edward Angert 4983150ab9 docs: add a table to feature stages doc (#17080)
adds a table to the feature stages doc to summarize the stages + links
to the heading below for more info


[preview](https://coder.com/docs/@feature-stages-table/about/feature-stages)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-24 22:28:02 -04:00
M Atif Ali 51cfec3261 chore: reuse syft and cosign install actions across workflows (#16981)
This pull request adds new GitHub Actions for installing `cosign` and
`syft`, and updates the CI, release, and security workflows.

**New Actions:**  
- [`install-cosign`](.github/actions/install-cosign/action.yaml):
Installs `cosign` with a configurable version.
- [`install-syft`](.github/actions/install-syft/action.yaml): Installs
`syft` with a configurable version.

**Workflow Updates:**  
- CI, release, and security workflows now use `install-cosign` and
`install-syft`.
2025-03-25 01:22:17 +00:00
Bruno Quaresma e8d5f98ede feat: support markdown in notifications (#17075)
To make the notification content more appealing, we are sending the
notification content as markdown from the server, so we need to adjust
the FE to display it properly.
2025-03-24 13:46:43 -03:00
ケイラ 5b3eda6719 chore: persist template import terraform plan in postgres (#17012) 2025-03-24 10:01:50 -06:00
Cian Johnston 445a059da2 ci: standardize on go 1.22.12 (#17047)
Standardizes on go1.22.12 in go.mod and in dogfood Dockerfile
2025-03-24 16:00:07 +00:00
Mathias Fredriksson d570ce7246 test(provisioner/terraform): clean up testdata structure (#17074) 2025-03-24 16:34:56 +02:00
dependabot[bot] 4e38e6de04 ci: bump the github-actions group with 8 updates (#17068)
Bumps the github-actions group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/cache](https://github.com/actions/cache) | `4.2.2` | `4.2.3`
|
| [actions/upload-artifact](https://github.com/actions/upload-artifact)
| `4.6.1` | `4.6.2` |
|
[actions/download-artifact](https://github.com/actions/download-artifact)
| `4.1.9` | `4.2.1` |
|
[tj-actions/changed-files](https://github.com/tj-actions/changed-files)
| `531f5f7d163941f0c1c04e0ff4d8bb243ac4366f` |
`27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99` |
| [tj-actions/branch-names](https://github.com/tj-actions/branch-names)
| `8.0.1` | `8.1.0` |
| [github/codeql-action](https://github.com/github/codeql-action) |
`3.28.11` | `3.28.12` |
|
[beatlabs/delete-old-branches-action](https://github.com/beatlabs/delete-old-branches-action)
| `0.0.10` | `0.0.11` |
|
[umbrelladocs/action-linkspector](https://github.com/umbrelladocs/action-linkspector)
| `1.2.5` | `1.3.2` |

Updates `actions/cache` from 4.2.2 to 4.2.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to use <code>@​actions/cache</code> 4.0.3 package &amp;
prepare for new release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a>
(SAS tokens for cache entries are now masked in debug logs)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1577">actions/cache#1577</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4.2.2...v4.2.3">https://github.com/actions/cache/compare/v4.2.2...v4.2.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.2.3</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.3 (obfuscates SAS token in
debug logs for cache entries)</li>
</ul>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<h3>4.0.2</h3>
<ul>
<li>Fixed restore <code>fail-on-cache-miss</code> not working.</li>
</ul>
<h3>4.0.1</h3>
<ul>
<li>Updated <code>isGhes</code> check</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/5a3ec84eff668545956fd18022155c47e93e2684"><code>5a3ec84</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1577">#1577</a>
from salmanmkc/salmanmkc/4-test</li>
<li><a
href="https://github.com/actions/cache/commit/7de21022a7b6824c106a9847befcbd8154b45b6a"><code>7de2102</code></a>
Update releases.md</li>
<li><a
href="https://github.com/actions/cache/commit/76d40dd347779762a1c829bbeeda5da4d81ca8c1"><code>76d40dd</code></a>
Update to use the latest version of the cache package to obfuscate the
SAS</li>
<li><a
href="https://github.com/actions/cache/commit/76dd5eb692f606c28d4b7a4ea7cfdffc926ba06a"><code>76dd5eb</code></a>
update cache with main</li>
<li><a
href="https://github.com/actions/cache/commit/8c80c27c5e4498d5675b05fb1eff96a56c593b06"><code>8c80c27</code></a>
new package</li>
<li><a
href="https://github.com/actions/cache/commit/45cfd0e7fffd1869ea4d5bfb54a464d825c1f742"><code>45cfd0e</code></a>
updates</li>
<li><a
href="https://github.com/actions/cache/commit/edd449b9cf39c2a20dc7c3d505ff6dc193c48a02"><code>edd449b</code></a>
updated cache with latest changes</li>
<li><a
href="https://github.com/actions/cache/commit/0576707e373f92196b81695442ed3f80c347f9c7"><code>0576707</code></a>
latest test before pr</li>
<li><a
href="https://github.com/actions/cache/commit/3105dc9754dd9cd935ffcf45c091ed2cadbf42b9"><code>3105dc9</code></a>
update</li>
<li><a
href="https://github.com/actions/cache/commit/9450d42d15022999ad2fa60a8b91f01fc92a0563"><code>9450d42</code></a>
mask</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/cache/compare/d4323d4df104b026a6aa633fdb11d772146be0bf...5a3ec84eff668545956fd18022155c47e93e2684">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/upload-artifact` from 4.6.1 to 4.6.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.6.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Update to use artifact 2.3.2 package &amp; prepare for new
upload-artifact release by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/upload-artifact/pull/685">actions/upload-artifact#685</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/upload-artifact/compare/v4...v4.6.2">https://github.com/actions/upload-artifact/compare/v4...v4.6.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/upload-artifact/commit/ea165f8d65b6e75b540449e92b4886f43607fa02"><code>ea165f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/upload-artifact/issues/685">#685</a>
from salmanmkc/salmanmkc/3-new-upload-artifacts-release</li>
<li><a
href="https://github.com/actions/upload-artifact/commit/08396203c179e13c71b9754ce3472ed71842eec0"><code>0839620</code></a>
Prepare for new release of actions/upload-artifact with new toolkit
cache ver...</li>
<li>See full diff in <a
href="https://github.com/actions/upload-artifact/compare/4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1...ea165f8d65b6e75b540449e92b4886f43607fa02">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/download-artifact` from 4.1.9 to 4.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Add unit tests by <a
href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/392">actions/download-artifact#392</a></li>
<li>Fix bug introduced in 4.2.0 by <a
href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/391">actions/download-artifact#391</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v4.2.0...v4.2.1">https://github.com/actions/download-artifact/compare/v4.2.0...v4.2.1</a></p>
<h2>v4.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/lkfortuna"><code>@​lkfortuna</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/384">actions/download-artifact#384</a></li>
<li>Bump artifact version, do digest check by <a
href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/383">actions/download-artifact#383</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/lkfortuna"><code>@​lkfortuna</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/384">actions/download-artifact#384</a></li>
<li><a href="https://github.com/GhadimiR"><code>@​GhadimiR</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/383">actions/download-artifact#383</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v4.1.9...v4.2.0">https://github.com/actions/download-artifact/compare/v4.1.9...v4.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/95815c38cf2ff2164869cbab79da8d1f422bc89e"><code>95815c3</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/391">#391</a>
from GhadimiR/main</li>
<li><a
href="https://github.com/actions/download-artifact/commit/278fca438a0f334c0505181835b4796f2785949b"><code>278fca4</code></a>
Move log statements</li>
<li><a
href="https://github.com/actions/download-artifact/commit/68909842a1073010f1cf920ed7f153e2948f9c16"><code>6890984</code></a>
Merge branch 'main' into main</li>
<li><a
href="https://github.com/actions/download-artifact/commit/f9415c0ec30f02c18e075f091cafcfe4159168d0"><code>f9415c0</code></a>
Run unit tests in CI</li>
<li><a
href="https://github.com/actions/download-artifact/commit/76a6eb5cbca98dccb5e14c0116e53f5df13b220d"><code>76a6eb5</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/392">#392</a>
from GhadimiR/add_unit_tests</li>
<li><a
href="https://github.com/actions/download-artifact/commit/a2426d7c4522072f4d5824c9508d7ea97107cb8e"><code>a2426d7</code></a>
Merge branch 'main' into add_unit_tests</li>
<li><a
href="https://github.com/actions/download-artifact/commit/3ffa694f6f7e3d53f63807f78267796f57911dd4"><code>3ffa694</code></a>
lint</li>
<li><a
href="https://github.com/actions/download-artifact/commit/53f6aa5f93b626e252398abac720a28f6eb048ed"><code>53f6aa5</code></a>
Add extra assertion to download single artifact test</li>
<li><a
href="https://github.com/actions/download-artifact/commit/b456700053c87aa7d6b31d212292755e1e6eb923"><code>b456700</code></a>
lint</li>
<li><a
href="https://github.com/actions/download-artifact/commit/9eab798a9885c1be58a1c4381da1109644016e98"><code>9eab798</code></a>
Configure tsconfig</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/download-artifact/compare/cc203385981b70ca67e1cc392babf9cc229d5806...95815c38cf2ff2164869cbab79da8d1f422bc89e">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
531f5f7d163941f0c1c04e0ff4d8bb243ac4366f to
27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.2...v46.0.3">46.0.3</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a">41e0de5</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e">9457878</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Remove warning (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2504">#2504</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/813235684248c47a3518575ef56906084b59e7e8">8132356</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Bump test/demo from <code>5dfac2e</code> to
<code>c6bd3b3</code> (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2505">#2505</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/823fcebdb31bb35fdf2229d9f769b400309430d0">823fceb</a>)
- (dependabot[bot])</li>
<li>Pin github actions (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2503">#2503</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/7a369a71758acce79205e5145cb728a08ae607fb">7a369a7</a>)
- (Tonye Jack)</li>
<li><strong>deps-dev:</strong> Bump <code>@​types/node</code> from
22.13.10 to 22.13.11 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2502">#2502</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/9468856c2214566e4f7d96d3a018fb3e889a4d6d">9468856</a>)
- (dependabot[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded to v46.0.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2500">#2500</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted -->
Co-authored-by: Tonye Jack <a
href="mailto:jtonye@ymail.com">jtonye@ymail.com</a> (<a
href="https://github.com/tj-actions/changed-files/commit/401c7227d10aad0ed26ab13735f1b290c3bcc919">401c722</a>)
- (github-actions[bot])</p>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.1...v46.0.2">46.0.2</a>
- (2025-03-22)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Update log message when attempting to locate merge base (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2493">#2493</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/a5cad85977a53287a694f9509c03feb50ac58428">a5cad85</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted --> Add</h2>
<ul>
<li>Add hint to revoke leaked token (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2475">#2475</a>)</li>
</ul>
<p>(<a
href="https://github.com/tj-actions/changed-files/commit/d52b942ee0c535798f0df9e1c05683f8e818c79b">d52b942</a>)
- (undefined)</p>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2496">#2496</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/9cc867cd4a5df418b1538ffecaaef26144a0e51f">9cc867c</a>)
- (github-actions[bot])</p>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2492">#2492</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/f2f439bb2f890f0ec22e3ca95985b46003688a8f">f2f439b</a>)
- (github-actions[bot])</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99"><code>27ae6b3</code></a>
Upgraded to v46.0.3 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2506">#2506</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/823fcebdb31bb35fdf2229d9f769b400309430d0"><code>823fceb</code></a>
chore(deps): bump test/demo from <code>5dfac2e</code> to
<code>c6bd3b3</code> (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2505">#2505</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/813235684248c47a3518575ef56906084b59e7e8"><code>8132356</code></a>
doc: remove warning (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2504">#2504</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/7a369a71758acce79205e5145cb728a08ae607fb"><code>7a369a7</code></a>
chore: pin github actions (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2503">#2503</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9468856c2214566e4f7d96d3a018fb3e889a4d6d"><code>9468856</code></a>
chore(deps-dev): bump <code>@​types/node</code> from 22.13.10 to
22.13.11 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2502">#2502</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/401c7227d10aad0ed26ab13735f1b290c3bcc919"><code>401c722</code></a>
Upgraded to v46.0.2 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2500">#2500</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/41e0de576a0f2b64d9f06f2773f539109e55a70a"><code>41e0de5</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2501">#2501</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/945787811a795cd840a1157ac590dd7827a05c8e"><code>9457878</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2499">#2499</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/26a38635fc1173cc5820336ce97be6188d0de9f5"><code>26a3863</code></a>
docs: add undefined-moe as a contributor for doc (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2498">#2498</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/a530a27a793d93d428bac022c621a9ed52f75efd"><code>a530a27</code></a>
chore: update sync-release-version.yml to use commit hash for tags in
docs (#...</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/changed-files/compare/531f5f7d163941f0c1c04e0ff4d8bb243ac4366f...27ae6b33eaed7bf87272fdeb9f1c54f9facc9d99">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/branch-names` from 8.0.1 to 8.1.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/releases">tj-actions/branch-names's
releases</a>.</em></p>
<blockquote>
<h2>v8.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v8.0.2 by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/407">tj-actions/branch-names#407</a></li>
<li>feat: add support for strip_branch_prefix by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/406">tj-actions/branch-names#406</a></li>
<li>Updated README.md by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/408">tj-actions/branch-names#408</a></li>
<li>chore: Update test.yml by <a
href="https://github.com/jackton1"><code>@​jackton1</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/409">tj-actions/branch-names#409</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tj-actions/branch-names/compare/v8...v8.1.0">https://github.com/tj-actions/branch-names/compare/v8...v8.1.0</a></p>
<h2>v8.0.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Upgraded to v8.0.1 by <a
href="https://github.com/tj-actions-bot"><code>@​tj-actions-bot</code></a>
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/283">tj-actions/branch-names#283</a></li>
<li>chore(deps): update codacy/codacy-analysis-cli-action action to
v4.4.0 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/284">tj-actions/branch-names#284</a></li>
<li>chore(deps): update tj-actions/verify-changed-files action to v19 by
<a href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/285">tj-actions/branch-names#285</a></li>
<li>docs: add boidolr as a contributor for doc by <a
href="https://github.com/allcontributors"><code>@​allcontributors</code></a>
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/287">tj-actions/branch-names#287</a></li>
<li>Updated README.md by <a
href="https://github.com/tj-actions-bot"><code>@​tj-actions-bot</code></a>
in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/288">tj-actions/branch-names#288</a></li>
<li>docs: update checkout action by <a
href="https://github.com/boidolr"><code>@​boidolr</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/286">tj-actions/branch-names#286</a></li>
<li>chore(deps): update actions/checkout action to v4.1.2 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/290">tj-actions/branch-names#290</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/289">tj-actions/branch-names#289</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/291">tj-actions/branch-names#291</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/292">tj-actions/branch-names#292</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/293">tj-actions/branch-names#293</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/294">tj-actions/branch-names#294</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/295">tj-actions/branch-names#295</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/296">tj-actions/branch-names#296</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/297">tj-actions/branch-names#297</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/298">tj-actions/branch-names#298</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/299">tj-actions/branch-names#299</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/300">tj-actions/branch-names#300</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/301">tj-actions/branch-names#301</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/302">tj-actions/branch-names#302</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/303">tj-actions/branch-names#303</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/304">tj-actions/branch-names#304</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/305">tj-actions/branch-names#305</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/306">tj-actions/branch-names#306</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/307">tj-actions/branch-names#307</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/308">tj-actions/branch-names#308</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/309">tj-actions/branch-names#309</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/310">tj-actions/branch-names#310</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/311">tj-actions/branch-names#311</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/312">tj-actions/branch-names#312</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/313">tj-actions/branch-names#313</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/314">tj-actions/branch-names#314</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/315">tj-actions/branch-names#315</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/316">tj-actions/branch-names#316</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/317">tj-actions/branch-names#317</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/318">tj-actions/branch-names#318</a></li>
<li>chore(deps): update actions/checkout digest to b4ffde6 by <a
href="https://github.com/renovate"><code>@​renovate</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/319">tj-actions/branch-names#319</a></li>
<li>Bump actions/checkout from 4.1.1 to 4.1.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/tj-actions/branch-names/pull/320">tj-actions/branch-names#320</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/branch-names/blob/main/HISTORY.md">tj-actions/branch-names's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.0.2...v8.1.0">8.1.0</a>
- (2025-03-23)</h1>
<h2><!-- raw HTML omitted -->🚀 Features</h2>
<ul>
<li>Add support for strip_branch_prefix (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/406">#406</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/c83c87ab5379a8ff88c905ea78c391c0d53972ac">c83c87a</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/408">#408</a>)</li>
</ul>
<p>(<a
href="https://github.com/tj-actions/branch-names/commit/d18e657ed32f367301fdebeb9a88b7e5539f3052">d18e657</a>)
- (Tonye Jack)</p>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li>Update test.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/409">#409</a>)
(<a
href="https://github.com/tj-actions/branch-names/commit/f44339b51f74753b57583fbbd124e18a81170ab1">f44339b</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->⬆️ Upgrades</h2>
<ul>
<li>Upgraded from v8.0.1 -&gt; v8.0.2 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/407">#407</a>)</li>
</ul>
<p>(<a
href="https://github.com/tj-actions/branch-names/commit/86aaf170e74d8cad1e7d4f566f2e9bed6cf000af">86aaf17</a>)
- (Tonye Jack)</p>
<h1><a
href="https://github.com/tj-actions/branch-names/compare/v8.0.1...v8.0.2">8.0.2</a>
- (2025-03-15)</h1>
<h2><!-- raw HTML omitted -->📦 Bumps</h2>
<ul>
<li>Bump actions/checkout from 4.1.1 to 4.1.2</li>
</ul>
<p>Bumps <a
href="https://github.com/actions/checkout">actions/checkout</a> from
4.1.1 to 4.1.2.</p>
<ul>
<li><a href="https://github.com/actions/checkout/releases">Release
notes</a></li>
<li><a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">Changelog</a></li>
<li><a
href="https://github.com/actions/checkout/compare/v4.1.1...9bb56186c3b09b4f86b1c65136769dd318469633">Commits</a></li>
</ul>
<hr />
<p>updated-dependencies:</p>
<ul>
<li>dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-patch
...</li>
</ul>
<p>Signed-off-by: dependabot[bot] <a
href="mailto:support@github.com">support@github.com</a> (<a
href="https://github.com/tj-actions/branch-names/commit/534653b2272678c76b23f2e681c8cfc2056d7b99">534653b</a>)
- (dependabot[bot])</p>
<ul>
<li>Bump actions/checkout from 4.1.1 to 4.1.2</li>
</ul>
<p>Bumps <a
href="https://github.com/actions/checkout">actions/checkout</a> from
4.1.1 to 4.1.2.</p>
<ul>
<li><a href="https://github.com/actions/checkout/releases">Release
notes</a></li>
<li><a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">Changelog</a></li>
<li><a
href="https://github.com/actions/checkout/compare/v4.1.1...9bb56186c3b09b4f86b1c65136769dd318469633">Commits</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/branch-names/commit/f44339b51f74753b57583fbbd124e18a81170ab1"><code>f44339b</code></a>
chore: Update test.yml (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/409">#409</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/d18e657ed32f367301fdebeb9a88b7e5539f3052"><code>d18e657</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/408">#408</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/c83c87ab5379a8ff88c905ea78c391c0d53972ac"><code>c83c87a</code></a>
feat: add support for strip_branch_prefix (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/406">#406</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/86aaf170e74d8cad1e7d4f566f2e9bed6cf000af"><code>86aaf17</code></a>
Upgraded from v8.0.1 -&gt; v8.0.2 (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/407">#407</a>)</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/394802c2335dc81582b3569322f3d7da41a9978e"><code>394802c</code></a>
Deleted renovate.json</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/32798b2266752bb2b274d694923596fdc67c399a"><code>32798b2</code></a>
chore(deps): update actions/checkout action to v4.2.2</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/9a04c058bb2ddc036c2d273df7a6a21d42f28533"><code>9a04c05</code></a>
chore(deps): update actions/checkout digest to 11bd719</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/e400ca0ec8ef23d62fca0f9492fc40093a3f1012"><code>e400ca0</code></a>
chore(deps): update actions/checkout digest to eef6144</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/5d79051f9e52a0067942d0b42e53ca411220c07b"><code>5d79051</code></a>
chore(deps): update actions/checkout action to v4.2.1</li>
<li><a
href="https://github.com/tj-actions/branch-names/commit/d353900ec68b69229ad98021a530af33c416dcb1"><code>d353900</code></a>
chore(deps): update actions/checkout digest to 692973e (<a
href="https://redirect.github.com/tj-actions/branch-names/issues/394">#394</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/branch-names/compare/6871f53176ad61624f978536bbf089c574dc19a2...f44339b51f74753b57583fbbd124e18a81170ab1">compare
view</a></li>
</ul>
</details>
<br />

Updates `github/codeql-action` from 3.28.11 to 3.28.12
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.12</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.12/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.12 - 19 Mar 2025</h2>
<ul>
<li>Dependency caching should now cache more dependencies for Java
<code>build-mode: none</code> extractions. This should speed up
workflows and avoid inconsistent alerts in some cases.</li>
<li>Update default CodeQL bundle version to 2.20.7. <a
href="https://redirect.github.com/github/codeql-action/pull/2810">#2810</a></li>
</ul>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2753">#2753</a></li>
</ul>
<h2>3.28.8 - 29 Jan 2025</h2>
<ul>
<li>Enable support for Kotlin 2.1.10 when running with CodeQL CLI
v2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2744">#2744</a></li>
</ul>
<h2>3.28.7 - 29 Jan 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.6 - 27 Jan 2025</h2>
<ul>
<li>Re-enable debug artifact upload for CLI versions 2.20.3 or greater.
<a
href="https://redirect.github.com/github/codeql-action/pull/2726">#2726</a></li>
</ul>
<h2>3.28.5 - 24 Jan 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2717">#2717</a></li>
</ul>
<h2>3.28.4 - 23 Jan 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.3 - 22 Jan 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2707">#2707</a></li>
<li>Fix an issue downloading the CodeQL Bundle from a GitHub Enterprise
Server instance which occurred when the CodeQL Bundle had been synced to
the instance using the <a
href="https://github.com/github/codeql-action-sync-tool">CodeQL Action
sync tool</a> and the Actions runner did not have Zstandard installed.
<a
href="https://redirect.github.com/github/codeql-action/pull/2710">#2710</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/5f8171a638ada777af81d42b55959a643bb29017"><code>5f8171a</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2814">#2814</a>
from github/update-v3.28.12-6349095d1</li>
<li><a
href="https://github.com/github/codeql-action/commit/bb59f7707d836b040802dbdf2ad1a16482d319da"><code>bb59f77</code></a>
Update changelog for v3.28.12</li>
<li><a
href="https://github.com/github/codeql-action/commit/6349095d19ec30397ffb02a63b7aa4f867deb563"><code>6349095</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2810">#2810</a>
from github/update-bundle/codeql-bundle-v2.20.7</li>
<li><a
href="https://github.com/github/codeql-action/commit/d7d03fda1241f6b0b3fae460c9f19c6e887158ad"><code>d7d03fd</code></a>
Add changelog note</li>
<li><a
href="https://github.com/github/codeql-action/commit/4e3a5342c5e8e627915b9a29b363f49da8c4a32e"><code>4e3a534</code></a>
Update default bundle to codeql-bundle-v2.20.7</li>
<li><a
href="https://github.com/github/codeql-action/commit/55f023701cfc1e7d11ef2ae0c5ec3193dae4fce4"><code>55f0237</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2802">#2802</a>
from github/mbg/dependency-caching/java-buildless</li>
<li><a
href="https://github.com/github/codeql-action/commit/6a151cd77488e58567da1dcf953e7aeeaca4950c"><code>6a151cd</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2811">#2811</a>
from github/dependabot/github_actions/actions-c2c311...</li>
<li><a
href="https://github.com/github/codeql-action/commit/7866bcdb1b15b5d5cba0021b87f36d9f6d977156"><code>7866bcd</code></a>
Manually bump workflow to match autogenerated file</li>
<li><a
href="https://github.com/github/codeql-action/commit/611289e0b0ce1f6fc14820f1b72edaed2de4ba2c"><code>611289e</code></a>
build(deps): bump ruby/setup-ruby in the actions group</li>
<li><a
href="https://github.com/github/codeql-action/commit/4c409a5b664afa7d5b12cd8487e310f286487472"><code>4c409a5</code></a>
Remove temporary dependency directory in <code>analyze</code> post
action</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/6bb031afdd8eb862ea3fc1848194185e076637e5...5f8171a638ada777af81d42b55959a643bb29017">compare
view</a></li>
</ul>
</details>
<br />

Updates `beatlabs/delete-old-branches-action` from 0.0.10 to 0.0.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/beatlabs/delete-old-branches-action/releases">beatlabs/delete-old-branches-action's
releases</a>.</em></p>
<blockquote>
<h2>v0.0.11</h2>
<h2>What's Changed</h2>
<ul>
<li>chore: update readme by <a
href="https://github.com/Edgaraszs"><code>@​Edgaraszs</code></a> in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/36">beatlabs/delete-old-branches-action#36</a></li>
<li>fix: retrieve all branches through pagination by <a
href="https://github.com/nikaro"><code>@​nikaro</code></a> in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/38">beatlabs/delete-old-branches-action#38</a></li>
<li>fix: apply shellcheck recommandations by <a
href="https://github.com/nikaro"><code>@​nikaro</code></a> in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/37">beatlabs/delete-old-branches-action#37</a></li>
<li>fix: bump versions by <a
href="https://github.com/Edgaraszs"><code>@​Edgaraszs</code></a> in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/40">beatlabs/delete-old-branches-action#40</a></li>
<li>Sort tags via semver to preserve newest tags by <a
href="https://github.com/ecdemis123"><code>@​ecdemis123</code></a> in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/42">beatlabs/delete-old-branches-action#42</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Edgaraszs"><code>@​Edgaraszs</code></a>
made their first contribution in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/36">beatlabs/delete-old-branches-action#36</a></li>
<li><a href="https://github.com/nikaro"><code>@​nikaro</code></a> made
their first contribution in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/38">beatlabs/delete-old-branches-action#38</a></li>
<li><a
href="https://github.com/ecdemis123"><code>@​ecdemis123</code></a> made
their first contribution in <a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/pull/42">beatlabs/delete-old-branches-action#42</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/beatlabs/delete-old-branches-action/compare/v0.0.10...v0.0.11">https://github.com/beatlabs/delete-old-branches-action/compare/v0.0.10...v0.0.11</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/beatlabs/delete-old-branches-action/commit/4eeeb8740ff8b3cb310296ddd6b43c3387734588"><code>4eeeb87</code></a>
sort tags via semver (<a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/issues/42">#42</a>)</li>
<li><a
href="https://github.com/beatlabs/delete-old-branches-action/commit/1e32837fd650c9749fe7c36701f4ae6774639f40"><code>1e32837</code></a>
fix: bump versions (<a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/issues/40">#40</a>)</li>
<li><a
href="https://github.com/beatlabs/delete-old-branches-action/commit/3dd382723bf794a122239bc1d6b0116662d5ec0f"><code>3dd3827</code></a>
fix: apply shellcheck recommandations (<a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/issues/37">#37</a>)</li>
<li><a
href="https://github.com/beatlabs/delete-old-branches-action/commit/3a54bdf0f3658e31347dde33ff983b11fab69c7b"><code>3a54bdf</code></a>
fix: retrieve all branches through pagination (<a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/issues/38">#38</a>)</li>
<li><a
href="https://github.com/beatlabs/delete-old-branches-action/commit/3aac1083bb9bf5d1111a27300a1b3891b0a68dce"><code>3aac108</code></a>
chore: update readme (<a
href="https://redirect.github.com/beatlabs/delete-old-branches-action/issues/36">#36</a>)</li>
<li>See full diff in <a
href="https://github.com/beatlabs/delete-old-branches-action/compare/6e94df089372a619c01ae2c2f666bf474f890911...4eeeb8740ff8b3cb310296ddd6b43c3387734588">compare
view</a></li>
</ul>
</details>
<br />

Updates `umbrelladocs/action-linkspector` from 1.2.5 to 1.3.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/umbrelladocs/action-linkspector/releases">umbrelladocs/action-linkspector's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.3.2</h2>
<p>v1.3.2: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/40">#40</a>
- Update linkspector version to 0.4.2</p>
<h2>Release v1.3.1</h2>
<p>v1.3.1: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/38">#38</a>
- Add support for showing stats</p>
<h2>Release v1.3.0</h2>
<p>v1.3.0: PR <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/37">#37</a>
- Update linkspector version to 0.4.1</p>
<h2>What's Changed</h2>
<ul>
<li>Update linkspector version to 0.4.1 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/UmbrellaDocs/action-linkspector/pull/37">UmbrellaDocs/action-linkspector#37</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/UmbrellaDocs/action-linkspector/compare/v1.2...v1.3.0">https://github.com/UmbrellaDocs/action-linkspector/compare/v1.2...v1.3.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/49cf4f8da82db70e691bb8284053add5028fa244"><code>49cf4f8</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/40">#40</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/fb49f30059a34b9bfab39967511559fef398f2c1"><code>fb49f30</code></a>
Update linkspector version to 0.4.2</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/c6d4525e9f50b27a0e78fc42b537141058d034ef"><code>c6d4525</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/38">#38</a>
from UmbrellaDocs/stats</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/c311faff00cc2318a96e3cb41e1fc7dba4dffffd"><code>c311faf</code></a>
Add support for showing stats</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/808d98be382b6e1f97bd3dfa6aa85b4410769dc6"><code>808d98b</code></a>
Merge pull request <a
href="https://redirect.github.com/umbrelladocs/action-linkspector/issues/37">#37</a>
from UmbrellaDocs/update-linkspector-version</li>
<li><a
href="https://github.com/UmbrellaDocs/action-linkspector/commit/3935e7368cfeff39766dbcd3b514cbc3ff90df4c"><code>3935e73</code></a>
Update linkspector version to 0.4.1</li>
<li>See full diff in <a
href="https://github.com/umbrelladocs/action-linkspector/compare/de84085e0f51452a470558693d7d308fbb2fa261...49cf4f8da82db70e691bb8284053add5028fa244">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 12:25:03 +00:00
Spike Curtis e0ecc28638 feat: add telemetry to user-scoped tailnet API call (#17065)
Adds support for sending telemetry on calls to the User-scoped tailnet RPC endpoint. This is currently used only by Coder Desktop.

Later PRs will fill in the version, OS information, and device ID via HTTP headers.
2025-03-24 16:02:33 +04:00
Mathias Fredriksson 6bf22f8dc6 fix(Makefile): fix dcspec gen dependencies and hide error output (#17043) 2025-03-24 11:41:45 +00:00
Danielle Maywood 765e7058e8 chore: use container memory if containerised for oom notifications (#17062)
Currently we query only the underlying host's memory usage for our
memory resource monitor. This PR changes that to check if the workspace
is in a container, and if so it queries the container's memory usage,
falling back to the host's memory usage if not.
2025-03-24 11:14:21 +00:00
Cian Johnston 674f60fc5b fix(cli): replace $SESSION_TOKEN placeholder for external apps (#17048)
Fixes an oversight in https://github.com/coder/coder/pull/17032

The FE has logic to replace the string `$SESSION_TOKEN` with a
newly-minted session token.
This adds corresponding logic to the `coder open app` command.
2025-03-24 09:03:30 +00:00
Dean Sheather 77fe10ead8 chore(dogfood): update EU server from Helsinki to Falkenstein (#17061) 2025-03-24 02:22:34 +11:00
Dean Sheather 60c4944503 chore: bump golang to 1.22.12 (#17058) 2025-03-22 00:58:09 +00:00
dependabot[bot] 5c30806db6 chore: bump next from 14.2.23 to 14.2.25 in /offlinedocs (#17055)
Bumps [next](https://github.com/vercel/next.js) from 14.2.23 to 14.2.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.25</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.
This release contains a security patch for <a
href="https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffw">CVE-2025-29927</a>.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Update middleware request header (<a
href="https://redirect.github.com/vercel/next.js/issues/77202">#77202</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk"><code>@​ijjk</code></a> for helping!</p>
<h2>v14.2.24</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>fix: ensure lint worker errors aren't silenced (<a
href="https://redirect.github.com/vercel/next.js/issues/75779">#75779</a>)</li>
<li>add additional x-middleware-set-cookie filtering (<a
href="https://redirect.github.com/vercel/next.js/issues/75561">#75561</a>
&amp; <a
href="https://redirect.github.com/vercel/next.js/issues/73482">#73482</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ztanner"><code>@​ztanner</code></a> for
helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/d36a1f3c3547b0cb807f30c14aa6250a932349c8"><code>d36a1f3</code></a>
v14.2.25</li>
<li><a
href="https://github.com/vercel/next.js/commit/5fd3ae8f8542677c6294f32d18022731eab6fe48"><code>5fd3ae8</code></a>
[backport] Update middleware request header (<a
href="https://redirect.github.com/vercel/next.js/issues/77202">#77202</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/756be15c4cfecb6fae1c69cae7cfaf336423b6cf"><code>756be15</code></a>
v14.2.24</li>
<li><a
href="https://github.com/vercel/next.js/commit/ba6453d5efbb1dcb282c39d372b48d60de59fa2c"><code>ba6453d</code></a>
fix corepack keys</li>
<li><a
href="https://github.com/vercel/next.js/commit/c482c2072f6eb3f7bd656bc05e100ed54dce3636"><code>c482c20</code></a>
[backport v14] fix: ensure lint worker errors aren't silenced (<a
href="https://redirect.github.com/vercel/next.js/issues/75766">#75766</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/75779">#75779</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/5791cb677808df1cea625057d6aff95fbf5cd3a0"><code>5791cb6</code></a>
[Backport v14] add additional x-middleware-set-cookie filtering (<a
href="https://redirect.github.com/vercel/next.js/issues/75561">#75561</a>)
(<a
href="https://redirect.github.com/vercel/next.js/issues/75">#75</a>...</li>
<li><a
href="https://github.com/vercel/next.js/commit/8129a6188096c23c68d4151256acbe6d86d2eed3"><code>8129a61</code></a>
test: fix eslint plugin test (<a
href="https://redirect.github.com/vercel/next.js/issues/75687">#75687</a>)</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.23...v14.2.25">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=next&package-manager=npm_and_yarn&previous-version=14.2.23&new-version=14.2.25)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-21 22:47:05 +00:00
dependabot[bot] 17fe7f6ea2 chore: bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 (#17054)
Bumps [github.com/golang-jwt/jwt/v4](https://github.com/golang-jwt/jwt)
from 4.5.1 to 4.5.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/golang-jwt/jwt/releases">github.com/golang-jwt/jwt/v4's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.2</h2>
<p>See <a
href="https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp">https://github.com/golang-jwt/jwt/security/advisories/GHSA-mh63-6h87-95cp</a></p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/golang-jwt/jwt/compare/v4.5.1...v4.5.2">https://github.com/golang-jwt/jwt/compare/v4.5.1...v4.5.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/golang-jwt/jwt/commit/2f0e9add62078527821828c76865661aa7718a84"><code>2f0e9ad</code></a>
Backporting 0951d18 to v4</li>
<li>See full diff in <a
href="https://github.com/golang-jwt/jwt/compare/v4.5.1...v4.5.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/golang-jwt/jwt/v4&package-manager=go_modules&previous-version=4.5.1&new-version=4.5.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-21 22:41:03 +00:00
Bruno Quaresma e40ea258dc fix: fix double ws connection for notifications (#17044)
**Issue:**
The UI was creating two web socket connections to receive notification
updates causing duplicated values.

**Cause:**
We were rendering the notification container twice. One for the desktop
nav and another for mobile.

**Fix:**
Only use one notification container for the nav.

**Improvements for later:**
I think would be better at some point to move the networking and data
logic into a provider but it would require testing and some tiny rework.
Since the actual fix works well, and it is not complex or difficult, I
think it is ok to stay with it until we require to load notifications in
more places.
2025-03-21 14:12:22 -03:00
Bruno Quaresma 1593861d7c feat: add load more notifications on inbox (#17030)
Users need to see older notifications, so to make that happen, we added
a load more button at the end of the notifications list.

**Demo:**


https://github.com/user-attachments/assets/bd3d7964-a8f5-4164-8da0-9ba89ae88c9c

**What is missing?**
As you can notice, I didn't add tests for this feature. I tried, but I
didn't find a good solution for testing scroll events. However I was
able to get it working, but it was too cumbersome that I decided to
remove because of its maintenence burden.
2025-03-21 13:38:17 -03:00
Vincent Vielle 82e37732ea feat(coderd): add format option to inbox notifications watch endpoint (#17034)
This PR aims to allow clients to use different format for the title and
content of inbox notifications - on the watch endpoint.

This solution will help to have it working and formatted differently on
VSCode, WebUI ...
[Related to this issue](https://github.com/coder/internal/issues/523)
2025-03-21 16:41:13 +01:00
Cian Johnston 0474888eb4 feat(cli): add open app <workspace> <app-slug> command (#17032)
Fixes https://github.com/coder/coder/issues/17009

Adds a CLI command `coder open app <workspace> <app-slug>` that allows
opening arbitrary `coder_apps` via the CLI.

Users can optionally specify a region for workspace
applications.
2025-03-21 15:28:08 +00:00
Mathias Fredriksson 3b6bee9676 chore(Makefile): fix apidoc dependencies (#17042)
Our apidoc generation had some circular dependencies, this change splits
them up into separate Makefile targets.
2025-03-21 17:16:17 +02:00
Vincent Vielle fe24a7a4a8 feat(coderd): remove greetings from notifications templates (#16991)
This PR aimes to [fix this
issue](https://github.com/coder/internal/issues/448) -

The main idea is to remove greetings from templates stored in the DB -
and instead push it into the template for require methods - for now
SMTP.
2025-03-21 16:05:08 +01:00
Edward Angert bbe7dacd35 docs: document definition of workspace activity (#16941)
closes: https://github.com/coder/coder/issues/16884

aligns the documentation with what users see when they adjust settings
and uses the [notion
discussion](https://www.notion.so/coderhq/Definitions-of-Workspace-Usage-Autostop-Dormancy-e7fa8ff782a948c19bbe4ef8315c26cb)
as a reference. This PR reflects current behavior from what I can tell.


[preview](https://coder.com/docs/@16884-define-activity/user-guides/workspace-scheduling#activity-detection)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-21 10:36:24 -04:00
Mathias Fredriksson f4b6f429c6 chore(Makefile): fix dependencies and timestamps (#17040)
This change should reduce "infinite" dependency cycles.

I added some unnecessary `touch`es for completeness.
2025-03-21 15:33:07 +02:00
Cian Johnston 6908c1b2b7 chore: linkspector ignore mutagen.io (#17041) 2025-03-21 13:18:19 +00:00
Mathias Fredriksson b79167293c chore(Makefile): update golden files as part of make gen (#17039)
Updating golden files is an unnecessary extra step in addition to gen
that is easily overlooked, leading to the developer noticing the issue
in CI leading to lost developer time waiting for tests to complete.
2025-03-21 13:04:30 +00:00
Hugo Dutka de6080c46d chore: update comment on the users.github_com_user_id field (#17037)
Follow up to https://github.com/coder/coder/pull/17029.
2025-03-21 13:31:17 +01:00
Hugo Dutka a71aa202dc feat: filter users by github user id in the users list CLI command (#17029)
Add the `--github-user-id` option to `coder users list`, which makes the
command only return users with a matching GitHub user id. This will
enable https://github.com/coder/start-workspace-action to find a Coder
user that corresponds to a GitHub user requesting to start a workspace.
2025-03-21 13:30:47 +01:00
Mathias Fredriksson 69ba27e347 feat: allow specifying devcontainer on agent in terraform (#16997)
This change allows specifying devcontainers in terraform and plumbs it
through to the agent via agent manifest.

This will be used for autostarting devcontainers in a workspace.

Depends on coder/terraform-provider-coder#368
Updates #16423
2025-03-20 19:09:39 +02:00
Marcin Tojek 287e3198d8 fix: use navigator.locale to evaluate time format (#17025)
Fixes: https://github.com/coder/coder/issues/15452
2025-03-20 15:53:03 +01:00
Cian Johnston 3bd32a2e2a chore(cli): wait for agent to connect before dialing it in TestExpRpty (#17026)
Fixes flake seen here:
https://github.com/coder/coder/actions/runs/13970861685/job/39113344525
2025-03-20 14:44:30 +00:00
Mathias Fredriksson 72d9876c76 fix(coderd/workspaceapps): prevent race in workspace app audit session updates (#17020)
Fixes coder/internal#520
2025-03-20 14:10:45 +00:00
Cian Johnston 68624092a4 feat(agent/reconnectingpty): allow selecting backend type (#17011)
agent/reconnectingpty: allow specifying backend type
cli: exp rpty: automatically select backend based on command
2025-03-20 13:45:31 +00:00
Bruno Quaresma 0cd254f219 feat: enable mark all inbox notifications as read (#17023)
Bind the "Mark all notifications as read" action to the correct API
request in the UI.
2025-03-20 10:30:05 -03:00
Hugo Dutka 8d5e6f3cc0 fix: fix IsGithubDotComURL check (#17022)
When DeviceFlow with GitHub OAuth2 is configured, the
`api.GithubOAuth2Config.AuthCode` is
[overridden](https://github.com/coder/coder/blob/b08c8c9e1ee8edf18e9ba575098d99533062a240/coderd/userauth.go#L779)
and returns a value that doesn't pass the `IsGithubDotComURL` check.
This PR ensures the original `AuthCodeURL` method is used instead.
2025-03-20 13:24:38 +00:00
Spike Curtis 7d60186b7e feat: add user_tailnet_connections to telemetry (#17018)
## Summary
- Add UserTailnetConnection struct to track desktop client connections
- Add new field to Snapshot struct for telemetry
- Data collection to be implemented in a future PR

relates to coder/nexus#197
2025-03-20 17:04:43 +04:00
Bruno Quaresma bf59c7ca0f fix: add notifications back to desktop (#17021)
The notifications were removed on [this PR
](https://github.com/coder/coder/pull/17008)by accident.
2025-03-20 09:42:08 -03:00
Vincent Vielle 4960a1e85a feat(coderd): add mark-all-as-read endpoint for inbox notifications (#16976)
[Resolve this issue](https://github.com/coder/internal/issues/506)

Add a mark-all-as-read endpoint which is marking as read all
notifications that are not read for the authenticated user.
Also adds the DB logic.
2025-03-20 13:41:54 +01:00
Marcin Tojek d8d4b9b86e feat: display quiet hours using 24-hour time format (#17016)
Fixes: https://github.com/coder/coder/issues/15452
2025-03-20 10:40:42 +01:00
Sas Swart 38b21ab35d fix(site): gracefully handle reselection of the same preset (#17014)
This PR closes https://github.com/coder/coder/issues/16953.

Reselecting a preset that was already the selected preset returned an
undefined option to the onSelect function. We then tried to read an
attribute of this undefined value. With this fix, we handle the
undefined option correctly.
2025-03-20 07:42:51 +00:00
Danielle Maywood b39477c07a fix: resolve flakey inbox tests (#17010) 2025-03-19 22:06:47 +00:00
Bruno Quaresma 4ea5ef925f feat: make notifications header sticky (#17005)
When having a bunch of notifications and the user is scrolling down the
content it is helpful to keep the header visible so the user can easily
mark all of them as read if they want to.
2025-03-19 16:02:45 -03:00
Edward Angert c88d86bf50 docs: add new doc on how to deploy Coder on Rancher (#16534)
[preview](https://coder.com/docs/@deploy-on-rancher/install/rancher)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-19 18:50:52 +00:00
Bruno Quaresma ab763ca242 fix: show notifications on mobile (#17008)
Show the notifications close to the menu button.

**After fix:**
<img width="515" alt="Screenshot 2025-03-19 at 15 09 36"
src="https://github.com/user-attachments/assets/38f86c5b-d324-4a8b-9c68-ea818b226ae4"
/>
2025-03-19 15:19:57 -03:00
Bruno Quaresma abbd88b819 feat: update notification badge to support 99+ (#17007)
After dogfooding the notifications we noticed that admins will probably
have a larger number of unread notifications everyday so with that in
mind we decided to increase the "truncate" rate from 9+ to 99+.
2025-03-19 15:15:31 -03:00
Hugo Dutka 6a7c43d76c chore: add the start workspace workflow (#17002)
The workflow triggers when an issue is created or a comment is posted.
If the string "@coder" appears in the body of the issue or comment, a
Coder workspace owned by the issue creator or commentator will be
created with the parameters specified in the workflow.
2025-03-19 12:39:37 -04:00
Edward Angert bd243c17fb docs: add AWS AMI upgrade instructions (#16973)
followup to @d1str0's #16937 

> Adds a small note for those who just used the AWS AMI for their
initial installation.

This PR rearranges the Upgrade doc to use tabs for each section + adds
AWS AMI

[preview](https://coder.com/docs/@upgrade-tabs/install/upgrade)

---------

Co-authored-by: Brady Sullivan <brady@bsull.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-19 10:10:58 -04:00
Bruno Quaresma 4a548021c3 fix: close popover when notification settings are clicked (#17001)
When a user clicks in the notification settings does not make sense to
keep the popover open, instead, we want to close it.
2025-03-19 10:52:04 -03:00
Bruno Quaresma 86d907126d fix: fix overflowing text in inbox notifications (#17000)
- Break white spaces 
- Break long words in inbox notifications

**Before:**
<img width="499" alt="Screenshot 2025-03-19 at 10 10 36"
src="https://github.com/user-attachments/assets/4729cf51-0e2c-412b-b5e5-bb37a4b7d86f"
/>

**Now:**
<img width="498" alt="Screenshot 2025-03-19 at 10 10 15"
src="https://github.com/user-attachments/assets/331e8492-0114-4100-bd46-a66258741e46"
/>
2025-03-19 10:39:37 -03:00
Mathias Fredriksson 3ac844ad3d chore(codersdk): rename WorkspaceAgent(Dev)container structs (#16996)
This is to free up the devcontainer name space for more targeted
structs.

Updates #16423
2025-03-19 10:16:14 +00:00
Danielle Maywood ef62e626c8 fix: ensure targets are propagated to inbox (#16985)
Currently the `targets` column in `inbox_notifications` doesn't get
filled. This PR fixes that. Rather than give targets special treatment,
we should put it in the payload like everything else. This correctly
propagates notification targets to the inbox table without much code
change.
2025-03-19 09:51:49 +00:00
ケイラ 995e9402b4 chore: don't autofocus OrganizationAutocomplete on user creation page (#16989) 2025-03-18 15:33:40 -06:00
Bruno Quaresma ab8ba96707 feat: add notifications widget in the navbar (#16983)
**Preview:**
<img width="479" alt="Screenshot 2025-03-18 at 10 38 25"
src="https://github.com/user-attachments/assets/2e4cb48e-3606-478c-a68d-13465789330b"
/>

[Figma
file](https://www.figma.com/design/5kRpzK8Qr1k38nNz7H0HSh/Inbox-notifications?node-id=1-2726&t=PUsQwLrwyzXUxhf1-0)

**This PR adds:**
- Notification widget in the navbar
- Show notifications
- Option to mark each notification as read
- Update notifications in realtime 

**What is next?**
- Option to mark all the notifications as read at once
- Option to load previous notifications - Right now, it only shows the
latest 25 notifications
- Having custom icons for each type of notification

**And about tests?**
The notification widget components are well covered by the current
stories, but we definitely want to have e2e tests for it. However, in my
recent projects, I found more useful to ship the UI features first, get
feedback, change whatever needs to be changed, and then, add the e2e
tests to avoid major rework.

Related to https://github.com/coder/internal/issues/336
2025-03-18 15:21:22 -03:00
ケイラ cb19fd47b0 chore: use user admin and template admin for even more e2e tests (#16974) 2025-03-18 09:11:39 -06:00
ケイラ 49a35e3784 chore: add e2e tests for organization auditors (#16899) 2025-03-18 09:10:42 -06:00
Cian Johnston 75b27e8f19 fix(agent/agentcontainers): improve testing of convertDockerInspect, return correct host port (#16887)
* Improves separation of concerns between `runDockerInspect` and
`convertDockerInspect`: `runDockerInspect` now just runs the command and
returns the output, while `convertDockerInspect` now does all of the
conversion and parsing logic.
* Improves testing of `convertDockerInspect` using real test fixtures.
* Fixes issue where the container port is returned instead of the host
port.
* Updates UI to link to correct host port. Container port is still
displayed in the button text, but the HostIP:HostPort is shown in a
popover.
* Adds stories for workspace agent UI
2025-03-18 14:37:45 +00:00
Marcin Tojek 13d0dac795 feat: display error if app is not installed (#16980)
Fixes: https://github.com/coder/coder/issues/13937
2025-03-18 14:24:02 +01:00
Cian Johnston 13a3ddd964 fix(agent/agentcontainers): generate devcontainer metadata from schema (#16881)
Adds new dcspec package containing automatically generated devcontainer schema (using glideapps/quicktype).
2025-03-18 13:00:21 +00:00
Danielle Maywood ec517657a8 chore: add targets to oom/ood notifications (#16968)
Add targets to OOM/OOD notifications to allow Coder Inbox clients to
filter on these notifications.
2025-03-18 12:59:30 +00:00
Sas Swart a3f6308006 fix: rewrite login type migrations (#16978)
When trying to add [system
users](https://github.com/coder/coder/pull/16916), we discovered an
issue in two migrations that added values to the login_type enum.
After some
[consideration](https://github.com/coder/coder/pull/16916#discussion_r1998758887),
we decided to retroactively correct them.
2025-03-18 14:47:30 +02:00
Mathias Fredriksson de41bd6b95 feat: add support for workspace app audit (#16801)
This change adds support for workspace app auditing.

To avoid audit log spam, we introduce the concept of app audit sessions.
An audit session is unique per workspace app, user, ip, user agent and
http status code. The sessions are stored in a separate table from audit
logs to allow use-case specific optimizations. Sessions are ephemeral
and the table does not function as a log.

The logic for auditing is placed in the DBTokenProvider for workspace
apps so that wsproxies are included.

This is the final change affecting the API fo #15139.

Updates #15139
2025-03-18 13:50:52 +02:00
Vincent Vielle 3ae55bbbf4 feat(coderd): add inbox notifications endpoints (#16889)
This PR is part of the inbox notifications topic, and rely on previous
PRs merged - it adds :

- Endpoints to : 
  - WS : watch new inbox notifications
  - REST : list inbox notifications
  - REST : update the read status of a notification

Also, this PR acts as a follow-up PR from previous work and : 

- fix DB query issues
- fix DBMem logic to match DB
2025-03-18 00:02:47 +01:00
brettkolodny e85c92e7d5 chore: remove the double confirmation when creating an organization via the CLI (#16972)
Closes
[coder/internal#476](https://github.com/coder/internal/issues/476)
2025-03-17 17:14:59 -04:00
Edward Angert 8ca52a835e docs: document steps for adding cert to JetBrains plugin settings (#16882)
- document the steps from @stirby in ticket
- separate the different OSs in a way that's easier to look at
- fix typo


[preview](https://coder.com/docs/@593-ca-cert-plugin/user-guides/workspace-access/jetbrains#configuring-the-gateway-plugin-to-use-internal-certificates)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-17 17:11:36 -04:00
rohansinha01 83f1d82b45 fix: update WorkspacesEmpty.tsx from material ui to tailwind (#16886) 2025-03-17 10:51:31 -06:00
dependabot[bot] 27a160d136 ci: bump the github-actions group with 4 updates (#16966)
Bumps the github-actions group with 4 updates:
[docker/login-action](https://github.com/docker/login-action),
[tj-actions/changed-files](https://github.com/tj-actions/changed-files),
[nix-community/cache-nix-action](https://github.com/nix-community/cache-nix-action)
and
[aquasecurity/trivy-action](https://github.com/aquasecurity/trivy-action).

Updates `docker/login-action` from 3.3.0 to 3.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/login-action/releases">docker/login-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.4.0</h2>
<ul>
<li>Bump <code>@​actions/core</code> from 1.10.1 to 1.11.1 in <a
href="https://redirect.github.com/docker/login-action/pull/791">docker/login-action#791</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> to 3.766.0 in <a
href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a>
<a
href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li>
<li>Bump <code>@​aws-sdk/client-ecr-public</code> to 3.758.0 in <a
href="https://redirect.github.com/docker/login-action/pull/789">docker/login-action#789</a>
<a
href="https://redirect.github.com/docker/login-action/pull/856">docker/login-action#856</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.35.0 to 0.57.0 in
<a
href="https://redirect.github.com/docker/login-action/pull/801">docker/login-action#801</a>
<a
href="https://redirect.github.com/docker/login-action/pull/806">docker/login-action#806</a>
<a
href="https://redirect.github.com/docker/login-action/pull/858">docker/login-action#858</a></li>
<li>Bump cross-spawn from 7.0.3 to 7.0.6 in <a
href="https://redirect.github.com/docker/login-action/pull/814">docker/login-action#814</a></li>
<li>Bump https-proxy-agent from 7.0.5 to 7.0.6 in <a
href="https://redirect.github.com/docker/login-action/pull/823">docker/login-action#823</a></li>
<li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a
href="https://redirect.github.com/docker/login-action/pull/777">docker/login-action#777</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v3.3.0...v3.4.0">https://github.com/docker/login-action/compare/v3.3.0...v3.4.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/login-action/commit/74a5d142397b4f367a81961eba4e8cd7edddf772"><code>74a5d14</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/856">#856</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="https://github.com/docker/login-action/commit/2f4f00e4c6fe8a50cdd1fd618421be2e92b2f201"><code>2f4f00e</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/67c184546cf989af16f02a1b5359e4bde3cdc524"><code>67c1845</code></a>
build(deps): bump the aws-sdk-dependencies group across 1 directory with
2 up...</li>
<li><a
href="https://github.com/docker/login-action/commit/3d4cc89e85e0cac73870ab81d3b72c0b700870d1"><code>3d4cc89</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/844">#844</a>
from graysonpike/master</li>
<li><a
href="https://github.com/docker/login-action/commit/6cc823a6c4738f797f031790fa7f982b7a8dcfdc"><code>6cc823a</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/823">#823</a>
from docker/dependabot/npm_and_yarn/proxy-agent-depen...</li>
<li><a
href="https://github.com/docker/login-action/commit/d94e792124647378e94c07359922f0f821a9fab2"><code>d94e792</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/login-action/commit/033db0da3047b4d01e249d66f56ae16a2ed6af87"><code>033db0d</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/812">#812</a>
from docker/dependabot/github_actions/codecov/codecov...</li>
<li><a
href="https://github.com/docker/login-action/commit/09c2ae9716c0bacef3c03e120a61c28adfb8595b"><code>09c2ae9</code></a>
build(deps): bump https-proxy-agent</li>
<li><a
href="https://github.com/docker/login-action/commit/ba56f006fc7190f752d4e6e1312f85697984a229"><code>ba56f00</code></a>
ci: update deprecated input for codecov-action</li>
<li><a
href="https://github.com/docker/login-action/commit/75bf9a79af089e9aa009972a6ecb22190a520679"><code>75bf9a7</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/858">#858</a>
from docker/dependabot/npm_and_yarn/docker/actions-to...</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/login-action/compare/9780b0c442fbb1117ed29e0efdff1e18412f7567...74a5d142397b4f367a81961eba4e8cd7edddf772">compare
view</a></li>
</ul>
</details>
<br />

Updates `tj-actions/changed-files` from
dcc7a0cba800f454d79fff4b993e8c3555bcc0a8 to
531f5f7d163941f0c1c04e0ff4d8bb243ac4366f
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tj-actions/changed-files/blob/main/HISTORY.md">tj-actions/changed-files's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v46.0.0...v46.0.1">46.0.1</a>
- (2025-03-16)</h1>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2473">#2473</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/2f7c5bfce28377bc069a65ba478de0a74aa0ca32">2f7c5bf</a>)
- (github-actions[bot])</p>
<ul>
<li>Sync-release-version.yml to use signed commits (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2472">#2472</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/4189ec62c445484531e9ad97157d990be96e88ee">4189ec6</a>)
- (Tonye Jack)</li>
</ul>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v45.0.9...v46.0.0">46.0.0</a>
- (2025-03-16)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li>Update update-readme.yml to sign-commits (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2468">#2468</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/0f1ffe61855cb317d5fd66122c14dc0627eab141">0f1ffe6</a>)
- (Tonye Jack)</li>
<li>Update permission in update-readme.yml workflow (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2467">#2467</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/ddef03e37c84cfb9ee89fa055b86359aaf949c86">ddef03e</a>)
- (Tonye Jack)</li>
<li>Update github workflow update-readme.yml (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2466">#2466</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/9c2df0d54a911c819d7368d7e5ed7c01c0796e0a">9c2df0d</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted --> Remove</h2>
<ul>
<li>Deleted renovate.json (<a
href="https://github.com/tj-actions/changed-files/commit/e37e952786556966c1fb6183c5937b3966bab099">e37e952</a>)
- (Tonye Jack)</li>
</ul>
<h2><!-- raw HTML omitted -->🔄 Update</h2>
<ul>
<li>Sync-release-version.yml (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2471">#2471</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/4cd184a1dd542b79cca1d4d7938e4154a6520ca7">4cd184a</a>)
- (Tonye Jack)</li>
<li>Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2469">#2469</a>)</li>
</ul>
<p>Co-authored-by: github-actions[bot] <!-- raw HTML omitted --> (<a
href="https://github.com/tj-actions/changed-files/commit/5cbf22026d05fbef0c027d1b1f118fe3a1b6e435">5cbf220</a>)
- (github-actions[bot])</p>
<h2><!-- raw HTML omitted -->📚 Documentation</h2>
<ul>
<li>Update docs to highlight security issues (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2465">#2465</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/65253327cf47481b4b1b4b9fea78e143a1353147">6525332</a>)
- (Tonye Jack)</li>
</ul>
<h1><a
href="https://github.com/tj-actions/changed-files/compare/v45.0.4...v45.0.9">45.0.9</a>
- (2025-03-15)</h1>
<h2><!-- raw HTML omitted -->🐛 Bug Fixes</h2>
<ul>
<li><strong>deps:</strong> Update dependency <code>@​octokit/rest</code>
to v21.1.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2435">#2435</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/fb8dcda5fb8954cec37773d2b275a8579c86c781">fb8dcda</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency <code>@​octokit/rest</code>
to v21.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2394">#2394</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/7b72c97d739f955f5cadca0d59799d826ae9f6c9">7b72c97</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency yaml to v2.7.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2383">#2383</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/5f974c28f5044c411f0c9e7becf3f172029cf9cf">5f974c2</a>)
- (renovate[bot])</li>
</ul>
<h2><!-- raw HTML omitted -->⚙️ Miscellaneous Tasks</h2>
<ul>
<li><strong>deps:</strong> Lock file maintenance (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2460">#2460</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/9200e69727eb73eb060652b19946b8a2fdfb654b">9200e69</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency <code>@​types/node</code>
to v22.13.10 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2459">#2459</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/e650cfdae513481a20f538e88d98b39106523006">e650cfd</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency eslint-config-prettier to
v10.1.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2458">#2458</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/82af21f4a05896ca18c950539469bee225c45a89">82af21f</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency eslint-config-prettier to
v10.1.0 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2457">#2457</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/82fa4a6402582d5c8c9c0e95b7ff7cc88992bbb4">82fa4a6</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update peter-evans/create-pull-request action
to v7.0.8 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2455">#2455</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/315505acf41d2913b71af48080fb158cd01f79e7">315505a</a>)
- (renovate[bot])</li>
<li><strong>deps:</strong> Update dependency <code>@​types/node</code>
to v22.13.9 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2454">#2454</a>)
(<a
href="https://github.com/tj-actions/changed-files/commit/c8e1cdb9ea135ee549963c167ffaec5e7d4a71cd">c8e1cdb</a>)
- (renovate[bot])</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tj-actions/changed-files/commit/531f5f7d163941f0c1c04e0ff4d8bb243ac4366f"><code>531f5f7</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2479">#2479</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/dccd1949addfa3d93d458019c5495581c620b00c"><code>dccd194</code></a>
doc: update README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2478">#2478</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/9237eb7a0f95c801719e6224d45095d4dda0f9bd"><code>9237eb7</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2476">#2476</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/d52b942ee0c535798f0df9e1c05683f8e818c79b"><code>d52b942</code></a>
add hint to revoke leaked token (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2475">#2475</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/45fb12d7a8bedb4da42342e52fe054c6c2c3fd73"><code>45fb12d</code></a>
Upgraded to v46.0.1 (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2474">#2474</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/2f7c5bfce28377bc069a65ba478de0a74aa0ca32"><code>2f7c5bf</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2473">#2473</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4189ec62c445484531e9ad97157d990be96e88ee"><code>4189ec6</code></a>
update: sync-release-version.yml to use signed commits (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2472">#2472</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/4cd184a1dd542b79cca1d4d7938e4154a6520ca7"><code>4cd184a</code></a>
update: sync-release-version.yml (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2471">#2471</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/5cbf22026d05fbef0c027d1b1f118fe3a1b6e435"><code>5cbf220</code></a>
Updated README.md (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2469">#2469</a>)</li>
<li><a
href="https://github.com/tj-actions/changed-files/commit/0f1ffe61855cb317d5fd66122c14dc0627eab141"><code>0f1ffe6</code></a>
fix: update update-readme.yml to sign-commits (<a
href="https://redirect.github.com/tj-actions/changed-files/issues/2468">#2468</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/tj-actions/changed-files/compare/dcc7a0cba800f454d79fff4b993e8c3555bcc0a8...531f5f7d163941f0c1c04e0ff4d8bb243ac4366f">compare
view</a></li>
</ul>
</details>
<br />

Updates `nix-community/cache-nix-action` from 6.1.1 to 6.1.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nix-community/cache-nix-action/releases">nix-community/cache-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v6.1.2</h2>
<h2>Fixes</h2>
<ul>
<li>Fix nix store database merging logic (<a
href="https://redirect.github.com/nix-community/cache-nix-action/pull/84">nix-community/cache-nix-action#84</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/c448f065ba14308da81de769632ca67a3ce67cf5"><code>c448f06</code></a>
Merge pull request <a
href="https://redirect.github.com/nix-community/cache-nix-action/issues/84">#84</a>
from nix-community/82-bug-v610-and-v611-dont-seem-to-w...</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/fc908ede39799ad79a606fe33e69e88457d34ebc"><code>fc908ed</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/57dad844a98b1a6324aa4453a8a8dc9625b1acc9"><code>57dad84</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/0d5803d685b779eaef4f25299f3df35ec63d995d"><code>0d5803d</code></a>
fix(action): print a message after the check</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/db360de0f846626dcb5183d838d0f1436d09c3c4"><code>db360de</code></a>
chore: build the action</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/07c1e7f98e139e19f4042ac93d7a36b68012fde7"><code>07c1e7f</code></a>
fix(action): join on the derivation path, not the output path</li>
<li><a
href="https://github.com/nix-community/cache-nix-action/commit/1b9cbefbf818ca652a08a9d1be8f18e7e2a244f7"><code>1b9cbef</code></a>
fix(action): parse gc-max-store-size correctly</li>
<li>See full diff in <a
href="https://github.com/nix-community/cache-nix-action/compare/aee88ae5efbbeb38ac5d9862ecbebdb404a19e69...c448f065ba14308da81de769632ca67a3ce67cf5">compare
view</a></li>
</ul>
</details>
<br />

Updates `aquasecurity/trivy-action` from 0.29.0 to 0.30.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aquasecurity/trivy-action/releases">aquasecurity/trivy-action's
releases</a>.</em></p>
<blockquote>
<h2>v0.30.0</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: Update default trivy version in README by <a
href="https://github.com/derrix060"><code>@​derrix060</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/444">aquasecurity/trivy-action#444</a></li>
<li>fix: typo in description of an input for action.yaml by <a
href="https://github.com/yutatokoi"><code>@​yutatokoi</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/452">aquasecurity/trivy-action#452</a></li>
<li>Improve README/SBOM by <a
href="https://github.com/AB-xdev"><code>@​AB-xdev</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/439">aquasecurity/trivy-action#439</a></li>
<li>chore: bump trivy to v0.60.0 by <a
href="https://github.com/nikpivkin"><code>@​nikpivkin</code></a> in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/453">aquasecurity/trivy-action#453</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/derrix060"><code>@​derrix060</code></a>
made their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/444">aquasecurity/trivy-action#444</a></li>
<li><a href="https://github.com/yutatokoi"><code>@​yutatokoi</code></a>
made their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/452">aquasecurity/trivy-action#452</a></li>
<li><a href="https://github.com/AB-xdev"><code>@​AB-xdev</code></a> made
their first contribution in <a
href="https://redirect.github.com/aquasecurity/trivy-action/pull/439">aquasecurity/trivy-action#439</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/aquasecurity/trivy-action/compare/0.29.0...0.30.0">https://github.com/aquasecurity/trivy-action/compare/0.29.0...0.30.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5"><code>6c175e9</code></a>
chore: bump trivy to v0.60.0 (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/453">#453</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/53e8848d3e517db48b0e70ae4f648a12ae04fe02"><code>53e8848</code></a>
Improve README/SBOM (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/439">#439</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/ef1b561207528e89045580cdc5a02032d8a544df"><code>ef1b561</code></a>
fix: typo in description of an input for action.yaml (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/452">#452</a>)</li>
<li><a
href="https://github.com/aquasecurity/trivy-action/commit/a11da62073708815958ea6d84f5650c78a3ef85b"><code>a11da62</code></a>
fix: Update default trivy version in README (<a
href="https://redirect.github.com/aquasecurity/trivy-action/issues/444">#444</a>)</li>
<li>See full diff in <a
href="https://github.com/aquasecurity/trivy-action/compare/18f2510ee396bbf400402947b394f2dd8c87dbb0...6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5">compare
view</a></li>
</ul>
</details>
<br />


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 11:56:03 +00:00
Mathias Fredriksson c429e0d5f3 test(cryptorand): re-enable number error tests (#16956)
Realized it was only the `StringCharset` test that lead to panic, the
number tests bypass it by reading via the `binary` package.
2025-03-17 10:39:48 +00:00
Mathias Fredriksson e6983d8399 test(cryptorand): disable error tests on Go 1.24 (#16955)
Testing `rand.Reader.Read` for errors will panic (not recoverable) in Go
1.24 and later.
2025-03-17 12:15:52 +02:00
Mathias Fredriksson df92df4565 fix(agent): filter out GOTRACEBACK=none (#16924)
With the switch to Go 1.24.1, our dogfood workspaces started setting
`GOTRACEBACK=none` in the environment, resulting in missing stacktraces
for users.

This is due to the capability changes we do when
`USE_CAP_NET_ADMIN=true`.

https://github.com/coder/coder/blob/564b387262e5b768c503e5317242d9ab576395d6/provisionersdk/scripts/bootstrap_linux.sh#L60-L76

This most likely triggers a change in securitybits which sets
`_AT_SECURE` for the process.

https://github.com/golang/go/blob/a1ddbdd3ef8b739aab53f20d6ed0a61c3474cf12/src/runtime/os_linux.go#L297-L327

Which in turn triggers secure mode:

https://github.com/golang/go/blob/a1ddbdd3ef8b739aab53f20d6ed0a61c3474cf12/src/runtime/security_unix.go

This should not affect workspaces as template authors can still set the
environment on the agent resource.

See https://pkg.go.dev/runtime#hdr-Security
2025-03-17 11:10:14 +02:00
ケイラ f01ee963b2 fix: fix audit log search (#16944) 2025-03-14 18:05:19 -06:00
Edward Angert ffd336b9ad docs: adjust order of options in external-auth (#16943)
from @NickSquangler 

> ($customer) noticed when setting up external auth with Gitlab that the
command listed in the docs is in the incorrect order, as `coder
external-auth <USER_DEFINED_ID> access-token` should be `coder
external-auth access-token <USER_DEFINED_ID>`


[preview](https://coder.com/docs/@external-auth-access-token/admin/external-auth#workspace-cli)

<details><summary>coder external-auth access-token --help</summary>

```shell
coder external-auth access-token --help
coder v2.20.0+03b5012

USAGE:
  coder external-auth access-token [flags] <provider>

  Print auth for an external provider

  Print an access-token for an external auth provider. The access-token will be validated and sent
  to stdout with exit code 0. If a valid access-token cannot be obtained, the URL to authenticate
  will be sent to stdout with exit code 1
    - Ensure that the user is authenticated with GitHub before cloning.:

        $ #!/usr/bin/env sh

  OUTPUT=$(coder external-auth access-token github)
  if [ $? -eq 0 ]; then
    echo "Authenticated with GitHub"
  else
    echo "Please authenticate with GitHub:"
    echo $OUTPUT
  fi


    - Obtain an extra property of an access token for additional metadata.:

        $ coder external-auth access-token slack --extra "authed_user.id"


OPTIONS:
      --extra string
          Extract a field from the "extra" properties of the OAuth token.

———
Run `coder --help` for a list of global options.
```

</details>

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-14 17:17:34 -04:00
Edward Angert a2131a7616 docs: add cgroup memory troubleshooting to install doc (#16920)
originally thought this fit under [Unofficial Install
Methods](https://coder.com/docs/install/other), but we don't talk about
Raspberry Pi anywhere, so ~the general Install doc might be a better
fit~ moved to admin>templates>troubleshooting


[preview](https://coder.com/docs/@3-cgroup-mem/admin/templates/troubleshooting#coder-on-raspberry-pi-os)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-03-14 19:58:01 +00:00
brettkolodny 1ec39f4c55 feat: add pagination to the organizaton members table (#16870)
Closes
[coder/internal#344](https://github.com/coder/internal/issues/344)
2025-03-14 14:27:55 -04:00
Eric Paulsen 7ba4df1bc4 docs: fix offline dockerfile bug (#16923)
bug caused via the `apk del terraform` line in our Dockerfile, which
does not yet exist in the Alpine Linux OS.

removing this line (18) results in successful builds.
2025-03-14 12:11:14 -04:00
ケイラ 673294deab chore: add e2e test for updating theme (#16897) 2025-03-14 09:16:47 -06:00
Bruno Quaresma 564b387262 feat: add provisioner jobs into the UI (#16867)
- Add provisioner jobs back, but as a sub page of the organization
settings
- Add missing storybook tests to the components

Related to https://github.com/coder/coder/issues/15192.
2025-03-14 08:22:00 -03:00
Edward Angert cf7d143e43 docs: use consistent examples in prometheus doc and add namespaceSelector spec (#16918)
closes: #15385 

- use consistent `prom-http` port (@johnstcn looks like this was
changed/added in #12214 - do we prefer `prom-http` over
`prometheus-http` or is it more important that they align?)
- add `namespaceSelector:` per @francisco-mata (thanks! - sorry it took
so long to get this in)

   from issue:

> For some reason our target was not appearing on our prometheus
targets, we had to add a namespaceSelector key on the Service Monitor to
successfully appear

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-13 22:09:26 -04:00
Jaayden Halko 0ea804ccea chore: migrate settings page tables from mui to shadcn (#16896)
Custom Roles
<img width="795" alt="Screenshot 2025-03-12 at 21 04 53"
src="https://github.com/user-attachments/assets/d478e80d-6d11-496c-a37f-87a73a5587b7"
/>

Group Page
<img width="804" alt="Screenshot 2025-03-12 at 21 04 12"
src="https://github.com/user-attachments/assets/eec9749a-7a34-42ca-97a8-c2a624f766bb"
/>

Groups Page
<img width="802" alt="Screenshot 2025-03-12 at 21 04 06"
src="https://github.com/user-attachments/assets/7b88f6ab-9364-4e15-b969-8e422b24085c"
/>

Users Page
<img width="820" alt="Screenshot 2025-03-12 at 21 03 58"
src="https://github.com/user-attachments/assets/195dea6e-c57f-4155-8d71-3adc3a6202bc"
/>
2025-03-13 17:34:00 -04:00
Mathias Fredriksson a1f5468db2 chore(provisioner/terraform): minimize testdata diff (#16908)
It was hard to deduce whether or not changes in our terraform testdata
are relevant or not, so we now have a rudimentary filter for randomly
generated values that aren't relevant for the testdata.
2025-03-13 20:12:59 +02:00
Thomas Kosiewski 7171d52279 fix: replace both colons and slashes in SBOM filename for Docker image (#16915)
This PR fixes the SBOM filename generation in the Docker build script to
properly handle image tags that contain slashes. The current
implementation only replaces colons with underscores, but fails when
image tags include slashes (common in registry paths).

The fix updates the string replacement to handle both colons and slashes
in the image tag when generating the SBOM filename.

Change-Id: Ifd7bad6d165393e11202e5bf070a4cb26eaa6a6a
Signed-off-by: Thomas Kosiewski <tk@coder.com>

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 23:01:03 +05:00
Thomas Kosiewski 389af22dac chore: replace colons in SBOM filename for Docker image attestation (#16914)
This PR fixes an issue in the Docker build script where the SBOM file path used the image tag directly, which could contain colons. Since colons are not valid characters in filenames on many filesystems, this replaces colons with underscores in the output filename.

Change-Id: I887f4fc255d9bfa19b6c5d23ad0a5db7352aa2af
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 18:20:43 +01:00
M Atif Ali 4987de654e chore: enable SBOM attestations for docker images (#16894)
- Enable SBOM and provenance attestations in Docker builds
- Installs `cosign` and `syft` in dogfood image
- Adds [github
attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)

Signed-off-by: Thomas Kosiewski <tk@coder.com>

---------

Signed-off-by: Thomas Kosiewski <tk@coder.com>
Co-authored-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 21:45:11 +05:00
Marcin Tojek 30179aeaac fix: apply autofocus to workspace button search (#16905)
Fixes: https://github.com/coder/coder/issues/14816
2025-03-13 13:31:18 +00:00
Ethan 4994ba1e60 docs: remove broken gfm alert (#16902)
It looks like GFM does not respect the `![]` alert syntax (and any other
alert type) when it's enclosed within a div. This is true for both the
coder.com GFM renderer, and GitHub's (though I assume they're the same
internally).

When the section is surrounded by a `<div class="tabs">`:

![image](https://github.com/user-attachments/assets/0f7d4029-a0a5-4d38-a489-f3b893c68dd8)

When it's not:

![image](https://github.com/user-attachments/assets/765d3629-0108-43cc-8047-972dfd806c7d)

In our case, we really want the tabs, and the alert block is less
important, so we'll downgrade it to a regular quote.

cc @aqandrew for visibility, in case you're aware of a workaround.
2025-03-13 16:13:02 +11:00
Ethan f899832c02 docs: add warning for multiple Coder Desktop mac installations (#16888)
I realised we should advise against installing multiple copies, as I'm sure someone will try and get confused by Apple's obtuse error messaging.

Tailscale also has a similar warning: https://pkgs.tailscale.com/stable/#macos
2025-03-13 14:45:37 +11:00
ケイラ f6382fde22 chore: update docker starter template jetbrains_ides option to match module default (#16898)
Taken from
https://github.com/coder/modules/blob/fd5dd375f7f8740226e798fc60a4a5d271b294d4/jetbrains-gateway/main.tf#L134

The order got shuffled a little, but the main difference is that the new
list includes RustRover, which is nice. :)
2025-03-12 17:12:30 -06:00
Bruno Quaresma f2cd046b2b chore: add notification UI components (#16818)
Related to https://github.com/coder/internal/issues/336

This PR adds the base components for the Notifications UI below (you can
click on the image to open the related Figma design) based on the
response structure defined on this [notion
doc](https://www.notion.so/coderhq/Coder-Inbox-Endpoints-1a1d579be592809eb921f13baf18f783).

[![new notifications including
hover](https://github.com/user-attachments/assets/885fb055-544e-4d9e-b5bf-be986e8b9fc0)](https://www.figma.com/design/5kRpzK8Qr1k38nNz7H0HSh/Inbox-notifications?node-id=2-1098&m=dev)

**What is not included**
- Support for infinite scrolling (pending on BE definition)

**How to test the components?**
- The only way to test the components is to use Chromatic or downloading
the branch and running Storybook locally.
2025-03-12 14:36:33 -03:00
Bruno Quaresma 78df7869d5 refactor: name null users in audit logs (#16890)
A few audit logs can have the user as null which means the user is not
authenticated when executing the action. To make it more explicit we
named than as "Unauthenticated user" in the log description instead of
"undefined user".
2025-03-12 11:36:38 -03:00
Thomas Kosiewski 5285c12b9e chore: update terraform to 1.11.1 in nix image (#16880)
Followup PR to #16781, update the terraform version in our Nix devshell.

Additionally: 

1. Switches from DeterminateSystems/nix-installer-action to nixbuild/nix-quick-install-action -- quicker installer, reduces actions time from ~60 seconds to ~1 seconds.
2. Adds nix-community/cache-nix-action for better caching with garbage collection -- avoids unnecessary rebuilding on subsequent runs, reduces nix image build time from ~6 minutes to <4 minutes.
3. Adds nixpkgs-unstable input to use Terraform 1.11.1

Change-Id: I05d6dfd3f3cf1af48cf8a2d9e61b396bcd2b7191
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-11 16:23:33 +01:00
Cian Johnston 09dd69a7e8 chore(dogfood): include multiple templates under dogfood/ (#16846)
* Renames `dogfood/contents` to `dogfood/coder`.
* Moves `coder-envbuilder` to `dogfood/coder-envbuilder`.
* Updates `dogfood/main.tf` to push `coder-envbuilder` template.
* Replaces hard-coded organization IDs with
`data.coderd_organization.default.id`.
2025-03-11 13:17:40 +00:00
Thomas Kosiewski 9ded2cc7ec fix(flake.nix): synchronize playwright version in nix and package.json (#16715)
Ensure that the version of Playwright installed with the Nix flake is
equal to the one specified in `site/package.json.` -- This assertion
ensures that `pnpm playwright:install` will not attempt to download
newer browser versions not present in the Nix image, fixing the startup
script and reducing the startup time, as `pnpm playwright:install` will
not download or install anything.

We also pre-install the required Playwright web browsers in the dogfood
Dockerfile. This change prevents us from redownloading system
dependencies and Google Chrome each time a workspace starts.

Change-Id: I8cc78e842f7d0b1d2a90a4517a186a03636c5559
Signed-off-by: Thomas Kosiewski <tk@coder.com>

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-11 13:49:03 +01:00
Mathias Fredriksson 3005cb4594 feat(agent): set additional login vars, LOGNAME and SHELL (#16874)
This change stes additional env vars. This is useful for programs that
assume their presence (for instance, Zed remote relies on SHELL).

See `man login`.
2025-03-11 10:18:57 +00:00
Jaayden Halko 86b61ef1d8 fix: use correct permissions for CRUD of custom roles (#16854)
resolves coder/internal#428

The goal of the PR is to start using updateOrgRoles and deleteOrgRoles
permissions to gate custom roles functionality

```
		updateOrgRoles: {
			object: {
				resource_type: "assign_org_role",
				organization_id: organizationId,
			},
			action: "update",
		},
		deleteOrgRoles: {
			object: {
				resource_type: "assign_org_role",
				organization_id: organizationId,
			},
			action: "delete",
		}
```
2025-03-10 18:43:09 -04:00
Edward Angert 101b62dc3e docs: convert alerts to use GitHub Flavored Markdown (GFM) (#16850)
followup to #16761 

thanks @lucasmelin !

+ thanks: @ethanndickson @Parkreiner @matifali @aqandrew 

- [x] update snippet
- [x] find/replace
- [x] spot-check


[preview](https://coder.com/docs/@16761-gfm-callouts/admin/templates/managing-templates/schedule)
(and others)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
2025-03-10 16:58:20 -04:00
M Atif Ali e817713dc0 revert: "chore: enable SBOM attestation for image builds" (#16868)
Reverts coder/coder#16852

The CI failed to create the multi-arch manifest.

https://github.com/coder/coder/actions/runs/13773079355/job/38516182819#step:18:341

I personally think we should move to a [multi-arch
Dockerfile](https://docs.docker.com/build/building/multi-platform/#cross-compilation)
instead of creating the manifest manually.
2025-03-10 19:55:03 +00:00
M Atif Ali 05ebece03a chore: enable SBOM attestation for image builds (#16852)
- Added SBOM (Software Bill of Materials) generation during Docker build
to enhance traceability. Refer to Docker documentation on SBOM:
https://docs.docker.com/build/metadata/attestations/sbom/
- Updated Docker build scripts to use BuildKit for provenance and SBOM
support: https://docs.docker.com/build/metadata/attestations/
- Configured Docker daemon in dogfood image to support the Containerd
snapshotter feature to improve performance:
https://docs.docker.com/engine/storage/containerd/

> [!Important]
> We also need to enable `containerd` on depot runners.
> <img width="587" alt="image"
src="https://github.com/user-attachments/assets/1d7f87c7-fdcc-462a-babe-87ac6486ad09"
/>



## Testing

- Tested locally with ` docker buildx build --sbom=true --output
type=local,dest=out -f Dockerfile .` to verify that an SBOM file is
generated.
- Tested in
[CI](https://github.com/coder/coder/actions/runs/13731162662/job/38408790980?pr=16852#step:17:1)
to ensure the image builds without any errors.


Also closes coder/internal#88
2025-03-11 00:24:14 +05:00
brettkolodny 8c0350e20c feat: add a paginated organization members endpoint (#16835)
Closes
[coder/internal#460](https://github.com/coder/internal/issues/460)
2025-03-10 14:42:07 -04:00
Kira Pilot 191b0efb80 fix: select default org in template form if only one exists (#16639)
resolves #16849 https://github.com/coder/internal/issues/147
![Screenshot 2025-02-19 at 9 06 16
PM](https://github.com/user-attachments/assets/2973d81d-7a74-4c82-aa6b-16d4a41eeb9a)

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-03-10 11:56:08 -04:00
Marcin Tojek 4b1da9b896 feat(cli): preserve table column order (#16843)
Fixes: https://github.com/coder/coder/issues/16055
2025-03-10 12:28:06 +00:00
Marcin Tojek 075e5f4f6e test: skip tests affected by daylight savings issues (#16857)
Related: https://github.com/coder/internal/issues/464

This will unblock the CI pipeline.
2025-03-10 13:10:34 +01:00
dependabot[bot] 1a544f0b07 chore: bump axios from 1.7.9 to 1.8.2 in /site (#16863)
Bumps [axios](https://github.com/axios/axios) from 1.7.9 to 1.8.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/axios/axios/releases">axios's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.8.2</h2>
<h2>Release notes:</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>http-adapter:</strong> add allowAbsoluteUrls to path
building (<a
href="https://redirect.github.com/axios/axios/issues/6810">#6810</a>)
(<a
href="https://github.com/axios/axios/commit/fb8eec214ce7744b5ca787f2c3b8339b2f54b00f">fb8eec2</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a href="https://github.com/lexcorp16"
title="+1/-1 ([#6810](https://github.com/axios/axios/issues/6810)
)">Fasoro-Joseph Alexander</a></li>
</ul>
<h2>Release v1.8.1</h2>
<h2>Release notes:</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>utils:</strong> move <code>generateString</code> to platform
utils to avoid importing crypto module into client builds; (<a
href="https://redirect.github.com/axios/axios/issues/6789">#6789</a>)
(<a
href="https://github.com/axios/axios/commit/36a5a620bec0b181451927f13ac85b9888b86cec">36a5a62</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a
href="https://github.com/DigitalBrainJS" title="+51/-47
([#6789](https://github.com/axios/axios/issues/6789) )">Dmitriy
Mozgovoy</a></li>
</ul>
<h2>Release v1.8.0</h2>
<h2>Release notes:</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>examples:</strong> application crashed when navigating
examples in browser (<a
href="https://redirect.github.com/axios/axios/issues/5938">#5938</a>)
(<a
href="https://github.com/axios/axios/commit/1260ded634ec101dd5ed05d3b70f8e8f899dba6c">1260ded</a>)</li>
<li>missing word in SUPPORT_QUESTION.yml (<a
href="https://redirect.github.com/axios/axios/issues/6757">#6757</a>)
(<a
href="https://github.com/axios/axios/commit/1f890b13f2c25a016f3c84ae78efb769f244133e">1f890b1</a>)</li>
<li><strong>utils:</strong> replace getRandomValues with crypto module
(<a
href="https://redirect.github.com/axios/axios/issues/6788">#6788</a>)
(<a
href="https://github.com/axios/axios/commit/23a25af0688d1db2c396deb09229d2271cc24f6c">23a25af</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add config for ignoring absolute URLs (<a
href="https://redirect.github.com/axios/axios/issues/5902">#5902</a>)
(<a
href="https://redirect.github.com/axios/axios/issues/6192">#6192</a>)
(<a
href="https://github.com/axios/axios/commit/32c7bcc0f233285ba27dec73a4b1e81fb7a219b3">32c7bcc</a>)</li>
</ul>
<h3>Reverts</h3>
<ul>
<li>Revert &quot;chore: expose fromDataToStream to be consumable (<a
href="https://redirect.github.com/axios/axios/issues/6731">#6731</a>)&quot;
(<a
href="https://redirect.github.com/axios/axios/issues/6732">#6732</a>)
(<a
href="https://github.com/axios/axios/commit/1317261125e9c419fe9f126867f64d28f9c1efda">1317261</a>),
closes <a
href="https://redirect.github.com/axios/axios/issues/6731">#6731</a> <a
href="https://redirect.github.com/axios/axios/issues/6732">#6732</a></li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li>
<p>code relying on the above will now combine the URLs instead of prefer
request URL</p>
</li>
<li>
<p>feat: add config option for allowing absolute URLs</p>
</li>
<li>
<p>fix: add default value for allowAbsoluteUrls in buildFullPath</p>
</li>
<li>
<p>fix: typo in flow control when setting allowAbsoluteUrls</p>
</li>
</ul>
<h3>Contributors to this release</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/axios/axios/blob/v1.x/CHANGELOG.md">axios's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/axios/axios/compare/v1.8.1...v1.8.2">1.8.2</a>
(2025-03-07)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>http-adapter:</strong> add allowAbsoluteUrls to path
building (<a
href="https://redirect.github.com/axios/axios/issues/6810">#6810</a>)
(<a
href="https://github.com/axios/axios/commit/fb8eec214ce7744b5ca787f2c3b8339b2f54b00f">fb8eec2</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a href="https://github.com/lexcorp16"
title="+1/-1 ([#6810](https://github.com/axios/axios/issues/6810)
)">Fasoro-Joseph Alexander</a></li>
</ul>
<h2><a
href="https://github.com/axios/axios/compare/v1.8.0...v1.8.1">1.8.1</a>
(2025-02-26)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>utils:</strong> move <code>generateString</code> to platform
utils to avoid importing crypto module into client builds; (<a
href="https://redirect.github.com/axios/axios/issues/6789">#6789</a>)
(<a
href="https://github.com/axios/axios/commit/36a5a620bec0b181451927f13ac85b9888b86cec">36a5a62</a>)</li>
</ul>
<h3>Contributors to this release</h3>
<ul>
<li><!-- raw HTML omitted --> <a
href="https://github.com/DigitalBrainJS" title="+51/-47
([#6789](https://github.com/axios/axios/issues/6789) )">Dmitriy
Mozgovoy</a></li>
</ul>
<h1><a
href="https://github.com/axios/axios/compare/v1.7.9...v1.8.0">1.8.0</a>
(2025-02-25)</h1>
<h3>Bug Fixes</h3>
<ul>
<li><strong>examples:</strong> application crashed when navigating
examples in browser (<a
href="https://redirect.github.com/axios/axios/issues/5938">#5938</a>)
(<a
href="https://github.com/axios/axios/commit/1260ded634ec101dd5ed05d3b70f8e8f899dba6c">1260ded</a>)</li>
<li>missing word in SUPPORT_QUESTION.yml (<a
href="https://redirect.github.com/axios/axios/issues/6757">#6757</a>)
(<a
href="https://github.com/axios/axios/commit/1f890b13f2c25a016f3c84ae78efb769f244133e">1f890b1</a>)</li>
<li><strong>utils:</strong> replace getRandomValues with crypto module
(<a
href="https://redirect.github.com/axios/axios/issues/6788">#6788</a>)
(<a
href="https://github.com/axios/axios/commit/23a25af0688d1db2c396deb09229d2271cc24f6c">23a25af</a>)</li>
</ul>
<h3>Features</h3>
<ul>
<li>Add config for ignoring absolute URLs (<a
href="https://redirect.github.com/axios/axios/issues/5902">#5902</a>)
(<a
href="https://redirect.github.com/axios/axios/issues/6192">#6192</a>)
(<a
href="https://github.com/axios/axios/commit/32c7bcc0f233285ba27dec73a4b1e81fb7a219b3">32c7bcc</a>)</li>
</ul>
<h3>Reverts</h3>
<ul>
<li>Revert &quot;chore: expose fromDataToStream to be consumable (<a
href="https://redirect.github.com/axios/axios/issues/6731">#6731</a>)&quot;
(<a
href="https://redirect.github.com/axios/axios/issues/6732">#6732</a>)
(<a
href="https://github.com/axios/axios/commit/1317261125e9c419fe9f126867f64d28f9c1efda">1317261</a>),
closes <a
href="https://redirect.github.com/axios/axios/issues/6731">#6731</a> <a
href="https://redirect.github.com/axios/axios/issues/6732">#6732</a></li>
</ul>
<h3>BREAKING CHANGES</h3>
<ul>
<li>
<p>code relying on the above will now combine the URLs instead of prefer
request URL</p>
</li>
<li>
<p>feat: add config option for allowing absolute URLs</p>
</li>
<li>
<p>fix: add default value for allowAbsoluteUrls in buildFullPath</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/axios/axios/commit/a9f7689b0c4b6d68c7f587c3aa376860da509d94"><code>a9f7689</code></a>
chore(release): v1.8.2 (<a
href="https://redirect.github.com/axios/axios/issues/6812">#6812</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/fb8eec214ce7744b5ca787f2c3b8339b2f54b00f"><code>fb8eec2</code></a>
fix(http-adapter): add allowAbsoluteUrls to path building (<a
href="https://redirect.github.com/axios/axios/issues/6810">#6810</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/98120457559e573024862e2925d56295a965ad7e"><code>9812045</code></a>
chore(sponsor): update sponsor block (<a
href="https://redirect.github.com/axios/axios/issues/6804">#6804</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/72acf759373ef4e211d5299818d19e50e08c02f8"><code>72acf75</code></a>
chore(sponsor): update sponsor block (<a
href="https://redirect.github.com/axios/axios/issues/6794">#6794</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/2e64afdff5c41e38284a6fb8312f2745072513a1"><code>2e64afd</code></a>
chore(release): v1.8.1 (<a
href="https://redirect.github.com/axios/axios/issues/6800">#6800</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/36a5a620bec0b181451927f13ac85b9888b86cec"><code>36a5a62</code></a>
fix(utils): move <code>generateString</code> to platform utils to avoid
importing crypto...</li>
<li><a
href="https://github.com/axios/axios/commit/cceb7b1e154fbf294135c93d3f91921643bbe49f"><code>cceb7b1</code></a>
chore(release): v1.8.0 (<a
href="https://redirect.github.com/axios/axios/issues/6795">#6795</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/23a25af0688d1db2c396deb09229d2271cc24f6c"><code>23a25af</code></a>
fix(utils): replace getRandomValues with crypto module (<a
href="https://redirect.github.com/axios/axios/issues/6788">#6788</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/32c7bcc0f233285ba27dec73a4b1e81fb7a219b3"><code>32c7bcc</code></a>
feat: Add config for ignoring absolute URLs (<a
href="https://redirect.github.com/axios/axios/issues/5902">#5902</a>)
(<a
href="https://redirect.github.com/axios/axios/issues/6192">#6192</a>)</li>
<li><a
href="https://github.com/axios/axios/commit/4a3e26cf65bb040b7eb4577d5fd62199b0f3d017"><code>4a3e26c</code></a>
chore(config): adjust rollup config to preserve license header to
minified Ja...</li>
<li>Additional commits viewable in <a
href="https://github.com/axios/axios/compare/v1.7.9...v1.8.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=1.7.9&new-version=1.8.2)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@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>
2025-03-10 12:10:10 +00:00
dependabot[bot] f6e821204d ci: bump github/codeql-action from 3.28.10 to 3.28.11 in the github-actions group (#16862)
Bumps the github-actions group with 1 update:
[github/codeql-action](https://github.com/github/codeql-action).

Updates `github/codeql-action` from 3.28.10 to 3.28.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/releases">github/codeql-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.28.11</h2>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<p>See the full <a
href="https://github.com/github/codeql-action/blob/v3.28.11/CHANGELOG.md">CHANGELOG.md</a>
for more information.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's
changelog</a>.</em></p>
<blockquote>
<h1>CodeQL Action Changelog</h1>
<p>See the <a
href="https://github.com/github/codeql-action/releases">releases
page</a> for the relevant changes to the CodeQL CLI and language
packs.</p>
<h2>[UNRELEASED]</h2>
<p>No user facing changes.</p>
<h2>3.28.11 - 07 Mar 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.6. <a
href="https://redirect.github.com/github/codeql-action/pull/2793">#2793</a></li>
</ul>
<h2>3.28.10 - 21 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.5. <a
href="https://redirect.github.com/github/codeql-action/pull/2772">#2772</a></li>
<li>Address an issue where the CodeQL Bundle would occasionally fail to
decompress on macOS. <a
href="https://redirect.github.com/github/codeql-action/pull/2768">#2768</a></li>
</ul>
<h2>3.28.9 - 07 Feb 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.4. <a
href="https://redirect.github.com/github/codeql-action/pull/2753">#2753</a></li>
</ul>
<h2>3.28.8 - 29 Jan 2025</h2>
<ul>
<li>Enable support for Kotlin 2.1.10 when running with CodeQL CLI
v2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2744">#2744</a></li>
</ul>
<h2>3.28.7 - 29 Jan 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.6 - 27 Jan 2025</h2>
<ul>
<li>Re-enable debug artifact upload for CLI versions 2.20.3 or greater.
<a
href="https://redirect.github.com/github/codeql-action/pull/2726">#2726</a></li>
</ul>
<h2>3.28.5 - 24 Jan 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.3. <a
href="https://redirect.github.com/github/codeql-action/pull/2717">#2717</a></li>
</ul>
<h2>3.28.4 - 23 Jan 2025</h2>
<p>No user facing changes.</p>
<h2>3.28.3 - 22 Jan 2025</h2>
<ul>
<li>Update default CodeQL bundle version to 2.20.2. <a
href="https://redirect.github.com/github/codeql-action/pull/2707">#2707</a></li>
<li>Fix an issue downloading the CodeQL Bundle from a GitHub Enterprise
Server instance which occurred when the CodeQL Bundle had been synced to
the instance using the <a
href="https://github.com/github/codeql-action-sync-tool">CodeQL Action
sync tool</a> and the Actions runner did not have Zstandard installed.
<a
href="https://redirect.github.com/github/codeql-action/pull/2710">#2710</a></li>
<li>Uploading debug artifacts for CodeQL analysis is temporarily
disabled. <a
href="https://redirect.github.com/github/codeql-action/pull/2712">#2712</a></li>
</ul>
<h2>3.28.2 - 21 Jan 2025</h2>
<p>No user facing changes.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/github/codeql-action/commit/6bb031afdd8eb862ea3fc1848194185e076637e5"><code>6bb031a</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2798">#2798</a>
from github/update-v3.28.11-56b25d5d5</li>
<li><a
href="https://github.com/github/codeql-action/commit/6bca7dd940f38115b5e3696bd79bbb020563bb1f"><code>6bca7dd</code></a>
Update changelog for v3.28.11</li>
<li><a
href="https://github.com/github/codeql-action/commit/56b25d5d5251df651f82070735778784aa383094"><code>56b25d5</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2793">#2793</a>
from github/update-bundle/codeql-bundle-v2.20.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/256aa1658211f7bf42a0ee5b18a106fe81baa524"><code>256aa16</code></a>
Merge branch 'main' into update-bundle/codeql-bundle-v2.20.6</li>
<li><a
href="https://github.com/github/codeql-action/commit/911d845ab60270de25813c5a148ec9501e857340"><code>911d845</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2796">#2796</a>
from github/nickfyson/adjust-rate-error-string</li>
<li><a
href="https://github.com/github/codeql-action/commit/7b7ed635033f63c6f84ab377f726dc0b933bd593"><code>7b7ed63</code></a>
adjust string for handling rate limit error</li>
<li><a
href="https://github.com/github/codeql-action/commit/608ccd6cd915d2c43d3059c3da518f36f07a56b0"><code>608ccd6</code></a>
Merge pull request <a
href="https://redirect.github.com/github/codeql-action/issues/2794">#2794</a>
from github/update-supported-enterprise-server-versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/35d04d3627f40144b1b19daa99f2449297367ec9"><code>35d04d3</code></a>
Update supported GitHub Enterprise Server versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/ec3b22164b6b09c9b3d63ff4e9d41084895602b0"><code>ec3b221</code></a>
Update supported GitHub Enterprise Server versions</li>
<li><a
href="https://github.com/github/codeql-action/commit/8dc01f6342a3f934d1a339917531a4d8beda41bc"><code>8dc01f6</code></a>
Add changelog note</li>
<li>Additional commits viewable in <a
href="https://github.com/github/codeql-action/compare/b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d...6bb031afdd8eb862ea3fc1848194185e076637e5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github/codeql-action&package-manager=github_actions&previous-version=3.28.10&new-version=3.28.11)](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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 11:58:44 +00:00
Ben Potter 1a50d33789 fix: remove <title> from bug template (#16856) 2025-03-09 21:00:22 +00:00
ケイラ ec11f11ac5 fix: improve permissions checks in organization settings (#16849) 2025-03-07 14:45:29 -07:00
ケイラ 092c129de0 chore: perform several small frontend permissions refactors (#16735) 2025-03-07 10:33:09 -07:00
M Atif Ali 54745b1d3f chore(dogfood): update Zed URI to use Coder Desktop provided DNS entries (#16847) 2025-03-07 22:27:49 +05:00
ケイラ 26832cba93 chore: remove old CreateTemplateButton component (#16836) 2025-03-07 10:22:11 -07:00
Cian Johnston 61246bc48e fix(agent/agentcontainers): correct definition of remoteEnv (#16845)
`devcontainer.metadata` is apparently an array, not an object. Missed
this first time round!

```
    error= get container env info:
               github.com/coder/coder/v2/agent/reconnectingpty.(*Server).handleConn
                   /home/runner/work/coder/coder/agent/reconnectingpty/server.go:193
             - read devcontainer remoteEnv:
               github.com/coder/coder/v2/agent/agentcontainers.EnvInfo
                   /home/runner/work/coder/coder/agent/agentcontainers/containers_dockercli.go:119
             - unmarshal devcontainer.metadata:
               github.com/coder/coder/v2/agent/agentcontainers.devcontainerEnv
                   /home/runner/work/coder/coder/agent/agentcontainers/containers_dockercli.go:189
             - json: cannot unmarshal array into Go value of type struct { RemoteEnv map[string]string "json:\"remoteEnv\"" }
```
2025-03-07 15:59:37 +00:00
ケイラ 32c36d5336 feat: allow selecting the initial organization for new users (#16829) 2025-03-07 08:42:10 -07:00
Lucas Melin db064ed0f8 docs: fix formatting of note callouts (#16761)
Fixes the formatting of several note callouts. Previously, these would render incorrectly both on GitHub and on the documentation site.
2025-03-07 10:35:14 -05:00
Ethan 17f8e93d0c chore: add agent endpoint for querying file system (#16736)
Closes https://github.com/coder/internal/issues/382
2025-03-07 15:33:50 +11:00
ケイラ eddccbca5c fix: hide deleted users from org members query (#16830) 2025-03-06 11:50:08 -07:00
M Atif Ali 9bed9a226a docs: update versions in offline installation docs (#16808)
[preview](https://coder.com/docs/@matifali-patch-1/install/offline)

---------

Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-03-06 21:35:41 +05:00
Edward Angert f5aac64119 docs: add beta label to workspace presets (#16826)
thanks @ssncoder!


[preview](https://coder.com/docs/@workspace-presets-beta/admin/templates/extending-templates/parameters#workspace-presets)

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-06 09:09:15 -05:00
Danny Kopping b16275b7cd chore: fix regex bug in migration number fixer (#16822)
This fixes a slight regex bug on Bash 5, where `[:/]` would only match
`:` but not both `:/`.

```bash
$ git remote -v | grep "github.com[:/]coder/coder.*(fetch)" | cut -f1

$ git remote -v | grep "github.com[:/]*coder/coder.*(fetch)" | cut -f1
origin
```

The former will actually cause the whole script to bork because of
`pipefail`, since `grep` exits 1.

Signed-off-by: Danny Kopping <dannykopping@gmail.com>
2025-03-06 12:21:14 +02:00
Vincent Vielle 0c27f04bc7 fix(coderd): fix migration number overlapping (#16819)
Due to the [merge of this PR](https://github.com/coder/coder/pull/16764)
- two migration are overlapping in term of numbers - should increase
migration number of notifications.
2025-03-05 23:13:42 +01:00
Vincent Vielle 522181fead feat(coderd): add new dispatch logic for coder inbox (#16764)
This PR is [resolving the dispatch part of Coder
Inbocx](https://github.com/coder/internal/issues/403).

Since the DB layer has been merged - we now want to insert notifications
into Coder Inbox in parallel of the other delivery target.

To do so, we push two messages instead of one using the `Enqueue`
method.
2025-03-05 22:43:18 +01:00
M Atif Ali 32450a2f77 docs: update docs for 2.20 release (#16817)
Updates Helm chart versions and updating support statuses for various
versions.
2025-03-06 01:54:26 +05:00
ケイラ deb95f948a chore: remove unused code (#16815) 2025-03-05 13:53:21 -07:00
ケイラ 9041646b81 chore: add "user_configs" db table (#16564) 2025-03-05 10:46:03 -07:00
Mathias Fredriksson cc946f199d test(cli): improve TestServer/SpammyLogs line count (#16814) 2025-03-05 17:04:35 +02:00
Marcin Tojek 77479cdd51 fix: hide "last seen" when user is suspended (#16813)
Fixes: https://github.com/coder/coder/issues/14887
2025-03-05 14:02:12 +01:00
Edward Angert 0913594bfc docs: document workspace presets feature (#16612)
closes #16475 

relates to #16304 

- [x] reword opening sentence to clarify where this is done
   - I think this is set because it's under parameters now
- [x] list of configurable settings
   - same as above
- [x] (optional) screenshot



[preview](https://coder.com/docs/@16475-workspace-presets/admin/templates/extending-templates/parameters#workspace-presets)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-05 14:43:20 +05:00
Edward Angert 9251e0d642 docs: add oom/ood to notifications (#16582)
- [x] add section or to another section: where the notifications show
up/how to access

previews:
- [Notifications - Configure OOM/OOD
notifications](https://coder.com/docs/@16581-oom-ood-notif/admin/monitoring/notifications#configure-oomood-notifications)
- [Resource
monitoring](https://coder.com/docs/@16581-oom-ood-notif/admin/templates/extending-templates/resource-monitoring)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-03-05 14:43:08 +05:00
ケイラ edf28895c7 feat: check for .ps1 dotfiles scripts on windows (#16785) 2025-03-04 15:37:29 -07:00
Jon Ayers 10f1e0b39a chore: update terraform to 1.11.0 (#16781) 2025-03-04 14:28:41 -05:00
Bruno Quaresma 861c4b140b feat: add devcontainer in the UI (#16800)
![image](https://github.com/user-attachments/assets/361f9e69-dec8-47c8-b075-7c13ce84c7e8)

Related to https://github.com/coder/coder/issues/16422

---------

Co-authored-by: Cian Johnston <cian@coder.com>
2025-03-04 14:29:02 -03:00
Edward Angert 73057eb7bd docs: add Coder Desktop early preview documentation (#16544)
closes #16540 
closes https://github.com/coder/coder-desktop-macos/issues/75

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: M Atif Ali <atif@coder.com>
Co-authored-by: Ethan Dickson <ethan@coder.com>
Co-authored-by: Dean Sheather <dean@deansheather.com>
2025-03-04 22:26:59 +05:00
Mathias Fredriksson 6dd71b1055 fix(coderd/cryptokeys): relock mutex to avoid double unlock (#16802) 2025-03-04 17:10:12 +00:00
dependabot[bot] f21fcbd001 ci: bump the github-actions group across 1 directory with 5 updates (#16803)
Bumps the github-actions group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/cache](https://github.com/actions/cache) | `4.2.1` | `4.2.2`
|
| [crate-ci/typos](https://github.com/crate-ci/typos) | `1.29.9` |
`1.29.10` |
|
[actions/download-artifact](https://github.com/actions/download-artifact)
| `4.1.8` | `4.1.9` |
|
[google-github-actions/get-gke-credentials](https://github.com/google-github-actions/get-gke-credentials)
| `2.3.1` | `2.3.3` |
|
[docker/setup-buildx-action](https://github.com/docker/setup-buildx-action)
| `3.9.0` | `3.10.0` |


Updates `actions/cache` from 4.2.1 to 4.2.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.2</h2>
<h2>What's Changed</h2>
<blockquote>
<p>[!IMPORTANT]
As a reminder, there were important backend changes to release v4.2.0,
see <a href="https://github.com/actions/cache/releases/tag/v4.2.0">those
release notes</a> and <a
href="https://github.com/actions/cache/discussions/1510">the
announcement</a> for more details.</p>
</blockquote>
<ul>
<li>Bump <code>@​actions/cache</code> to v4.0.2 by <a
href="https://github.com/robherley"><code>@​robherley</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1560">actions/cache#1560</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v4.2.1...v4.2.2">https://github.com/actions/cache/compare/v4.2.1...v4.2.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>4.2.2</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.2</li>
</ul>
<h3>4.2.1</h3>
<ul>
<li>Bump <code>@actions/cache</code> to v4.0.1</li>
</ul>
<h3>4.2.0</h3>
<p>TLDR; The cache backend service has been rewritten from the ground up
for improved performance and reliability. <a
href="https://github.com/actions/cache">actions/cache</a> now integrates
with the new cache service (v2) APIs.</p>
<p>The new service will gradually roll out as of <strong>February 1st,
2025</strong>. The legacy service will also be sunset on the same date.
Changes in these release are <strong>fully backward
compatible</strong>.</p>
<p><strong>We are deprecating some versions of this action</strong>. We
recommend upgrading to version <code>v4</code> or <code>v3</code> as
soon as possible before <strong>February 1st, 2025.</strong> (Upgrade
instructions below).</p>
<p>If you are using pinned SHAs, please use the SHAs of versions
<code>v4.2.0</code> or <code>v3.4.0</code></p>
<p>If you do not upgrade, all workflow runs using any of the deprecated
<a href="https://github.com/actions/cache">actions/cache</a> will
fail.</p>
<p>Upgrading to the recommended versions will not break your
workflows.</p>
<h3>4.1.2</h3>
<ul>
<li>Add GitHub Enterprise Cloud instances hostname filters to inform API
endpoint choices - <a
href="https://redirect.github.com/actions/cache/pull/1474">#1474</a></li>
<li>Security fix: Bump braces from 3.0.2 to 3.0.3 - <a
href="https://redirect.github.com/actions/cache/pull/1475">#1475</a></li>
</ul>
<h3>4.1.1</h3>
<ul>
<li>Restore original behavior of <code>cache-hit</code> output - <a
href="https://redirect.github.com/actions/cache/pull/1467">#1467</a></li>
</ul>
<h3>4.1.0</h3>
<ul>
<li>Ensure <code>cache-hit</code> output is set when a cache is missed -
<a
href="https://redirect.github.com/actions/cache/pull/1404">#1404</a></li>
<li>Deprecate <code>save-always</code> input - <a
href="https://redirect.github.com/actions/cache/pull/1452">#1452</a></li>
</ul>
<h3>4.0.2</h3>
<ul>
<li>Fixed restore <code>fail-on-cache-miss</code> not working.</li>
</ul>
<h3>4.0.1</h3>
<ul>
<li>Updated <code>isGhes</code> check</li>
</ul>
<h3>4.0.0</h3>
<ul>
<li>Updated minimum runner version support from node 12 -&gt; node
20</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/cache/commit/d4323d4df104b026a6aa633fdb11d772146be0bf"><code>d4323d4</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1560">#1560</a>
from actions/robherley/v4.2.2</li>
<li><a
href="https://github.com/actions/cache/commit/da26677639ccfb4615f1acc52d1fc3dc89152490"><code>da26677</code></a>
bump <code>@​actions/cache</code> to v4.0.2, prep for v4.2.2
release</li>
<li><a
href="https://github.com/actions/cache/commit/7921ae235bdcb376cc8f22558dc5f8ddc3c3c2f9"><code>7921ae2</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1557">#1557</a>
from actions/robherley/ia-workflow-released</li>
<li><a
href="https://github.com/actions/cache/commit/393773170624981bfaa3aac1cb736e3004eac1de"><code>3937731</code></a>
Update publish-immutable-actions.yml</li>
<li>See full diff in <a
href="https://github.com/actions/cache/compare/0c907a75c2c80ebcb7f088228285e798b750cf8f...d4323d4df104b026a6aa633fdb11d772146be0bf">compare
view</a></li>
</ul>
</details>
<br />

Updates `crate-ci/typos` from 1.29.9 to 1.29.10
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/releases">crate-ci/typos's
releases</a>.</em></p>
<blockquote>
<h2>v1.29.10</h2>
<h2>[1.29.10] - 2025-02-25</h2>
<h3>Fixes</h3>
<ul>
<li>Also correct <code>contaminent</code> as
<code>contaminant</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/crate-ci/typos/blob/master/CHANGELOG.md">crate-ci/typos's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p>All notable changes to this project will be documented in this
file.</p>
<p>The format is based on <a href="http://keepachangelog.com/">Keep a
Changelog</a>
and this project adheres to <a href="http://semver.org/">Semantic
Versioning</a>.</p>
<!-- raw HTML omitted -->
<h2>[Unreleased] - ReleaseDate</h2>
<h2>[1.30.1] - 2025-03-04</h2>
<h3>Features</h3>
<ul>
<li><em>(action)</em> Create <code>v1</code> tag</li>
</ul>
<h2>[1.30.0] - 2025-03-01</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1221">February
2025</a> changes</li>
</ul>
<h2>[1.29.10] - 2025-02-25</h2>
<h3>Fixes</h3>
<ul>
<li>Also correct <code>contaminent</code> as
<code>contaminant</code></li>
</ul>
<h2>[1.29.9] - 2025-02-20</h2>
<h3>Fixes</h3>
<ul>
<li><em>(action)</em> Correctly get binary for some aarch64 systems</li>
</ul>
<h2>[1.29.8] - 2025-02-19</h2>
<h3>Features</h3>
<ul>
<li>Attempt to build Linux aarch64 binaries</li>
</ul>
<h2>[1.29.7] - 2025-02-13</h2>
<h3>Fixes</h3>
<ul>
<li>Don't correct <code>implementors</code></li>
</ul>
<h2>[1.29.6] - 2025-02-13</h2>
<h3>Features</h3>
<ul>
<li>Updated the dictionary with the <a
href="https://redirect.github.com/crate-ci/typos/issues/1200">January
2025</a> changes</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/crate-ci/typos/commit/db35ee91e80fbb447f33b0e5fbddb24d2a1a884f"><code>db35ee9</code></a>
chore: Release</li>
<li><a
href="https://github.com/crate-ci/typos/commit/9f43c4dbd2d1468320524b1bf059d6032cbc5a9e"><code>9f43c4d</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/crate-ci/typos/commit/a1da2ce137a90ed418bda5bdb706e97e958f18e7"><code>a1da2ce</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1244">#1244</a>
from epage/containment</li>
<li><a
href="https://github.com/crate-ci/typos/commit/d74d5fd5ad85ea0d689c44b7d4013431b28423ac"><code>d74d5fd</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1243">#1243</a>
from epage/dict</li>
<li><a
href="https://github.com/crate-ci/typos/commit/fa6122604f999e8dafb43b92eb3da3e90136a789"><code>fa61226</code></a>
refactor(dict): Drop a dict</li>
<li><a
href="https://github.com/crate-ci/typos/commit/6276d585f79214fb7db70ff1f93dbcb404e0bc9c"><code>6276d58</code></a>
fix(dict): Correct contaminents to another spelling</li>
<li><a
href="https://github.com/crate-ci/typos/commit/07c9e1f6faffe39ca3e52afe58ae8731cc4ebcf7"><code>07c9e1f</code></a>
chore(deps): Update Rust Stable to v1.85 (<a
href="https://redirect.github.com/crate-ci/typos/issues/1241">#1241</a>)</li>
<li><a
href="https://github.com/crate-ci/typos/commit/71643b1191585cd20de3b91d9c1e73d949309530"><code>71643b1</code></a>
Merge pull request <a
href="https://redirect.github.com/crate-ci/typos/issues/1240">#1240</a>
from szepeviktor/patch-1</li>
<li><a
href="https://github.com/crate-ci/typos/commit/931a5804a4dffb6343188d152e0c08c2147b5174"><code>931a580</code></a>
Fix typo in README</li>
<li><a
href="https://github.com/crate-ci/typos/commit/c5137fd6aab66cddb011a1cb93e2553f56cafc9f"><code>c5137fd</code></a>
refactor(action): Isolate unique parts</li>
<li>See full diff in <a
href="https://github.com/crate-ci/typos/compare/212923e4ff05b7fc2294a204405eec047b807138...db35ee91e80fbb447f33b0e5fbddb24d2a1a884f">compare
view</a></li>
</ul>
</details>
<br />

Updates `actions/download-artifact` from 4.1.8 to 4.1.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v4.1.9</h2>
<h2>What's Changed</h2>
<ul>
<li>Add workflow file for publishing releases to immutable action
package by <a
href="https://github.com/Jcambass"><code>@​Jcambass</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/354">actions/download-artifact#354</a></li>
<li>docs: small migration fix by <a
href="https://github.com/froblesmartin"><code>@​froblesmartin</code></a>
in <a
href="https://redirect.github.com/actions/download-artifact/pull/370">actions/download-artifact#370</a></li>
<li>Update MIGRATION.md by <a
href="https://github.com/andyfeller"><code>@​andyfeller</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/372">actions/download-artifact#372</a></li>
<li>Update artifact package to 2.2.2 by <a
href="https://github.com/yacaovsnc"><code>@​yacaovsnc</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/380">actions/download-artifact#380</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/Jcambass"><code>@​Jcambass</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/354">actions/download-artifact#354</a></li>
<li><a
href="https://github.com/froblesmartin"><code>@​froblesmartin</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/370">actions/download-artifact#370</a></li>
<li><a
href="https://github.com/andyfeller"><code>@​andyfeller</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/372">actions/download-artifact#372</a></li>
<li><a href="https://github.com/yacaovsnc"><code>@​yacaovsnc</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/download-artifact/pull/380">actions/download-artifact#380</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/download-artifact/compare/v4...v4.1.9">https://github.com/actions/download-artifact/compare/v4...v4.1.9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/download-artifact/commit/cc203385981b70ca67e1cc392babf9cc229d5806"><code>cc20338</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/380">#380</a>
from actions/yacaovsnc/release_4_1_9</li>
<li><a
href="https://github.com/actions/download-artifact/commit/1fc0fee191f40422f502da571c0f01ff460afe53"><code>1fc0fee</code></a>
Update artifact package to 2.2.2</li>
<li><a
href="https://github.com/actions/download-artifact/commit/7fba95161a0924506ed1ae69cdbae8371ee00b3f"><code>7fba951</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/372">#372</a>
from andyfeller/patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/f9ceb7763ba1fdfd81b2e2f93aa1f6015ff6b35d"><code>f9ceb77</code></a>
Update MIGRATION.md</li>
<li><a
href="https://github.com/actions/download-artifact/commit/533298bc57c27f112a2c04a74a04a4d43e2866fd"><code>533298b</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/370">#370</a>
from froblesmartin/patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/d06289e120b300840a833b25db66cb8c19f5d274"><code>d06289e</code></a>
docs: small migration fix</li>
<li><a
href="https://github.com/actions/download-artifact/commit/d0ce8fd1167ed839810201de977912a090ab10a7"><code>d0ce8fd</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/354">#354</a>
from actions/Jcambass-patch-1</li>
<li><a
href="https://github.com/actions/download-artifact/commit/1ce0d91ace59dfbf6763107ee5aa8466ebbadf48"><code>1ce0d91</code></a>
Add workflow file for publishing releases to immutable action
package</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/fa0a91b85d4f404e444e00e005971372dc801d16...cc203385981b70ca67e1cc392babf9cc229d5806">compare
view</a></li>
</ul>
</details>
<br />

Updates `google-github-actions/get-gke-credentials` from 2.3.1 to 2.3.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/google-github-actions/get-gke-credentials/releases">google-github-actions/get-gke-credentials's
releases</a>.</em></p>
<blockquote>
<h2>v2.3.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Description must be less than 125 characters by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/331">google-github-actions/get-gke-credentials#331</a></li>
<li>Release: v2.3.3 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/332">google-github-actions/get-gke-credentials#332</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.2...v2.3.3">https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.2...v2.3.3</a></p>
<h2>v2.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>security: bump jsonpath-plus from 10.2.0 to 10.3.0 in the
npm_and_yarn group by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/327">google-github-actions/get-gke-credentials#327</a></li>
<li>Update deps by <a
href="https://github.com/sethvargo"><code>@​sethvargo</code></a> in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/329">google-github-actions/get-gke-credentials#329</a></li>
<li>Release: v2.3.2 by <a
href="https://github.com/google-github-actions-bot"><code>@​google-github-actions-bot</code></a>
in <a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/pull/330">google-github-actions/get-gke-credentials#330</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.1...v2.3.2">https://github.com/google-github-actions/get-gke-credentials/compare/v2.3.1...v2.3.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/d0cee45012069b163a631894b98904a9e6723729"><code>d0cee45</code></a>
Release: v2.3.3 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/332">#332</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/c1387e6b1efc91945c5f6150f3375ef91a6b69a0"><code>c1387e6</code></a>
Description must be less than 125 characters (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/331">#331</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/d08c14912d6642ca79ec62782b87462236685240"><code>d08c149</code></a>
Release: v2.3.2 (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/330">#330</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/5f781aae169bd8866ca79bbc10c402a1256d2ed1"><code>5f781aa</code></a>
Update deps (<a
href="https://redirect.github.com/google-github-actions/get-gke-credentials/issues/329">#329</a>)</li>
<li><a
href="https://github.com/google-github-actions/get-gke-credentials/commit/67b31da175b2546b2afc28460d0cafe927e6fd42"><code>67b31da</code></a>
security: bump jsonpath-plus from 10.2.0 to 10.3.0 in the npm_and_yarn
group ...</li>
<li>See full diff in <a
href="https://github.com/google-github-actions/get-gke-credentials/compare/7a108e64ed8546fe38316b4086e91da13f4785e1...d0cee45012069b163a631894b98904a9e6723729">compare
view</a></li>
</ul>
</details>
<br />

Updates `docker/setup-buildx-action` from 3.9.0 to 3.10.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/setup-buildx-action/releases">docker/setup-buildx-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.10.0</h2>
<ul>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.54.0 to 0.56.0 in
<a
href="https://redirect.github.com/docker/setup-buildx-action/pull/408">docker/setup-buildx-action#408</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0">https://github.com/docker/setup-buildx-action/compare/v3.9.0...v3.10.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2"><code>b5ca514</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/setup-buildx-action/issues/408">#408</a>
from docker/dependabot/npm_and_yarn/docker/actions-to...</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/1418a4ef330cff3d80e8707b47780be815fb20db"><code>1418a4e</code></a>
chore: update generated content</li>
<li><a
href="https://github.com/docker/setup-buildx-action/commit/93acf831ce48bc806b62b1e892b89fca8bf213e0"><code>93acf83</code></a>
build(deps): bump <code>@​docker/actions-toolkit</code> from 0.54.0 to
0.56.0</li>
<li>See full diff in <a
href="https://github.com/docker/setup-buildx-action/compare/f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca...b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| crate-ci/typos | [>= 1.30.a, < 1.31] |
</details>


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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 16:39:00 +00:00
Marcin Tojek 975ea23d6f fix: display all available settings (#16798)
Fixes: https://github.com/coder/coder/issues/15420
2025-03-04 15:46:25 +01:00
Yevhenii Shcherbina 84881a0e98 test: fix flaky tests (#16799)
Relates to: https://github.com/coder/internal/issues/451

Create separate context with timeout for every subtest.
2025-03-04 08:44:48 -05:00
Cian Johnston e9f882220e feat(site): allow opening web terminal to container (#16797)
Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2025-03-04 10:22:03 -03:00
Ethan d8561a62fc ci: avoid cancelling other nightly-gauntlet jobs on failure (#16795)
I saw in a failing nightly-gauntlet that the macOS+Postgres tests
failing caused the Windows tests to get cancelled:
https://github.com/coder/coder/actions/runs/13645971060

There's no harm in letting the other test run, and will let us catch
additional flakes & failures. If one job fails, the whole matrix will
still fail (once the remaining tests in the matrix have completed) and
the slack notification will still be sent.
[We previously made this
change](https://github.com/coder/coder/pull/8624) on our on-push `ci`
workflow.

Relevant documentation:
> jobs.<job_id>.strategy.fail-fast applies to the entire matrix. If
jobs.<job_id>.strategy.fail-fast is set to true or its expression
evaluates to true, GitHub will cancel all in-progress and queued jobs in
the matrix if any job in the matrix fails. This property defaults to
true.


https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idstrategyfail-fast
2025-03-04 07:00:28 +02:00
ケイラ 17ad2849e4 fix: fix deployment settings navigation issues (#16780) 2025-03-03 15:48:17 -07:00
Hugo Dutka 24f3445e00 chore: track workspace resource monitors in telemetry (#16776)
Addresses https://github.com/coder/nexus/issues/195. Specifically, just
the "tracking templates" requirement:

> ## Tracking in templates
> To enable resource alerts, a user must add the resource_monitoring
block to a template's coder_agent resource. We'd like to track if
customers have any resource monitoring enabled on a per-deployment
basis. Even better, we could identify which templates are using resource
monitoring.
2025-03-03 18:41:01 +01:00
Mathias Fredriksson dfcd93b26e feat: enable agent connection reports by default, remove flag (#16778)
This change enables agent connection reports by default and removes the
experimental flag for enabling them.

Updates #15139
2025-03-03 18:37:28 +02:00
Hugo Dutka 95347b2b93 fix: allow orgs with default github provider (#16755)
This PR fixes 2 bugs:

## Problem 1

The server would fail to start when the default github provider was
configured and the flag `--oauth2-github-allowed-orgs` was set. The
error was

```
error: configure github oauth2: allow everyone and allowed orgs cannot be used together
```

This PR fixes it by enabling "allow everone" with the default provider
only if "allowed orgs" isn't set.

## Problem 2

The default github provider uses the device flow to authorize users, and
that's handled differently by our web UI than the standard oauth flow.
In particular, the web UI only handles JSON responses rather than HTTP
redirects. There were 2 code paths that returned redirects, and the PR
changes them to return JSON messages instead if the device flow is
configured.
2025-03-03 16:05:45 +01:00
Yevhenii Shcherbina b85ba586ee fix(coderd/database): consider tag sets when calculating queue position (#16685)
Relates to https://github.com/coder/coder/issues/15843

## PR Contents

- Reimplementation of the `GetProvisionerJobsByIDsWithQueuePosition` SQL
query to **take into account** provisioner job tags and provisioner
daemon tags.
- Unit tests covering different **tag sets**, **job statuses**, and
**job ordering** scenarios.

## Notes

- The original row order is preserved by introducing the `ordinality`
field.
- Unnecessary rows are filtered as early as possible to ensure that
expensive joins operate on a smaller dataset.
- A "fake" join with `provisioner_jobs` is added at the end to ensure
`sqlc.embed` compiles successfully.
- **Backward compatibility is preserved**—only the SQL query has been
updated, while the Go code remains unchanged.
2025-03-03 10:02:18 -05:00
Bruno Quaresma 7637d39528 feat: update default audit log avatar (#16774)
After update:

![image](https://github.com/user-attachments/assets/2ac6707f-2a56-45ec-a88f-651826776744)
2025-03-03 11:53:59 -03:00
Cian Johnston ca23abcc30 chore(cli): fix test flake in TestSSH_Container/NotFound (#16771)
If you hit the list containers endpoint with no containers running, the
response is different. This uses a mock lister to ensure a consistent
response from the agent endpoint.
2025-03-03 14:15:25 +00:00
Eng Zer Jun 04c33968cf refactor: replace golang.org/x/exp/slices with slices (#16772)
The experimental functions in `golang.org/x/exp/slices` are now
available in the standard library since Go 1.21.

Reference: https://go.dev/doc/go1.21#slices

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2025-03-04 00:46:49 +11:00
Ethan 88f0131abb fix: use dbtime in dbmem query to fix flake (#16773)
Closes https://github.com/coder/internal/issues/447.

The test was failing 30% of the time on Windows without the rounding
applied by `dbtime`. `dbtime` was used on the timestamps inserted into
the DB, but not within the query. Once using `dbtime` within the query
there were no failures in 200 runs.
2025-03-03 13:42:13 +00:00
Hugo Dutka 0f4f6bd147 docs: describe default sign up behavior with GitHub (#16765)
Document the sign up behavior with the default GitHub OAuth2 app.
2025-03-03 13:23:12 +01:00
Hugo Dutka 9c5d4966ee docs: suggest disabling the default GitHub OAuth2 provider on k8s (#16758)
For production deployments we recommend disabling the default GitHub
OAuth2 app managed by Coder. This PR mentions it in k8s installation
docs and the helm README so users can stumble upon it more easily.
2025-03-03 12:32:27 +01:00
Hugo Dutka a5842e5ad1 docs: document default GitHub OAuth2 configuration and device flow (#16663)
Document the changes made in https://github.com/coder/coder/pull/16629
and https://github.com/coder/coder/pull/16585.
2025-03-03 12:31:56 +01:00
Vincent Vielle c074f77a4f feat: add notifications inbox db (#16599)
This PR is linked [to the following
issue](https://github.com/coder/internal/issues/334).

The objective is to create the DB layer and migration for the new `Coder
Inbox`.
2025-03-03 10:12:48 +01:00
Thomas Kosiewski d0e2060692 feat(agent): add second SSH listener on port 22 (#16627)
Fixes: https://github.com/coder/internal/issues/377

Added an additional SSH listener on port 22, so the agent now listens on both, port one and port 22.

---
Change-Id: Ifd986b260f8ac317e37d65111cd4e0bd1dc38af8
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-03 04:47:42 +01:00
Nick Fisher ca23abe12c feat(provisioner): add support for workspace_owner_rbac_roles (#16407)
Part of https://github.com/coder/terraform-provider-coder/pull/330

Adds support for the coder_workspace_owner.rbac_roles attribute
2025-03-02 14:54:44 -06:00
Guspan Tanadi fc2815cfdb docs: fix anchor and repo links (#16555) 2025-03-02 09:55:36 -06:00
Marcin Tojek 4216e283ec fix: editor: fallback to default entrypoint (#16757)
Related:
https://github.com/coder/coder/pull/16753#discussion_r1975558383
2025-02-28 17:14:42 +01:00
Marcin Tojek 930816fd0e fix: locate Terraform entrypoint file (#16753)
Fixes: https://github.com/coder/coder/issues/16360
2025-02-28 15:22:36 +01:00
Sas Swart e27953d2bc fix(site): add a beta badge for presets (#16751)
closes #16731 

This pull request adds a "beta" badge to the presets input field on the
workspace creation page.
2025-02-28 14:41:53 +02:00
Cian Johnston 6889ad2e5e fix(agent/agentcontainers): remove empty warning if no containers exist (#16748)
Fixes the current annoying response if no containers are running:
```
{"containers":null,"warnings":[""]}
```
2025-02-28 11:05:50 +00:00
Cian Johnston ec44f06f5c feat(cli): allow SSH command to connect to running container (#16726)
Fixes https://github.com/coder/coder/issues/16709 and
https://github.com/coder/coder/issues/16420

Adds the capability to`coder ssh` into a running container if `CODER_AGENT_DEVCONTAINERS_ENABLE=true`.

Notes:
* SFTP is currently not supported
* Haven't tested X11 container forwarding
* Haven't tested agent forwarding
2025-02-28 09:38:45 +00:00
Dean Sheather 64fec8bf0b feat: include winres metadata in Windows binaries (#16706)
Adds information like product/file version, description, product name
and copyright to compiled Windows binaries in dogfood and release
builds. Also adds an icon to the executable.

This is necessary for Coder Desktop to be able to check the version on
binaries.

### Before:

![image](https://github.com/user-attachments/assets/82351b63-6b23-4ef8-ab89-7f9e6dafeabd)

![image](https://github.com/user-attachments/assets/d17d8098-e330-4ac0-b104-31163f84279f)

### After:

![image](https://github.com/user-attachments/assets/0ba50afa-ad53-4ad2-b5e2-557358cda037)

![image](https://github.com/user-attachments/assets/d305cc27-e3f3-41a8-9098-498b71344faa)

![image](https://github.com/user-attachments/assets/42f74ace-bda1-414f-b514-68d4d928c958)

Closes https://github.com/coder/coder/issues/16693
2025-02-28 16:03:08 +11:00
Dean Sheather 3997eeee26 chore: update tailscale (#16737) 2025-02-28 04:35:56 +00:00
Dean Sheather b23e05b1fe fix(vpn): fail early if wintun.dll is not present (#16707)
Prevents the VPN startup from hanging for 5 minutes due to a startup
backoff if `wintun.dll` cannot be loaded.

Because the `wintun` package doesn't expose an easy `Load() error`
method for us, the only way for us to force it to load (without unwanted
side effects) is through `wintun.Version()` which doesn't return an
error message.

So, we call that function so the `wintun` package loads the DLL and
configures the logging properly, then we try to load the DLL ourselves.
`LoadLibraryEx` will not load the library multiple times and returns a
reference to the existing library.

Closes https://github.com/coder/coder-desktop-windows/issues/24
2025-02-28 15:20:00 +11:00
ケイラ 7e339021c1 chore: use org-scoped roles for organization groups and members e2e tests (#16691) 2025-02-27 12:55:30 -07:00
Marcin Tojek 0ea06012fc fix: handle undefined job while updating build progress (#16732)
Fixes: https://github.com/coder/coder/issues/15444
2025-02-27 20:30:11 +01:00
ケイラ 91a4a98c27 chore: add an unassign action for roles (#16728) 2025-02-27 10:39:06 -07:00
Jaayden Halko bf5b002829 fix: add org role read permissions to site wide template admins and auditors (#16733)
resolves coder/internal#388

Since site-wide admins and auditors are able to access the members page
of any org, they should have read access to org roles
2025-02-27 12:28:43 -05:00
Jaayden Halko 464fccd807 chore: create collapsible summary component (#16705)
This is based on the Figma designs here:
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=507-1525&m=dev

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
2025-02-27 12:20:33 -05:00
Steven Masley cccdf1ecac feat: implement WorkspaceCreationBan org role (#16686)
Using negative permissions, this role prevents a user's ability to
create & delete a workspace within a given organization.

Workspaces are uniquely owned by an org and a user, so the org has to
supercede the user permission with a negative permission.

# Use case

Organizations must be able to restrict a member's ability to create a
workspace. This permission is implicitly granted (see
https://github.com/coder/coder/issues/16546#issuecomment-2655437860).

To revoke this permission, the solution chosen was to use negative
permissions in a built in role called `WorkspaceCreationBan`.

# Rational

Using negative permissions is new territory, and not ideal. However,
workspaces are in a unique position.

Workspaces have 2 owners. The organization and the user. To prevent
users from creating a workspace in another organization, an [implied
negative
permission](https://github.com/coder/coder/blob/36d9f5ddb3d98029fee07d004709e1e51022e979/coderd/rbac/policy.rego#L172-L192)
is used. So the truth table looks like: _how to read this table
[here](https://github.com/coder/coder/blob/36d9f5ddb3d98029fee07d004709e1e51022e979/coderd/rbac/README.md#roles)_

| Role (example)  | Site | Org  | User | Result |
|-----------------|------|------|------|--------|
| non-org-member  | \_   | N    | YN\_ | N      |
| user            | \_   | \_   | Y    | Y      |
| WorkspaceBan    | \_   | N    | Y    | Y      |
| unauthenticated | \_   | \_   | \_   | N      |


This new role, `WorkspaceCreationBan` is the same truth table condition
as if the user was not a member of the organization (when doing a
workspace create/delete). So this behavior **is not entirely new**.

<details>

<summary>How to do it without a negative permission</summary>

The alternate approach would be to remove the implied permission, and
grant it via and organization role. However this would add new behavior
that an organizational role has the ability to grant a user permissions
on their own resources?

It does not make sense for an org role to prevent user from changing
their profile information for example. So the only option is to create a
new truth table column for resources that are owned by both an
organization and a user.

| Role (example)  | Site | Org  |User+Org| User | Result |
|-----------------|------|------|--------|------|--------|
| non-org-member  | \_   | N    |  \_    | \_   | N      |
| user            | \_   | \_   |  \_    | \_   | N      |
| WorkspaceAllow  | \_   | \_   |   Y    | \_   | Y      |
| unauthenticated | \_   | \_   |  \_    | \_   | N      |

Now a user has no opinion on if they can create a workspace, which feels
a little wrong. A user should have the authority over what is theres.

There is fundamental _philosophical_ question of "Who does a workspace
belong to?". The user has some set of autonomy, yet it is the
organization that controls it's existence. A head scratcher 🤔

</details>

## Will we need more negative built in roles?

There are few resources that have shared ownership. Only
`ResourceOrganizationMember` and `ResourceGroupMember`. Since negative
permissions is intended to revoke access to a shared resource, then
**no.** **This is the only one we need**.

Classic resources like `ResourceTemplate` are entirely controlled by the
Organization permissions. And resources entirely in the user control
(like user profile) are only controlled by `User` permissions.


![Uploading Screenshot 2025-02-26 at 22.26.52.png…]()

---------

Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
Co-authored-by: ケイラ <mckayla@hey.com>
2025-02-27 06:23:18 -05:00
Mathias Fredriksson 4ba5a8a2ba feat(agent): add connection reporting for SSH and reconnecting PTY (#16652)
Updates #15139
2025-02-27 10:45:45 +00:00
Danielle Maywood 6dd51f92fb chore: test metricscache on postgres (#16711)
metricscache_test has been running tests against dbmem only, instead of
against postgres. Unfortunately the implementations of
GetTemplateAverageBuildTime have diverged between dbmem and postgres.
This change gets the tests working on Postgres and test for the
behaviour postgres provides.
2025-02-27 09:43:51 +00:00
Cian Johnston 95363c9041 fix(enterprise/coderd): remove useless provisioner daemon id from request (#16723)
`ServeProvisionerDaemonRequest` has had an ID field for quite a while
now.
This field is only used for telemetry purposes; the actual daemon ID is
created upon insertion in the database. There's no reason to set it, and
it's confusing to do so. Deprecating the field and removing references
to it.
2025-02-27 09:08:08 +00:00
Edward Angert b3d675532f docs: copy edit early access section in feature-stages doc (#16730)
- copy edit EA section with @mattvollmer 's suggestions
- ran the script that updates the list of experiments

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-02-27 09:20:03 +05:00
Edward Angert 5cdc13ba9e docs: fix broken links in feature-stages (#16727)
fix broken links introduced by #16719

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-02-26 22:42:46 +00:00
Jaayden Halko 6b69635140 chore: warn user without permissions to view org members (#16721)
resolves coder/internal#392

In situations where a user accesses the org members without any
permissions beyond that of a normal member, they will only be able to
see themselves in the list of members.

This PR shows a warning to users who arrive at the members page in this
situation.

<img width="1145" alt="Screenshot 2025-02-26 at 18 36 59"
src="https://github.com/user-attachments/assets/16ad6ce1-2aa9-4719-bdae-914aff0fcd52"
/>
2025-02-26 17:03:23 -05:00
Cian Johnston 2aa749a7f0 chore(cli): fix test flake caused by agent connect race (#16725)
Fixes test flake seen here:
https://github.com/coder/coder/actions/runs/13552012547/job/37877778883

```
    exp_rpty_test.go:96: 
        	Error Trace:	/home/runner/work/coder/coder/cli/exp_rpty_test.go:96
        	            				/home/runner/work/coder/coder/cli/ssh_test.go:1963
        	            				/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.22.9.linux-amd64/src/runtime/asm_amd64.s:1695
        	Error:      	Received unexpected error:
        	            	running command "coder exp rpty": GET http://localhost:37991/api/v2/workspaceagents/3785b98f-0589-47d2-a3c8-33a55a6c5b29/containers: unexpected status code 400: Agent state is "connecting", it must be in the "connected" state.
        	Test:       	TestExpRpty/Container
```
2025-02-26 21:10:39 +00:00
Edward Angert 81ef9e9e80 docs: document new feature stages (#16719)
- [x] translate notes to docs
- [x] move to Home > About > Feature Stages
- [x] decide on bullet point summaries (👍 👎  in comment)

### OOS for this PR

add support page that describes how users can get support. currently,
[this help
article](https://help.coder.com/hc/en-us/articles/25308666965783-Get-Help-with-Coder)
is the only thing that pops up and includes that `Users with valid Coder
licenses can submit tickets` but doesn't show how, nor does it include
the support bundle docs (link or content). it'd be good to have these
things relate to each other

## preview


[preview](https://coder.com/docs/@feature-stages/contributing/feature-stages)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Ben Potter <ben@coder.com>
2025-02-26 15:43:02 -05:00
Jaayden Halko 1cb864bc1b fix: allow viewOrgRoles for custom roles page (#16722)
Users with viewOrgRoles should be able to see customs roles page as this
matches the left sidebar permissions.
2025-02-26 14:39:08 -05:00
Michael Vincent Patterson 5295902596 docs: clarified prometheus integration behavior (#16724)
Closes issue #16538 
Updated docs to explain Behavior of enabling Prometheus
2025-02-26 19:30:41 +00:00
Mathias Fredriksson 7cd6e9cdd6 fix: return provisioners in desc order and add limit to cli (#16720) 2025-02-26 21:06:51 +02:00
Bruno Quaresma 7c035a4d98 fix: remove provisioners from deployment sidebar (#16717)
Provisioners should be only under orgs. This is a left over from a
previous provisioner refactoring.
2025-02-26 14:20:47 -03:00
Mathias Fredriksson b94d2cb8d4 fix(coderd): handle deletes and links for new agent/app audit resources (#16670)
These code-paths were overlooked in #16493.
2025-02-26 19:16:54 +02:00
Bruno Quaresma f1b357d6f2 feat: support session audit log (#16703)
Related to https://github.com/coder/coder/issues/15139

Demo:
<img width="1213" alt="Screenshot 2025-02-25 at 16 27 12"
src="https://github.com/user-attachments/assets/9995a68d-5cd4-4b95-9523-dfd5bf4ff48d"
/>

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-02-26 14:13:11 -03:00
Cian Johnston 2971957b88 ci: also restart tagged provisioner deployment (#16716)
Forgot to add this to CI a while ago, and it only recently became
apparent!
2025-02-26 17:12:51 +00:00
Marcin Tojek a2cc1b896f fix: display premium banner on audit page when license inactive (#16713)
Fixes: https://github.com/coder/coder/issues/14798
2025-02-26 14:16:48 +01:00
Cian Johnston c5a265fbc3 feat(cli): add experimental rpty command (#16700)
Relates to https://github.com/coder/coder/issues/16419

Builds upon https://github.com/coder/coder/pull/16638 and adds a command
`exp rpty` that allows you to open a ReconnectingPTY session to an
agent.

This ultimately allows us to add an integration-style CLI test to verify
the functionality added in #16638 .
2025-02-26 12:32:57 +00:00
Thomas Kosiewski 38c0e8a086 fix(agent/agentssh): ensure RSA key generation always produces valid keys (#16694)
Modify the RSA key generation algorithm to check that GCD(e, p-1) = 1 and
GCD(e, q-1) = 1 when selecting prime numbers, ensuring that e and φ(n) 
are coprime. This prevents ModInverse from returning nil, which would 
cause private key generation to fail and result in a panic when `Precompute` is called.

Change-Id: I0a453e1e1f8c638e40e7a4b87a6d0d7299e1cb5d
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-02-26 11:45:35 +01:00
Cian Johnston 172e52317c feat(agent): wire up agentssh server to allow exec into container (#16638)
Builds on top of https://github.com/coder/coder/pull/16623/ and wires up
the ReconnectingPTY server. This does nothing to wire up the web
terminal yet but the added test demonstrates the functionality working.

Other changes:
* Refactors and moves the `SystemEnvInfo` interface to the
`agent/usershell` package to address follow-up from
https://github.com/coder/coder/pull/16623#discussion_r1967580249
* Marks `usershellinfo.Get` as deprecated. Consumers should use the
`EnvInfoer` interface instead.

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
Co-authored-by: Danny Kopping <danny@coder.com>
2025-02-26 09:03:27 +00:00
3530 changed files with 278164 additions and 74316 deletions
+218
View File
@@ -0,0 +1,218 @@
# Database Development Patterns
## Database Work Overview
### Database Generation Process
1. Modify SQL files in `coderd/database/queries/`
2. Run `make gen`
3. If errors about audit table, update `enterprise/audit/table.go`
4. Run `make gen` again
5. Run `make lint` to catch any remaining issues
## Migration Guidelines
### Creating Migration Files
**Location**: `coderd/database/migrations/`
**Format**: `{number}_{description}.{up|down}.sql`
- Number must be unique and sequential
- Always include both up and down migrations
### Helper Scripts
| Script | Purpose |
|---------------------------------------------------------------------|-----------------------------------------|
| `./coderd/database/migrations/create_migration.sh "migration name"` | Creates new migration files |
| `./coderd/database/migrations/fix_migration_numbers.sh` | Renumbers migrations to avoid conflicts |
| `./coderd/database/migrations/create_fixture.sh "fixture name"` | Creates test fixtures for migrations |
### Database Query Organization
- **MUST DO**: Any changes to database - adding queries, modifying queries should be done in the `coderd/database/queries/*.sql` files
- **MUST DO**: Queries are grouped in files relating to context - e.g. `prebuilds.sql`, `users.sql`, `oauth2.sql`
- After making changes to any `coderd/database/queries/*.sql` files you must run `make gen` to generate respective ORM changes
## Handling Nullable Fields
Use `sql.NullString`, `sql.NullBool`, etc. for optional database fields:
```go
CodeChallenge: sql.NullString{
String: params.codeChallenge,
Valid: params.codeChallenge != "",
}
```
Set `.Valid = true` when providing values.
## Audit Table Updates
If adding fields to auditable types:
1. Update `enterprise/audit/table.go`
2. Add each new field with appropriate action:
- `ActionTrack`: Field should be tracked in audit logs
- `ActionIgnore`: Field should be ignored in audit logs
- `ActionSecret`: Field contains sensitive data
3. Run `make gen` to verify no audit errors
## Database Architecture
### Core Components
- **PostgreSQL 13+** recommended for production
- **Migrations** managed with `migrate`
- **Database authorization** through `dbauthz` package
### Authorization Patterns
```go
// Public endpoints needing system access (OAuth2 registration)
app, err := api.Database.GetOAuth2ProviderAppByClientID(dbauthz.AsSystemRestricted(ctx), clientID)
// Authenticated endpoints with user context
app, err := api.Database.GetOAuth2ProviderAppByClientID(ctx, clientID)
// System operations in middleware
roles, err := db.GetAuthorizationUserRoles(dbauthz.AsSystemRestricted(ctx), userID)
```
## Common Database Issues
### Migration Issues
1. **Migration conflicts**: Use `fix_migration_numbers.sh` to renumber
2. **Missing down migration**: Always create both up and down files
3. **Schema inconsistencies**: Verify against existing schema
### Field Handling Issues
1. **Nullable field errors**: Use `sql.Null*` types consistently
2. **Missing audit entries**: Update `enterprise/audit/table.go`
### Query Issues
1. **Query organization**: Group related queries in appropriate files
2. **Generated code errors**: Run `make gen` after query changes
3. **Performance issues**: Add appropriate indexes in migrations
## Database Testing
### Test Database Setup
```go
func TestDatabaseFunction(t *testing.T) {
db := dbtestutil.NewDB(t)
// Test with real database
result, err := db.GetSomething(ctx, param)
require.NoError(t, err)
require.Equal(t, expected, result)
}
```
## Best Practices
### Schema Design
1. **Use appropriate data types**: VARCHAR for strings, TIMESTAMP for times
2. **Add constraints**: NOT NULL, UNIQUE, FOREIGN KEY as appropriate
3. **Create indexes**: For frequently queried columns
4. **Consider performance**: Normalize appropriately but avoid over-normalization
### Query Writing
1. **Use parameterized queries**: Prevent SQL injection
2. **Handle errors appropriately**: Check for specific error types
3. **Use transactions**: For related operations that must succeed together
4. **Optimize queries**: Use EXPLAIN to understand query performance
### Migration Writing
1. **Make migrations reversible**: Always include down migration
2. **Test migrations**: On copy of production data if possible
3. **Keep migrations small**: One logical change per migration
4. **Document complex changes**: Add comments explaining rationale
## Advanced Patterns
### Complex Queries
```sql
-- Example: Complex join with aggregation
SELECT
u.id,
u.username,
COUNT(w.id) as workspace_count
FROM users u
LEFT JOIN workspaces w ON u.id = w.owner_id
WHERE u.created_at > $1
GROUP BY u.id, u.username
ORDER BY workspace_count DESC;
```
### Conditional Queries
```sql
-- Example: Dynamic filtering
SELECT * FROM oauth2_provider_apps
WHERE
($1::text IS NULL OR name ILIKE '%' || $1 || '%')
AND ($2::uuid IS NULL OR organization_id = $2)
ORDER BY created_at DESC;
```
### Audit Patterns
```go
// Example: Auditable database operation
func (q *sqlQuerier) UpdateUser(ctx context.Context, arg UpdateUserParams) (User, error) {
// Implementation here
// Audit the change
if auditor := audit.FromContext(ctx); auditor != nil {
auditor.Record(audit.UserUpdate{
UserID: arg.ID,
Old: oldUser,
New: newUser,
})
}
return newUser, nil
}
```
## Debugging Database Issues
### Common Debug Commands
```bash
# Check database connection
make test-postgres
# Run specific database tests
go test ./coderd/database/... -run TestSpecificFunction
# Check query generation
make gen
# Verify audit table
make lint
```
### Debug Techniques
1. **Enable query logging**: Set appropriate log levels
2. **Use database tools**: pgAdmin, psql for direct inspection
3. **Check constraints**: UNIQUE, FOREIGN KEY violations
4. **Analyze performance**: Use EXPLAIN ANALYZE for slow queries
### Troubleshooting Checklist
- [ ] Migration files exist (both up and down)
- [ ] `make gen` run after query changes
- [ ] Audit table updated for new fields
- [ ] Nullable fields use `sql.Null*` types
- [ ] Authorization context appropriate for endpoint type
+157
View File
@@ -0,0 +1,157 @@
# OAuth2 Development Guide
## RFC Compliance Development
### Implementing Standard Protocols
When implementing standard protocols (OAuth2, OpenID Connect, etc.):
1. **Fetch and Analyze Official RFCs**:
- Always read the actual RFC specifications before implementation
- Use WebFetch tool to get current RFC content for compliance verification
- Document RFC requirements in code comments
2. **Default Values Matter**:
- Pay close attention to RFC-specified default values
- Example: RFC 7591 specifies `client_secret_basic` as default, not `client_secret_post`
- Ensure consistency between database migrations and application code
3. **Security Requirements**:
- Follow RFC security considerations precisely
- Example: RFC 7592 prohibits returning registration access tokens in GET responses
- Implement proper error responses per protocol specifications
4. **Validation Compliance**:
- Implement comprehensive validation per RFC requirements
- Support protocol-specific features (e.g., custom schemes for native OAuth2 apps)
- Test edge cases defined in specifications
## OAuth2 Provider Implementation
### OAuth2 Spec Compliance
1. **Follow RFC 6749 for token responses**
- Use `expires_in` (seconds) not `expiry` (timestamp) in token responses
- Return proper OAuth2 error format: `{"error": "code", "error_description": "details"}`
2. **Error Response Format**
- Create OAuth2-compliant error responses for token endpoint
- Use standard error codes: `invalid_client`, `invalid_grant`, `invalid_request`
- Avoid generic error responses for OAuth2 endpoints
### PKCE Implementation
- Support both with and without PKCE for backward compatibility
- Use S256 method for code challenge
- Properly validate code_verifier against stored code_challenge
### UI Authorization Flow
- Use POST requests for consent, not GET with links
- Avoid dependency on referer headers for security decisions
- Support proper state parameter validation
### RFC 8707 Resource Indicators
- Store resource parameters in database for server-side validation (opaque tokens)
- Validate resource consistency between authorization and token requests
- Support audience validation in refresh token flows
- Resource parameter is optional but must be consistent when provided
## OAuth2 Error Handling Pattern
```go
// Define specific OAuth2 errors
var (
errInvalidPKCE = xerrors.New("invalid code_verifier")
)
// Use OAuth2-compliant error responses
type OAuth2Error struct {
Error string `json:"error"`
ErrorDescription string `json:"error_description,omitempty"`
}
// Return proper OAuth2 errors
if errors.Is(err, errInvalidPKCE) {
writeOAuth2Error(ctx, rw, http.StatusBadRequest, "invalid_grant", "The PKCE code verifier is invalid")
return
}
```
## Testing OAuth2 Features
### Test Scripts
Located in `./scripts/oauth2/`:
- `test-mcp-oauth2.sh` - Full automated test suite
- `setup-test-app.sh` - Create test OAuth2 app
- `cleanup-test-app.sh` - Remove test app
- `generate-pkce.sh` - Generate PKCE parameters
- `test-manual-flow.sh` - Manual browser testing
Always run the full test suite after OAuth2 changes:
```bash
./scripts/oauth2/test-mcp-oauth2.sh
```
### RFC Protocol Testing
1. **Compliance Test Coverage**:
- Test all RFC-defined error codes and responses
- Validate proper HTTP status codes for different scenarios
- Test protocol-specific edge cases (URI formats, token formats, etc.)
2. **Security Boundary Testing**:
- Test client isolation and privilege separation
- Verify information disclosure protections
- Test token security and proper invalidation
## Common OAuth2 Issues
1. **OAuth2 endpoints returning wrong error format** - Ensure OAuth2 endpoints return RFC 6749 compliant errors
2. **Resource indicator validation failing** - Ensure database stores and retrieves resource parameters correctly
3. **PKCE tests failing** - Verify both authorization code storage and token exchange handle PKCE fields
4. **RFC compliance failures** - Verify against actual RFC specifications, not assumptions
5. **Authorization context errors in public endpoints** - Use `dbauthz.AsSystemRestricted(ctx)` pattern
6. **Default value mismatches** - Ensure database migrations match application code defaults
7. **Bearer token authentication issues** - Check token extraction precedence and format validation
8. **URI validation failures** - Support both standard schemes and custom schemes per protocol requirements
## Authorization Context Patterns
```go
// Public endpoints needing system access (OAuth2 registration)
app, err := api.Database.GetOAuth2ProviderAppByClientID(dbauthz.AsSystemRestricted(ctx), clientID)
// Authenticated endpoints with user context
app, err := api.Database.GetOAuth2ProviderAppByClientID(ctx, clientID)
// System operations in middleware
roles, err := db.GetAuthorizationUserRoles(dbauthz.AsSystemRestricted(ctx), userID)
```
## OAuth2/Authentication Work Patterns
- Types go in `codersdk/oauth2.go` or similar
- Handlers go in `coderd/oauth2.go` or `coderd/identityprovider/`
- Database fields need migration + audit table updates
- Always support backward compatibility
## Protocol Implementation Checklist
Before completing OAuth2 or authentication feature work:
- [ ] Verify RFC compliance by reading actual specifications
- [ ] Implement proper error response formats per protocol
- [ ] Add comprehensive validation for all protocol fields
- [ ] Test security boundaries and token handling
- [ ] Update RBAC permissions for new resources
- [ ] Add audit logging support if applicable
- [ ] Create database migrations with proper defaults
- [ ] Add comprehensive test coverage including edge cases
- [ ] Verify linting compliance
- [ ] Test both positive and negative scenarios
- [ ] Document protocol-specific patterns and requirements
+212
View File
@@ -0,0 +1,212 @@
# Testing Patterns and Best Practices
## Testing Best Practices
### Avoiding Race Conditions
1. **Unique Test Identifiers**:
- Never use hardcoded names in concurrent tests
- Use `time.Now().UnixNano()` or similar for unique identifiers
- Example: `fmt.Sprintf("test-client-%s-%d", t.Name(), time.Now().UnixNano())`
2. **Database Constraint Awareness**:
- Understand unique constraints that can cause test conflicts
- Generate unique values for all constrained fields
- Test name isolation prevents cross-test interference
### Testing Patterns
- Use table-driven tests for comprehensive coverage
- Mock external dependencies
- Test both positive and negative cases
- Use `testutil.WaitLong` for timeouts in tests
### Test Package Naming
- **Test packages**: Use `package_test` naming (e.g., `identityprovider_test`) for black-box testing
## RFC Protocol Testing
### Compliance Test Coverage
1. **Test all RFC-defined error codes and responses**
2. **Validate proper HTTP status codes for different scenarios**
3. **Test protocol-specific edge cases** (URI formats, token formats, etc.)
### Security Boundary Testing
1. **Test client isolation and privilege separation**
2. **Verify information disclosure protections**
3. **Test token security and proper invalidation**
## Test Organization
### Test File Structure
```
coderd/
├── oauth2.go # Implementation
├── oauth2_test.go # Main tests
├── oauth2_test_helpers.go # Test utilities
└── oauth2_validation.go # Validation logic
```
### Test Categories
1. **Unit Tests**: Test individual functions in isolation
2. **Integration Tests**: Test API endpoints with database
3. **End-to-End Tests**: Full workflow testing
4. **Race Tests**: Concurrent access testing
## Test Commands
### Running Tests
| Command | Purpose |
|---------|---------|
| `make test` | Run all Go tests |
| `make test RUN=TestFunctionName` | Run specific test |
| `go test -v ./path/to/package -run TestFunctionName` | Run test with verbose output |
| `make test-postgres` | Run tests with Postgres database |
| `make test-race` | Run tests with Go race detector |
| `make test-e2e` | Run end-to-end tests |
### Frontend Testing
| Command | Purpose |
|---------|---------|
| `pnpm test` | Run frontend tests |
| `pnpm check` | Run code checks |
## Common Testing Issues
### Database-Related
1. **SQL type errors** - Use `sql.Null*` types for nullable fields
2. **Race conditions in tests** - Use unique identifiers instead of hardcoded names
### OAuth2 Testing
1. **PKCE tests failing** - Verify both authorization code storage and token exchange handle PKCE fields
2. **Resource indicator validation failing** - Ensure database stores and retrieves resource parameters correctly
### General Issues
1. **Missing newlines** - Ensure files end with newline character
2. **Package naming errors** - Use `package_test` naming for test files
3. **Log message formatting errors** - Use lowercase, descriptive messages without special characters
## Systematic Testing Approach
### Multi-Issue Problem Solving
When facing multiple failing tests or complex integration issues:
1. **Identify Root Causes**:
- Run failing tests individually to isolate issues
- Use LSP tools to trace through call chains
- Check both compilation and runtime errors
2. **Fix in Logical Order**:
- Address compilation issues first (imports, syntax)
- Fix authorization and RBAC issues next
- Resolve business logic and validation issues
- Handle edge cases and race conditions last
3. **Verification Strategy**:
- Test each fix individually before moving to next issue
- Use `make lint` and `make gen` after database changes
- Verify RFC compliance with actual specifications
- Run comprehensive test suites before considering complete
## Test Data Management
### Unique Test Data
```go
// Good: Unique identifiers prevent conflicts
clientName := fmt.Sprintf("test-client-%s-%d", t.Name(), time.Now().UnixNano())
// Bad: Hardcoded names cause race conditions
clientName := "test-client"
```
### Test Cleanup
```go
func TestSomething(t *testing.T) {
// Setup
client := coderdtest.New(t, nil)
// Test code here
// Cleanup happens automatically via t.Cleanup() in coderdtest
}
```
## Test Utilities
### Common Test Patterns
```go
// Table-driven tests
tests := []struct {
name string
input InputType
expected OutputType
wantErr bool
}{
{
name: "valid input",
input: validInput,
expected: expectedOutput,
wantErr: false,
},
// ... more test cases
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result, err := functionUnderTest(tt.input)
if tt.wantErr {
require.Error(t, err)
return
}
require.NoError(t, err)
require.Equal(t, tt.expected, result)
})
}
```
### Test Assertions
```go
// Use testify/require for assertions
require.NoError(t, err)
require.Equal(t, expected, actual)
require.NotNil(t, result)
require.True(t, condition)
```
## Performance Testing
### Load Testing
- Use `scaletest/` directory for load testing scenarios
- Run `./scaletest/scaletest.sh` for performance testing
### Benchmarking
```go
func BenchmarkFunction(b *testing.B) {
for i := 0; i < b.N; i++ {
// Function call to benchmark
_ = functionUnderTest(input)
}
}
```
Run benchmarks with:
```bash
go test -bench=. -benchmem ./package/path
```
+231
View File
@@ -0,0 +1,231 @@
# Troubleshooting Guide
## Common Issues
### Database Issues
1. **"Audit table entry missing action"**
- **Solution**: Update `enterprise/audit/table.go`
- Add each new field with appropriate action (ActionTrack, ActionIgnore, ActionSecret)
- Run `make gen` to verify no audit errors
2. **SQL type errors**
- **Solution**: Use `sql.Null*` types for nullable fields
- Set `.Valid = true` when providing values
- Example:
```go
CodeChallenge: sql.NullString{
String: params.codeChallenge,
Valid: params.codeChallenge != "",
}
```
### Testing Issues
3. **"package should be X_test"**
- **Solution**: Use `package_test` naming for test files
- Example: `identityprovider_test` for black-box testing
4. **Race conditions in tests**
- **Solution**: Use unique identifiers instead of hardcoded names
- Example: `fmt.Sprintf("test-client-%s-%d", t.Name(), time.Now().UnixNano())`
- Never use hardcoded names in concurrent tests
5. **Missing newlines**
- **Solution**: Ensure files end with newline character
- Most editors can be configured to add this automatically
### OAuth2 Issues
6. **OAuth2 endpoints returning wrong error format**
- **Solution**: Ensure OAuth2 endpoints return RFC 6749 compliant errors
- Use standard error codes: `invalid_client`, `invalid_grant`, `invalid_request`
- Format: `{"error": "code", "error_description": "details"}`
7. **Resource indicator validation failing**
- **Solution**: Ensure database stores and retrieves resource parameters correctly
- Check both authorization code storage and token exchange handling
8. **PKCE tests failing**
- **Solution**: Verify both authorization code storage and token exchange handle PKCE fields
- Check `CodeChallenge` and `CodeChallengeMethod` field handling
### RFC Compliance Issues
9. **RFC compliance failures**
- **Solution**: Verify against actual RFC specifications, not assumptions
- Use WebFetch tool to get current RFC content for compliance verification
- Read the actual RFC specifications before implementation
10. **Default value mismatches**
- **Solution**: Ensure database migrations match application code defaults
- Example: RFC 7591 specifies `client_secret_basic` as default, not `client_secret_post`
### Authorization Issues
11. **Authorization context errors in public endpoints**
- **Solution**: Use `dbauthz.AsSystemRestricted(ctx)` pattern
- Example:
```go
// Public endpoints needing system access
app, err := api.Database.GetOAuth2ProviderAppByClientID(dbauthz.AsSystemRestricted(ctx), clientID)
```
### Authentication Issues
12. **Bearer token authentication issues**
- **Solution**: Check token extraction precedence and format validation
- Ensure proper RFC 6750 Bearer Token Support implementation
13. **URI validation failures**
- **Solution**: Support both standard schemes and custom schemes per protocol requirements
- Native OAuth2 apps may use custom schemes
### General Development Issues
14. **Log message formatting errors**
- **Solution**: Use lowercase, descriptive messages without special characters
- Follow Go logging conventions
## Systematic Debugging Approach
### Multi-Issue Problem Solving
When facing multiple failing tests or complex integration issues:
1. **Identify Root Causes**:
- Run failing tests individually to isolate issues
- Use LSP tools to trace through call chains
- Check both compilation and runtime errors
2. **Fix in Logical Order**:
- Address compilation issues first (imports, syntax)
- Fix authorization and RBAC issues next
- Resolve business logic and validation issues
- Handle edge cases and race conditions last
3. **Verification Strategy**:
- Test each fix individually before moving to next issue
- Use `make lint` and `make gen` after database changes
- Verify RFC compliance with actual specifications
- Run comprehensive test suites before considering complete
## Debug Commands
### Useful Debug Commands
| Command | Purpose |
|----------------------------------------------|---------------------------------------|
| `make lint` | Run all linters |
| `make gen` | Generate mocks, database queries |
| `go test -v ./path/to/package -run TestName` | Run specific test with verbose output |
| `go test -race ./...` | Run tests with race detector |
### LSP Debugging
#### Go LSP (Backend)
| Command | Purpose |
|----------------------------------------------------|------------------------------|
| `mcp__go-language-server__definition symbolName` | Find function definition |
| `mcp__go-language-server__references symbolName` | Find all references |
| `mcp__go-language-server__diagnostics filePath` | Check for compilation errors |
| `mcp__go-language-server__hover filePath line col` | Get type information |
#### TypeScript LSP (Frontend)
| Command | Purpose |
|----------------------------------------------------------------------------|------------------------------------|
| `mcp__typescript-language-server__definition symbolName` | Find component/function definition |
| `mcp__typescript-language-server__references symbolName` | Find all component/type usages |
| `mcp__typescript-language-server__diagnostics filePath` | Check for TypeScript errors |
| `mcp__typescript-language-server__hover filePath line col` | Get type information |
| `mcp__typescript-language-server__rename_symbol filePath line col newName` | Rename across codebase |
## Common Error Messages
### Database Errors
**Error**: `pq: relation "oauth2_provider_app_codes" does not exist`
- **Cause**: Missing database migration
- **Solution**: Run database migrations, check migration files
**Error**: `audit table entry missing action for field X`
- **Cause**: New field added without audit table update
- **Solution**: Update `enterprise/audit/table.go`
### Go Compilation Errors
**Error**: `package should be identityprovider_test`
- **Cause**: Test package naming convention violation
- **Solution**: Use `package_test` naming for black-box tests
**Error**: `cannot use X (type Y) as type Z`
- **Cause**: Type mismatch, often with nullable fields
- **Solution**: Use appropriate `sql.Null*` types
### OAuth2 Errors
**Error**: `invalid_client` but client exists
- **Cause**: Authorization context issue
- **Solution**: Use `dbauthz.AsSystemRestricted(ctx)` for public endpoints
**Error**: PKCE validation failing
- **Cause**: Missing PKCE fields in database operations
- **Solution**: Ensure `CodeChallenge` and `CodeChallengeMethod` are handled
## Prevention Strategies
### Before Making Changes
1. **Read the relevant documentation**
2. **Check if similar patterns exist in codebase**
3. **Understand the authorization context requirements**
4. **Plan database changes carefully**
### During Development
1. **Run tests frequently**: `make test`
2. **Use LSP tools for navigation**: Avoid manual searching
3. **Follow RFC specifications precisely**
4. **Update audit tables when adding database fields**
### Before Committing
1. **Run full test suite**: `make test`
2. **Check linting**: `make lint`
3. **Test with race detector**: `make test-race`
## Getting Help
### Internal Resources
- Check existing similar implementations in codebase
- Use LSP tools to understand code relationships
- For Go code: Use `mcp__go-language-server__*` commands
- For TypeScript/React code: Use `mcp__typescript-language-server__*` commands
- Read related test files for expected behavior
### External Resources
- Official RFC specifications for protocol compliance
- Go documentation for language features
- PostgreSQL documentation for database issues
### Debug Information Collection
When reporting issues, include:
1. **Exact error message**
2. **Steps to reproduce**
3. **Relevant code snippets**
4. **Test output (if applicable)**
5. **Environment information** (OS, Go version, etc.)
+223
View File
@@ -0,0 +1,223 @@
# Development Workflows and Guidelines
## Quick Start Checklist for New Features
### Before Starting
- [ ] Run `git pull` to ensure you're on latest code
- [ ] Check if feature touches database - you'll need migrations
- [ ] Check if feature touches audit logs - update `enterprise/audit/table.go`
## Development Server
### Starting Development Mode
- **Use `./scripts/develop.sh` to start Coder in development mode**
- This automatically builds and runs with `--dev` flag and proper access URL
- **⚠️ Do NOT manually run `make build && ./coder server --dev` - use the script instead**
### Development Workflow
1. **Always start with the development script**: `./scripts/develop.sh`
2. **Make changes** to your code
3. **The script will automatically rebuild** and restart as needed
4. **Access the development server** at the URL provided by the script
## Code Style Guidelines
### Go Style
- Follow [Effective Go](https://go.dev/doc/effective_go) and [Go's Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
- Create packages when used during implementation
- Validate abstractions against implementations
- **Test packages**: Use `package_test` naming (e.g., `identityprovider_test`) for black-box testing
### Error Handling
- Use descriptive error messages
- Wrap errors with context
- Propagate errors appropriately
- Use proper error types
- Pattern: `xerrors.Errorf("failed to X: %w", err)`
### Naming Conventions
- Use clear, descriptive names
- Abbreviate only when obvious
- Follow Go and TypeScript naming conventions
### Comments
- Document exported functions, types, and non-obvious logic
- Follow JSDoc format for TypeScript
- Use godoc format for Go code
## Database Migration Workflows
### Migration Guidelines
1. **Create migration files**:
- Location: `coderd/database/migrations/`
- Format: `{number}_{description}.{up|down}.sql`
- Number must be unique and sequential
- Always include both up and down migrations
2. **Use helper scripts**:
- `./coderd/database/migrations/create_migration.sh "migration name"` - Creates new migration files
- `./coderd/database/migrations/fix_migration_numbers.sh` - Renumbers migrations to avoid conflicts
- `./coderd/database/migrations/create_fixture.sh "fixture name"` - Creates test fixtures for migrations
3. **Update database queries**:
- **MUST DO**: Any changes to database - adding queries, modifying queries should be done in the `coderd/database/queries/*.sql` files
- **MUST DO**: Queries are grouped in files relating to context - e.g. `prebuilds.sql`, `users.sql`, `oauth2.sql`
- After making changes to any `coderd/database/queries/*.sql` files you must run `make gen` to generate respective ORM changes
4. **Handle nullable fields**:
- Use `sql.NullString`, `sql.NullBool`, etc. for optional database fields
- Set `.Valid = true` when providing values
5. **Audit table updates**:
- If adding fields to auditable types, update `enterprise/audit/table.go`
- Add each new field with appropriate action (ActionTrack, ActionIgnore, ActionSecret)
- Run `make gen` to verify no audit errors
### Database Generation Process
1. Modify SQL files in `coderd/database/queries/`
2. Run `make gen`
3. If errors about audit table, update `enterprise/audit/table.go`
4. Run `make gen` again
5. Run `make lint` to catch any remaining issues
## API Development Workflow
### Adding New API Endpoints
1. **Define types** in `codersdk/` package
2. **Add handler** in appropriate `coderd/` file
3. **Register route** in `coderd/coderd.go`
4. **Add tests** in `coderd/*_test.go` files
5. **Update OpenAPI** by running `make gen`
## Testing Workflows
### Test Execution
- Run full test suite: `make test`
- Run specific test: `make test RUN=TestFunctionName`
- Run with Postgres: `make test-postgres`
- Run with race detector: `make test-race`
- Run end-to-end tests: `make test-e2e`
### Test Development
- Use table-driven tests for comprehensive coverage
- Mock external dependencies
- Test both positive and negative cases
- Use `testutil.WaitLong` for timeouts in tests
- Always use `t.Parallel()` in tests
## Commit Style
- Follow [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/)
- Format: `type(scope): message`
- Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
- Keep message titles concise (~70 characters)
- Use imperative, present tense in commit titles
## Code Navigation and Investigation
### Using LSP Tools (STRONGLY RECOMMENDED)
**IMPORTANT**: Always use LSP tools for code navigation and understanding. These tools provide accurate, real-time analysis of the codebase and should be your first choice for code investigation.
#### Go LSP Tools (for backend code)
1. **Find function definitions** (USE THIS FREQUENTLY):
- `mcp__go-language-server__definition symbolName`
- Example: `mcp__go-language-server__definition getOAuth2ProviderAppAuthorize`
- Quickly jump to function implementations across packages
2. **Find symbol references** (ESSENTIAL FOR UNDERSTANDING IMPACT):
- `mcp__go-language-server__references symbolName`
- Locate all usages of functions, types, or variables
- Critical for refactoring and understanding data flow
3. **Get symbol information**:
- `mcp__go-language-server__hover filePath line column`
- Get type information and documentation at specific positions
#### TypeScript LSP Tools (for frontend code in site/)
1. **Find component/function definitions** (USE THIS FREQUENTLY):
- `mcp__typescript-language-server__definition symbolName`
- Example: `mcp__typescript-language-server__definition LoginPage`
- Quickly navigate to React components, hooks, and utility functions
2. **Find symbol references** (ESSENTIAL FOR UNDERSTANDING IMPACT):
- `mcp__typescript-language-server__references symbolName`
- Locate all usages of components, types, or functions
- Critical for refactoring React components and understanding prop usage
3. **Get type information**:
- `mcp__typescript-language-server__hover filePath line column`
- Get TypeScript type information and JSDoc documentation
4. **Rename symbols safely**:
- `mcp__typescript-language-server__rename_symbol filePath line column newName`
- Rename components, props, or functions across the entire codebase
5. **Check for TypeScript errors**:
- `mcp__typescript-language-server__diagnostics filePath`
- Get compilation errors and warnings for a specific file
### Investigation Strategy (LSP-First Approach)
#### Backend Investigation (Go)
1. **Start with route registration** in `coderd/coderd.go` to understand API endpoints
2. **Use Go LSP `definition` lookup** to trace from route handlers to actual implementations
3. **Use Go LSP `references`** to understand how functions are called throughout the codebase
4. **Follow the middleware chain** using LSP tools to understand request processing flow
5. **Check test files** for expected behavior and error patterns
#### Frontend Investigation (TypeScript/React)
1. **Start with route definitions** in `site/src/App.tsx` or router configuration
2. **Use TypeScript LSP `definition`** to navigate to React components and hooks
3. **Use TypeScript LSP `references`** to find all component usages and prop drilling
4. **Follow the component hierarchy** using LSP tools to understand data flow
5. **Check for TypeScript errors** with `diagnostics` before making changes
6. **Examine test files** (`.test.tsx`) for component behavior and expected props
## Troubleshooting Development Issues
### Common Issues
1. **Development server won't start** - Use `./scripts/develop.sh` instead of manual commands
2. **Database migration errors** - Check migration file format and use helper scripts
3. **Audit table errors** - Update `enterprise/audit/table.go` with new fields
4. **OAuth2 compliance issues** - Ensure RFC-compliant error responses
### Debug Commands
- Check linting: `make lint`
- Generate code: `make gen`
- Clean build: `make clean`
## Development Environment Setup
### Prerequisites
- Go (version specified in go.mod)
- Node.js and pnpm for frontend development
- PostgreSQL for database testing
- Docker for containerized testing
### First Time Setup
1. Clone the repository
2. Run `./scripts/develop.sh` to start development server
3. Access the development URL provided
4. Create admin user as prompted
5. Begin development
+133
View File
@@ -0,0 +1,133 @@
#!/bin/bash
# Claude Code hook script for file formatting
# This script integrates with the centralized Makefile formatting targets
# and supports the Claude Code hooks system for automatic file formatting.
set -euo pipefail
# A variable to memoize the command for canonicalizing paths.
_CANONICALIZE_CMD=""
# canonicalize_path resolves a path to its absolute, canonical form.
# It tries 'realpath' and 'readlink -f' in order.
# The chosen command is memoized to avoid repeated checks.
# If none of these are available, it returns an empty string.
canonicalize_path() {
local path_to_resolve="$1"
# If we haven't determined a command yet, find one.
if [[ -z "$_CANONICALIZE_CMD" ]]; then
if command -v realpath >/dev/null 2>&1; then
_CANONICALIZE_CMD="realpath"
elif command -v readlink >/dev/null 2>&1 && readlink -f . >/dev/null 2>&1; then
_CANONICALIZE_CMD="readlink"
else
# No command found, so we can't resolve.
# We set a "none" value to prevent re-checking.
_CANONICALIZE_CMD="none"
fi
fi
# Now, execute the command.
case "$_CANONICALIZE_CMD" in
realpath)
realpath "$path_to_resolve" 2>/dev/null
;;
readlink)
readlink -f "$path_to_resolve" 2>/dev/null
;;
*)
# This handles the "none" case or any unexpected error.
echo ""
;;
esac
}
# Read JSON input from stdin
input=$(cat)
# Extract the file path from the JSON input
# Expected format: {"tool_input": {"file_path": "/absolute/path/to/file"}} or {"tool_response": {"filePath": "/absolute/path/to/file"}}
file_path=$(echo "$input" | jq -r '.tool_input.file_path // .tool_response.filePath // empty')
# Secure path canonicalization to prevent path traversal attacks
# Resolve repo root to an absolute, canonical path.
repo_root_raw="$(cd "$(dirname "$0")/../.." && pwd)"
repo_root="$(canonicalize_path "$repo_root_raw")"
if [[ -z "$repo_root" ]]; then
# Fallback if canonicalization fails
repo_root="$repo_root_raw"
fi
# Resolve the input path to an absolute path
if [[ "$file_path" = /* ]]; then
# Already absolute
abs_file_path="$file_path"
else
# Make relative paths absolute from repo root
abs_file_path="$repo_root/$file_path"
fi
# Canonicalize the path (resolve symlinks and ".." segments)
canonical_file_path="$(canonicalize_path "$abs_file_path")"
# Check if canonicalization failed or if the resolved path is outside the repo
if [[ -z "$canonical_file_path" ]] || { [[ "$canonical_file_path" != "$repo_root" ]] && [[ "$canonical_file_path" != "$repo_root"/* ]]; }; then
echo "Error: File path is outside repository or invalid: $file_path" >&2
exit 1
fi
# Handle the case where the file path is the repository root itself.
if [[ "$canonical_file_path" == "$repo_root" ]]; then
echo "Warning: Formatting the repository root is not a supported operation. Skipping." >&2
exit 0
fi
# Convert back to relative path from repo root for consistency
file_path="${canonical_file_path#"$repo_root"/}"
if [[ -z "$file_path" ]]; then
echo "Error: No file path provided in input" >&2
exit 1
fi
# Check if file exists
if [[ ! -f "$file_path" ]]; then
echo "Error: File does not exist: $file_path" >&2
exit 1
fi
# Get the file extension to determine the appropriate formatter
file_ext="${file_path##*.}"
# Change to the project root directory (where the Makefile is located)
cd "$(dirname "$0")/../.."
# Call the appropriate Makefile target based on file extension
case "$file_ext" in
go)
make fmt/go FILE="$file_path"
echo "✓ Formatted Go file: $file_path"
;;
js | jsx | ts | tsx)
make fmt/ts FILE="$file_path"
echo "✓ Formatted TypeScript/JavaScript file: $file_path"
;;
tf | tfvars)
make fmt/terraform FILE="$file_path"
echo "✓ Formatted Terraform file: $file_path"
;;
sh)
make fmt/shfmt FILE="$file_path"
echo "✓ Formatted shell script: $file_path"
;;
md)
make fmt/markdown FILE="$file_path"
echo "✓ Formatted Markdown file: $file_path"
;;
*)
echo "No formatter available for file extension: $file_ext"
exit 0
;;
esac
+15
View File
@@ -0,0 +1,15 @@
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": ".claude/scripts/format.sh"
}
]
}
]
}
}
+124
View File
@@ -0,0 +1,124 @@
# Cursor Rules
This project is called "Coder" - an application for managing remote development environments.
Coder provides a platform for creating, managing, and using remote development environments (also known as Cloud Development Environments or CDEs). It leverages Terraform to define and provision these environments, which are referred to as "workspaces" within the project. The system is designed to be extensible, secure, and provide developers with a seamless remote development experience.
## Core Architecture
The heart of Coder is a control plane that orchestrates the creation and management of workspaces. This control plane interacts with separate Provisioner processes over gRPC to handle workspace builds. The Provisioners consume workspace definitions and use Terraform to create the actual infrastructure.
The CLI package serves dual purposes - it can be used to launch the control plane itself and also provides client functionality for users to interact with an existing control plane instance. All user-facing frontend code is developed in TypeScript using React and lives in the `site/` directory.
The database layer uses PostgreSQL with SQLC for generating type-safe database code. Database migrations are carefully managed to ensure both forward and backward compatibility through paired `.up.sql` and `.down.sql` files.
## API Design
Coder's API architecture combines REST and gRPC approaches. The REST API is defined in `coderd/coderd.go` and uses Chi for HTTP routing. This provides the primary interface for the frontend and external integrations.
Internal communication with Provisioners occurs over gRPC, with service definitions maintained in `.proto` files. This separation allows for efficient binary communication with the components responsible for infrastructure management while providing a standard REST interface for human-facing applications.
## Network Architecture
Coder implements a secure networking layer based on Tailscale's Wireguard implementation. The `tailnet` package provides connectivity between workspace agents and clients through DERP (Designated Encrypted Relay for Packets) servers when direct connections aren't possible. This creates a secure overlay network allowing access to workspaces regardless of network topology, firewalls, or NAT configurations.
### Tailnet and DERP System
The networking system has three key components:
1. **Tailnet**: An overlay network implemented in the `tailnet` package that provides secure, end-to-end encrypted connections between clients, the Coder server, and workspace agents.
2. **DERP Servers**: These relay traffic when direct connections aren't possible. Coder provides several options:
- A built-in DERP server that runs on the Coder control plane
- Integration with Tailscale's global DERP infrastructure
- Support for custom DERP servers for lower latency or offline deployments
3. **Direct Connections**: When possible, the system establishes peer-to-peer connections between clients and workspaces using STUN for NAT traversal. This requires both endpoints to send UDP traffic on ephemeral ports.
### Workspace Proxies
Workspace proxies (in the Enterprise edition) provide regional relay points for browser-based connections, reducing latency for geo-distributed teams. Key characteristics:
- Deployed as independent servers that authenticate with the Coder control plane
- Relay connections for SSH, workspace apps, port forwarding, and web terminals
- Do not make direct database connections
- Managed through the `coder wsproxy` commands
- Implemented primarily in the `enterprise/wsproxy/` package
## Agent System
The workspace agent runs within each provisioned workspace and provides core functionality including:
- SSH access to workspaces via the `agentssh` package
- Port forwarding
- Terminal connectivity via the `pty` package for pseudo-terminal support
- Application serving
- Healthcheck monitoring
- Resource usage reporting
Agents communicate with the control plane using the tailnet system and authenticate using secure tokens.
## Workspace Applications
Workspace applications (or "apps") provide browser-based access to services running within workspaces. The system supports:
- HTTP(S) and WebSocket connections
- Path-based or subdomain-based access URLs
- Health checks to monitor application availability
- Different sharing levels (owner-only, authenticated users, or public)
- Custom icons and display settings
The implementation is primarily in the `coderd/workspaceapps/` directory with components for URL generation, proxying connections, and managing application state.
## Implementation Details
The project structure separates frontend and backend concerns. React components and pages are organized in the `site/src/` directory, with Jest used for testing. The backend is primarily written in Go, with a strong emphasis on error handling patterns and test coverage.
Database interactions are carefully managed through migrations in `coderd/database/migrations/` and queries in `coderd/database/queries/`. All new queries require proper database authorization (dbauthz) implementation to ensure that only users with appropriate permissions can access specific resources.
## Authorization System
The database authorization (dbauthz) system enforces fine-grained access control across all database operations. It uses role-based access control (RBAC) to validate user permissions before executing database operations. The `dbauthz` package wraps the database store and performs authorization checks before returning data. All database operations must pass through this layer to ensure security.
## Testing Framework
The codebase has a comprehensive testing approach with several key components:
1. **Parallel Testing**: All tests must use `t.Parallel()` to run concurrently, which improves test suite performance and helps identify race conditions.
2. **coderdtest Package**: This package in `coderd/coderdtest/` provides utilities for creating test instances of the Coder server, setting up test users and workspaces, and mocking external components.
3. **Integration Tests**: Tests often span multiple components to verify system behavior, such as template creation, workspace provisioning, and agent connectivity.
4. **Enterprise Testing**: Enterprise features have dedicated test utilities in the `coderdenttest` package.
## Open Source and Enterprise Components
The repository contains both open source and enterprise components:
- Enterprise code lives primarily in the `enterprise/` directory
- Enterprise features focus on governance, scalability (high availability), and advanced deployment options like workspace proxies
- The boundary between open source and enterprise is managed through a licensing system
- The same core codebase supports both editions, with enterprise features conditionally enabled
## Development Philosophy
Coder emphasizes clear error handling, with specific patterns required:
- Concise error messages that avoid phrases like "failed to"
- Wrapping errors with `%w` to maintain error chains
- Using sentinel errors with the "err" prefix (e.g., `errNotFound`)
All tests should run in parallel using `t.Parallel()` to ensure efficient testing and expose potential race conditions. The codebase is rigorously linted with golangci-lint to maintain consistent code quality.
Git contributions follow a standard format with commit messages structured as `type: <message>`, where type is one of `feat`, `fix`, or `chore`.
## Development Workflow
Development can be initiated using `scripts/develop.sh` to start the application after making changes. Database schema updates should be performed through the migration system using `create_migration.sh <name>` to generate migration files, with each `.up.sql` migration paired with a corresponding `.down.sql` that properly reverts all changes.
If the development database gets into a bad state, it can be completely reset by removing the PostgreSQL data directory with `rm -rf .coderv2/postgres`. This will destroy all data in the development database, requiring you to recreate any test users, templates, or workspaces after restarting the application.
Code generation for the database layer uses `coderd/database/generate.sh`, and developers should refer to `sqlc.yaml` for the appropriate style and patterns to follow when creating new queries or tables.
The focus should always be on maintaining security through proper database authorization, clean error handling, and comprehensive test coverage to ensure the platform remains robust and reliable.
+67 -3
View File
@@ -1,11 +1,16 @@
{
"name": "Development environments on your infrastructure",
"image": "codercom/oss-dogfood:latest",
"features": {
// See all possible options here https://github.com/devcontainers/features/tree/main/src/docker-in-docker
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": "false"
},
"ghcr.io/coder/devcontainer-features/code-server:1": {
"auth": "none",
"port": 13337
},
"./filebrowser": {
"folder": "${containerWorkspaceFolder}"
}
},
// SYS_PTRACE to enable go debugging
@@ -13,6 +18,65 @@
"customizations": {
"vscode": {
"extensions": ["biomejs.biome"]
},
"coder": {
"apps": [
{
"slug": "cursor",
"displayName": "Cursor Desktop",
"url": "cursor://coder.coder-remote/openDevContainer?owner=${localEnv:CODER_WORKSPACE_OWNER_NAME}&workspace=${localEnv:CODER_WORKSPACE_NAME}&agent=${localEnv:CODER_WORKSPACE_PARENT_AGENT_NAME}&url=${localEnv:CODER_URL}&token=$SESSION_TOKEN&devContainerName=${localEnv:CONTAINER_ID}&devContainerFolder=${containerWorkspaceFolder}&localWorkspaceFolder=${localWorkspaceFolder}",
"external": true,
"icon": "/icon/cursor.svg",
"order": 1
},
{
"slug": "windsurf",
"displayName": "Windsurf Editor",
"url": "windsurf://coder.coder-remote/openDevContainer?owner=${localEnv:CODER_WORKSPACE_OWNER_NAME}&workspace=${localEnv:CODER_WORKSPACE_NAME}&agent=${localEnv:CODER_WORKSPACE_PARENT_AGENT_NAME}&url=${localEnv:CODER_URL}&token=$SESSION_TOKEN&devContainerName=${localEnv:CONTAINER_ID}&devContainerFolder=${containerWorkspaceFolder}&localWorkspaceFolder=${localWorkspaceFolder}",
"external": true,
"icon": "/icon/windsurf.svg",
"order": 4
},
{
"slug": "zed",
"displayName": "Zed Editor",
"url": "zed://ssh/${localEnv:CODER_WORKSPACE_AGENT_NAME}.${localEnv:CODER_WORKSPACE_NAME}.${localEnv:CODER_WORKSPACE_OWNER_NAME}.coder${containerWorkspaceFolder}",
"external": true,
"icon": "/icon/zed.svg",
"order": 5
},
// Reproduce `code-server` app here from the code-server
// feature so that we can set the correct folder and order.
// Currently, the order cannot be specified via option because
// we parse it as a number whereas variable interpolation
// results in a string. Additionally we set health check which
// is not yet set in the feature.
{
"slug": "code-server",
"displayName": "code-server",
"url": "http://${localEnv:FEATURE_CODE_SERVER_OPTION_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_OPTION_PORT:8080}/?folder=${containerWorkspaceFolder}",
"openIn": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPOPENIN:slim-window}",
"share": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPSHARE:owner}",
"icon": "/icon/code.svg",
"group": "${localEnv:FEATURE_CODE_SERVER_OPTION_APPGROUP:Web Editors}",
"order": 3,
"healthCheck": {
"url": "http://${localEnv:FEATURE_CODE_SERVER_OPTION_HOST:127.0.0.1}:${localEnv:FEATURE_CODE_SERVER_OPTION_PORT:8080}/healthz",
"interval": 5,
"threshold": 2
}
}
]
}
}
},
"mounts": [
// Add a volume for the Coder home directory to persist shell history,
// and speed up dotfiles init and/or personalization.
"source=coder-coder-devcontainer-home,target=/home/coder,type=volume",
// Mount the entire home because conditional mounts are not supported.
// See: https://github.com/devcontainers/spec/issues/132
"source=${localEnv:HOME},target=/mnt/home/coder,type=bind,readonly"
],
"postCreateCommand": ["./.devcontainer/scripts/post_create.sh"],
"postStartCommand": ["./.devcontainer/scripts/post_start.sh"]
}
@@ -0,0 +1,46 @@
{
"id": "filebrowser",
"version": "0.0.1",
"name": "File Browser",
"description": "A web-based file browser for your development container",
"options": {
"port": {
"type": "string",
"default": "13339",
"description": "The port to run filebrowser on"
},
"folder": {
"type": "string",
"default": "",
"description": "The root directory for filebrowser to serve"
},
"baseUrl": {
"type": "string",
"default": "",
"description": "The base URL for filebrowser (e.g., /filebrowser)"
}
},
"entrypoint": "/usr/local/bin/filebrowser-entrypoint",
"dependsOn": {
"ghcr.io/devcontainers/features/common-utils:2": {}
},
"customizations": {
"coder": {
"apps": [
{
"slug": "filebrowser",
"displayName": "File Browser",
"url": "http://localhost:${localEnv:FEATURE_FILEBROWSER_OPTION_PORT:13339}",
"icon": "/icon/filebrowser.svg",
"order": 3,
"subdomain": true,
"healthcheck": {
"url": "http://localhost:${localEnv:FEATURE_FILEBROWSER_OPTION_PORT:13339}/health",
"interval": 5,
"threshold": 2
}
}
]
}
}
}
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env bash
set -euo pipefail
BOLD='\033[0;1m'
printf "%sInstalling filebrowser\n\n" "${BOLD}"
# Check if filebrowser is installed.
if ! command -v filebrowser &>/dev/null; then
VERSION="v2.42.1"
EXPECTED_HASH="7d83c0f077df10a8ec9bfd9bf6e745da5d172c3c768a322b0e50583a6bc1d3cc"
curl -fsSL "https://github.com/filebrowser/filebrowser/releases/download/${VERSION}/linux-amd64-filebrowser.tar.gz" -o /tmp/filebrowser.tar.gz
echo "${EXPECTED_HASH} /tmp/filebrowser.tar.gz" | sha256sum -c
tar -xzf /tmp/filebrowser.tar.gz -C /tmp
sudo mv /tmp/filebrowser /usr/local/bin/
sudo chmod +x /usr/local/bin/filebrowser
rm /tmp/filebrowser.tar.gz
fi
# Create entrypoint.
cat >/usr/local/bin/filebrowser-entrypoint <<EOF
#!/usr/bin/env bash
PORT="${PORT}"
FOLDER="${FOLDER:-}"
FOLDER="\${FOLDER:-\$(pwd)}"
BASEURL="${BASEURL:-}"
LOG_PATH=/tmp/filebrowser.log
export FB_DATABASE="\${HOME}/.filebrowser.db"
printf "🛠️ Configuring filebrowser\n\n"
# Check if filebrowser db exists.
if [[ ! -f "\${FB_DATABASE}" ]]; then
filebrowser config init >>\${LOG_PATH} 2>&1
filebrowser users add admin "" --perm.admin=true --viewMode=mosaic >>\${LOG_PATH} 2>&1
fi
filebrowser config set --baseurl=\${BASEURL} --port=\${PORT} --auth.method=noauth --root=\${FOLDER} >>\${LOG_PATH} 2>&1
printf "👷 Starting filebrowser...\n\n"
printf "📂 Serving \${FOLDER} at http://localhost:\${PORT}\n\n"
filebrowser >>\${LOG_PATH} 2>&1 &
printf "📝 Logs at \${LOG_PATH}\n\n"
EOF
chmod +x /usr/local/bin/filebrowser-entrypoint
printf "🥳 Installation complete!\n\n"
+67
View File
@@ -0,0 +1,67 @@
#!/bin/sh
install_devcontainer_cli() {
set -e
echo "🔧 Installing DevContainer CLI..."
cd "$(dirname "$0")/../tools/devcontainer-cli"
npm ci --omit=dev
ln -sf "$(pwd)/node_modules/.bin/devcontainer" "$(npm config get prefix)/bin/devcontainer"
}
install_ssh_config() {
echo "🔑 Installing SSH configuration..."
if [ -d /mnt/home/coder/.ssh ]; then
rsync -a /mnt/home/coder/.ssh/ ~/.ssh/
chmod 0700 ~/.ssh
else
echo "⚠️ SSH directory not found."
fi
}
install_git_config() {
echo "📂 Installing Git configuration..."
if [ -f /mnt/home/coder/git/config ]; then
rsync -a /mnt/home/coder/git/ ~/.config/git/
elif [ -d /mnt/home/coder/.gitconfig ]; then
rsync -a /mnt/home/coder/.gitconfig ~/.gitconfig
else
echo "⚠️ Git configuration directory not found."
fi
}
install_dotfiles() {
if [ ! -d /mnt/home/coder/.config/coderv2/dotfiles ]; then
echo "⚠️ Dotfiles directory not found."
return
fi
cd /mnt/home/coder/.config/coderv2/dotfiles || return
for script in install.sh install bootstrap.sh bootstrap script/bootstrap setup.sh setup script/setup; do
if [ -x $script ]; then
echo "📦 Installing dotfiles..."
./$script || {
echo "❌ Error running $script. Please check the script for issues."
return
}
echo "✅ Dotfiles installed successfully."
return
fi
done
echo "⚠️ No install script found in dotfiles directory."
}
personalize() {
# Allow script to continue as Coder dogfood utilizes a hack to
# synchronize startup script execution.
touch /tmp/.coder-startup-script.done
if [ -x /mnt/home/coder/personalize ]; then
echo "🎨 Personalizing environment..."
/mnt/home/coder/personalize
fi
}
install_devcontainer_cli
install_ssh_config
install_dotfiles
personalize
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
# Start Docker service if not already running.
sudo service docker start
+26
View File
@@ -0,0 +1,26 @@
{
"name": "devcontainer-cli",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "devcontainer-cli",
"version": "1.0.0",
"dependencies": {
"@devcontainers/cli": "^0.80.0"
}
},
"node_modules/@devcontainers/cli": {
"version": "0.80.0",
"resolved": "https://registry.npmjs.org/@devcontainers/cli/-/cli-0.80.0.tgz",
"integrity": "sha512-w2EaxgjyeVGyzfA/KUEZBhyXqu/5PyWNXcnrXsZOBrt3aN2zyGiHrXoG54TF6K0b5DSCF01Rt5fnIyrCeFzFKw==",
"bin": {
"devcontainer": "devcontainer.js"
},
"engines": {
"node": "^16.13.0 || >=18.0.0"
}
}
}
}
@@ -0,0 +1,8 @@
{
"name": "devcontainer-cli",
"private": true,
"version": "1.0.0",
"dependencies": {
"@devcontainers/cli": "^0.80.0"
}
}
+13 -1
View File
@@ -7,10 +7,22 @@ trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
[*.{yaml,yml,tf,tfvars,nix}]
[*.{yaml,yml,tf,tftpl,tfvars,nix}]
indent_style = space
indent_size = 2
[*.proto]
indent_style = space
indent_size = 2
[coderd/database/dump.sql]
indent_style = space
indent_size = 4
[coderd/database/queries/*.sql]
indent_style = tab
indent_size = 4
[coderd/database/migrations/*.sql]
indent_style = tab
indent_size = 4
+5 -1
View File
@@ -1,5 +1,7 @@
# Generated files
agent/agentcontainers/acmock/acmock.go linguist-generated=true
agent/agentcontainers/dcspec/dcspec_gen.go linguist-generated=true
agent/agentcontainers/testdata/devcontainercli/*/*.log linguist-generated=true
coderd/apidoc/docs.go linguist-generated=true
docs/reference/api/*.md linguist-generated=true
docs/reference/cli/*.md linguist-generated=true
@@ -13,6 +15,8 @@ provisionersdk/proto/*.go linguist-generated=true
*.tfstate.json linguist-generated=true
*.tfstate.dot linguist-generated=true
*.tfplan.dot linguist-generated=true
site/e2e/google/protobuf/timestampGenerated.ts
site/e2e/provisionerGenerated.ts linguist-generated=true
site/src/api/countriesGenerated.tsx linguist-generated=true
site/src/api/rbacresourcesGenerated.tsx linguist-generated=true
site/src/api/typesGenerated.ts linguist-generated=true
site/src/pages/SetupPage/countries.tsx linguist-generated=true
+6
View File
@@ -21,5 +21,11 @@ ignorePatterns:
- pattern: "linux.die.net/man"
- pattern: "www.gnu.org"
- pattern: "wiki.ubuntu.com"
- pattern: "mutagen.io"
- pattern: "docs.github.com"
- pattern: "claude.ai"
- pattern: "splunk.com"
- pattern: "stackoverflow.com/questions"
- pattern: "developer.hashicorp.com/terraform/language"
aliveStatusCodes:
- 200
+2 -1
View File
@@ -1,7 +1,8 @@
name: "🐞 Bug"
description: "File a bug report."
title: "<title>"
title: "bug: "
labels: ["needs-triage"]
type: "Bug"
body:
- type: checkboxes
id: existing_issues
@@ -0,0 +1,49 @@
name: "Download Embedded Postgres Cache"
description: |
Downloads the embedded postgres cache and outputs today's cache key.
A PR job can use a cache if it was created by its base branch, its current
branch, or the default branch.
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache
outputs:
cache-key:
description: "Today's cache key"
value: ${{ steps.vars.outputs.cache-key }}
inputs:
key-prefix:
description: "Prefix for the cache key"
required: true
cache-path:
description: "Path to the cache directory"
required: true
runs:
using: "composite"
steps:
- name: Get date values and cache key
id: vars
shell: bash
run: |
export YEAR_MONTH=$(date +'%Y-%m')
export PREV_YEAR_MONTH=$(date -d 'last month' +'%Y-%m')
export DAY=$(date +'%d')
echo "year-month=$YEAR_MONTH" >> "$GITHUB_OUTPUT"
echo "prev-year-month=$PREV_YEAR_MONTH" >> "$GITHUB_OUTPUT"
echo "cache-key=${INPUTS_KEY_PREFIX}-${YEAR_MONTH}-${DAY}" >> "$GITHUB_OUTPUT"
env:
INPUTS_KEY_PREFIX: ${{ inputs.key-prefix }}
# By default, depot keeps caches for 14 days. This is plenty for embedded
# postgres, which changes infrequently.
# https://depot.dev/docs/github-actions/overview#cache-retention-policy
- name: Download embedded Postgres cache
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ inputs.cache-path }}
key: ${{ steps.vars.outputs.cache-key }}
# > If there are multiple partial matches for a restore key, the action returns the most recently created cache.
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#matching-a-cache-key
# The second restore key allows non-main branches to use the cache from the previous month.
# This prevents PRs from rebuilding the cache on the first day of the month.
# It also makes sure that once a month, the cache is fully reset.
restore-keys: |
${{ inputs.key-prefix }}-${{ steps.vars.outputs.year-month }}-
${{ github.ref != 'refs/heads/main' && format('{0}-{1}-', inputs.key-prefix, steps.vars.outputs.prev-year-month) || '' }}
@@ -0,0 +1,18 @@
name: "Upload Embedded Postgres Cache"
description: Uploads the embedded Postgres cache. This only runs on the main branch.
inputs:
cache-key:
description: "Cache key"
required: true
cache-path:
description: "Path to the cache directory"
required: true
runs:
using: "composite"
steps:
- name: Upload Embedded Postgres cache
if: ${{ github.ref == 'refs/heads/main' }}
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ inputs.cache-path }}
key: ${{ inputs.cache-key }}
@@ -0,0 +1,10 @@
name: "Install cosign"
description: |
Cosign Github Action.
runs:
using: "composite"
steps:
- name: Install cosign
uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a # v3.8.1
with:
cosign-release: "v2.4.3"
+10
View File
@@ -0,0 +1,10 @@
name: "Install syft"
description: |
Downloads Syft to the Action tool cache and provides a reference.
runs:
using: "composite"
steps:
- name: Install syft
uses: anchore/sbom-action/download-syft@f325610c9f50a54015d37c8d16cb3b0e2c8f4de0 # v0.18.0
with:
syft-version: "v1.20.0"
@@ -0,0 +1,33 @@
name: "Setup Embedded Postgres Cache Paths"
description: Sets up a path for cached embedded postgres binaries.
outputs:
embedded-pg-cache:
description: "Value of EMBEDDED_PG_CACHE_DIR"
value: ${{ steps.paths.outputs.embedded-pg-cache }}
cached-dirs:
description: "directories that should be cached between CI runs"
value: ${{ steps.paths.outputs.cached-dirs }}
runs:
using: "composite"
steps:
- name: Override Go paths
id: paths
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
with:
script: |
const path = require('path');
// RUNNER_TEMP should be backed by a RAM disk on Windows if
// coder/setup-ramdisk-action was used
const runnerTemp = process.env.RUNNER_TEMP;
const embeddedPgCacheDir = path.join(runnerTemp, 'embedded-pg-cache');
core.exportVariable('EMBEDDED_PG_CACHE_DIR', embeddedPgCacheDir);
core.setOutput('embedded-pg-cache', embeddedPgCacheDir);
const cachedDirs = `${embeddedPgCacheDir}`;
core.setOutput('cached-dirs', cachedDirs);
- name: Create directories
shell: bash
run: |
set -e
mkdir -p "$EMBEDDED_PG_CACHE_DIR"
+57
View File
@@ -0,0 +1,57 @@
name: "Setup Go Paths"
description: Overrides Go paths like GOCACHE and GOMODCACHE to use temporary directories.
outputs:
gocache:
description: "Value of GOCACHE"
value: ${{ steps.paths.outputs.gocache }}
gomodcache:
description: "Value of GOMODCACHE"
value: ${{ steps.paths.outputs.gomodcache }}
gopath:
description: "Value of GOPATH"
value: ${{ steps.paths.outputs.gopath }}
gotmp:
description: "Value of GOTMPDIR"
value: ${{ steps.paths.outputs.gotmp }}
cached-dirs:
description: "Go directories that should be cached between CI runs"
value: ${{ steps.paths.outputs.cached-dirs }}
runs:
using: "composite"
steps:
- name: Override Go paths
id: paths
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
with:
script: |
const path = require('path');
// RUNNER_TEMP should be backed by a RAM disk on Windows if
// coder/setup-ramdisk-action was used
const runnerTemp = process.env.RUNNER_TEMP;
const gocacheDir = path.join(runnerTemp, 'go-cache');
const gomodcacheDir = path.join(runnerTemp, 'go-mod-cache');
const gopathDir = path.join(runnerTemp, 'go-path');
const gotmpDir = path.join(runnerTemp, 'go-tmp');
core.exportVariable('GOCACHE', gocacheDir);
core.exportVariable('GOMODCACHE', gomodcacheDir);
core.exportVariable('GOPATH', gopathDir);
core.exportVariable('GOTMPDIR', gotmpDir);
core.setOutput('gocache', gocacheDir);
core.setOutput('gomodcache', gomodcacheDir);
core.setOutput('gopath', gopathDir);
core.setOutput('gotmp', gotmpDir);
const cachedDirs = `${gocacheDir}\n${gomodcacheDir}`;
core.setOutput('cached-dirs', cachedDirs);
- name: Create directories
shell: bash
run: |
set -e
mkdir -p "$GOCACHE"
mkdir -p "$GOMODCACHE"
mkdir -p "$GOPATH"
mkdir -p "$GOTMPDIR"
@@ -0,0 +1,14 @@
name: "Setup Go tools"
description: |
Set up tools for `make gen`, `offlinedocs` and Schmoder CI.
runs:
using: "composite"
steps:
- name: go install tools
shell: bash
run: |
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.30
go install storj.io/drpc/cmd/protoc-gen-go-drpc@v0.0.34
go install golang.org/x/tools/cmd/goimports@v0.31.0
go install github.com/mikefarah/yq/v4@v4.44.3
go install go.uber.org/mock/mockgen@v0.5.0
+14 -3
View File
@@ -4,18 +4,29 @@ description: |
inputs:
version:
description: "The Go version to use."
default: "1.22.8"
default: "1.24.6"
use-preinstalled-go:
description: "Whether to use preinstalled Go."
default: "false"
use-cache:
description: "Whether to use the cache."
default: "true"
runs:
using: "composite"
steps:
- name: Setup Go
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
with:
go-version: ${{ inputs.version }}
go-version: ${{ inputs.use-preinstalled-go == 'false' && inputs.version || '' }}
cache: ${{ inputs.use-cache }}
- name: Install gotestsum
shell: bash
run: go install gotest.tools/gotestsum@latest
run: go install gotest.tools/gotestsum@0d9599e513d70e5792bb9334869f82f6e8b53d4d # main as of 2025-05-15
- name: Install mtimehash
shell: bash
run: go install github.com/slsyy/mtimehash/cmd/mtimehash@a6b5da4ed2c4a40e7b805534b004e9fde7b53ce0 # v1.0.0
# It isn't necessary that we ever do this, but it helps
# separate the "setup" from the "run" times.
-27
View File
@@ -1,27 +0,0 @@
name: "Setup ImDisk"
if: runner.os == 'Windows'
description: |
Sets up the ImDisk toolkit for Windows and creates a RAM disk on drive R:.
runs:
using: "composite"
steps:
- name: Download ImDisk
if: runner.os == 'Windows'
shell: bash
run: |
mkdir imdisk
cd imdisk
curl -L -o files.cab https://github.com/coder/imdisk-artifacts/raw/92a17839ebc0ee3e69be019f66b3e9b5d2de4482/files.cab
curl -L -o install.bat https://github.com/coder/imdisk-artifacts/raw/92a17839ebc0ee3e69be019f66b3e9b5d2de4482/install.bat
cd ..
- name: Install ImDisk
shell: cmd
run: |
cd imdisk
install.bat /silent
- name: Create RAM Disk
shell: cmd
run: |
imdisk -a -s 4096M -m R: -p "/fs:ntfs /q /y"
+1 -1
View File
@@ -16,7 +16,7 @@ runs:
- name: Setup Node
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
with:
node-version: 20.16.0
node-version: 22.19.0
# See https://github.com/actions/setup-node#caching-global-packages-data
cache: "pnpm"
cache-dependency-path: ${{ inputs.directory }}/pnpm-lock.yaml
+1 -1
View File
@@ -7,5 +7,5 @@ runs:
- name: Install Terraform
uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
with:
terraform_version: 1.10.5
terraform_version: 1.13.0
terraform_wrapper: false
@@ -0,0 +1,52 @@
name: "Download Test Cache"
description: |
Downloads the test cache and outputs today's cache key.
A PR job can use a cache if it was created by its base branch, its current
branch, or the default branch.
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache
outputs:
cache-key:
description: "Today's cache key"
value: ${{ steps.vars.outputs.cache-key }}
inputs:
key-prefix:
description: "Prefix for the cache key"
required: true
cache-path:
description: "Path to the cache directory"
required: true
# This path is defined in testutil/cache.go
default: "~/.cache/coderv2-test"
runs:
using: "composite"
steps:
- name: Get date values and cache key
id: vars
shell: bash
run: |
export YEAR_MONTH=$(date +'%Y-%m')
export PREV_YEAR_MONTH=$(date -d 'last month' +'%Y-%m')
export DAY=$(date +'%d')
echo "year-month=$YEAR_MONTH" >> "$GITHUB_OUTPUT"
echo "prev-year-month=$PREV_YEAR_MONTH" >> "$GITHUB_OUTPUT"
echo "cache-key=${INPUTS_KEY_PREFIX}-${YEAR_MONTH}-${DAY}" >> "$GITHUB_OUTPUT"
env:
INPUTS_KEY_PREFIX: ${{ inputs.key-prefix }}
# TODO: As a cost optimization, we could remove caches that are older than
# a day or two. By default, depot keeps caches for 14 days, which isn't
# necessary for the test cache.
# https://depot.dev/docs/github-actions/overview#cache-retention-policy
- name: Download test cache
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ inputs.cache-path }}
key: ${{ steps.vars.outputs.cache-key }}
# > If there are multiple partial matches for a restore key, the action returns the most recently created cache.
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/caching-dependencies-to-speed-up-workflows#matching-a-cache-key
# The second restore key allows non-main branches to use the cache from the previous month.
# This prevents PRs from rebuilding the cache on the first day of the month.
# It also makes sure that once a month, the cache is fully reset.
restore-keys: |
${{ inputs.key-prefix }}-${{ steps.vars.outputs.year-month }}-
${{ github.ref != 'refs/heads/main' && format('{0}-{1}-', inputs.key-prefix, steps.vars.outputs.prev-year-month) || '' }}
@@ -0,0 +1,20 @@
name: "Upload Test Cache"
description: Uploads the test cache. Only works on the main branch.
inputs:
cache-key:
description: "Cache key"
required: true
cache-path:
description: "Path to the cache directory"
required: true
# This path is defined in testutil/cache.go
default: "~/.cache/coderv2-test"
runs:
using: "composite"
steps:
- name: Upload test cache
if: ${{ github.ref == 'refs/heads/main' }}
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: ${{ inputs.cache-path }}
key: ${{ inputs.cache-key }}
+46 -7
View File
@@ -10,19 +10,58 @@ runs:
steps:
- shell: bash
run: |
owner=${{ github.repository_owner }}
echo "owner: $owner"
if [[ $owner != "coder" ]]; then
set -e
echo "owner: $REPO_OWNER"
if [[ "$REPO_OWNER" != "coder" ]]; then
echo "Not a pull request from the main repo, skipping..."
exit 0
fi
if [[ -z "${{ inputs.api-key }}" ]]; then
if [[ -z "${DATADOG_API_KEY}" ]]; then
# This can happen for dependabot.
echo "No API key provided, skipping..."
exit 0
fi
npm install -g @datadog/datadog-ci@2.21.0
datadog-ci junit upload --service coder ./gotests.xml \
--tags os:${{runner.os}} --tags runner_name:${{runner.name}}
BINARY_VERSION="v2.48.0"
BINARY_HASH_WINDOWS="b7bebb8212403fddb1563bae84ce5e69a70dac11e35eb07a00c9ef7ac9ed65ea"
BINARY_HASH_MACOS="e87c808638fddb21a87a5c4584b68ba802965eb0a593d43959c81f67246bd9eb"
BINARY_HASH_LINUX="5e700c465728fff8313e77c2d5ba1ce19a736168735137e1ddc7c6346ed48208"
TMP_DIR=$(mktemp -d)
if [[ "${RUNNER_OS}" == "Windows" ]]; then
BINARY_PATH="${TMP_DIR}/datadog-ci.exe"
BINARY_URL="https://github.com/DataDog/datadog-ci/releases/download/${BINARY_VERSION}/datadog-ci_win-x64"
elif [[ "${RUNNER_OS}" == "macOS" ]]; then
BINARY_PATH="${TMP_DIR}/datadog-ci"
BINARY_URL="https://github.com/DataDog/datadog-ci/releases/download/${BINARY_VERSION}/datadog-ci_darwin-arm64"
elif [[ "${RUNNER_OS}" == "Linux" ]]; then
BINARY_PATH="${TMP_DIR}/datadog-ci"
BINARY_URL="https://github.com/DataDog/datadog-ci/releases/download/${BINARY_VERSION}/datadog-ci_linux-x64"
else
echo "Unsupported OS: $RUNNER_OS"
exit 1
fi
echo "Downloading DataDog CI binary version ${BINARY_VERSION} for $RUNNER_OS..."
curl -sSL "$BINARY_URL" -o "$BINARY_PATH"
if [[ "${RUNNER_OS}" == "Windows" ]]; then
echo "$BINARY_HASH_WINDOWS $BINARY_PATH" | sha256sum --check
elif [[ "${RUNNER_OS}" == "macOS" ]]; then
echo "$BINARY_HASH_MACOS $BINARY_PATH" | shasum -a 256 --check
elif [[ "${RUNNER_OS}" == "Linux" ]]; then
echo "$BINARY_HASH_LINUX $BINARY_PATH" | sha256sum --check
fi
# Make binary executable (not needed for Windows)
if [[ "${RUNNER_OS}" != "Windows" ]]; then
chmod +x "$BINARY_PATH"
fi
"$BINARY_PATH" junit upload --service coder ./gotests.xml \
--tags "os:${RUNNER_OS}" --tags "runner_name:${RUNNER_NAME}"
env:
REPO_OWNER: ${{ github.repository_owner }}
DATADOG_API_KEY: ${{ inputs.api-key }}
+25 -1
View File
@@ -33,11 +33,13 @@ updates:
- dependency-name: "*"
update-types:
- version-update:semver-patch
- dependency-name: "github.com/mark3labs/mcp-go"
# Update our Dockerfile.
- package-ecosystem: "docker"
directories:
- "/dogfood/contents"
- "/dogfood/coder"
- "/dogfood/coder-envbuilder"
- "/scripts"
- "/examples/templates/docker/build"
- "/examples/parameters/build"
@@ -78,6 +80,9 @@ updates:
mui:
patterns:
- "@mui*"
radix:
patterns:
- "@radix-ui/*"
react:
patterns:
- "react"
@@ -102,4 +107,23 @@ updates:
- dependency-name: "*"
update-types:
- version-update:semver-major
- dependency-name: "@playwright/test"
open-pull-requests-limit: 15
- package-ecosystem: "terraform"
directories:
- "dogfood/*/"
- "examples/templates/*/"
schedule:
interval: "weekly"
commit-message:
prefix: "chore"
groups:
coder:
patterns:
- "registry.coder.com/coder/*/coder"
labels: []
ignore:
- dependency-name: "*"
update-types:
- version-update:semver-major
+5
View File
@@ -0,0 +1,5 @@
<!--
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.
-->
+637 -394
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -3,6 +3,7 @@ name: contrib
on:
issue_comment:
types: [created, edited]
# zizmor: ignore[dangerous-triggers] We explicitly want to run on pull_request_target.
pull_request_target:
types:
- opened
@@ -42,7 +43,7 @@ jobs:
# branch should not be protected
branch: "main"
# Some users have signed a corporate CLA with Coder so are exempt from signing our community one.
allowlist: "coryb,aaronlehmann,dependabot*"
allowlist: "coryb,aaronlehmann,dependabot*,blink-so*"
release-labels:
runs-on: ubuntu-latest
@@ -52,7 +53,7 @@ jobs:
if: ${{ github.event_name == 'pull_request_target' && !github.event.pull_request.draft }}
steps:
- name: release-labels
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
# This script ensures PR title and labels are in sync:
#
+11 -10
View File
@@ -15,7 +15,7 @@ jobs:
github.event_name == 'pull_request' &&
github.event.action == 'opened' &&
github.event.pull_request.user.login == 'dependabot[bot]' &&
github.actor_id == 49699333 &&
github.event.pull_request.user.id == 49699333 &&
github.repository == 'coder/coder'
permissions:
pull-requests: write
@@ -23,7 +23,7 @@ jobs:
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@d7267f607e9d3fb96fc2fbe83e0af444713e90b7 # v2.3.0
uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -44,10 +44,6 @@ jobs:
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
- name: Send Slack notification
env:
PR_URL: ${{github.event.pull_request.html_url}}
PR_TITLE: ${{github.event.pull_request.title}}
PR_NUMBER: ${{github.event.pull_request.number}}
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{
@@ -58,7 +54,7 @@ jobs:
"type": "header",
"text": {
"type": "plain_text",
"text": ":pr-merged: Auto merge enabled for Dependabot PR #${{ env.PR_NUMBER }}",
"text": ":pr-merged: Auto merge enabled for Dependabot PR #'"${PR_NUMBER}"'",
"emoji": true
}
},
@@ -67,7 +63,7 @@ jobs:
"fields": [
{
"type": "mrkdwn",
"text": "${{ env.PR_TITLE }}"
"text": "'"${PR_TITLE}"'"
}
]
},
@@ -80,9 +76,14 @@ jobs:
"type": "plain_text",
"text": "View PR"
},
"url": "${{ env.PR_URL }}"
"url": "'"${PR_URL}"'"
}
]
}
]
}' ${{ secrets.DEPENDABOT_PRS_SLACK_WEBHOOK }}
}' "${{ secrets.DEPENDABOT_PRS_SLACK_WEBHOOK }}"
env:
SLACK_WEBHOOK: ${{ secrets.DEPENDABOT_PRS_SLACK_WEBHOOK }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_URL: ${{ github.event.pull_request.html_url }}
+174
View File
@@ -0,0 +1,174 @@
name: deploy
on:
# Via workflow_call, called from ci.yaml
workflow_call:
inputs:
image:
description: "Image and tag to potentially deploy. Current branch will be validated against should-deploy check."
required: true
type: string
secrets:
FLY_API_TOKEN:
required: true
FLY_PARIS_CODER_PROXY_SESSION_TOKEN:
required: true
FLY_SYDNEY_CODER_PROXY_SESSION_TOKEN:
required: true
FLY_SAO_PAULO_CODER_PROXY_SESSION_TOKEN:
required: true
FLY_JNB_CODER_PROXY_SESSION_TOKEN:
required: true
permissions:
contents: read
concurrency:
group: ${{ github.workflow }} # no per-branch concurrency
cancel-in-progress: false
jobs:
# Determines if the given branch should be deployed to dogfood.
should-deploy:
name: should-deploy
runs-on: ubuntu-latest
outputs:
verdict: ${{ steps.check.outputs.verdict }} # DEPLOY or NOOP
steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Check if deploy is enabled
id: check
run: |
set -euo pipefail
verdict="$(./scripts/should_deploy.sh)"
echo "verdict=$verdict" >> "$GITHUB_OUTPUT"
deploy:
name: "deploy"
runs-on: ubuntu-latest
timeout-minutes: 30
needs: should-deploy
if: needs.should-deploy.outputs.verdict == 'DEPLOY'
permissions:
contents: read
id-token: write
packages: write # to retag image as dogfood
steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: GHCR Login
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
workload_identity_provider: ${{ vars.GCP_WORKLOAD_ID_PROVIDER }}
service_account: ${{ vars.GCP_SERVICE_ACCOUNT }}
- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
- name: Set up Flux CLI
uses: fluxcd/flux2/action@6bf37f6a560fd84982d67f853162e4b3c2235edb # v2.6.4
with:
# Keep this and the github action up to date with the version of flux installed in dogfood cluster
version: "2.7.0"
- name: Get Cluster Credentials
uses: google-github-actions/get-gke-credentials@3da1e46a907576cefaa90c484278bb5b259dd395 # v3.0.0
with:
cluster_name: dogfood-v2
location: us-central1-a
project_id: coder-dogfood-v2
# Retag image as dogfood while maintaining the multi-arch manifest
- name: Tag image as dogfood
run: docker buildx imagetools create --tag "ghcr.io/coder/coder-preview:dogfood" "$IMAGE"
env:
IMAGE: ${{ inputs.image }}
- name: Reconcile Flux
run: |
set -euxo pipefail
flux --namespace flux-system reconcile source git flux-system
flux --namespace flux-system reconcile source git coder-main
flux --namespace flux-system reconcile kustomization flux-system
flux --namespace flux-system reconcile kustomization coder
flux --namespace flux-system reconcile source chart coder-coder
flux --namespace flux-system reconcile source chart coder-coder-provisioner
flux --namespace coder reconcile helmrelease coder
flux --namespace coder reconcile helmrelease coder-provisioner
flux --namespace coder reconcile helmrelease coder-provisioner-tagged
flux --namespace coder reconcile helmrelease coder-provisioner-tagged-prebuilds
# Just updating Flux is usually not enough. The Helm release may get
# redeployed, but unless something causes the Deployment to update the
# pods won't be recreated. It's important that the pods get recreated,
# since we use `imagePullPolicy: Always` to ensure we're running the
# latest image.
- name: Rollout Deployment
run: |
set -euxo pipefail
kubectl --namespace coder rollout restart deployment/coder
kubectl --namespace coder rollout status deployment/coder
kubectl --namespace coder rollout restart deployment/coder-provisioner
kubectl --namespace coder rollout status deployment/coder-provisioner
kubectl --namespace coder rollout restart deployment/coder-provisioner-tagged
kubectl --namespace coder rollout status deployment/coder-provisioner-tagged
kubectl --namespace coder rollout restart deployment/coder-provisioner-tagged-prebuilds
kubectl --namespace coder rollout status deployment/coder-provisioner-tagged-prebuilds
deploy-wsproxies:
runs-on: ubuntu-latest
needs: deploy
steps:
- name: Harden Runner
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Setup flyctl
uses: superfly/flyctl-actions/setup-flyctl@fc53c09e1bc3be6f54706524e3b82c4f462f77be # v1.5
- name: Deploy workspace proxies
run: |
flyctl deploy --image "$IMAGE" --app paris-coder --config ./.github/fly-wsproxies/paris-coder.toml --env "CODER_PROXY_SESSION_TOKEN=$TOKEN_PARIS" --yes
flyctl deploy --image "$IMAGE" --app sydney-coder --config ./.github/fly-wsproxies/sydney-coder.toml --env "CODER_PROXY_SESSION_TOKEN=$TOKEN_SYDNEY" --yes
flyctl deploy --image "$IMAGE" --app sao-paulo-coder --config ./.github/fly-wsproxies/sao-paulo-coder.toml --env "CODER_PROXY_SESSION_TOKEN=$TOKEN_SAO_PAULO" --yes
flyctl deploy --image "$IMAGE" --app jnb-coder --config ./.github/fly-wsproxies/jnb-coder.toml --env "CODER_PROXY_SESSION_TOKEN=$TOKEN_JNB" --yes
env:
FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
IMAGE: ${{ inputs.image }}
TOKEN_PARIS: ${{ secrets.FLY_PARIS_CODER_PROXY_SESSION_TOKEN }}
TOKEN_SYDNEY: ${{ secrets.FLY_SYDNEY_CODER_PROXY_SESSION_TOKEN }}
TOKEN_SAO_PAULO: ${{ secrets.FLY_SAO_PAULO_CODER_PROXY_SESSION_TOKEN }}
TOKEN_JNB: ${{ secrets.FLY_JNB_CODER_PROXY_SESSION_TOKEN }}
+6 -4
View File
@@ -38,15 +38,17 @@ jobs:
if: github.repository_owner == 'coder'
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Docker login
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -60,7 +62,7 @@ jobs:
# This uses OIDC authentication, so no auth variables are required.
- name: Build base Docker image via depot.dev
uses: depot/build-push-action@636daae76684e38c301daa0c5eca1c095b24e780 # v1.14.0
uses: depot/build-push-action@9785b135c3c76c33db102e45be96a25ab55cd507 # v1.16.2
with:
project: wl5hnrrkns
context: base-build-context
+12 -4
View File
@@ -23,12 +23,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup Node
uses: ./.github/actions/setup-node
- uses: tj-actions/changed-files@dcc7a0cba800f454d79fff4b993e8c3555bcc0a8 # v45.0.7
- uses: tj-actions/changed-files@4563c729c555b4141fac99c80f699f571219b836 # v45.0.7
id: changed-files
with:
files: |
@@ -39,10 +41,16 @@ jobs:
- name: lint
if: steps.changed-files.outputs.any_changed == 'true'
run: |
pnpm exec markdownlint-cli2 ${{ steps.changed-files.outputs.all_changed_files }}
# shellcheck disable=SC2086
pnpm exec markdownlint-cli2 $ALL_CHANGED_FILES
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- name: fmt
if: steps.changed-files.outputs.any_changed == 'true'
run: |
# markdown-table-formatter requires a space separated list of files
echo ${{ steps.changed-files.outputs.all_changed_files }} | tr ',' '\n' | pnpm exec markdown-table-formatter --check
# shellcheck disable=SC2086
echo $ALL_CHANGED_FILES | tr ',' '\n' | pnpm exec markdown-table-formatter --check
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
+68 -29
View File
@@ -18,8 +18,7 @@ on:
workflow_dispatch:
permissions:
# Necessary for GCP authentication (https://github.com/google-github-actions/setup-gcloud#usage)
id-token: write
contents: read
jobs:
build_image:
@@ -27,48 +26,74 @@ jobs:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-4' || 'ubuntu-latest' }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup Nix
uses: DeterminateSystems/nix-installer-action@e50d5f73bfe71c2dd0aa4218de8f4afa59f8f81d # v16
uses: nixbuild/nix-quick-install-action@1f095fee853b33114486cfdeae62fa099cda35a9 # v33
with:
# Pinning to 2.28 here, as Nix gets a "error: [json.exception.type_error.302] type must be array, but is string"
# on version 2.29 and above.
nix_version: "2.28.4"
- uses: nix-community/cache-nix-action@135667ec418502fa5a3598af6fb9eb733888ce6a # v6.1.3
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-
# collect garbage until Nix store size (in bytes) is at most this number
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 5G
# do purge caches
purge: true
# purge all versions of the cache
purge-prefixes: nix-${{ runner.os }}-
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
purge-created: 0
# except the version with the `primary-key`, if it exists
purge-primary-key: never
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@6871f53176ad61624f978536bbf089c574dc19a2 # v8.0.1
uses: tj-actions/branch-names@5250492686b253f06fa55861556d1027b067aeb5 # v9.0.2
- name: "Branch name to Docker tag name"
id: docker-tag-name
run: |
tag=${{ steps.branch-name.outputs.current_branch }}
# Replace / with --, e.g. user/feature => user--feature.
tag=${tag//\//--}
echo "tag=${tag}" >> $GITHUB_OUTPUT
tag=${BRANCH_NAME//\//--}
echo "tag=${tag}" >> "$GITHUB_OUTPUT"
env:
BRANCH_NAME: ${{ steps.branch-name.outputs.current_branch }}
- name: Set up Depot CLI
uses: depot/setup-action@b0b1ea4f69e92ebf5dea3f8713a1b0c37b2126a5 # v1.6.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3.9.0
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Login to DockerHub
if: github.ref == 'refs/heads/main'
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push Non-Nix image
uses: depot/build-push-action@636daae76684e38c301daa0c5eca1c095b24e780 # v1.14.0
uses: depot/build-push-action@9785b135c3c76c33db102e45be96a25ab55cd507 # v1.16.2
with:
project: b4q6ltmpzh
token: ${{ secrets.DEPOT_TOKEN }}
buildx-fallback: true
context: "{{defaultContext}}:dogfood/contents"
context: "{{defaultContext}}:dogfood/coder"
pull: true
save: true
push: ${{ github.ref == 'refs/heads/main' }}
@@ -84,51 +109,64 @@ jobs:
CURRENT_SYSTEM=$(nix eval --impure --raw --expr 'builtins.currentSystem')
docker image tag codercom/oss-dogfood-nix:latest-$CURRENT_SYSTEM codercom/oss-dogfood-nix:${{ steps.docker-tag-name.outputs.tag }}
docker image push codercom/oss-dogfood-nix:${{ steps.docker-tag-name.outputs.tag }}
docker image tag "codercom/oss-dogfood-nix:latest-$CURRENT_SYSTEM" "codercom/oss-dogfood-nix:${DOCKER_TAG}"
docker image push "codercom/oss-dogfood-nix:${DOCKER_TAG}"
docker image tag codercom/oss-dogfood-nix:latest-$CURRENT_SYSTEM codercom/oss-dogfood-nix:latest
docker image push codercom/oss-dogfood-nix:latest
docker image tag "codercom/oss-dogfood-nix:latest-$CURRENT_SYSTEM" "codercom/oss-dogfood-nix:latest"
docker image push "codercom/oss-dogfood-nix:latest"
env:
DOCKER_TAG: ${{ steps.docker-tag-name.outputs.tag }}
deploy_template:
needs: build_image
runs-on: ubuntu-latest
permissions:
# Necessary for GCP authentication (https://github.com/google-github-actions/setup-gcloud#usage)
id-token: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup Terraform
uses: ./.github/actions/setup-tf
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
workload_identity_provider: projects/573722524737/locations/global/workloadIdentityPools/github/providers/github
service_account: coder-ci@coder-dogfood.iam.gserviceaccount.com
workload_identity_provider: ${{ vars.GCP_WORKLOAD_ID_PROVIDER }}
service_account: ${{ vars.GCP_SERVICE_ACCOUNT }}
- name: Terraform init and validate
run: |
cd dogfood
terraform init -upgrade
pushd dogfood/
terraform init
terraform validate
cd contents
terraform init -upgrade
popd
pushd dogfood/coder
terraform init
terraform validate
popd
pushd dogfood/coder-envbuilder
terraform init
terraform validate
popd
- name: Get short commit SHA
if: github.ref == 'refs/heads/main'
id: vars
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
- name: Get latest commit title
if: github.ref == 'refs/heads/main'
id: message
run: echo "pr_title=$(git log --format=%s -n 1 ${{ github.sha }})" >> $GITHUB_OUTPUT
run: echo "pr_title=$(git log --format=%s -n 1 ${{ github.sha }})" >> "$GITHUB_OUTPUT"
- name: "Push template"
if: github.ref == 'refs/heads/main'
@@ -140,8 +178,9 @@ jobs:
CODER_URL: https://dev.coder.com
CODER_SESSION_TOKEN: ${{ secrets.CODER_SESSION_TOKEN }}
# Template source & details
TF_VAR_CODER_DOGFOOD_ANTHROPIC_API_KEY: ${{ secrets.CODER_DOGFOOD_ANTHROPIC_API_KEY }}
TF_VAR_CODER_TEMPLATE_NAME: ${{ secrets.CODER_TEMPLATE_NAME }}
TF_VAR_CODER_TEMPLATE_VERSION: ${{ steps.vars.outputs.sha_short }}
TF_VAR_CODER_TEMPLATE_DIR: ./contents
TF_VAR_CODER_TEMPLATE_DIR: ./coder
TF_VAR_CODER_TEMPLATE_MESSAGE: ${{ steps.message.outputs.pr_title }}
TF_LOG: info
+101 -38
View File
@@ -12,8 +12,9 @@ permissions:
jobs:
test-go-pg:
runs-on: ${{ matrix.os == 'macos-latest' && github.repository_owner == 'coder' && 'depot-macos-latest' || matrix.os == 'windows-2022' && github.repository_owner == 'coder' && 'windows-latest-16-cores' || matrix.os }}
if: github.ref == 'refs/heads/main'
# make sure to adjust NUM_PARALLEL_PACKAGES and NUM_PARALLEL_TESTS below
# when changing runner sizes
runs-on: ${{ matrix.os == 'macos-latest' && github.repository_owner == 'coder' && 'depot-macos-latest' || matrix.os == 'windows-2022' && github.repository_owner == 'coder' && 'depot-windows-2022-16' || matrix.os }}
# This timeout must be greater than the timeout set by `go test` in
# `make test-postgres` to ensure we receive a trace of running
# goroutines. Setting this to the timeout +5m should work quite well
@@ -26,25 +27,58 @@ jobs:
- windows-2022
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
# macOS indexes all new files in the background. Our Postgres tests
# create and destroy thousands of databases on disk, and Spotlight
# tries to index all of them, seriously slowing down the tests.
- name: Disable Spotlight Indexing
if: runner.os == 'macOS'
run: |
enabled=$(sudo mdutil -a -s | { grep -Fc "Indexing enabled" || true; })
if [ "$enabled" -eq 0 ]; then
echo "Spotlight indexing is already disabled"
exit 0
fi
sudo mdutil -a -i off
sudo mdutil -X /
sudo launchctl bootout system /System/Library/LaunchDaemons/com.apple.metadata.mds.plist
# Set up RAM disks to speed up the rest of the job. This action is in
# a separate repository to allow its use before actions/checkout.
- name: Setup RAM Disks
if: runner.os == 'Windows'
uses: coder/setup-ramdisk-action@e1100847ab2d7bcd9d14bcda8f2d1b0f07b36f1b # v0.1.0
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1
persist-credentials: false
- name: Setup Go
uses: ./.github/actions/setup-go
with:
# Runners have Go baked-in and Go will automatically
# download the toolchain configured in go.mod, so we don't
# need to reinstall it. It's faster on Windows runners.
use-preinstalled-go: ${{ runner.os == 'Windows' }}
- name: Setup Terraform
uses: ./.github/actions/setup-tf
# Sets up the ImDisk toolkit for Windows and creates a RAM disk on drive R:.
- name: Setup ImDisk
if: runner.os == 'Windows'
uses: ./.github/actions/setup-imdisk
- name: Setup Embedded Postgres Cache Paths
id: embedded-pg-cache
uses: ./.github/actions/setup-embedded-pg-cache-paths
- name: Download Embedded Postgres Cache
id: download-embedded-pg-cache
uses: ./.github/actions/embedded-pg-cache/download
with:
key-prefix: embedded-pg-${{ runner.os }}-${{ runner.arch }}
cache-path: ${{ steps.embedded-pg-cache.outputs.cached-dirs }}
- name: Test with PostgreSQL Database
env:
@@ -54,6 +88,23 @@ jobs:
LC_ALL: "en_US.UTF-8"
shell: bash
run: |
set -o errexit
set -o pipefail
if [ "${{ runner.os }}" == "Windows" ]; then
# Create a temp dir on the R: ramdisk drive for Windows. The default
# C: drive is extremely slow: https://github.com/actions/runner-images/issues/8755
mkdir -p "R:/temp/embedded-pg"
go run scripts/embedded-pg/main.go -path "R:/temp/embedded-pg" -cache "${EMBEDDED_PG_CACHE_DIR}"
elif [ "${{ runner.os }}" == "macOS" ]; then
# Postgres runs faster on a ramdisk on macOS too
mkdir -p /tmp/tmpfs
sudo mount_tmpfs -o noowners -s 8g /tmp/tmpfs
go run scripts/embedded-pg/main.go -path /tmp/tmpfs/embedded-pg -cache "${EMBEDDED_PG_CACHE_DIR}"
elif [ "${{ runner.os }}" == "Linux" ]; then
make test-postgres-docker
fi
# if macOS, install google-chrome for scaletests
# As another concern, should we really have this kind of external dependency
# requirement on standard CI?
@@ -61,10 +112,6 @@ jobs:
brew install google-chrome
fi
# By default Go will use the number of logical CPUs, which
# is a fine default.
PARALLEL_FLAG=""
# macOS will output "The default interactive shell is now zsh"
# intermittently in CI...
if [ "${{ matrix.os }}" == "macos-latest" ]; then
@@ -72,18 +119,39 @@ jobs:
fi
if [ "${{ runner.os }}" == "Windows" ]; then
# Create a temp dir on the R: ramdisk drive for Windows. The default
# C: drive is extremely slow: https://github.com/actions/runner-images/issues/8755
mkdir -p "R:/temp/embedded-pg"
go run scripts/embedded-pg/main.go -path "R:/temp/embedded-pg"
else
go run scripts/embedded-pg/main.go
# Our Windows runners have 16 cores.
# On Windows Postgres chokes up when we have 16x16=256 tests
# running in parallel, and dbtestutil.NewDB starts to take more than
# 10s to complete sometimes causing test timeouts. With 16x8=128 tests
# Postgres tends not to choke.
NUM_PARALLEL_PACKAGES=8
NUM_PARALLEL_TESTS=16
elif [ "${{ runner.os }}" == "macOS" ]; then
# Our macOS runners have 8 cores. We set NUM_PARALLEL_TESTS to 16
# because the tests complete faster and Postgres doesn't choke. It seems
# that macOS's tmpfs is faster than the one on Windows.
NUM_PARALLEL_PACKAGES=8
NUM_PARALLEL_TESTS=16
elif [ "${{ runner.os }}" == "Linux" ]; then
# Our Linux runners have 8 cores.
NUM_PARALLEL_PACKAGES=8
NUM_PARALLEL_TESTS=8
fi
# Reduce test parallelism, mirroring what we do for race tests.
# We'd been encountering issues with timing related flakes, and
# this seems to help.
DB=ci gotestsum --format standard-quiet -- -v -short -count=1 -parallel 4 -p 4 ./...
# run tests without cache
TESTCOUNT="-count=1"
DB=ci gotestsum \
--format standard-quiet --packages "./..." \
-- -timeout=20m -v -p "$NUM_PARALLEL_PACKAGES" -parallel="$NUM_PARALLEL_TESTS" "$TESTCOUNT"
- name: Upload Embedded Postgres Cache
uses: ./.github/actions/embedded-pg-cache/upload
# We only use the embedded Postgres cache on macOS and Windows runners.
if: runner.OS == 'macOS' || runner.OS == 'Windows'
with:
cache-key: ${{ steps.download-embedded-pg-cache.outputs.cache-key }}
cache-path: "${{ steps.embedded-pg-cache.outputs.embedded-pg-cache }}"
- name: Upload test stats to Datadog
timeout-minutes: 1
@@ -102,6 +170,7 @@ jobs:
steps:
- name: Send Slack notification
run: |
ESCAPED_PROMPT=$(printf "%s" "<@U09LQ75AHKR> $BLINK_CI_FAILURE_PROMPT" | jq -Rsa .)
curl -X POST -H 'Content-type: application/json' \
--data '{
"blocks": [
@@ -115,27 +184,21 @@ jobs:
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Workflow:*\n${{ github.workflow }}"
},
{
"type": "mrkdwn",
"text": "*Committer:*\n${{ github.actor }}"
},
{
"type": "mrkdwn",
"text": "*Commit:*\n${{ github.sha }}"
}
]
"text": {
"type": "mrkdwn",
"text": "*View failure:* <'"${RUN_URL}"'|Click here>"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*View failure:* <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Click here>"
"text": '"$ESCAPED_PROMPT"'
}
}
]
}' ${{ secrets.CI_FAILURE_SLACK_WEBHOOK }}
}' "${SLACK_WEBHOOK}"
env:
SLACK_WEBHOOK: ${{ secrets.CI_FAILURE_SLACK_WEBHOOK }}
RUN_URL: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
BLINK_CI_FAILURE_PROMPT: ${{ vars.BLINK_CI_FAILURE_PROMPT }}
+2 -1
View File
@@ -3,6 +3,7 @@
name: PR Auto Assign
on:
# zizmor: ignore[dangerous-triggers] We explicitly want to run on pull_request_target.
pull_request_target:
types: [opened]
@@ -14,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
+17 -7
View File
@@ -19,7 +19,7 @@ jobs:
packages: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
@@ -27,10 +27,12 @@ jobs:
id: pr_number
run: |
if [ -n "${{ github.event.pull_request.number }}" ]; then
echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> "$GITHUB_OUTPUT"
else
echo "PR_NUMBER=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT
echo "PR_NUMBER=${PR_NUMBER}" >> "$GITHUB_OUTPUT"
fi
env:
PR_NUMBER: ${{ github.event.inputs.pr_number }}
- name: Delete image
continue-on-error: true
@@ -51,17 +53,21 @@ jobs:
- name: Delete helm release
run: |
set -euo pipefail
helm delete --namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "helm release not found"
helm delete --namespace "pr${PR_NUMBER}" "pr${PR_NUMBER}" || echo "helm release not found"
env:
PR_NUMBER: ${{ steps.pr_number.outputs.PR_NUMBER }}
- name: "Remove PR namespace"
run: |
kubectl delete namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "namespace not found"
kubectl delete namespace "pr${PR_NUMBER}" || echo "namespace not found"
env:
PR_NUMBER: ${{ steps.pr_number.outputs.PR_NUMBER }}
- name: "Remove DNS records"
run: |
set -euo pipefail
# Get identifier for the record
record_id=$(curl -X GET "https://api.cloudflare.com/client/v4/zones/${{ secrets.PR_DEPLOYMENTS_ZONE_ID }}/dns_records?name=%2A.pr${{ steps.pr_number.outputs.PR_NUMBER }}.${{ secrets.PR_DEPLOYMENTS_DOMAIN }}" \
record_id=$(curl -X GET "https://api.cloudflare.com/client/v4/zones/${{ secrets.PR_DEPLOYMENTS_ZONE_ID }}/dns_records?name=%2A.pr${PR_NUMBER}.${{ secrets.PR_DEPLOYMENTS_DOMAIN }}" \
-H "Authorization: Bearer ${{ secrets.PR_DEPLOYMENTS_CLOUDFLARE_API_TOKEN }}" \
-H "Content-Type:application/json" | jq -r '.result[0].id') || echo "DNS record not found"
@@ -73,9 +79,13 @@ jobs:
-H "Authorization: Bearer ${{ secrets.PR_DEPLOYMENTS_CLOUDFLARE_API_TOKEN }}" \
-H "Content-Type:application/json" | jq -r '.success'
) || echo "DNS record not found"
env:
PR_NUMBER: ${{ steps.pr_number.outputs.PR_NUMBER }}
- name: "Delete certificate"
if: ${{ github.event.pull_request.merged == true }}
run: |
set -euxo pipefail
kubectl delete certificate "pr${{ steps.pr_number.outputs.PR_NUMBER }}-tls" -n pr-deployment-certs || echo "certificate not found"
kubectl delete certificate "pr${PR_NUMBER}-tls" -n pr-deployment-certs || echo "certificate not found"
env:
PR_NUMBER: ${{ steps.pr_number.outputs.PR_NUMBER }}
+81 -64
View File
@@ -39,12 +39,14 @@ jobs:
PR_OPEN: ${{ steps.check_pr.outputs.pr_open }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Check if PR is open
id: check_pr
@@ -55,7 +57,7 @@ jobs:
echo "PR doesn't exist or is closed."
pr_open=false
fi
echo "pr_open=$pr_open" >> $GITHUB_OUTPUT
echo "pr_open=$pr_open" >> "$GITHUB_OUTPUT"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -74,14 +76,15 @@ jobs:
runs-on: "ubuntu-latest"
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Get PR number, title, and branch name
id: pr_info
@@ -90,9 +93,11 @@ jobs:
PR_NUMBER=$(gh pr view --json number | jq -r '.number')
PR_TITLE=$(gh pr view --json title | jq -r '.title')
PR_URL=$(gh pr view --json url | jq -r '.url')
echo "PR_URL=$PR_URL" >> $GITHUB_OUTPUT
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT
echo "PR_TITLE=$PR_TITLE" >> $GITHUB_OUTPUT
{
echo "PR_URL=$PR_URL"
echo "PR_NUMBER=$PR_NUMBER"
echo "PR_TITLE=$PR_TITLE"
} >> "$GITHUB_OUTPUT"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -100,8 +105,8 @@ jobs:
id: set_tags
run: |
set -euo pipefail
echo "CODER_BASE_IMAGE_TAG=$CODER_BASE_IMAGE_TAG" >> $GITHUB_OUTPUT
echo "CODER_IMAGE_TAG=$CODER_IMAGE_TAG" >> $GITHUB_OUTPUT
echo "CODER_BASE_IMAGE_TAG=$CODER_BASE_IMAGE_TAG" >> "$GITHUB_OUTPUT"
echo "CODER_IMAGE_TAG=$CODER_IMAGE_TAG" >> "$GITHUB_OUTPUT"
env:
CODER_BASE_IMAGE_TAG: ghcr.io/coder/coder-preview-base:pr${{ steps.pr_info.outputs.PR_NUMBER }}
CODER_IMAGE_TAG: ghcr.io/coder/coder-preview:pr${{ steps.pr_info.outputs.PR_NUMBER }}
@@ -118,14 +123,16 @@ jobs:
id: check_deployment
run: |
set -euo pipefail
if helm status "pr${{ steps.pr_info.outputs.PR_NUMBER }}" --namespace "pr${{ steps.pr_info.outputs.PR_NUMBER }}" > /dev/null 2>&1; then
if helm status "pr${PR_NUMBER}" --namespace "pr${PR_NUMBER}" > /dev/null 2>&1; then
echo "Deployment already exists. Skipping deployment."
NEW=false
else
echo "Deployment doesn't exist."
NEW=true
fi
echo "NEW=$NEW" >> $GITHUB_OUTPUT
echo "NEW=$NEW" >> "$GITHUB_OUTPUT"
env:
PR_NUMBER: ${{ steps.pr_info.outputs.PR_NUMBER }}
- name: Check changed files
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@@ -154,17 +161,20 @@ jobs:
- name: Print number of changed files
run: |
set -euo pipefail
echo "Total number of changed files: ${{ steps.filter.outputs.all_count }}"
echo "Number of ignored files: ${{ steps.filter.outputs.ignored_count }}"
echo "Total number of changed files: ${ALL_COUNT}"
echo "Number of ignored files: ${IGNORED_COUNT}"
env:
ALL_COUNT: ${{ steps.filter.outputs.all_count }}
IGNORED_COUNT: ${{ steps.filter.outputs.ignored_count }}
- name: Build conditionals
id: build_conditionals
run: |
set -euo pipefail
# build if the workflow is manually triggered and the deployment doesn't exist (first build or force rebuild)
echo "first_or_force_build=${{ (github.event_name == 'workflow_dispatch' && steps.check_deployment.outputs.NEW == 'true') || github.event.inputs.build == 'true' }}" >> $GITHUB_OUTPUT
echo "first_or_force_build=${{ (github.event_name == 'workflow_dispatch' && steps.check_deployment.outputs.NEW == 'true') || github.event.inputs.build == 'true' }}" >> "$GITHUB_OUTPUT"
# build if the deployment already exist and there are changes in the files that we care about (automatic updates)
echo "automatic_rebuild=${{ steps.check_deployment.outputs.NEW == 'false' && steps.filter.outputs.all_count > steps.filter.outputs.ignored_count }}" >> $GITHUB_OUTPUT
echo "automatic_rebuild=${{ steps.check_deployment.outputs.NEW == 'false' && steps.filter.outputs.all_count > steps.filter.outputs.ignored_count }}" >> "$GITHUB_OUTPUT"
comment-pr:
needs: get_info
@@ -174,7 +184,7 @@ jobs:
pull-requests: write # needed for commenting on PRs
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
@@ -218,14 +228,15 @@ jobs:
CODER_IMAGE_TAG: ${{ needs.get_info.outputs.CODER_IMAGE_TAG }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Setup Node
uses: ./.github/actions/setup-node
@@ -237,7 +248,7 @@ jobs:
uses: ./.github/actions/setup-sqlc
- name: GHCR Login
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -250,12 +261,13 @@ jobs:
make gen/mark-fresh
export DOCKER_IMAGE_NO_PREREQUISITES=true
version="$(./scripts/version.sh)"
export CODER_IMAGE_BUILD_BASE_TAG="$(CODER_IMAGE_BASE=coder-base ./scripts/image_tag.sh --version "$version")"
CODER_IMAGE_BUILD_BASE_TAG="$(CODER_IMAGE_BASE=coder-base ./scripts/image_tag.sh --version "$version")"
export CODER_IMAGE_BUILD_BASE_TAG
make -j build/coder_linux_amd64
./scripts/build_docker.sh \
--arch amd64 \
--target ${{ env.CODER_IMAGE_TAG }} \
--version $version \
--target "${CODER_IMAGE_TAG}" \
--version "$version" \
--push \
build/coder_linux_amd64
@@ -276,7 +288,7 @@ jobs:
PR_HOSTNAME: "pr${{ needs.get_info.outputs.PR_NUMBER }}.${{ secrets.PR_DEPLOYMENTS_DOMAIN }}"
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
@@ -293,13 +305,13 @@ jobs:
set -euo pipefail
foundTag=$(
gh api /orgs/coder/packages/container/coder-preview/versions |
jq -r --arg tag "pr${{ env.PR_NUMBER }}" '.[] |
jq -r --arg tag "pr${PR_NUMBER}" '.[] |
select(.metadata.container.tags == [$tag]) |
.metadata.container.tags[0]'
)
if [ -z "$foundTag" ]; then
echo "Image not found"
echo "${{ env.CODER_IMAGE_TAG }} not found in ghcr.io/coder/coder-preview"
echo "${CODER_IMAGE_TAG} not found in ghcr.io/coder/coder-preview"
exit 1
else
echo "Image found"
@@ -314,40 +326,42 @@ jobs:
curl -X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.PR_DEPLOYMENTS_ZONE_ID }}/dns_records" \
-H "Authorization: Bearer ${{ secrets.PR_DEPLOYMENTS_CLOUDFLARE_API_TOKEN }}" \
-H "Content-Type:application/json" \
--data '{"type":"CNAME","name":"*.${{ env.PR_HOSTNAME }}","content":"${{ env.PR_HOSTNAME }}","ttl":1,"proxied":false}'
--data '{"type":"CNAME","name":"*.'"${PR_HOSTNAME}"'","content":"'"${PR_HOSTNAME}"'","ttl":1,"proxied":false}'
- name: Create PR namespace
if: needs.get_info.outputs.NEW == 'true' || github.event.inputs.deploy == 'true'
run: |
set -euo pipefail
# try to delete the namespace, but don't fail if it doesn't exist
kubectl delete namespace "pr${{ env.PR_NUMBER }}" || true
kubectl create namespace "pr${{ env.PR_NUMBER }}"
kubectl delete namespace "pr${PR_NUMBER}" || true
kubectl create namespace "pr${PR_NUMBER}"
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Check and Create Certificate
if: needs.get_info.outputs.NEW == 'true' || github.event.inputs.deploy == 'true'
run: |
# Using kubectl to check if a Certificate resource already exists
# we are doing this to avoid letsenrypt rate limits
if ! kubectl get certificate pr${{ env.PR_NUMBER }}-tls -n pr-deployment-certs > /dev/null 2>&1; then
if ! kubectl get certificate "pr${PR_NUMBER}-tls" -n pr-deployment-certs > /dev/null 2>&1; then
echo "Certificate doesn't exist. Creating a new one."
envsubst < ./.github/pr-deployments/certificate.yaml | kubectl apply -f -
else
echo "Certificate exists. Skipping certificate creation."
fi
echo "Copy certificate from pr-deployment-certs to pr${{ env.PR_NUMBER }} namespace"
until kubectl get secret pr${{ env.PR_NUMBER }}-tls -n pr-deployment-certs &> /dev/null
echo "Copy certificate from pr-deployment-certs to pr${PR_NUMBER} namespace"
until kubectl get secret "pr${PR_NUMBER}-tls" -n pr-deployment-certs &> /dev/null
do
echo "Waiting for secret pr${{ env.PR_NUMBER }}-tls to be created..."
echo "Waiting for secret pr${PR_NUMBER}-tls to be created..."
sleep 5
done
(
kubectl get secret pr${{ env.PR_NUMBER }}-tls -n pr-deployment-certs -o json |
kubectl get secret "pr${PR_NUMBER}-tls" -n pr-deployment-certs -o json |
jq 'del(.metadata.namespace,.metadata.creationTimestamp,.metadata.resourceVersion,.metadata.selfLink,.metadata.uid,.metadata.managedFields)' |
kubectl -n pr${{ env.PR_NUMBER }} apply -f -
kubectl -n "pr${PR_NUMBER}" apply -f -
)
- name: Set up PostgreSQL database
@@ -355,13 +369,14 @@ jobs:
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install coder-db bitnami/postgresql \
--namespace pr${{ env.PR_NUMBER }} \
--namespace "pr${PR_NUMBER}" \
--set image.repository=bitnamilegacy/postgresql \
--set auth.username=coder \
--set auth.password=coder \
--set auth.database=coder \
--set persistence.size=10Gi
kubectl create secret generic coder-db-url -n pr${{ env.PR_NUMBER }} \
--from-literal=url="postgres://coder:coder@coder-db-postgresql.pr${{ env.PR_NUMBER }}.svc.cluster.local:5432/coder?sslmode=disable"
kubectl create secret generic coder-db-url -n "pr${PR_NUMBER}" \
--from-literal=url="postgres://coder:coder@coder-db-postgresql.pr${PR_NUMBER}.svc.cluster.local:5432/coder?sslmode=disable"
- name: Create a service account, role, and rolebinding for the PR namespace
if: needs.get_info.outputs.NEW == 'true' || github.event.inputs.deploy == 'true'
@@ -383,8 +398,8 @@ jobs:
run: |
set -euo pipefail
helm dependency update --skip-refresh ./helm/coder
helm upgrade --install "pr${{ env.PR_NUMBER }}" ./helm/coder \
--namespace "pr${{ env.PR_NUMBER }}" \
helm upgrade --install "pr${PR_NUMBER}" ./helm/coder \
--namespace "pr${PR_NUMBER}" \
--values ./pr-deploy-values.yaml \
--force
@@ -393,8 +408,8 @@ jobs:
run: |
helm repo add coder-logstream-kube https://helm.coder.com/logstream-kube
helm upgrade --install coder-logstream-kube coder-logstream-kube/coder-logstream-kube \
--namespace "pr${{ env.PR_NUMBER }}" \
--set url="https://${{ env.PR_HOSTNAME }}"
--namespace "pr${PR_NUMBER}" \
--set url="https://${PR_HOSTNAME}"
- name: Get Coder binary
if: needs.get_info.outputs.NEW == 'true' || github.event.inputs.deploy == 'true'
@@ -402,16 +417,16 @@ jobs:
set -euo pipefail
DEST="${HOME}/coder"
URL="https://${{ env.PR_HOSTNAME }}/bin/coder-linux-amd64"
URL="https://${PR_HOSTNAME}/bin/coder-linux-amd64"
mkdir -p "$(dirname ${DEST})"
mkdir -p "$(dirname "$DEST")"
COUNT=0
until $(curl --output /dev/null --silent --head --fail "$URL"); do
until curl --output /dev/null --silent --head --fail "$URL"; do
printf '.'
sleep 5
COUNT=$((COUNT+1))
if [ $COUNT -ge 60 ]; then
if [ "$COUNT" -ge 60 ]; then
echo "Timed out waiting for URL to be available"
exit 1
fi
@@ -420,7 +435,7 @@ jobs:
curl -fsSL "$URL" -o "${DEST}"
chmod +x "${DEST}"
"${DEST}" version
mv "${DEST}" /usr/local/bin/coder
sudo mv "${DEST}" /usr/local/bin/coder
- name: Create first user
if: needs.get_info.outputs.NEW == 'true' || github.event.inputs.deploy == 'true'
@@ -435,24 +450,24 @@ jobs:
# add mask so that the password is not printed to the logs
echo "::add-mask::$password"
echo "password=$password" >> $GITHUB_OUTPUT
echo "password=$password" >> "$GITHUB_OUTPUT"
coder login \
--first-user-username pr${{ env.PR_NUMBER }}-admin \
--first-user-email pr${{ env.PR_NUMBER }}@coder.com \
--first-user-password $password \
--first-user-username "pr${PR_NUMBER}-admin" \
--first-user-email "pr${PR_NUMBER}@coder.com" \
--first-user-password "$password" \
--first-user-trial=false \
--use-token-as-session \
https://${{ env.PR_HOSTNAME }}
"https://${PR_HOSTNAME}"
# Create a user for the github.actor
# TODO: update once https://github.com/coder/coder/issues/15466 is resolved
# coder users create \
# --username ${{ github.actor }} \
# --username ${GITHUB_ACTOR} \
# --login-type github
# promote the user to admin role
# coder org members edit-role ${{ github.actor }} organization-admin
# coder org members edit-role ${GITHUB_ACTOR} organization-admin
# TODO: update once https://github.com/coder/internal/issues/207 is resolved
- name: Send Slack notification
@@ -461,17 +476,19 @@ jobs:
curl -s -o /dev/null -X POST -H 'Content-type: application/json' \
-d \
'{
"pr_number": "'"${{ env.PR_NUMBER }}"'",
"pr_url": "'"${{ env.PR_URL }}"'",
"pr_title": "'"${{ env.PR_TITLE }}"'",
"pr_access_url": "'"https://${{ env.PR_HOSTNAME }}"'",
"pr_username": "'"pr${{ env.PR_NUMBER }}-admin"'",
"pr_email": "'"pr${{ env.PR_NUMBER }}@coder.com"'",
"pr_password": "'"${{ steps.setup_deployment.outputs.password }}"'",
"pr_actor": "'"${{ github.actor }}"'"
"pr_number": "'"${PR_NUMBER}"'",
"pr_url": "'"${PR_URL}"'",
"pr_title": "'"${PR_TITLE}"'",
"pr_access_url": "'"https://${PR_HOSTNAME}"'",
"pr_username": "'"pr${PR_NUMBER}-admin"'",
"pr_email": "'"pr${PR_NUMBER}@coder.com"'",
"pr_password": "'"${PASSWORD}"'",
"pr_actor": "'"${GITHUB_ACTOR}"'"
}' \
${{ secrets.PR_DEPLOYMENTS_SLACK_WEBHOOK }}
echo "Slack notification sent"
env:
PASSWORD: ${{ steps.setup_deployment.outputs.password }}
- name: Find Comment
uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e # v3.1.0
@@ -504,7 +521,7 @@ jobs:
run: |
set -euo pipefail
cd .github/pr-deployments/template
coder templates push -y --variable namespace=pr${{ env.PR_NUMBER }} kubernetes
coder templates push -y --variable "namespace=pr${PR_NUMBER}" kubernetes
# Create workspace
coder create --template="kubernetes" kube --parameter cpu=2 --parameter memory=4 --parameter home_disk_size=2 -y
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
+354 -65
View File
@@ -32,15 +32,43 @@ env:
CODER_RELEASE_NOTES: ${{ inputs.release_notes }}
jobs:
# Only allow maintainers/admins to release.
check-perms:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-8' || 'ubuntu-latest' }}
steps:
- name: Allow only maintainers/admins
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const {data} = await github.rest.repos.getCollaboratorPermissionLevel({
owner: context.repo.owner,
repo: context.repo.repo,
username: context.actor
});
const role = data.role_name || data.user?.role_name || data.permission;
const perms = data.user?.permissions || {};
core.info(`Actor ${context.actor} permission=${data.permission}, role_name=${role}`);
const allowed =
role === 'admin' ||
role === 'maintain' ||
perms.admin === true ||
perms.maintain === true;
if (!allowed) core.setFailed('Denied: requires maintain or admin');
# build-dylib is a separate job to build the dylib on macOS.
build-dylib:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-macos-latest' || 'macos-latest' }}
needs: check-perms
steps:
# Harden Runner doesn't work on macOS.
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
# If the event that triggered the build was an annotated tag (which our
# tags are supposed to be), actions/checkout has a bug where the tag in
@@ -53,14 +81,16 @@ jobs:
- name: Setup build tools
run: |
brew install bash gnu-getopt make
echo "$(brew --prefix bash)/bin" >> $GITHUB_PATH
echo "$(brew --prefix gnu-getopt)/bin" >> $GITHUB_PATH
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
{
echo "$(brew --prefix bash)/bin"
echo "$(brew --prefix gnu-getopt)/bin"
echo "$(brew --prefix make)/libexec/gnubin"
} >> "$GITHUB_PATH"
- name: Switch XCode Version
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
with:
xcode-version: "16.0.0"
xcode-version: "16.1.0"
- name: Setup Go
uses: ./.github/actions/setup-go
@@ -101,7 +131,7 @@ jobs:
AC_CERTIFICATE_PASSWORD_FILE: /tmp/apple_cert_password.txt
- name: Upload build artifacts
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: dylibs
path: |
@@ -114,7 +144,7 @@ jobs:
release:
name: Build and publish
needs: build-dylib
needs: [build-dylib, check-perms]
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-8' || 'ubuntu-latest' }}
permissions:
# Required to publish a release
@@ -122,7 +152,11 @@ jobs:
# Necessary to push docker images to ghcr.io.
packages: write
# Necessary for GCP authentication (https://github.com/google-github-actions/setup-gcloud#usage)
# Also necessary for keyless cosign (https://docs.sigstore.dev/cosign/signing/overview/)
# And for GitHub Actions attestation
id-token: write
# Required for GitHub Actions attestation
attestations: write
env:
# Necessary for Docker manifest
DOCKER_CLI_EXPERIMENTAL: "enabled"
@@ -130,14 +164,15 @@ jobs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
# If the event that triggered the build was an annotated tag (which our
# tags are supposed to be), actions/checkout has a bug where the tag in
@@ -152,9 +187,9 @@ jobs:
run: |
set -euo pipefail
version="$(./scripts/version.sh)"
echo "version=$version" >> $GITHUB_OUTPUT
echo "version=$version" >> "$GITHUB_OUTPUT"
# Speed up future version.sh calls.
echo "CODER_FORCE_VERSION=$version" >> $GITHUB_ENV
echo "CODER_FORCE_VERSION=$version" >> "$GITHUB_ENV"
echo "$version"
# Verify that all expectations for a release are met.
@@ -196,7 +231,7 @@ jobs:
release_notes_file="$(mktemp -t release_notes.XXXXXX)"
echo "$CODER_RELEASE_NOTES" > "$release_notes_file"
echo CODER_RELEASE_NOTES_FILE="$release_notes_file" >> $GITHUB_ENV
echo CODER_RELEASE_NOTES_FILE="$release_notes_file" >> "$GITHUB_ENV"
- name: Show release notes
run: |
@@ -204,7 +239,7 @@ jobs:
cat "$CODER_RELEASE_NOTES_FILE"
- name: Docker Login
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -218,26 +253,17 @@ jobs:
# Necessary for signing Windows binaries.
- name: Setup Java
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: "zulu"
java-version: "11.0"
- name: Install go-winres
run: go install github.com/tc-hib/go-winres@d743268d7ea168077ddd443c4240562d4f5e8c3e # v0.3.3
- name: Install nsis and zstd
run: sudo apt-get install -y nsis zstd
- name: Download dylibs
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: dylibs
path: ./build
- name: Insert dylibs
run: |
mv ./build/*amd64.dylib ./site/out/bin/coder-vpn-darwin-amd64.dylib
mv ./build/*arm64.dylib ./site/out/bin/coder-vpn-darwin-arm64.dylib
mv ./build/*arm64.h ./site/out/bin/coder-vpn-darwin-dylib.h
- name: Install nfpm
run: |
set -euo pipefail
@@ -255,6 +281,12 @@ jobs:
apple-codesign-0.22.0-x86_64-unknown-linux-musl/rcodesign
rm /tmp/rcodesign.tar.gz
- name: Install cosign
uses: ./.github/actions/install-cosign
- name: Install syft
uses: ./.github/actions/install-syft
- name: Setup Apple Developer certificate and API key
run: |
set -euo pipefail
@@ -285,14 +317,26 @@ jobs:
# Setup GCloud for signing Windows binaries.
- name: Authenticate to Google Cloud
id: gcloud_auth
uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
workload_identity_provider: ${{ secrets.GCP_CODE_SIGNING_WORKLOAD_ID_PROVIDER }}
service_account: ${{ secrets.GCP_CODE_SIGNING_SERVICE_ACCOUNT }}
workload_identity_provider: ${{ vars.GCP_CODE_SIGNING_WORKLOAD_ID_PROVIDER }}
service_account: ${{ vars.GCP_CODE_SIGNING_SERVICE_ACCOUNT }}
token_format: "access_token"
- name: Setup GCloud SDK
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # v2.1.4
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
- name: Download dylibs
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: dylibs
path: ./build
- name: Insert dylibs
run: |
mv ./build/*amd64.dylib ./site/out/bin/coder-vpn-darwin-amd64.dylib
mv ./build/*arm64.dylib ./site/out/bin/coder-vpn-darwin-arm64.dylib
mv ./build/*arm64.h ./site/out/bin/coder-vpn-darwin-dylib.h
- name: Build binaries
run: |
@@ -310,6 +354,9 @@ jobs:
env:
CODER_SIGN_WINDOWS: "1"
CODER_SIGN_DARWIN: "1"
CODER_SIGN_GPG: "1"
CODER_GPG_RELEASE_KEY_BASE64: ${{ secrets.GPG_RELEASE_KEY_BASE64 }}
CODER_WINDOWS_RESOURCES: "1"
AC_CERTIFICATE_FILE: /tmp/apple_cert.p12
AC_CERTIFICATE_PASSWORD_FILE: /tmp/apple_cert_password.txt
AC_APIKEY_ISSUER_ID: ${{ secrets.AC_APIKEY_ISSUER_ID }}
@@ -334,9 +381,9 @@ jobs:
set -euo pipefail
if [[ "${CODER_RELEASE:-}" != *t* ]] || [[ "${CODER_DRY_RUN:-}" == *t* ]]; then
# Empty value means use the default and avoid building a fresh one.
echo "tag=" >> $GITHUB_OUTPUT
echo "tag=" >> "$GITHUB_OUTPUT"
else
echo "tag=$(CODER_IMAGE_BASE=ghcr.io/coder/coder-base ./scripts/image_tag.sh)" >> $GITHUB_OUTPUT
echo "tag=$(CODER_IMAGE_BASE=ghcr.io/coder/coder-base ./scripts/image_tag.sh)" >> "$GITHUB_OUTPUT"
fi
- name: Create empty base-build-context directory
@@ -350,13 +397,14 @@ jobs:
# This uses OIDC authentication, so no auth variables are required.
- name: Build base Docker image via depot.dev
if: steps.image-base-tag.outputs.tag != ''
uses: depot/build-push-action@636daae76684e38c301daa0c5eca1c095b24e780 # v1.14.0
uses: depot/build-push-action@9785b135c3c76c33db102e45be96a25ab55cd507 # v1.16.2
with:
project: wl5hnrrkns
context: base-build-context
file: scripts/Dockerfile.base
platforms: linux/amd64,linux/arm64,linux/arm/v7
provenance: true
sbom: true
pull: true
no-cache: true
push: true
@@ -370,7 +418,7 @@ jobs:
# available immediately
for i in {1..10}; do
rc=0
raw_manifests=$(docker buildx imagetools inspect --raw "${{ steps.image-base-tag.outputs.tag }}") || rc=$?
raw_manifests=$(docker buildx imagetools inspect --raw "${IMAGE_TAG}") || rc=$?
if [[ "$rc" -eq 0 ]]; then
break
fi
@@ -392,8 +440,55 @@ jobs:
echo "$manifests" | grep -q linux/amd64
echo "$manifests" | grep -q linux/arm64
echo "$manifests" | grep -q linux/arm/v7
env:
IMAGE_TAG: ${{ steps.image-base-tag.outputs.tag }}
# GitHub attestation provides SLSA provenance for Docker images, establishing a verifiable
# record that these images were built in GitHub Actions with specific inputs and environment.
# This complements our existing cosign attestations (which focus on SBOMs) by adding
# GitHub-specific build provenance to enhance our supply chain security.
#
# TODO: Consider refactoring these attestation steps to use a matrix strategy or composite action
# to reduce duplication while maintaining the required functionality for each distinct image tag.
- name: GitHub Attestation for Base Docker image
id: attest_base
if: ${{ !inputs.dry_run && steps.image-base-tag.outputs.tag != '' }}
continue-on-error: true
uses: actions/attest@daf44fb950173508f38bd2406030372c1d1162b1 # v3.0.0
with:
subject-name: ${{ steps.image-base-tag.outputs.tag }}
predicate-type: "https://slsa.dev/provenance/v1"
predicate: |
{
"buildType": "https://github.com/actions/runner-images/",
"builder": {
"id": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
},
"invocation": {
"configSource": {
"uri": "git+https://github.com/${{ github.repository }}@${{ github.ref }}",
"digest": {
"sha1": "${{ github.sha }}"
},
"entryPoint": ".github/workflows/release.yaml"
},
"environment": {
"github_workflow": "${{ github.workflow }}",
"github_run_id": "${{ github.run_id }}"
}
},
"metadata": {
"buildInvocationID": "${{ github.run_id }}",
"completeness": {
"environment": true,
"materials": true
}
}
}
push-to-registry: true
- name: Build Linux Docker images
id: build_docker
run: |
set -euxo pipefail
@@ -412,18 +507,160 @@ jobs:
# being pushed so will automatically push them.
make push/build/coder_"$version"_linux.tag
# Save multiarch image tag for attestation
multiarch_image="$(./scripts/image_tag.sh)"
echo "multiarch_image=${multiarch_image}" >> "$GITHUB_OUTPUT"
# For debugging, print all docker image tags
docker images
# if the current version is equal to the highest (according to semver)
# version in the repo, also create a multi-arch image as ":latest" and
# push it
if [[ "$(git tag | grep '^v' | grep -vE '(rc|dev|-|\+|\/)' | sort -r --version-sort | head -n1)" == "v$(./scripts/version.sh)" ]]; then
# shellcheck disable=SC2046
./scripts/build_docker_multiarch.sh \
--push \
--target "$(./scripts/image_tag.sh --version latest)" \
$(cat build/coder_"$version"_linux_{amd64,arm64,armv7}.tag)
echo "created_latest_tag=true" >> "$GITHUB_OUTPUT"
else
echo "created_latest_tag=false" >> "$GITHUB_OUTPUT"
fi
env:
CODER_BASE_IMAGE_TAG: ${{ steps.image-base-tag.outputs.tag }}
- name: SBOM Generation and Attestation
if: ${{ !inputs.dry_run }}
env:
COSIGN_EXPERIMENTAL: '1'
MULTIARCH_IMAGE: ${{ steps.build_docker.outputs.multiarch_image }}
VERSION: ${{ steps.version.outputs.version }}
CREATED_LATEST_TAG: ${{ steps.build_docker.outputs.created_latest_tag }}
run: |
set -euxo pipefail
# Generate SBOM for multi-arch image with version in filename
echo "Generating SBOM for multi-arch image: ${MULTIARCH_IMAGE}"
syft "${MULTIARCH_IMAGE}" -o spdx-json > "coder_${VERSION}_sbom.spdx.json"
# Attest SBOM to multi-arch image
echo "Attesting SBOM to multi-arch image: ${MULTIARCH_IMAGE}"
cosign clean --force=true "${MULTIARCH_IMAGE}"
cosign attest --type spdxjson \
--predicate "coder_${VERSION}_sbom.spdx.json" \
--yes \
"${MULTIARCH_IMAGE}"
# If latest tag was created, also attest it
if [[ "${CREATED_LATEST_TAG}" == "true" ]]; then
latest_tag="$(./scripts/image_tag.sh --version latest)"
echo "Generating SBOM for latest image: ${latest_tag}"
syft "${latest_tag}" -o spdx-json > coder_latest_sbom.spdx.json
echo "Attesting SBOM to latest image: ${latest_tag}"
cosign clean --force=true "${latest_tag}"
cosign attest --type spdxjson \
--predicate coder_latest_sbom.spdx.json \
--yes \
"${latest_tag}"
fi
- name: GitHub Attestation for Docker image
id: attest_main
if: ${{ !inputs.dry_run }}
continue-on-error: true
uses: actions/attest@daf44fb950173508f38bd2406030372c1d1162b1 # v3.0.0
with:
subject-name: ${{ steps.build_docker.outputs.multiarch_image }}
predicate-type: "https://slsa.dev/provenance/v1"
predicate: |
{
"buildType": "https://github.com/actions/runner-images/",
"builder": {
"id": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
},
"invocation": {
"configSource": {
"uri": "git+https://github.com/${{ github.repository }}@${{ github.ref }}",
"digest": {
"sha1": "${{ github.sha }}"
},
"entryPoint": ".github/workflows/release.yaml"
},
"environment": {
"github_workflow": "${{ github.workflow }}",
"github_run_id": "${{ github.run_id }}"
}
},
"metadata": {
"buildInvocationID": "${{ github.run_id }}",
"completeness": {
"environment": true,
"materials": true
}
}
}
push-to-registry: true
# Get the latest tag name for attestation
- name: Get latest tag name
id: latest_tag
if: ${{ !inputs.dry_run && steps.build_docker.outputs.created_latest_tag == 'true' }}
run: echo "tag=$(./scripts/image_tag.sh --version latest)" >> "$GITHUB_OUTPUT"
# If this is the highest version according to semver, also attest the "latest" tag
- name: GitHub Attestation for "latest" Docker image
id: attest_latest
if: ${{ !inputs.dry_run && steps.build_docker.outputs.created_latest_tag == 'true' }}
continue-on-error: true
uses: actions/attest@daf44fb950173508f38bd2406030372c1d1162b1 # v3.0.0
with:
subject-name: ${{ steps.latest_tag.outputs.tag }}
predicate-type: "https://slsa.dev/provenance/v1"
predicate: |
{
"buildType": "https://github.com/actions/runner-images/",
"builder": {
"id": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
},
"invocation": {
"configSource": {
"uri": "git+https://github.com/${{ github.repository }}@${{ github.ref }}",
"digest": {
"sha1": "${{ github.sha }}"
},
"entryPoint": ".github/workflows/release.yaml"
},
"environment": {
"github_workflow": "${{ github.workflow }}",
"github_run_id": "${{ github.run_id }}"
}
},
"metadata": {
"buildInvocationID": "${{ github.run_id }}",
"completeness": {
"environment": true,
"materials": true
}
}
}
push-to-registry: true
# Report attestation failures but don't fail the workflow
- name: Check attestation status
if: ${{ !inputs.dry_run }}
run: | # zizmor: ignore[template-injection] We're just reading steps.attest_x.outcome here, no risk of injection
if [[ "${{ steps.attest_base.outcome }}" == "failure" && "${{ steps.attest_base.conclusion }}" != "skipped" ]]; then
echo "::warning::GitHub attestation for base image failed"
fi
if [[ "${{ steps.attest_main.outcome }}" == "failure" ]]; then
echo "::warning::GitHub attestation for main image failed"
fi
if [[ "${{ steps.attest_latest.outcome }}" == "failure" && "${{ steps.attest_latest.conclusion }}" != "skipped" ]]; then
echo "::warning::GitHub attestation for latest image failed"
fi
- name: Generate offline docs
run: |
version="$(./scripts/version.sh)"
@@ -432,6 +669,30 @@ jobs:
- name: ls build
run: ls -lh build
- name: Publish Coder CLI binaries and detached signatures to GCS
if: ${{ !inputs.dry_run }}
run: |
set -euxo pipefail
version="$(./scripts/version.sh)"
# Source array of slim binaries
declare -A binaries
binaries["coder-darwin-amd64"]="coder-slim_${version}_darwin_amd64"
binaries["coder-darwin-arm64"]="coder-slim_${version}_darwin_arm64"
binaries["coder-linux-amd64"]="coder-slim_${version}_linux_amd64"
binaries["coder-linux-arm64"]="coder-slim_${version}_linux_arm64"
binaries["coder-linux-armv7"]="coder-slim_${version}_linux_armv7"
binaries["coder-windows-amd64.exe"]="coder-slim_${version}_windows_amd64.exe"
binaries["coder-windows-arm64.exe"]="coder-slim_${version}_windows_arm64.exe"
for cli_name in "${!binaries[@]}"; do
slim_binary="${binaries[$cli_name]}"
detached_signature="${slim_binary}.asc"
gcloud storage cp "./build/${slim_binary}" "gs://releases.coder.com/coder-cli/${version}/${cli_name}"
gcloud storage cp "./build/${detached_signature}" "gs://releases.coder.com/coder-cli/${version}/${cli_name}.asc"
done
- name: Publish release
run: |
set -euo pipefail
@@ -445,28 +706,41 @@ jobs:
fi
declare -p publish_args
# Build the list of files to publish
files=(
./build/*_installer.exe
./build/*.zip
./build/*.tar.gz
./build/*.tgz
./build/*.apk
./build/*.deb
./build/*.rpm
"./coder_${VERSION}_sbom.spdx.json"
)
# Only include the latest SBOM file if it was created
if [[ "${CREATED_LATEST_TAG}" == "true" ]]; then
files+=(./coder_latest_sbom.spdx.json)
fi
./scripts/release/publish.sh \
"${publish_args[@]}" \
--release-notes-file "$CODER_RELEASE_NOTES_FILE" \
./build/*_installer.exe \
./build/*.zip \
./build/*.tar.gz \
./build/*.tgz \
./build/*.apk \
./build/*.deb \
./build/*.rpm
"${files[@]}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CODER_GPG_RELEASE_KEY_BASE64: ${{ secrets.GPG_RELEASE_KEY_BASE64 }}
VERSION: ${{ steps.version.outputs.version }}
CREATED_LATEST_TAG: ${{ steps.build_docker.outputs.created_latest_tag }}
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_ID_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
workload_identity_provider: ${{ vars.GCP_WORKLOAD_ID_PROVIDER }}
service_account: ${{ vars.GCP_SERVICE_ACCOUNT }}
- name: Setup GCloud SDK
uses: google-github-actions/setup-gcloud@77e7a554d41e2ee56fc945c52dfd3f33d12def9a # 2.1.4
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # 3.0.1
- name: Publish Helm Chart
if: ${{ !inputs.dry_run }}
@@ -478,14 +752,16 @@ jobs:
cp "build/provisioner_helm_${version}.tgz" build/helm
gsutil cp gs://helm.coder.com/v2/index.yaml build/helm/index.yaml
helm repo index build/helm --url https://helm.coder.com/v2 --merge build/helm/index.yaml
gsutil -h "Cache-Control:no-cache,max-age=0" cp build/helm/coder_helm_${version}.tgz gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp build/helm/provisioner_helm_${version}.tgz gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp build/helm/index.yaml gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp helm/artifacthub-repo.yml gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp "build/helm/coder_helm_${version}.tgz" gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp "build/helm/provisioner_helm_${version}.tgz" gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp "build/helm/index.yaml" gs://helm.coder.com/v2
gsutil -h "Cache-Control:no-cache,max-age=0" cp "helm/artifacthub-repo.yml" gs://helm.coder.com/v2
helm push "build/coder_helm_${version}.tgz" oci://ghcr.io/coder/chart
helm push "build/provisioner_helm_${version}.tgz" oci://ghcr.io/coder/chart
- name: Upload artifacts to actions (if dry-run)
if: ${{ inputs.dry_run }}
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: release-artifacts
path: |
@@ -496,6 +772,15 @@ jobs:
./build/*.apk
./build/*.deb
./build/*.rpm
./coder_${{ steps.version.outputs.version }}_sbom.spdx.json
retention-days: 7
- name: Upload latest sbom artifact to actions (if dry-run)
if: inputs.dry_run && steps.build_docker.outputs.created_latest_tag == 'true'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: latest-sbom-artifact
path: ./coder_latest_sbom.spdx.json
retention-days: 7
- name: Send repository-dispatch event
@@ -517,18 +802,18 @@ jobs:
# TODO: skip this if it's not a new release (i.e. a backport). This is
# fine right now because it just makes a PR that we can close.
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Update homebrew
env:
# Variables used by the `gh` command
GH_REPO: coder/homebrew-coder
GH_TOKEN: ${{ secrets.CDRCI_GITHUB_TOKEN }}
VERSION: ${{ needs.release.outputs.version }}
run: |
# Keep version number around for reference, removing any potential leading v
coder_version="$(echo "${{ needs.release.outputs.version }}" | tr -d v)"
coder_version="$(echo "${VERSION}" | tr -d v)"
set -euxo pipefail
@@ -547,9 +832,9 @@ jobs:
wget "$checksums_url" -O checksums.txt
# Get the SHAs
darwin_arm_sha="$(cat checksums.txt | grep "darwin_arm64.zip" | awk '{ print $1 }')"
darwin_intel_sha="$(cat checksums.txt | grep "darwin_amd64.zip" | awk '{ print $1 }')"
linux_sha="$(cat checksums.txt | grep "linux_amd64.tar.gz" | awk '{ print $1 }')"
darwin_arm_sha="$(grep "darwin_arm64.zip" checksums.txt | awk '{ print $1 }')"
darwin_intel_sha="$(grep "darwin_amd64.zip" checksums.txt | awk '{ print $1 }')"
linux_sha="$(grep "linux_amd64.tar.gz" checksums.txt | awk '{ print $1 }')"
echo "macOS arm64: $darwin_arm_sha"
echo "macOS amd64: $darwin_intel_sha"
@@ -562,7 +847,7 @@ jobs:
# Check if a PR already exists.
pr_count="$(gh pr list --search "head:$brew_branch" --json id,closed | jq -r ".[] | select(.closed == false) | .id" | wc -l)"
if [[ "$pr_count" > 0 ]]; then
if [ "$pr_count" -gt 0 ]; then
echo "Bailing out as PR already exists" 2>&1
exit 0
fi
@@ -581,8 +866,8 @@ jobs:
-B master -H "$brew_branch" \
-t "coder $coder_version" \
-b "" \
-r "${{ github.actor }}" \
-a "${{ github.actor }}" \
-r "${GITHUB_ACTOR}" \
-a "${GITHUB_ACTOR}" \
-b "This automatic PR was triggered by the release of Coder v$coder_version"
publish-winget:
@@ -593,7 +878,7 @@ jobs:
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
@@ -603,9 +888,10 @@ jobs:
GH_TOKEN: ${{ secrets.CDRCI_GITHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
# If the event that triggered the build was an annotated tag (which our
# tags are supposed to be), actions/checkout has a bug where the tag in
@@ -624,7 +910,7 @@ jobs:
# The package version is the same as the tag minus the leading "v".
# The version in this output already has the leading "v" removed but
# we do it again to be safe.
$version = "${{ needs.release.outputs.version }}".Trim('v')
$version = $env:VERSION.Trim('v')
$release_assets = gh release view --repo coder/coder "v${version}" --json assets | `
ConvertFrom-Json
@@ -656,13 +942,14 @@ jobs:
# For wingetcreate. We need a real token since we're pushing a commit
# to GitHub and then making a PR in a different repo.
WINGET_GH_TOKEN: ${{ secrets.CDRCI_GITHUB_TOKEN }}
VERSION: ${{ needs.release.outputs.version }}
- name: Comment on PR
run: |
# wait 30 seconds
Start-Sleep -Seconds 30.0
# Find the PR that wingetcreate just made.
$version = "${{ needs.release.outputs.version }}".Trim('v')
$version = $env:VERSION.Trim('v')
$pr_list = gh pr list --repo microsoft/winget-pkgs --search "author:cdrci Coder.Coder version ${version}" --limit 1 --json number | `
ConvertFrom-Json
$pr_number = $pr_list[0].number
@@ -673,6 +960,7 @@ jobs:
# For gh CLI. We need a real token since we're commenting on a PR in a
# different repo.
GH_TOKEN: ${{ secrets.CDRCI_GITHUB_TOKEN }}
VERSION: ${{ needs.release.outputs.version }}
# publish-sqlc pushes the latest schema to sqlc cloud.
# At present these pushes cannot be tagged, so the last push is always the latest.
@@ -683,14 +971,15 @@ jobs:
if: ${{ !inputs.dry_run }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 1
persist-credentials: false
# We need golang to run the migration main.go
- name: Setup Go
+5 -5
View File
@@ -20,17 +20,17 @@ jobs:
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: "Checkout code"
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
with:
results_file: results.sarif
results_format: sarif
@@ -39,7 +39,7 @@ jobs:
# Upload the results as artifacts.
- name: "Upload artifact"
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: SARIF file
path: results.sarif
@@ -47,6 +47,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
with:
sarif_file: results.sarif
+22 -12
View File
@@ -27,18 +27,20 @@ jobs:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-8' || 'ubuntu-latest' }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Setup Go
uses: ./.github/actions/setup-go
- name: Initialize CodeQL
uses: github/codeql-action/init@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
with:
languages: go, javascript
@@ -48,7 +50,7 @@ jobs:
rm Makefile
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
- name: Send Slack notification on failure
if: ${{ failure() }}
@@ -67,14 +69,15 @@ jobs:
runs-on: ${{ github.repository_owner == 'coder' && 'depot-ubuntu-22.04-8' || 'ubuntu-latest' }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Setup Go
uses: ./.github/actions/setup-go
@@ -85,6 +88,12 @@ jobs:
- name: Setup sqlc
uses: ./.github/actions/setup-sqlc
- name: Install cosign
uses: ./.github/actions/install-cosign
- name: Install syft
uses: ./.github/actions/install-syft
- name: Install yq
run: go run github.com/mikefarah/yq/v4@v4.44.3
- name: Install mockgen
@@ -99,7 +108,7 @@ jobs:
# version in the comments will differ. This is also defined in
# ci.yaml.
set -euxo pipefail
cd dogfood/contents
cd dogfood/coder
mkdir -p /usr/local/bin
mkdir -p /usr/local/include
@@ -128,15 +137,16 @@ jobs:
# This environment variables forces scripts/build_docker.sh to build
# the base image tag locally instead of using the cached version from
# the registry.
export CODER_IMAGE_BUILD_BASE_TAG="$(CODER_IMAGE_BASE=coder-base ./scripts/image_tag.sh --version "$version")"
CODER_IMAGE_BUILD_BASE_TAG="$(CODER_IMAGE_BASE=coder-base ./scripts/image_tag.sh --version "$version")"
export CODER_IMAGE_BUILD_BASE_TAG
# We would like to use make -j here, but it doesn't work with the some recent additions
# to our code generation.
make "$image_job"
echo "image=$(cat "$image_job")" >> $GITHUB_OUTPUT
echo "image=$(cat "$image_job")" >> "$GITHUB_OUTPUT"
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
with:
image-ref: ${{ steps.build.outputs.image }}
format: sarif
@@ -144,13 +154,13 @@ jobs:
severity: "CRITICAL,HIGH"
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d # v3.28.10
uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
with:
sarif_file: trivy-results.sarif
category: "Trivy"
- name: Upload Trivy scan results as an artifact
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: trivy
path: trivy-results.sarif
+9 -7
View File
@@ -18,12 +18,12 @@ jobs:
pull-requests: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: stale
uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
with:
stale-issue-label: "stale"
stale-pr-label: "stale"
@@ -44,7 +44,7 @@ jobs:
# Start with the oldest issues, always.
ascending: true
- name: "Close old issues labeled likely-no"
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -96,14 +96,16 @@ jobs:
contents: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Run delete-old-branches-action
uses: beatlabs/delete-old-branches-action@6e94df089372a619c01ae2c2f666bf474f890911 # v0.0.10
uses: beatlabs/delete-old-branches-action@4eeeb8740ff8b3cb310296ddd6b43c3387734588 # v0.0.11
with:
repo_token: ${{ github.token }}
date: "6 months ago"
@@ -118,7 +120,7 @@ jobs:
actions: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
+35
View File
@@ -0,0 +1,35 @@
name: Start Workspace On Issue Creation or Comment
on:
issues:
types: [opened]
issue_comment:
types: [created]
permissions:
issues: write
jobs:
comment:
runs-on: ubuntu-latest
if: >-
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@coder')) ||
(github.event_name == 'issues' && contains(github.event.issue.body, '@coder'))
environment: dev.coder.com
timeout-minutes: 5
steps:
- name: Start Coder workspace
uses: coder/start-workspace-action@f97a681b4cc7985c9eef9963750c7cc6ebc93a19
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
github-username: >-
${{
(github.event_name == 'issue_comment' && github.event.comment.user.login) ||
(github.event_name == 'issues' && github.event.issue.user.login)
}}
coder-url: ${{ secrets.CODER_URL }}
coder-token: ${{ secrets.CODER_TOKEN }}
template-name: ${{ secrets.CODER_TEMPLATE_NAME }}
parameters: |-
AI Prompt: "Use the gh CLI tool to read the details of issue https://github.com/${{ github.repository }}/issues/${{ github.event.issue.number }} and then address it."
Region: us-pittsburgh
+217
View File
@@ -0,0 +1,217 @@
name: AI Triage Automation
on:
issues:
types:
- labeled
workflow_dispatch:
inputs:
issue_url:
description: "GitHub Issue URL to process"
required: true
type: string
template_name:
description: "Coder template to use for workspace"
required: true
default: "traiage"
type: string
template_preset:
description: "Template preset to use"
required: true
default: "Default"
type: string
prefix:
description: "Prefix for workspace name"
required: false
default: "traiage"
type: string
jobs:
traiage:
name: Triage GitHub Issue with Claude Code
runs-on: ubuntu-latest
if: github.event.label.name == 'traiage' || github.event_name == 'workflow_dispatch'
timeout-minutes: 30
env:
CODER_URL: ${{ secrets.TRAIAGE_CODER_URL }}
CODER_SESSION_TOKEN: ${{ secrets.TRAIAGE_CODER_SESSION_TOKEN }}
permissions:
contents: read
issues: write
actions: write
steps:
# This is only required for testing locally using nektos/act, so leaving commented out.
# An alternative is to use a larger or custom image.
# - name: Install Github CLI
# id: install-gh
# run: |
# (type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
# && sudo mkdir -p -m 755 /etc/apt/keyrings \
# && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \
# && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
# && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
# && sudo mkdir -p -m 755 /etc/apt/sources.list.d \
# && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
# && sudo apt update \
# && sudo apt install gh -y
- name: Determine Inputs
id: determine-inputs
if: always()
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_EVENT_ISSUE_HTML_URL: ${{ github.event.issue.html_url }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
GITHUB_EVENT_USER_ID: ${{ github.event.sender.id }}
GITHUB_EVENT_USER_LOGIN: ${{ github.event.sender.login }}
INPUTS_ISSUE_URL: ${{ inputs.issue_url }}
INPUTS_TEMPLATE_NAME: ${{ inputs.template_name || 'traiage' }}
INPUTS_TEMPLATE_PRESET: ${{ inputs.template_preset || 'Default'}}
INPUTS_PREFIX: ${{ inputs.prefix || 'traiage' }}
GH_TOKEN: ${{ github.token }}
run: |
echo "Using template name: ${INPUTS_TEMPLATE_NAME}"
echo "template_name=${INPUTS_TEMPLATE_NAME}" >> "${GITHUB_OUTPUT}"
echo "Using template preset: ${INPUTS_TEMPLATE_PRESET}"
echo "template_preset=${INPUTS_TEMPLATE_PRESET}" >> "${GITHUB_OUTPUT}"
echo "Using prefix: ${INPUTS_PREFIX}"
echo "prefix=${INPUTS_PREFIX}" >> "${GITHUB_OUTPUT}"
# For workflow_dispatch, use the actor who triggered it
# For issues events, use the issue author.
if [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
if ! GITHUB_USER_ID=$(gh api "users/${GITHUB_ACTOR}" --jq '.id'); then
echo "::error::Failed to get GitHub user ID for actor ${GITHUB_ACTOR}"
exit 1
fi
echo "Using workflow_dispatch actor: ${GITHUB_ACTOR} (ID: ${GITHUB_USER_ID})"
echo "github_user_id=${GITHUB_USER_ID}" >> "${GITHUB_OUTPUT}"
echo "github_username=${GITHUB_ACTOR}" >> "${GITHUB_OUTPUT}"
echo "Using issue URL: ${INPUTS_ISSUE_URL}"
echo "issue_url=${INPUTS_ISSUE_URL}" >> "${GITHUB_OUTPUT}"
exit 0
elif [[ "${GITHUB_EVENT_NAME}" == "issues" ]]; then
GITHUB_USER_ID=${GITHUB_EVENT_USER_ID}
echo "Using issue author: ${GITHUB_EVENT_USER_LOGIN} (ID: ${GITHUB_USER_ID})"
echo "github_user_id=${GITHUB_USER_ID}" >> "${GITHUB_OUTPUT}"
echo "github_username=${GITHUB_EVENT_USER_LOGIN}" >> "${GITHUB_OUTPUT}"
echo "Using issue URL: ${GITHUB_EVENT_ISSUE_HTML_URL}"
echo "issue_url=${GITHUB_EVENT_ISSUE_HTML_URL}" >> "${GITHUB_OUTPUT}"
exit 0
else
echo "::error::Unsupported event type: ${GITHUB_EVENT_NAME}"
exit 1
fi
- name: Verify push access
env:
GITHUB_REPOSITORY: ${{ github.repository }}
GH_TOKEN: ${{ github.token }}
GITHUB_USERNAME: ${{ steps.determine-inputs.outputs.github_username }}
GITHUB_USER_ID: ${{ steps.determine-inputs.outputs.github_user_id }}
run: |
# Query the actors permission on this repo
can_push="$(gh api "/repos/${GITHUB_REPOSITORY}/collaborators/${GITHUB_USERNAME}/permission" --jq '.user.permissions.push')"
if [[ "${can_push}" != "true" ]]; then
echo "::error title=Access Denied::${GITHUB_USERNAME} does not have push access to ${GITHUB_REPOSITORY}"
exit 1
fi
- name: Extract context key from issue
id: extract-context
env:
ISSUE_URL: ${{ steps.determine-inputs.outputs.issue_url }}
GH_TOKEN: ${{ github.token }}
run: |
issue_number="$(gh issue view "${ISSUE_URL}" --json number --jq '.number')"
context_key="gh-${issue_number}"
echo "context_key=${context_key}" >> "${GITHUB_OUTPUT}"
echo "CONTEXT_KEY=${context_key}" >> "${GITHUB_ENV}"
- name: Download and install Coder binary
shell: bash
env:
CODER_URL: ${{ secrets.TRAIAGE_CODER_URL }}
run: |
if [ "${{ runner.arch }}" == "ARM64" ]; then
ARCH="arm64"
else
ARCH="amd64"
fi
mkdir -p "${HOME}/.local/bin"
curl -fsSL --compressed "$CODER_URL/bin/coder-linux-${ARCH}" -o "${HOME}/.local/bin/coder"
chmod +x "${HOME}/.local/bin/coder"
export PATH="$HOME/.local/bin:$PATH"
coder version
coder whoami
echo "$HOME/.local/bin" >> "${GITHUB_PATH}"
- name: Get Coder username from GitHub actor
id: get-coder-username
env:
CODER_SESSION_TOKEN: ${{ secrets.TRAIAGE_CODER_SESSION_TOKEN }}
GH_TOKEN: ${{ github.token }}
GITHUB_USER_ID: ${{ steps.determine-inputs.outputs.github_user_id }}
run: |
user_json=$(
coder users list --github-user-id="${GITHUB_USER_ID}" --output=json
)
coder_username=$(jq -r 'first | .username' <<< "$user_json")
[[ -z "${coder_username}" || "${coder_username}" == "null" ]] && echo "No Coder user with GitHub user ID ${GITHUB_USER_ID} found" && exit 1
echo "coder_username=${coder_username}" >> "${GITHUB_OUTPUT}"
- name: Checkout repository
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
# TODO(Cian): this is a good use-case for 'recipes'
- name: Create Coder task
id: create-task
env:
CODER_USERNAME: ${{ steps.get-coder-username.outputs.coder_username }}
CONTEXT_KEY: ${{ steps.extract-context.outputs.context_key }}
GH_TOKEN: ${{ github.token }}
GITHUB_REPOSITORY: ${{ github.repository }}
ISSUE_URL: ${{ steps.determine-inputs.outputs.issue_url }}
PREFIX: ${{ steps.determine-inputs.outputs.prefix }}
RUN_ID: ${{ github.run_id }}
TEMPLATE_NAME: ${{ steps.determine-inputs.outputs.template_name }}
TEMPLATE_PARAMETERS: ${{ secrets.TRAIAGE_TEMPLATE_PARAMETERS }}
TEMPLATE_PRESET: ${{ steps.determine-inputs.outputs.template_preset }}
run: |
# Fetch issue description using `gh` CLI
#shellcheck disable=SC2016 # The template string should not be subject to shell expansion
issue_description=$(gh issue view "${ISSUE_URL}" \
--json 'title,body,comments' \
--template '{{printf "%s\n\n%s\n\nComments:\n" .title .body}}{{range $k, $v := .comments}} - {{index $v.author "login"}}: {{printf "%s\n" $v.body}}{{end}}')
# Write a prompt to PROMPT_FILE
PROMPT=$(cat <<EOF
Fix ${ISSUE_URL}
Analyze the below GitHub issue description, understand the root cause, and make appropriate changes to resolve the issue.
---
${issue_description}
EOF
)
export PROMPT
export TASK_NAME="${PREFIX}-${CONTEXT_KEY}-${RUN_ID}"
echo "Creating task: $TASK_NAME"
./scripts/traiage.sh create
if [[ "${ISSUE_URL}" == "https://github.com/${GITHUB_REPOSITORY}"* ]]; then
gh issue comment "${ISSUE_URL}" --body "Task created: https://dev.coder.com/tasks/${CODER_USERNAME}/${TASK_NAME}" --create-if-none --edit-last
else
echo "Skipping comment on other repo."
fi
echo "TASK_NAME=${CODER_USERNAME}/${TASK_NAME}" >> "${GITHUB_OUTPUT}"
echo "TASK_NAME=${CODER_USERNAME}/${TASK_NAME}" >> "${GITHUB_ENV}"
+8 -1
View File
@@ -1,3 +1,7 @@
[default]
extend-ignore-identifiers-re = ["gho_.*"]
extend-ignore-re = ["(#|//)\\s*spellchecker:ignore-next-line\\n.*"]
[default.extend-identifiers]
alog = "alog"
Jetbrains = "JetBrains"
@@ -24,6 +28,8 @@ EDE = "EDE"
HELO = "HELO"
LKE = "LKE"
byt = "byt"
typ = "typ"
Inferrable = "Inferrable"
[files]
extend-exclude = [
@@ -42,5 +48,6 @@ extend-exclude = [
"site/src/pages/SetupPage/countries.tsx",
"provisioner/terraform/testdata/**",
# notifications' golden files confuse the detector because of quoted-printable encoding
"coderd/notifications/testdata/**"
"coderd/notifications/testdata/**",
"agent/agentcontainers/testdata/devcontainercli/**",
]
+10 -5
View File
@@ -21,27 +21,32 @@ jobs:
pull-requests: write # required to post PR review comments by the action
steps:
- name: Harden Runner
uses: step-security/harden-runner@4d991eb9b905ef189e4c376166672c3f2f230481 # v2.11.0
uses: step-security/harden-runner@f4a75cfd619ee5ce8d5b864b0d183aff3c69b55a # v2.13.1
with:
egress-policy: audit
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Check Markdown links
uses: umbrelladocs/action-linkspector@de84085e0f51452a470558693d7d308fbb2fa261 # v1.2.5
uses: umbrelladocs/action-linkspector@874d01cae9fd488e3077b08952093235bd626977 # v1.3.7
id: markdown-link-check
# checks all markdown files from /docs including all subfolders
with:
reporter: github-pr-review
config_file: ".github/.linkspector.yml"
fail_on_error: "true"
filter_mode: "nofilter"
filter_mode: "file"
- name: Send Slack notification
if: failure() && github.event_name == 'schedule'
run: |
curl -X POST -H 'Content-type: application/json' -d '{"msg":"Broken links found in the documentation. Please check the logs at ${{ env.LOGS_URL }}"}' ${{ secrets.DOCS_LINK_SLACK_WEBHOOK }}
curl \
-X POST \
-H 'Content-type: application/json' \
-d '{"msg":"Broken links found in the documentation. Please check the logs at '"${LOGS_URL}"'"}' "${{ secrets.DOCS_LINK_SLACK_WEBHOOK }}"
echo "Sent Slack notification"
env:
LOGS_URL: https://github.com/coder/coder/actions/runs/${{ github.run_id }}
+4
View File
@@ -0,0 +1,4 @@
rules:
cache-poisoning:
ignore:
- "ci.yaml:184"
+9 -1
View File
@@ -32,7 +32,8 @@ site/e2e/.auth.json
site/playwright-report/*
site/.swc
# Make target for updating golden files (any dir).
# Make target for updating generated/golden files (any dir).
.gen
.gen-golden
# Build
@@ -49,6 +50,8 @@ site/stats/
*.tfplan
*.lock.hcl
.terraform/
!coderd/testdata/parameters/modules/.terraform/
!provisioner/terraform/testdata/modules-source-caching/.terraform/
**/.coderv2/*
**/__debug_bin
@@ -78,3 +81,8 @@ result
# Zed
.zed_server
# dlv debug binaries for go tests
__debug_bin*
**/.claude/settings.local.json
+22 -30
View File
@@ -24,30 +24,19 @@ linters-settings:
enabled-checks:
# - appendAssign
# - appendCombine
- argOrder
# - assignOp
# - badCall
- badCond
- badLock
- badRegexp
- boolExprSimplify
# - builtinShadow
- builtinShadowDecl
- captLocal
- caseOrder
- codegenComment
# - commentedOutCode
- commentedOutImport
- commentFormatting
- defaultCaseOrder
- deferUnlambda
# - deprecatedComment
# - docStub
- dupArg
- dupBranchBody
- dupCase
- dupImport
- dupSubExpr
# - elseif
- emptyFallthrough
# - emptyStringTest
@@ -56,8 +45,6 @@ linters-settings:
# - exitAfterDefer
# - exposedSyncMutex
# - filepathJoin
- flagDeref
- flagName
- hexLiteral
# - httpNoBody
# - hugeParam
@@ -65,47 +52,36 @@ linters-settings:
# - importShadow
- indexAlloc
- initClause
- mapKey
- methodExprCall
# - nestingReduce
- newDeref
- nilValReturn
# - octalLiteral
- offBy1
# - paramTypeCombine
# - preferStringWriter
# - preferWriteByte
# - ptrToRefParam
# - rangeExprCopy
# - rangeValCopy
- regexpMust
- regexpPattern
# - regexpSimplify
- ruleguard
- singleCaseSwitch
- sloppyLen
# - sloppyReassign
- sloppyTypeAssert
- sortSlice
- sprintfQuotedString
- sqlQuery
# - stringConcatSimplify
# - stringXbytes
# - suspiciousSorting
- switchTrue
- truncateCmp
- typeAssertChain
# - typeDefFirst
- typeSwitchVar
# - typeUnparen
- underef
# - unlabelStmt
# - unlambda
# - unnamedResult
# - unnecessaryBlock
# - unnecessaryDefer
# - unslice
- valSwap
- weakCond
# - whyNoLint
# - wrapperFunc
@@ -188,10 +164,21 @@ linters-settings:
- name: unnecessary-stmt
- name: unreachable-code
- name: unused-parameter
exclude: "**/*_test.go"
- name: unused-receiver
- name: var-declaration
- name: var-naming
- name: waitgroup-by-value
usetesting:
# Only os-setenv is enabled because we migrated to usetesting from another linter that
# only covered os-setenv.
os-setenv: true
os-create-temp: false
os-mkdir-temp: false
os-temp-dir: false
os-chdir: false
context-background: false
context-todo: false
# irrelevant as of Go v1.22: https://go.dev/blog/loopvar-preview
govet:
@@ -203,6 +190,13 @@ linters-settings:
- G601
issues:
exclude-dirs:
- node_modules
- .git
exclude-files:
- scripts/rules.go
# Rules listed here: https://github.com/securego/gosec#available-rules
exclude-rules:
- path: _test\.go
@@ -214,17 +208,15 @@ issues:
- path: scripts/*
linters:
- exhaustruct
- path: scripts/rules.go
linters:
- ALL
fix: true
max-issues-per-linter: 0
max-same-issues: 0
run:
skip-dirs:
- node_modules
- .git
skip-files:
- scripts/rules.go
timeout: 10m
# Over time, add more and more linters from
@@ -270,7 +262,6 @@ linters:
# - wastedassign
- staticcheck
- tenv
# In Go, it's possible for a package to test it's internal functionality
# without testing any exported functions. This is enabled to promote
# decomposing a package before testing it's internals. A function caller
@@ -283,4 +274,5 @@ linters:
- typecheck
- unconvert
- unused
- usetesting
- dupl
+36
View File
@@ -0,0 +1,36 @@
{
"mcpServers": {
"go-language-server": {
"type": "stdio",
"command": "go",
"args": [
"run",
"github.com/isaacphi/mcp-language-server@latest",
"-workspace",
"./",
"-lsp",
"go",
"--",
"run",
"golang.org/x/tools/gopls@latest"
],
"env": {}
},
"typescript-language-server": {
"type": "stdio",
"command": "go",
"args": [
"run",
"github.com/isaacphi/mcp-language-server@latest",
"-workspace",
"./site/",
"-lsp",
"pnpx",
"--",
"typescript-language-server",
"--stdio"
],
"env": {}
}
}
}
+8 -9
View File
@@ -1,14 +1,14 @@
{
// For info about snippets, visit https://code.visualstudio.com/docs/editor/userdefinedsnippets
// https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts
"admonition": {
"prefix": "#callout",
"alert": {
"prefix": "#alert",
"body": [
"<blockquote class=\"admonition ${1|caution,important,note,tip,warning|}\">\n",
"${TM_SELECTED_TEXT:${2:add info here}}\n",
"</blockquote>\n"
"> [!${1|CAUTION,IMPORTANT,NOTE,TIP,WARNING|}]",
"> ${TM_SELECTED_TEXT:${2:add info here}}\n"
],
"description": "callout admonition caution info note tip warning"
"description": "callout admonition caution important note tip warning"
},
"fenced code block": {
"prefix": "#codeblock",
@@ -23,9 +23,8 @@
"premium-feature": {
"prefix": "#premium-feature",
"body": [
"<blockquote class=\"info\">\n",
"${1:feature} ${2|is,are|} an Enterprise and Premium feature. [Learn more](https://coder.com/pricing#compare-plans).\n",
"</blockquote>"
"> [!NOTE]\n",
"> ${1:feature} ${2|is,are|} an Enterprise and Premium feature. [Learn more](https://coder.com/pricing#compare-plans).\n"
]
},
"tabs": {
+7 -2
View File
@@ -49,13 +49,18 @@
"[javascript][javascriptreact][json][jsonc][typescript][typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit"
"source.fixAll.biome": "explicit"
// "source.organizeImports.biome": "explicit"
}
},
"tailwindCSS.classFunctions": ["cva", "cn"],
"[css][html][markdown][yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"typos.config": ".github/workflows/typos.toml"
"typos.config": ".github/workflows/typos.toml",
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
},
"biome.lsp.bin": "site/node_modules/.bin/biome"
}
Symlink
+1
View File
@@ -0,0 +1 @@
CLAUDE.md
+138
View File
@@ -0,0 +1,138 @@
# Coder Development Guidelines
@.claude/docs/WORKFLOWS.md
@.cursorrules
@README.md
@package.json
## 🚀 Essential Commands
| Task | Command | Notes |
|-------------------|--------------------------|----------------------------------|
| **Development** | `./scripts/develop.sh` | ⚠️ Don't use manual build |
| **Build** | `make build` | Fat binaries (includes server) |
| **Build Slim** | `make build-slim` | Slim binaries |
| **Test** | `make test` | Full test suite |
| **Test Single** | `make test RUN=TestName` | Faster than full suite |
| **Test Postgres** | `make test-postgres` | Run tests with Postgres database |
| **Test Race** | `make test-race` | Run tests with Go race detector |
| **Lint** | `make lint` | Always run after changes |
| **Generate** | `make gen` | After database changes |
| **Format** | `make fmt` | Auto-format code |
| **Clean** | `make clean` | Clean build artifacts |
### Frontend Commands (site directory)
- `pnpm build` - Build frontend
- `pnpm dev` - Run development server
- `pnpm check` - Run code checks
- `pnpm format` - Format frontend code
- `pnpm lint` - Lint frontend code
- `pnpm test` - Run frontend tests
### Documentation Commands
- `pnpm run format-docs` - Format markdown tables in docs
- `pnpm run lint-docs` - Lint and fix markdown files
- `pnpm run storybook` - Run Storybook (from site directory)
## 🔧 Critical Patterns
### Database Changes (ALWAYS FOLLOW)
1. Modify `coderd/database/queries/*.sql` files
2. Run `make gen`
3. If audit errors: update `enterprise/audit/table.go`
4. Run `make gen` again
### LSP Navigation (USE FIRST)
#### Go LSP (for backend code)
- **Find definitions**: `mcp__go-language-server__definition symbolName`
- **Find references**: `mcp__go-language-server__references symbolName`
- **Get type info**: `mcp__go-language-server__hover filePath line column`
- **Rename symbol**: `mcp__go-language-server__rename_symbol filePath line column newName`
#### TypeScript LSP (for frontend code in site/)
- **Find definitions**: `mcp__typescript-language-server__definition symbolName`
- **Find references**: `mcp__typescript-language-server__references symbolName`
- **Get type info**: `mcp__typescript-language-server__hover filePath line column`
- **Rename symbol**: `mcp__typescript-language-server__rename_symbol filePath line column newName`
### OAuth2 Error Handling
```go
// OAuth2-compliant error responses
writeOAuth2Error(ctx, rw, http.StatusBadRequest, "invalid_grant", "description")
```
### Authorization Context
```go
// Public endpoints needing system access
app, err := api.Database.GetOAuth2ProviderAppByClientID(dbauthz.AsSystemRestricted(ctx), clientID)
// Authenticated endpoints with user context
app, err := api.Database.GetOAuth2ProviderAppByClientID(ctx, clientID)
```
## 📋 Quick Reference
### Full workflows available in imported WORKFLOWS.md
### New Feature Checklist
- [ ] Run `git pull` to ensure latest code
- [ ] Check if feature touches database - you'll need migrations
- [ ] Check if feature touches audit logs - update `enterprise/audit/table.go`
## 🏗️ Architecture
- **coderd**: Main API service
- **provisionerd**: Infrastructure provisioning
- **Agents**: Workspace services (SSH, port forwarding)
- **Database**: PostgreSQL with `dbauthz` authorization
## 🧪 Testing
### Race Condition Prevention
- Use unique identifiers: `fmt.Sprintf("test-client-%s-%d", t.Name(), time.Now().UnixNano())`
- Never use hardcoded names in concurrent tests
### OAuth2 Testing
- Full suite: `./scripts/oauth2/test-mcp-oauth2.sh`
- Manual testing: `./scripts/oauth2/test-manual-flow.sh`
### Timing Issues
NEVER use `time.Sleep` to mitigate timing issues. If an issue
seems like it should use `time.Sleep`, read through https://github.com/coder/quartz and specifically the [README](https://github.com/coder/quartz/blob/main/README.md) to better understand how to handle timing issues.
## 🎯 Code Style
### Detailed guidelines in imported WORKFLOWS.md
- Follow [Uber Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md)
- Commit format: `type(scope): message`
## 📚 Detailed Development Guides
@.claude/docs/OAUTH2.md
@.claude/docs/TESTING.md
@.claude/docs/TROUBLESHOOTING.md
@.claude/docs/DATABASE.md
## 🚨 Common Pitfalls
1. **Audit table errors** → Update `enterprise/audit/table.go`
2. **OAuth2 errors** → Return RFC-compliant format
3. **Race conditions** → Use unique test identifiers
4. **Missing newlines** → Ensure files end with newline
---
*This file stays lean and actionable. Detailed workflows and explanations are imported automatically.*
+37 -2
View File
@@ -1,6 +1,41 @@
# These APIs are versioned, so any changes need to be carefully reviewed for whether
# to bump API major or minor versions.
# These APIs are versioned, so any changes need to be carefully reviewed for
# whether to bump API major or minor versions.
agent/proto/ @spikecurtis @johnstcn
provisionerd/proto/ @spikecurtis @johnstcn
provisionersdk/proto/ @spikecurtis @johnstcn
tailnet/proto/ @spikecurtis @johnstcn
vpn/vpn.proto @spikecurtis @johnstcn
vpn/version.go @spikecurtis @johnstcn
# This caching code is particularly tricky, and one must be very careful when
# altering it.
coderd/files/ @aslilac
coderd/dynamicparameters/ @Emyrk
coderd/rbac/ @Emyrk
# Mainly dependent on coder/guts, which is maintained by @Emyrk
scripts/apitypings/ @Emyrk
scripts/gensite/ @aslilac
site/ @aslilac @Parkreiner
site/src/hooks/ @Parkreiner
# These rules intentionally do not specify any owners. More specific rules
# override less specific rules, so these files are "ignored" by the site/ rule.
site/e2e/google/protobuf/timestampGenerated.ts
site/e2e/provisionerGenerated.ts
site/src/api/countriesGenerated.ts
site/src/api/rbacresourcesGenerated.ts
site/src/api/typesGenerated.ts
site/src/testHelpers/entities.ts
site/CLAUDE.md
# The blood and guts of the autostop algorithm, which is quite complex and
# requires elite ball knowledge of most of the scheduling code to make changes
# without inadvertently affecting other parts of the codebase.
coderd/schedule/autostop.go @deansheather @DanielleMaywood
# Usage tracking code requires intimate knowledge of Tallyman and Metronome, as
# well as guidance from revenue.
coderd/usage/ @deansheather @spikecurtis
enterprise/coderd/usage/ @deansheather @spikecurtis
+1 -1
View File
@@ -1,2 +1,2 @@
<!-- markdownlint-disable MD041 -->
[https://coder.com/docs/contributing/CODE_OF_CONDUCT](https://coder.com/docs/contributing/CODE_OF_CONDUCT)
[https://coder.com/docs/about/contributing/CODE_OF_CONDUCT](https://coder.com/docs/about/contributing/CODE_OF_CONDUCT)
+273 -61
View File
@@ -36,7 +36,9 @@ GOOS := $(shell go env GOOS)
GOARCH := $(shell go env GOARCH)
GOOS_BIN_EXT := $(if $(filter windows, $(GOOS)),.exe,)
VERSION := $(shell ./scripts/version.sh)
POSTGRES_VERSION ?= 16
POSTGRES_VERSION ?= 17
POSTGRES_IMAGE ?= us-docker.pkg.dev/coder-v2-images-public/public/postgres:$(POSTGRES_VERSION)
# Use the highest ZSTD compression level in CI.
ifdef CI
@@ -54,6 +56,16 @@ FIND_EXCLUSIONS= \
-not \( \( -path '*/.git/*' -o -path './build/*' -o -path './vendor/*' -o -path './.coderv2/*' -o -path '*/node_modules/*' -o -path '*/out/*' -o -path './coderd/apidoc/*' -o -path '*/.next/*' -o -path '*/.terraform/*' \) -prune \)
# Source files used for make targets, evaluated on use.
GO_SRC_FILES := $(shell find . $(FIND_EXCLUSIONS) -type f -name '*.go' -not -name '*_test.go')
# Same as GO_SRC_FILES but excluding certain files that have problematic
# Makefile dependencies (e.g. pnpm).
MOST_GO_SRC_FILES := $(shell \
find . \
$(FIND_EXCLUSIONS) \
-type f \
-name '*.go' \
-not -name '*_test.go' \
-not -wholename './agent/agentcontainers/dcspec/dcspec_gen.go' \
)
# All the shell files in the repo, excluding ignored files.
SHELL_SRC_FILES := $(shell find . $(FIND_EXCLUSIONS) -type f -name '*.sh')
@@ -240,10 +252,14 @@ $(CODER_ALL_BINARIES): go.mod go.sum \
fi
cp "$@" "./site/out/bin/coder-$$os-$$arch$$dot_ext"
if [[ "$${CODER_SIGN_GPG:-0}" == "1" ]]; then
cp "$@.asc" "./site/out/bin/coder-$$os-$$arch$$dot_ext.asc"
fi
fi
# This task builds Coder Desktop dylibs
$(CODER_DYLIBS): go.mod go.sum $(GO_SRC_FILES)
$(CODER_DYLIBS): go.mod go.sum $(MOST_GO_SRC_FILES)
@if [ "$(shell uname)" = "Darwin" ]; then
$(get-mode-os-arch-ext)
./scripts/build_go.sh \
@@ -388,16 +404,21 @@ $(foreach chart,$(charts),build/$(chart)_helm_$(VERSION).tgz): build/%_helm_$(VE
--chart $* \
--output "$@"
node_modules/.installed: package.json
node_modules/.installed: package.json pnpm-lock.yaml
./scripts/pnpm_install.sh
touch "$@"
offlinedocs/node_modules/.installed: offlinedocs/package.json
cd offlinedocs/
../scripts/pnpm_install.sh
offlinedocs/node_modules/.installed: offlinedocs/package.json offlinedocs/pnpm-lock.yaml
(cd offlinedocs/ && ../scripts/pnpm_install.sh)
touch "$@"
site/node_modules/.installed: site/package.json
cd site/
../scripts/pnpm_install.sh
site/node_modules/.installed: site/package.json site/pnpm-lock.yaml
(cd site/ && ../scripts/pnpm_install.sh)
touch "$@"
scripts/apidocgen/node_modules/.installed: scripts/apidocgen/package.json scripts/apidocgen/pnpm-lock.yaml
(cd scripts/apidocgen && ../../scripts/pnpm_install.sh)
touch "$@"
SITE_GEN_FILES := \
site/src/api/typesGenerated.ts \
@@ -439,16 +460,31 @@ fmt: fmt/ts fmt/go fmt/terraform fmt/shfmt fmt/biome fmt/markdown
.PHONY: fmt
fmt/go:
ifdef FILE
# Format single file
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.go ]] && ! grep -q "DO NOT EDIT" "$(FILE)"; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/go$(RESET) $(FILE)"; \
go run mvdan.cc/gofumpt@v0.8.0 -w -l "$(FILE)"; \
fi
else
go mod tidy
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/go$(RESET)"
# VS Code users should check out
# https://github.com/mvdan/gofumpt#visual-studio-code
find . $(FIND_EXCLUSIONS) -type f -name '*.go' -print0 | \
xargs -0 grep --null -L "DO NOT EDIT" | \
xargs -0 go run mvdan.cc/gofumpt@v0.4.0 -w -l
xargs -0 grep -E --null -L '^// Code generated .* DO NOT EDIT\.$$' | \
xargs -0 go run mvdan.cc/gofumpt@v0.8.0 -w -l
endif
.PHONY: fmt/go
fmt/ts: site/node_modules/.installed
ifdef FILE
# Format single TypeScript/JavaScript file
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.ts ]] || [[ "$(FILE)" == *.tsx ]] || [[ "$(FILE)" == *.js ]] || [[ "$(FILE)" == *.jsx ]]; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/ts$(RESET) $(FILE)"; \
(cd site/ && pnpm exec biome format --write "../$(FILE)"); \
fi
else
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/ts$(RESET)"
cd site
# Avoid writing files in CI to reduce file write activity
@@ -457,9 +493,17 @@ ifdef CI
else
pnpm run check:fix
endif
endif
.PHONY: fmt/ts
fmt/biome: site/node_modules/.installed
ifdef FILE
# Format single file with biome
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.ts ]] || [[ "$(FILE)" == *.tsx ]] || [[ "$(FILE)" == *.js ]] || [[ "$(FILE)" == *.jsx ]]; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/biome$(RESET) $(FILE)"; \
(cd site/ && pnpm exec biome format --write "../$(FILE)"); \
fi
else
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/biome$(RESET)"
cd site/
# Avoid writing files in CI to reduce file write activity
@@ -468,14 +512,30 @@ ifdef CI
else
pnpm run format
endif
endif
.PHONY: fmt/biome
fmt/terraform: $(wildcard *.tf)
ifdef FILE
# Format single Terraform file
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.tf ]] || [[ "$(FILE)" == *.tfvars ]]; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/terraform$(RESET) $(FILE)"; \
terraform fmt "$(FILE)"; \
fi
else
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/terraform$(RESET)"
terraform fmt -recursive
endif
.PHONY: fmt/terraform
fmt/shfmt: $(SHELL_SRC_FILES)
ifdef FILE
# Format single shell script
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.sh ]]; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/shfmt$(RESET) $(FILE)"; \
shfmt -w "$(FILE)"; \
fi
else
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/shfmt$(RESET)"
# Only do diff check in CI, errors on diff.
ifdef CI
@@ -483,14 +543,25 @@ ifdef CI
else
shfmt -w $(SHELL_SRC_FILES)
endif
endif
.PHONY: fmt/shfmt
fmt/markdown: node_modules/.installed
ifdef FILE
# Format single markdown file
if [[ -f "$(FILE)" ]] && [[ "$(FILE)" == *.md ]]; then \
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/markdown$(RESET) $(FILE)"; \
pnpm exec markdown-table-formatter "$(FILE)"; \
fi
else
echo "$(GREEN)==>$(RESET) $(BOLD)fmt/markdown$(RESET)"
pnpm format-docs
endif
.PHONY: fmt/markdown
lint: lint/shellcheck lint/go lint/ts lint/examples lint/helm lint/site-icons lint/markdown
# Note: we don't run zizmor in the lint target because it takes a while. CI
# runs it explicitly.
lint: lint/shellcheck lint/go lint/ts lint/examples lint/helm lint/site-icons lint/markdown lint/actions/actionlint lint/check-scopes
.PHONY: lint
lint/site-icons:
@@ -505,8 +576,9 @@ lint/ts: site/node_modules/.installed
lint/go:
./scripts/check_enterprise_imports.sh
./scripts/check_codersdk_imports.sh
linter_ver=$(shell egrep -o 'GOLANGCI_LINT_VERSION=\S+' dogfood/contents/Dockerfile | cut -d '=' -f 2)
linter_ver=$(shell egrep -o 'GOLANGCI_LINT_VERSION=\S+' dogfood/coder/Dockerfile | cut -d '=' -f 2)
go run github.com/golangci/golangci-lint/cmd/golangci-lint@v$$linter_ver run
go run github.com/coder/paralleltestctx/cmd/paralleltestctx@v0.0.1 -custom-funcs="testutil.Context" ./...
.PHONY: lint/go
lint/examples:
@@ -528,13 +600,31 @@ lint/markdown: node_modules/.installed
pnpm lint-docs
.PHONY: lint/markdown
lint/actions: lint/actions/actionlint lint/actions/zizmor
.PHONY: lint/actions
lint/actions/actionlint:
go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.7
.PHONY: lint/actions/actionlint
lint/actions/zizmor:
./scripts/zizmor.sh \
--strict-collection \
--persona=regular \
.
.PHONY: lint/actions/zizmor
# Verify api_key_scope enum contains all RBAC <resource>:<action> values.
lint/check-scopes: coderd/database/dump.sql
go run ./scripts/check-scopes
.PHONY: lint/check-scopes
# All files generated by the database should be added here, and this can be used
# as a target for jobs that need to run after the database is generated.
DB_GEN_FILES := \
coderd/database/dump.sql \
coderd/database/querier.go \
coderd/database/unique_constraint.go \
coderd/database/dbmem/dbmem.go \
coderd/database/dbmetrics/dbmetrics.go \
coderd/database/dbauthz/dbauthz.go \
coderd/database/dbmock/dbmock.go
@@ -545,35 +635,58 @@ TAILNETTEST_MOCKS := \
tailnet/tailnettest/workspaceupdatesprovidermock.go \
tailnet/tailnettest/subscriptionmock.go
AIBRIDGED_MOCKS := \
enterprise/x/aibridged/aibridgedmock/clientmock.go \
enterprise/x/aibridged/aibridgedmock/poolmock.go
GEN_FILES := \
tailnet/proto/tailnet.pb.go \
agent/proto/agent.pb.go \
provisionersdk/proto/provisioner.pb.go \
provisionerd/proto/provisionerd.pb.go \
vpn/vpn.pb.go \
enterprise/x/aibridged/proto/aibridged.pb.go \
$(DB_GEN_FILES) \
$(SITE_GEN_FILES) \
coderd/rbac/object_gen.go \
codersdk/rbacresources_gen.go \
coderd/rbac/scopes_constants_gen.go \
codersdk/apikey_scopes_gen.go \
docs/admin/integrations/prometheus.md \
docs/reference/cli/index.md \
docs/admin/security/audit-logs.md \
coderd/apidoc/swagger.json \
docs/manifest.json \
provisioner/terraform/testdata/version \
site/e2e/provisionerGenerated.ts \
examples/examples.gen.json \
$(TAILNETTEST_MOCKS) \
coderd/database/pubsub/psmock/psmock.go \
agent/agentcontainers/acmock/acmock.go
agent/agentcontainers/acmock/acmock.go \
agent/agentcontainers/dcspec/dcspec_gen.go \
coderd/httpmw/loggermw/loggermock/loggermock.go \
codersdk/workspacesdk/agentconnmock/agentconnmock.go \
$(AIBRIDGED_MOCKS)
# all gen targets should be added here and to gen/mark-fresh
gen: gen/db $(GEN_FILES)
gen: gen/db gen/golden-files $(GEN_FILES)
.PHONY: gen
gen/db: $(DB_GEN_FILES)
.PHONY: gen/db
gen/golden-files: \
cli/testdata/.gen-golden \
coderd/.gen-golden \
coderd/notifications/.gen-golden \
enterprise/cli/testdata/.gen-golden \
enterprise/tailnet/testdata/.gen-golden \
helm/coder/tests/testdata/.gen-golden \
helm/provisioner/tests/testdata/.gen-golden \
provisioner/terraform/testdata/.gen-golden \
tailnet/testdata/.gen-golden
.PHONY: gen/golden-files
# Mark all generated files as fresh so make thinks they're up-to-date. This is
# used during releases so we don't run generation scripts.
gen/mark-fresh:
@@ -583,23 +696,30 @@ gen/mark-fresh:
provisionersdk/proto/provisioner.pb.go \
provisionerd/proto/provisionerd.pb.go \
vpn/vpn.pb.go \
enterprise/x/aibridged/proto/aibridged.pb.go \
coderd/database/dump.sql \
$(DB_GEN_FILES) \
site/src/api/typesGenerated.ts \
coderd/rbac/object_gen.go \
codersdk/rbacresources_gen.go \
coderd/rbac/scopes_constants_gen.go \
site/src/api/rbacresourcesGenerated.ts \
site/src/api/countriesGenerated.ts \
docs/admin/integrations/prometheus.md \
docs/reference/cli/index.md \
docs/admin/security/audit-logs.md \
coderd/apidoc/swagger.json \
docs/manifest.json \
site/e2e/provisionerGenerated.ts \
site/src/theme/icons.json \
examples/examples.gen.json \
$(TAILNETTEST_MOCKS) \
coderd/database/pubsub/psmock/psmock.go \
agent/agentcontainers/acmock/acmock.go \
agent/agentcontainers/dcspec/dcspec_gen.go \
coderd/httpmw/loggermw/loggermock/loggermock.go \
codersdk/workspacesdk/agentconnmock/agentconnmock.go \
$(AIBRIDGED_MOCKS) \
"
for file in $$files; do
@@ -618,24 +738,50 @@ gen/mark-fresh:
# applied.
coderd/database/dump.sql: coderd/database/gen/dump/main.go $(wildcard coderd/database/migrations/*.sql)
go run ./coderd/database/gen/dump/main.go
touch "$@"
# Generates Go code for querying the database.
# coderd/database/queries.sql.go
# coderd/database/models.go
coderd/database/querier.go: coderd/database/sqlc.yaml coderd/database/dump.sql $(wildcard coderd/database/queries/*.sql)
./coderd/database/generate.sh
touch "$@"
coderd/database/dbmock/dbmock.go: coderd/database/db.go coderd/database/querier.go
go generate ./coderd/database/dbmock/
touch "$@"
coderd/database/pubsub/psmock/psmock.go: coderd/database/pubsub/pubsub.go
go generate ./coderd/database/pubsub/psmock
touch "$@"
agent/agentcontainers/acmock/acmock.go: agent/agentcontainers/containers.go
go generate ./agent/agentcontainers/acmock/
touch "$@"
coderd/httpmw/loggermw/loggermock/loggermock.go: coderd/httpmw/loggermw/logger.go
go generate ./coderd/httpmw/loggermw/loggermock/
touch "$@"
codersdk/workspacesdk/agentconnmock/agentconnmock.go: codersdk/workspacesdk/agentconn.go
go generate ./codersdk/workspacesdk/agentconnmock/
touch "$@"
$(AIBRIDGED_MOCKS): enterprise/x/aibridged/client.go enterprise/x/aibridged/pool.go
go generate ./enterprise/x/aibridged/aibridgedmock/
touch "$@"
agent/agentcontainers/dcspec/dcspec_gen.go: \
node_modules/.installed \
agent/agentcontainers/dcspec/devContainer.base.schema.json \
agent/agentcontainers/dcspec/gen.sh \
agent/agentcontainers/dcspec/doc.go
DCSPEC_QUIET=true go generate ./agent/agentcontainers/dcspec/
touch "$@"
$(TAILNETTEST_MOCKS): tailnet/coordinator.go tailnet/service.go
go generate ./tailnet/tailnettest/
touch "$@"
tailnet/proto/tailnet.pb.go: tailnet/proto/tailnet.proto
protoc \
@@ -675,80 +821,120 @@ vpn/vpn.pb.go: vpn/vpn.proto
--go_opt=paths=source_relative \
./vpn/vpn.proto
enterprise/x/aibridged/proto/aibridged.pb.go: enterprise/x/aibridged/proto/aibridged.proto
protoc \
--go_out=. \
--go_opt=paths=source_relative \
--go-drpc_out=. \
--go-drpc_opt=paths=source_relative \
./enterprise/x/aibridged/proto/aibridged.proto
site/src/api/typesGenerated.ts: site/node_modules/.installed $(wildcard scripts/apitypings/*) $(shell find ./codersdk $(FIND_EXCLUSIONS) -type f -name '*.go')
# -C sets the directory for the go run command
go run -C ./scripts/apitypings main.go > $@
cd site/
pnpm exec biome format --write src/api/typesGenerated.ts
(cd site/ && pnpm exec biome format --write src/api/typesGenerated.ts)
touch "$@"
site/e2e/provisionerGenerated.ts: site/node_modules/.installed provisionerd/proto/provisionerd.pb.go provisionersdk/proto/provisioner.pb.go
cd site/
pnpm run gen:provisioner
(cd site/ && pnpm run gen:provisioner)
touch "$@"
site/src/theme/icons.json: site/node_modules/.installed $(wildcard scripts/gensite/*) $(wildcard site/static/icon/*)
go run ./scripts/gensite/ -icons "$@"
cd site/
pnpm exec biome format --write src/theme/icons.json
(cd site/ && pnpm exec biome format --write src/theme/icons.json)
touch "$@"
examples/examples.gen.json: scripts/examplegen/main.go examples/examples.go $(shell find ./examples/templates)
go run ./scripts/examplegen/main.go > examples/examples.gen.json
touch "$@"
coderd/rbac/object_gen.go: scripts/typegen/rbacobject.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
tempdir=$(shell mktemp -d /tmp/typegen_rbac_object.XXXXXX)
go run ./scripts/typegen/main.go rbac object > "$$tempdir/object_gen.go"
mv -v "$$tempdir/object_gen.go" coderd/rbac/object_gen.go
rmdir -v "$$tempdir"
touch "$@"
coderd/rbac/scopes_constants_gen.go: scripts/typegen/scopenames.gotmpl scripts/typegen/main.go coderd/rbac/policy/policy.go
# Generate typed low-level ScopeName constants from RBACPermissions
# Write to a temp file first to avoid truncating the package during build
# since the generator imports the rbac package.
tempfile=$(shell mktemp /tmp/scopes_constants_gen.XXXXXX)
go run ./scripts/typegen/main.go rbac scopenames > "$$tempfile"
mv -v "$$tempfile" coderd/rbac/scopes_constants_gen.go
touch "$@"
codersdk/rbacresources_gen.go: scripts/typegen/codersdk.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
# Do no overwrite codersdk/rbacresources_gen.go directly, as it would make the file empty, breaking
# the `codersdk` package and any parallel build targets.
go run scripts/typegen/main.go rbac codersdk > /tmp/rbacresources_gen.go
mv /tmp/rbacresources_gen.go codersdk/rbacresources_gen.go
touch "$@"
codersdk/apikey_scopes_gen.go: scripts/apikeyscopesgen/main.go coderd/rbac/scopes_catalog.go coderd/rbac/scopes.go
# Generate SDK constants for external API key scopes.
go run ./scripts/apikeyscopesgen > /tmp/apikey_scopes_gen.go
mv /tmp/apikey_scopes_gen.go codersdk/apikey_scopes_gen.go
touch "$@"
site/src/api/rbacresourcesGenerated.ts: site/node_modules/.installed scripts/typegen/codersdk.gotmpl scripts/typegen/main.go coderd/rbac/object.go coderd/rbac/policy/policy.go
go run scripts/typegen/main.go rbac typescript > "$@"
cd site/
pnpm exec biome format --write src/api/rbacresourcesGenerated.ts
(cd site/ && pnpm exec biome format --write src/api/rbacresourcesGenerated.ts)
touch "$@"
site/src/api/countriesGenerated.ts: site/node_modules/.installed scripts/typegen/countries.tstmpl scripts/typegen/main.go codersdk/countries.go
go run scripts/typegen/main.go countries > "$@"
cd site/
pnpm exec biome format --write src/api/countriesGenerated.ts
(cd site/ && pnpm exec biome format --write src/api/countriesGenerated.ts)
touch "$@"
docs/admin/integrations/prometheus.md: node_modules/.installed scripts/metricsdocgen/main.go scripts/metricsdocgen/metrics
go run scripts/metricsdocgen/main.go
pnpm exec markdownlint-cli2 --fix ./docs/admin/integrations/prometheus.md
pnpm exec markdown-table-formatter ./docs/admin/integrations/prometheus.md
touch "$@"
docs/reference/cli/index.md: node_modules/.installed site/node_modules/.installed scripts/clidocgen/main.go examples/examples.gen.json $(GO_SRC_FILES)
docs/reference/cli/index.md: node_modules/.installed scripts/clidocgen/main.go examples/examples.gen.json $(GO_SRC_FILES)
CI=true BASE_PATH="." go run ./scripts/clidocgen
pnpm exec markdownlint-cli2 --fix ./docs/reference/cli/*.md
pnpm exec markdown-table-formatter ./docs/reference/cli/*.md
cd site/
pnpm exec biome format --write ../docs/manifest.json
touch "$@"
docs/admin/security/audit-logs.md: node_modules/.installed coderd/database/querier.go scripts/auditdocgen/main.go enterprise/audit/table.go coderd/rbac/object_gen.go
go run scripts/auditdocgen/main.go
pnpm exec markdownlint-cli2 --fix ./docs/admin/security/audit-logs.md
pnpm exec markdown-table-formatter ./docs/admin/security/audit-logs.md
touch "$@"
coderd/apidoc/swagger.json: node_modules/.installed site/node_modules/.installed $(shell find ./scripts/apidocgen $(FIND_EXCLUSIONS) -type f) $(wildcard coderd/*.go) $(wildcard enterprise/coderd/*.go) $(wildcard codersdk/*.go) $(wildcard enterprise/wsproxy/wsproxysdk/*.go) $(DB_GEN_FILES) .swaggo docs/manifest.json coderd/rbac/object_gen.go
coderd/apidoc/.gen: \
node_modules/.installed \
scripts/apidocgen/node_modules/.installed \
$(wildcard coderd/*.go) \
$(wildcard enterprise/coderd/*.go) \
$(wildcard codersdk/*.go) \
$(wildcard enterprise/wsproxy/wsproxysdk/*.go) \
$(DB_GEN_FILES) \
coderd/rbac/object_gen.go \
.swaggo \
scripts/apidocgen/generate.sh \
$(wildcard scripts/apidocgen/postprocess/*) \
$(wildcard scripts/apidocgen/markdown-template/*)
./scripts/apidocgen/generate.sh
pnpm exec markdownlint-cli2 --fix ./docs/reference/api/*.md
pnpm exec markdown-table-formatter ./docs/reference/api/*.md
cd site/
pnpm exec biome format --write ../docs/manifest.json ../coderd/apidoc/swagger.json
touch "$@"
update-golden-files: \
cli/testdata/.gen-golden \
coderd/.gen-golden \
coderd/notifications/.gen-golden \
enterprise/cli/testdata/.gen-golden \
enterprise/tailnet/testdata/.gen-golden \
helm/coder/tests/testdata/.gen-golden \
helm/provisioner/tests/testdata/.gen-golden \
provisioner/terraform/testdata/.gen-golden \
tailnet/testdata/.gen-golden
docs/manifest.json: site/node_modules/.installed coderd/apidoc/.gen docs/reference/cli/index.md
(cd site/ && pnpm exec biome format --write ../docs/manifest.json)
touch "$@"
coderd/apidoc/swagger.json: site/node_modules/.installed coderd/apidoc/.gen
(cd site/ && pnpm exec biome format --write ../coderd/apidoc/swagger.json)
touch "$@"
update-golden-files:
echo 'WARNING: This target is deprecated. Use "make gen/golden-files" instead.' >&2
echo 'Running "make gen/golden-files"' >&2
make gen/golden-files
.PHONY: update-golden-files
clean/golden-files:
@@ -767,39 +953,39 @@ clean/golden-files:
.PHONY: clean/golden-files
cli/testdata/.gen-golden: $(wildcard cli/testdata/*.golden) $(wildcard cli/*.tpl) $(GO_SRC_FILES) $(wildcard cli/*_test.go)
go test ./cli -run="Test(CommandHelp|ServerYAML|ErrorExamples|.*Golden)" -update
TZ=UTC go test ./cli -run="Test(CommandHelp|ServerYAML|ErrorExamples|.*Golden)" -update
touch "$@"
enterprise/cli/testdata/.gen-golden: $(wildcard enterprise/cli/testdata/*.golden) $(wildcard cli/*.tpl) $(GO_SRC_FILES) $(wildcard enterprise/cli/*_test.go)
go test ./enterprise/cli -run="TestEnterpriseCommandHelp" -update
TZ=UTC go test ./enterprise/cli -run="TestEnterpriseCommandHelp" -update
touch "$@"
tailnet/testdata/.gen-golden: $(wildcard tailnet/testdata/*.golden.html) $(GO_SRC_FILES) $(wildcard tailnet/*_test.go)
go test ./tailnet -run="TestDebugTemplate" -update
TZ=UTC go test ./tailnet -run="TestDebugTemplate" -update
touch "$@"
enterprise/tailnet/testdata/.gen-golden: $(wildcard enterprise/tailnet/testdata/*.golden.html) $(GO_SRC_FILES) $(wildcard enterprise/tailnet/*_test.go)
go test ./enterprise/tailnet -run="TestDebugTemplate" -update
TZ=UTC go test ./enterprise/tailnet -run="TestDebugTemplate" -update
touch "$@"
helm/coder/tests/testdata/.gen-golden: $(wildcard helm/coder/tests/testdata/*.yaml) $(wildcard helm/coder/tests/testdata/*.golden) $(GO_SRC_FILES) $(wildcard helm/coder/tests/*_test.go)
go test ./helm/coder/tests -run=TestUpdateGoldenFiles -update
TZ=UTC go test ./helm/coder/tests -run=TestUpdateGoldenFiles -update
touch "$@"
helm/provisioner/tests/testdata/.gen-golden: $(wildcard helm/provisioner/tests/testdata/*.yaml) $(wildcard helm/provisioner/tests/testdata/*.golden) $(GO_SRC_FILES) $(wildcard helm/provisioner/tests/*_test.go)
go test ./helm/provisioner/tests -run=TestUpdateGoldenFiles -update
TZ=UTC go test ./helm/provisioner/tests -run=TestUpdateGoldenFiles -update
touch "$@"
coderd/.gen-golden: $(wildcard coderd/testdata/*/*.golden) $(GO_SRC_FILES) $(wildcard coderd/*_test.go)
go test ./coderd -run="Test.*Golden$$" -update
TZ=UTC go test ./coderd -run="Test.*Golden$$" -update
touch "$@"
coderd/notifications/.gen-golden: $(wildcard coderd/notifications/testdata/*/*.golden) $(GO_SRC_FILES) $(wildcard coderd/notifications/*_test.go)
go test ./coderd/notifications -run="Test.*Golden$$" -update
TZ=UTC go test ./coderd/notifications -run="Test.*Golden$$" -update
touch "$@"
provisioner/terraform/testdata/.gen-golden: $(wildcard provisioner/terraform/testdata/*/*.golden) $(GO_SRC_FILES) $(wildcard provisioner/terraform/*_test.go)
go test ./provisioner/terraform -run="Test.*Golden$$" -update
TZ=UTC go test ./provisioner/terraform -run="Test.*Golden$$" -update
touch "$@"
provisioner/terraform/testdata/version:
@@ -808,12 +994,38 @@ provisioner/terraform/testdata/version:
fi
.PHONY: provisioner/terraform/testdata/version
# Set the retry flags if TEST_RETRIES is set
ifdef TEST_RETRIES
GOTESTSUM_RETRY_FLAGS := --rerun-fails=$(TEST_RETRIES)
else
GOTESTSUM_RETRY_FLAGS :=
endif
# default to 8x8 parallelism to avoid overwhelming our workspaces. Hopefully we can remove these defaults
# when we get our test suite's resource utilization under control.
GOTEST_FLAGS := -v -p $(or $(TEST_NUM_PARALLEL_PACKAGES),"8") -parallel=$(or $(TEST_NUM_PARALLEL_TESTS),"8")
# The most common use is to set TEST_COUNT=1 to avoid Go's test cache.
ifdef TEST_COUNT
GOTEST_FLAGS += -count=$(TEST_COUNT)
endif
ifdef TEST_SHORT
GOTEST_FLAGS += -short
endif
ifdef RUN
GOTEST_FLAGS += -run $(RUN)
endif
TEST_PACKAGES ?= ./...
test:
$(GIT_FLAGS) gotestsum --format standard-quiet -- -v -short -count=1 ./... $(if $(RUN),-run $(RUN))
$(GIT_FLAGS) gotestsum --format standard-quiet $(GOTESTSUM_RETRY_FLAGS) --packages="$(TEST_PACKAGES)" -- $(GOTEST_FLAGS)
.PHONY: test
test-cli:
$(GIT_FLAGS) gotestsum --format standard-quiet -- -v -short -count=1 ./cli/...
$(MAKE) test TEST_PACKAGES="./cli..."
.PHONY: test-cli
# sqlc-cloud-is-setup will fail if no SQLc auth token is set. Use this as a
@@ -849,12 +1061,12 @@ sqlc-vet: test-postgres-docker
test-postgres: test-postgres-docker
# The postgres test is prone to failure, so we limit parallelism for
# more consistent execution.
$(GIT_FLAGS) DB=ci gotestsum \
$(GIT_FLAGS) gotestsum \
--junitfile="gotests.xml" \
--jsonfile="gotests.json" \
$(GOTESTSUM_RETRY_FLAGS) \
--packages="./..." -- \
-timeout=20m \
-failfast \
-count=1
.PHONY: test-postgres
@@ -875,12 +1087,12 @@ test-postgres-docker:
docker rm -f test-postgres-docker-${POSTGRES_VERSION} || true
# Try pulling up to three times to avoid CI flakes.
docker pull gcr.io/coder-dev-1/postgres:${POSTGRES_VERSION} || {
docker pull ${POSTGRES_IMAGE} || {
retries=2
for try in $(seq 1 ${retries}); do
echo "Failed to pull image, retrying (${try}/${retries})..."
sleep 1
if docker pull gcr.io/coder-dev-1/postgres:${POSTGRES_VERSION}; then
if docker pull ${POSTGRES_IMAGE}; then
break
fi
done
@@ -908,7 +1120,7 @@ test-postgres-docker:
--restart no \
--detach \
--memory 16GB \
gcr.io/coder-dev-1/postgres:${POSTGRES_VERSION} \
${POSTGRES_IMAGE} \
-c shared_buffers=2GB \
-c effective_cache_size=1GB \
-c work_mem=8MB \
@@ -963,5 +1175,5 @@ else
endif
.PHONY: test-e2e
dogfood/contents/nix.hash: flake.nix flake.lock
sha256sum flake.nix flake.lock >./dogfood/contents/nix.hash
dogfood/coder/nix.hash: flake.nix flake.lock
sha256sum flake.nix flake.lock >./dogfood/coder/nix.hash
+3 -2
View File
@@ -109,9 +109,10 @@ We are always working on new integrations. Please feel free to open an issue and
### Official
- [**VS Code Extension**](https://marketplace.visualstudio.com/items?itemName=coder.coder-remote): Open any Coder workspace in VS Code with a single click
- [**JetBrains Gateway Extension**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
- [**JetBrains Toolbox Plugin**](https://plugins.jetbrains.com/plugin/26968-coder): Open any Coder workspace from JetBrains Toolbox with a single click
- [**JetBrains Gateway Plugin**](https://plugins.jetbrains.com/plugin/19620-coder): Open any Coder workspace in JetBrains Gateway with a single click
- [**Dev Container Builder**](https://github.com/coder/envbuilder): Build development environments using `devcontainer.json` on Docker, Kubernetes, and OpenShift
- [**Module Registry**](https://registry.coder.com): Extend development environments with common use-cases
- [**Coder Registry**](https://registry.coder.com): Build and extend development environments with common use-cases
- [**Kubernetes Log Stream**](https://github.com/coder/coder-logstream-kube): Stream Kubernetes Pod events to the Coder startup logs
- [**Self-Hosted VS Code Extension Marketplace**](https://github.com/coder/code-marketplace): A private extension marketplace that works in restricted or airgapped networks integrating with [code-server](https://github.com/coder/code-server).
- [**Setup Coder**](https://github.com/marketplace/actions/setup-coder): An action to setup coder CLI in GitHub workflows.
+452 -116
View File
File diff suppressed because it is too large Load Diff
+1152 -197
View File
File diff suppressed because it is too large Load Diff
+149 -16
View File
@@ -1,9 +1,9 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: .. (interfaces: Lister)
// Source: .. (interfaces: ContainerCLI,DevcontainerCLI)
//
// Generated by this command:
//
// mockgen -destination ./acmock.go -package acmock .. Lister
// mockgen -destination ./acmock.go -package acmock .. ContainerCLI,DevcontainerCLI
//
// Package acmock is a generated GoMock package.
@@ -13,36 +13,86 @@ import (
context "context"
reflect "reflect"
agentcontainers "github.com/coder/coder/v2/agent/agentcontainers"
codersdk "github.com/coder/coder/v2/codersdk"
gomock "go.uber.org/mock/gomock"
)
// MockLister is a mock of Lister interface.
type MockLister struct {
// MockContainerCLI is a mock of ContainerCLI interface.
type MockContainerCLI struct {
ctrl *gomock.Controller
recorder *MockListerMockRecorder
recorder *MockContainerCLIMockRecorder
isgomock struct{}
}
// MockListerMockRecorder is the mock recorder for MockLister.
type MockListerMockRecorder struct {
mock *MockLister
// MockContainerCLIMockRecorder is the mock recorder for MockContainerCLI.
type MockContainerCLIMockRecorder struct {
mock *MockContainerCLI
}
// NewMockLister creates a new mock instance.
func NewMockLister(ctrl *gomock.Controller) *MockLister {
mock := &MockLister{ctrl: ctrl}
mock.recorder = &MockListerMockRecorder{mock}
// NewMockContainerCLI creates a new mock instance.
func NewMockContainerCLI(ctrl *gomock.Controller) *MockContainerCLI {
mock := &MockContainerCLI{ctrl: ctrl}
mock.recorder = &MockContainerCLIMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockLister) EXPECT() *MockListerMockRecorder {
func (m *MockContainerCLI) EXPECT() *MockContainerCLIMockRecorder {
return m.recorder
}
// Copy mocks base method.
func (m *MockContainerCLI) Copy(ctx context.Context, containerName, src, dst string) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Copy", ctx, containerName, src, dst)
ret0, _ := ret[0].(error)
return ret0
}
// Copy indicates an expected call of Copy.
func (mr *MockContainerCLIMockRecorder) Copy(ctx, containerName, src, dst any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Copy", reflect.TypeOf((*MockContainerCLI)(nil).Copy), ctx, containerName, src, dst)
}
// DetectArchitecture mocks base method.
func (m *MockContainerCLI) DetectArchitecture(ctx context.Context, containerName string) (string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DetectArchitecture", ctx, containerName)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// DetectArchitecture indicates an expected call of DetectArchitecture.
func (mr *MockContainerCLIMockRecorder) DetectArchitecture(ctx, containerName any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetectArchitecture", reflect.TypeOf((*MockContainerCLI)(nil).DetectArchitecture), ctx, containerName)
}
// ExecAs mocks base method.
func (m *MockContainerCLI) ExecAs(ctx context.Context, containerName, user string, args ...string) ([]byte, error) {
m.ctrl.T.Helper()
varargs := []any{ctx, containerName, user}
for _, a := range args {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "ExecAs", varargs...)
ret0, _ := ret[0].([]byte)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ExecAs indicates an expected call of ExecAs.
func (mr *MockContainerCLIMockRecorder) ExecAs(ctx, containerName, user any, args ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, containerName, user}, args...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExecAs", reflect.TypeOf((*MockContainerCLI)(nil).ExecAs), varargs...)
}
// List mocks base method.
func (m *MockLister) List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
func (m *MockContainerCLI) List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "List", ctx)
ret0, _ := ret[0].(codersdk.WorkspaceAgentListContainersResponse)
@@ -51,7 +101,90 @@ func (m *MockLister) List(ctx context.Context) (codersdk.WorkspaceAgentListConta
}
// List indicates an expected call of List.
func (mr *MockListerMockRecorder) List(ctx any) *gomock.Call {
func (mr *MockContainerCLIMockRecorder) List(ctx any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockLister)(nil).List), ctx)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockContainerCLI)(nil).List), ctx)
}
// MockDevcontainerCLI is a mock of DevcontainerCLI interface.
type MockDevcontainerCLI struct {
ctrl *gomock.Controller
recorder *MockDevcontainerCLIMockRecorder
isgomock struct{}
}
// MockDevcontainerCLIMockRecorder is the mock recorder for MockDevcontainerCLI.
type MockDevcontainerCLIMockRecorder struct {
mock *MockDevcontainerCLI
}
// NewMockDevcontainerCLI creates a new mock instance.
func NewMockDevcontainerCLI(ctrl *gomock.Controller) *MockDevcontainerCLI {
mock := &MockDevcontainerCLI{ctrl: ctrl}
mock.recorder = &MockDevcontainerCLIMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockDevcontainerCLI) EXPECT() *MockDevcontainerCLIMockRecorder {
return m.recorder
}
// Exec mocks base method.
func (m *MockDevcontainerCLI) Exec(ctx context.Context, workspaceFolder, configPath, cmd string, cmdArgs []string, opts ...agentcontainers.DevcontainerCLIExecOptions) error {
m.ctrl.T.Helper()
varargs := []any{ctx, workspaceFolder, configPath, cmd, cmdArgs}
for _, a := range opts {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "Exec", varargs...)
ret0, _ := ret[0].(error)
return ret0
}
// Exec indicates an expected call of Exec.
func (mr *MockDevcontainerCLIMockRecorder) Exec(ctx, workspaceFolder, configPath, cmd, cmdArgs any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, workspaceFolder, configPath, cmd, cmdArgs}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Exec", reflect.TypeOf((*MockDevcontainerCLI)(nil).Exec), varargs...)
}
// ReadConfig mocks base method.
func (m *MockDevcontainerCLI) ReadConfig(ctx context.Context, workspaceFolder, configPath string, env []string, opts ...agentcontainers.DevcontainerCLIReadConfigOptions) (agentcontainers.DevcontainerConfig, error) {
m.ctrl.T.Helper()
varargs := []any{ctx, workspaceFolder, configPath, env}
for _, a := range opts {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "ReadConfig", varargs...)
ret0, _ := ret[0].(agentcontainers.DevcontainerConfig)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ReadConfig indicates an expected call of ReadConfig.
func (mr *MockDevcontainerCLIMockRecorder) ReadConfig(ctx, workspaceFolder, configPath, env any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, workspaceFolder, configPath, env}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadConfig", reflect.TypeOf((*MockDevcontainerCLI)(nil).ReadConfig), varargs...)
}
// Up mocks base method.
func (m *MockDevcontainerCLI) Up(ctx context.Context, workspaceFolder, configPath string, opts ...agentcontainers.DevcontainerCLIUpOptions) (string, error) {
m.ctrl.T.Helper()
varargs := []any{ctx, workspaceFolder, configPath}
for _, a := range opts {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "Up", varargs...)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Up indicates an expected call of Up.
func (mr *MockDevcontainerCLIMockRecorder) Up(ctx, workspaceFolder, configPath any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, workspaceFolder, configPath}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Up", reflect.TypeOf((*MockDevcontainerCLI)(nil).Up), varargs...)
}
+1 -1
View File
@@ -1,4 +1,4 @@
// Package acmock contains a mock implementation of agentcontainers.Lister for use in tests.
package acmock
//go:generate mockgen -destination ./acmock.go -package acmock .. Lister
//go:generate mockgen -destination ./acmock.go -package acmock .. ContainerCLI,DevcontainerCLI
File diff suppressed because it is too large Load Diff
+358
View File
@@ -0,0 +1,358 @@
package agentcontainers
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/coder/coder/v2/provisioner"
)
func TestSafeAgentName(t *testing.T) {
t.Parallel()
tests := []struct {
name string
folderName string
expected string
fallback bool
}{
// Basic valid names
{
folderName: "simple",
expected: "simple",
},
{
folderName: "with-hyphens",
expected: "with-hyphens",
},
{
folderName: "123numbers",
expected: "123numbers",
},
{
folderName: "mixed123",
expected: "mixed123",
},
// Names that need transformation
{
folderName: "With_Underscores",
expected: "with-underscores",
},
{
folderName: "With Spaces",
expected: "with-spaces",
},
{
folderName: "UPPERCASE",
expected: "uppercase",
},
{
folderName: "Mixed_Case-Name",
expected: "mixed-case-name",
},
// Names with special characters that get replaced
{
folderName: "special@#$chars",
expected: "special-chars",
},
{
folderName: "dots.and.more",
expected: "dots-and-more",
},
{
folderName: "multiple___underscores",
expected: "multiple-underscores",
},
{
folderName: "multiple---hyphens",
expected: "multiple-hyphens",
},
// Edge cases with leading/trailing special chars
{
folderName: "-leading-hyphen",
expected: "leading-hyphen",
},
{
folderName: "trailing-hyphen-",
expected: "trailing-hyphen",
},
{
folderName: "_leading_underscore",
expected: "leading-underscore",
},
{
folderName: "trailing_underscore_",
expected: "trailing-underscore",
},
{
folderName: "---multiple-leading",
expected: "multiple-leading",
},
{
folderName: "trailing-multiple---",
expected: "trailing-multiple",
},
// Complex transformation cases
{
folderName: "___very---complex@@@name___",
expected: "very-complex-name",
},
{
folderName: "my.project-folder_v2",
expected: "my-project-folder-v2",
},
// Empty and fallback cases - now correctly uses friendlyName fallback
{
folderName: "",
expected: "friendly-fallback",
fallback: true,
},
{
folderName: "---",
expected: "friendly-fallback",
fallback: true,
},
{
folderName: "___",
expected: "friendly-fallback",
fallback: true,
},
{
folderName: "@#$",
expected: "friendly-fallback",
fallback: true,
},
// Additional edge cases
{
folderName: "a",
expected: "a",
},
{
folderName: "1",
expected: "1",
},
{
folderName: "a1b2c3",
expected: "a1b2c3",
},
{
folderName: "CamelCase",
expected: "camelcase",
},
{
folderName: "snake_case_name",
expected: "snake-case-name",
},
{
folderName: "kebab-case-name",
expected: "kebab-case-name",
},
{
folderName: "mix3d_C4s3-N4m3",
expected: "mix3d-c4s3-n4m3",
},
{
folderName: "123-456-789",
expected: "123-456-789",
},
{
folderName: "abc123def456",
expected: "abc123def456",
},
{
folderName: " spaces everywhere ",
expected: "spaces-everywhere",
},
{
folderName: "unicode-café-naïve",
expected: "unicode-caf-na-ve",
},
{
folderName: "path/with/slashes",
expected: "path-with-slashes",
},
{
folderName: "file.tar.gz",
expected: "file-tar-gz",
},
{
folderName: "version-1.2.3-alpha",
expected: "version-1-2-3-alpha",
},
// Truncation test for names exceeding 64 characters
{
folderName: "this-is-a-very-long-folder-name-that-exceeds-sixty-four-characters-limit-and-should-be-truncated",
expected: "this-is-a-very-long-folder-name-that-exceeds-sixty-four-characte",
},
}
for _, tt := range tests {
t.Run(tt.folderName, func(t *testing.T) {
t.Parallel()
name, usingWorkspaceFolder := safeAgentName(tt.folderName, "friendly-fallback")
assert.Equal(t, tt.expected, name)
assert.True(t, provisioner.AgentNameRegex.Match([]byte(name)))
assert.Equal(t, tt.fallback, !usingWorkspaceFolder)
})
}
}
func TestExpandedAgentName(t *testing.T) {
t.Parallel()
tests := []struct {
name string
workspaceFolder string
friendlyName string
depth int
expected string
fallback bool
}{
{
name: "simple path depth 1",
workspaceFolder: "/home/coder/project",
friendlyName: "friendly-fallback",
depth: 0,
expected: "project",
},
{
name: "simple path depth 2",
workspaceFolder: "/home/coder/project",
friendlyName: "friendly-fallback",
depth: 1,
expected: "coder-project",
},
{
name: "simple path depth 3",
workspaceFolder: "/home/coder/project",
friendlyName: "friendly-fallback",
depth: 2,
expected: "home-coder-project",
},
{
name: "simple path depth exceeds available",
workspaceFolder: "/home/coder/project",
friendlyName: "friendly-fallback",
depth: 9,
expected: "home-coder-project",
},
// Cases with special characters that need sanitization
{
name: "path with spaces and special chars",
workspaceFolder: "/home/coder/My Project_v2",
friendlyName: "friendly-fallback",
depth: 1,
expected: "coder-my-project-v2",
},
{
name: "path with dots and underscores",
workspaceFolder: "/home/user.name/project_folder.git",
friendlyName: "friendly-fallback",
depth: 1,
expected: "user-name-project-folder-git",
},
// Edge cases
{
name: "empty path",
workspaceFolder: "",
friendlyName: "friendly-fallback",
depth: 0,
expected: "friendly-fallback",
fallback: true,
},
{
name: "root path",
workspaceFolder: "/",
friendlyName: "friendly-fallback",
depth: 0,
expected: "friendly-fallback",
fallback: true,
},
{
name: "single component",
workspaceFolder: "project",
friendlyName: "friendly-fallback",
depth: 0,
expected: "project",
},
{
name: "single component with depth 2",
workspaceFolder: "project",
friendlyName: "friendly-fallback",
depth: 1,
expected: "project",
},
// Collision simulation cases
{
name: "foo/project depth 1",
workspaceFolder: "/home/coder/foo/project",
friendlyName: "friendly-fallback",
depth: 0,
expected: "project",
},
{
name: "foo/project depth 2",
workspaceFolder: "/home/coder/foo/project",
friendlyName: "friendly-fallback",
depth: 1,
expected: "foo-project",
},
{
name: "bar/project depth 1",
workspaceFolder: "/home/coder/bar/project",
friendlyName: "friendly-fallback",
depth: 0,
expected: "project",
},
{
name: "bar/project depth 2",
workspaceFolder: "/home/coder/bar/project",
friendlyName: "friendly-fallback",
depth: 1,
expected: "bar-project",
},
// Path with trailing slashes
{
name: "path with trailing slash",
workspaceFolder: "/home/coder/project/",
friendlyName: "friendly-fallback",
depth: 1,
expected: "coder-project",
},
{
name: "path with multiple trailing slashes",
workspaceFolder: "/home/coder/project///",
friendlyName: "friendly-fallback",
depth: 1,
expected: "coder-project",
},
// Path with leading slashes
{
name: "path with multiple leading slashes",
workspaceFolder: "///home/coder/project",
friendlyName: "friendly-fallback",
depth: 1,
expected: "coder-project",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
name, usingWorkspaceFolder := expandedAgentName(tt.workspaceFolder, tt.friendlyName, tt.depth)
assert.Equal(t, tt.expected, name)
assert.True(t, provisioner.AgentNameRegex.Match([]byte(name)))
assert.Equal(t, tt.fallback, !usingWorkspaceFolder)
})
}
}
File diff suppressed because it is too large Load Diff
+20 -134
View File
@@ -2,150 +2,36 @@ package agentcontainers
import (
"context"
"errors"
"net/http"
"slices"
"time"
"golang.org/x/xerrors"
"github.com/coder/coder/v2/coderd/httpapi"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/quartz"
)
const (
defaultGetContainersCacheDuration = 10 * time.Second
dockerCreatedAtTimeFormat = "2006-01-02 15:04:05 -0700 MST"
getContainersTimeout = 5 * time.Second
)
type devcontainersHandler struct {
cacheDuration time.Duration
cl Lister
clock quartz.Clock
// lockCh protects the below fields. We use a channel instead of a mutex so we
// can handle cancellation properly.
lockCh chan struct{}
containers *codersdk.WorkspaceAgentListContainersResponse
mtime time.Time
}
// Option is a functional option for devcontainersHandler.
type Option func(*devcontainersHandler)
// WithLister sets the agentcontainers.Lister implementation to use.
// The default implementation uses the Docker CLI to list containers.
func WithLister(cl Lister) Option {
return func(ch *devcontainersHandler) {
ch.cl = cl
}
}
// New returns a new devcontainersHandler with the given options applied.
func New(options ...Option) http.Handler {
ch := &devcontainersHandler{
lockCh: make(chan struct{}, 1),
}
for _, opt := range options {
opt(ch)
}
return ch
}
func (ch *devcontainersHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
select {
case <-r.Context().Done():
// Client went away.
return
default:
ct, err := ch.getContainers(r.Context())
if err != nil {
if errors.Is(err, context.Canceled) {
httpapi.Write(r.Context(), rw, http.StatusRequestTimeout, codersdk.Response{
Message: "Could not get containers.",
Detail: "Took too long to list containers.",
})
return
}
httpapi.Write(r.Context(), rw, http.StatusInternalServerError, codersdk.Response{
Message: "Could not get containers.",
Detail: err.Error(),
})
return
}
httpapi.Write(r.Context(), rw, http.StatusOK, ct)
}
}
func (ch *devcontainersHandler) getContainers(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
select {
case <-ctx.Done():
return codersdk.WorkspaceAgentListContainersResponse{}, ctx.Err()
default:
ch.lockCh <- struct{}{}
}
defer func() {
<-ch.lockCh
}()
// make zero-value usable
if ch.cacheDuration == 0 {
ch.cacheDuration = defaultGetContainersCacheDuration
}
if ch.cl == nil {
ch.cl = &DockerCLILister{}
}
if ch.containers == nil {
ch.containers = &codersdk.WorkspaceAgentListContainersResponse{}
}
if ch.clock == nil {
ch.clock = quartz.NewReal()
}
now := ch.clock.Now()
if now.Sub(ch.mtime) < ch.cacheDuration {
// Return a copy of the cached data to avoid accidental modification by the caller.
cpy := codersdk.WorkspaceAgentListContainersResponse{
Containers: slices.Clone(ch.containers.Containers),
Warnings: slices.Clone(ch.containers.Warnings),
}
return cpy, nil
}
timeoutCtx, timeoutCancel := context.WithTimeout(ctx, getContainersTimeout)
defer timeoutCancel()
updated, err := ch.cl.List(timeoutCtx)
if err != nil {
return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("get containers: %w", err)
}
ch.containers = &updated
ch.mtime = now
// Return a copy of the cached data to avoid accidental modification by the
// caller.
cpy := codersdk.WorkspaceAgentListContainersResponse{
Containers: slices.Clone(ch.containers.Containers),
Warnings: slices.Clone(ch.containers.Warnings),
}
return cpy, nil
}
// Lister is an interface for listing containers visible to the
// workspace agent.
type Lister interface {
// ContainerCLI is an interface for interacting with containers in a workspace.
type ContainerCLI interface {
// List returns a list of containers visible to the workspace agent.
// This should include running and stopped containers.
List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error)
// DetectArchitecture detects the architecture of a container.
DetectArchitecture(ctx context.Context, containerName string) (string, error)
// Copy copies a file from the host to a container.
Copy(ctx context.Context, containerName, src, dst string) error
// ExecAs executes a command in a container as a specific user.
ExecAs(ctx context.Context, containerName, user string, args ...string) ([]byte, error)
}
// NoopLister is a Lister interface that never returns any containers.
type NoopLister struct{}
// noopContainerCLI is a ContainerCLI that does nothing.
type noopContainerCLI struct{}
var _ Lister = NoopLister{}
var _ ContainerCLI = noopContainerCLI{}
func (NoopLister) List(_ context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
func (noopContainerCLI) List(_ context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
return codersdk.WorkspaceAgentListContainersResponse{}, nil
}
func (noopContainerCLI) DetectArchitecture(_ context.Context, _ string) (string, error) {
return "<none>", nil
}
func (noopContainerCLI) Copy(_ context.Context, _ string, _ string, _ string) error { return nil }
func (noopContainerCLI) ExecAs(_ context.Context, _ string, _ string, _ ...string) ([]byte, error) {
return nil, nil
}
+275 -126
View File
@@ -6,7 +6,7 @@ import (
"context"
"encoding/json"
"fmt"
"os"
"net"
"os/user"
"slices"
"sort"
@@ -14,29 +14,20 @@ import (
"strings"
"time"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/codersdk"
"golang.org/x/exp/maps"
"golang.org/x/xerrors"
"github.com/coder/coder/v2/agent/agentcontainers/dcspec"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/agent/usershell"
"github.com/coder/coder/v2/coderd/util/ptr"
"github.com/coder/coder/v2/codersdk"
)
// DockerCLILister is a ContainerLister that lists containers using the docker CLI
type DockerCLILister struct {
execer agentexec.Execer
}
var _ Lister = &DockerCLILister{}
func NewDocker(execer agentexec.Execer) Lister {
return &DockerCLILister{
execer: agentexec.DefaultExecer,
}
}
// DockerEnvInfoer is an implementation of agentssh.EnvInfoer that returns
// information about a container.
type DockerEnvInfoer struct {
usershell.SystemEnvInfo
container string
user *user.User
userShell string
@@ -122,26 +113,13 @@ func EnvInfo(ctx context.Context, execer agentexec.Execer, container, containerU
return &dei, nil
}
func (dei *DockerEnvInfoer) CurrentUser() (*user.User, error) {
func (dei *DockerEnvInfoer) User() (*user.User, error) {
// Clone the user so that the caller can't modify it
u := *dei.user
return &u, nil
}
func (*DockerEnvInfoer) Environ() []string {
// Return a clone of the environment so that the caller can't modify it
return os.Environ()
}
func (*DockerEnvInfoer) UserHomeDir() (string, error) {
// We default the working directory of the command to the user's home
// directory. Since this came from inside the container, we cannot guarantee
// that this exists on the host. Return the "real" home directory of the user
// instead.
return os.UserHomeDir()
}
func (dei *DockerEnvInfoer) UserShell(string) (string, error) {
func (dei *DockerEnvInfoer) Shell(string) (string, error) {
return dei.userShell, nil
}
@@ -174,37 +152,49 @@ func (dei *DockerEnvInfoer) ModifyCommand(cmd string, args ...string) (string, [
// devcontainerEnv is a helper function that inspects the container labels to
// find the required environment variables for running a command in the container.
func devcontainerEnv(ctx context.Context, execer agentexec.Execer, container string) ([]string, error) {
ins, stderr, err := runDockerInspect(ctx, execer, container)
stdout, stderr, err := runDockerInspect(ctx, execer, container)
if err != nil {
return nil, xerrors.Errorf("inspect container: %w: %q", err, stderr)
}
ins, _, err := convertDockerInspect(stdout)
if err != nil {
return nil, xerrors.Errorf("inspect container: %w", err)
}
if len(ins) != 1 {
return nil, xerrors.Errorf("inspect container: expected 1 container, got %d", len(ins))
}
in := ins[0]
if in.Config.Labels == nil {
if in.Labels == nil {
return nil, nil
}
// We want to look for the devcontainer metadata, which is in the
// value of the label `devcontainer.metadata`.
rawMeta, ok := in.Config.Labels["devcontainer.metadata"]
rawMeta, ok := in.Labels["devcontainer.metadata"]
if !ok {
return nil, nil
}
meta := struct {
RemoteEnv map[string]string `json:"remoteEnv"`
}{}
meta := make([]dcspec.DevContainer, 0)
if err := json.Unmarshal([]byte(rawMeta), &meta); err != nil {
return nil, xerrors.Errorf("unmarshal devcontainer.metadata: %w", err)
}
// The environment variables are stored in the `remoteEnv` key.
env := make([]string, 0, len(meta.RemoteEnv))
for k, v := range meta.RemoteEnv {
env = append(env, fmt.Sprintf("%s=%s", k, v))
env := make([]string, 0)
for _, m := range meta {
for k, v := range m.RemoteEnv {
if v == nil { // *string per spec
// devcontainer-cli will set this to the string "null" if the value is
// not set. Explicitly setting to an empty string here as this would be
// more expected here.
v = ptr.Ref("")
}
env = append(env, fmt.Sprintf("%s=%s", k, *v))
}
}
slices.Sort(env)
return env, nil
@@ -238,10 +228,23 @@ func run(ctx context.Context, execer agentexec.Execer, cmd string, args ...strin
return stdout, stderr, err
}
func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
// dockerCLI is an implementation for Docker CLI that lists containers.
type dockerCLI struct {
execer agentexec.Execer
}
var _ ContainerCLI = (*dockerCLI)(nil)
func NewDockerCLI(execer agentexec.Execer) ContainerCLI {
return &dockerCLI{
execer: execer,
}
}
func (dcli *dockerCLI) List(ctx context.Context) (codersdk.WorkspaceAgentListContainersResponse, error) {
var stdoutBuf, stderrBuf bytes.Buffer
// List all container IDs, one per line, with no truncation
cmd := dcl.execer.CommandContext(ctx, "docker", "ps", "--all", "--quiet", "--no-trunc")
cmd := dcli.execer.CommandContext(ctx, "docker", "ps", "--all", "--quiet", "--no-trunc")
cmd.Stdout = &stdoutBuf
cmd.Stderr = &stderrBuf
if err := cmd.Run(); err != nil {
@@ -265,11 +268,16 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi
return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("scan docker ps output: %w", err)
}
res := codersdk.WorkspaceAgentListContainersResponse{
Containers: make([]codersdk.WorkspaceAgentContainer, 0, len(ids)),
Warnings: make([]string, 0),
}
dockerPsStderr := strings.TrimSpace(stderrBuf.String())
if dockerPsStderr != "" {
res.Warnings = append(res.Warnings, dockerPsStderr)
}
if len(ids) == 0 {
return codersdk.WorkspaceAgentListContainersResponse{
Warnings: []string{dockerPsStderr},
}, nil
return res, nil
}
// now we can get the detailed information for each container
@@ -280,26 +288,21 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi
// will still contain valid JSON. We will just end up missing
// information about the removed container. We could potentially
// log this error, but I'm not sure it's worth it.
ins, dockerInspectStderr, err := runDockerInspect(ctx, dcl.execer, ids...)
dockerInspectStdout, dockerInspectStderr, err := runDockerInspect(ctx, dcli.execer, ids...)
if err != nil {
return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("run docker inspect: %w", err)
return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("run docker inspect: %w: %s", err, dockerInspectStderr)
}
res := codersdk.WorkspaceAgentListContainersResponse{
Containers: make([]codersdk.WorkspaceAgentDevcontainer, len(ins)),
}
for idx, in := range ins {
out, warns := convertDockerInspect(in)
res.Warnings = append(res.Warnings, warns...)
res.Containers[idx] = out
if len(dockerInspectStderr) > 0 {
res.Warnings = append(res.Warnings, string(dockerInspectStderr))
}
if dockerPsStderr != "" {
res.Warnings = append(res.Warnings, dockerPsStderr)
}
if dockerInspectStderr != "" {
res.Warnings = append(res.Warnings, dockerInspectStderr)
outs, warns, err := convertDockerInspect(dockerInspectStdout)
if err != nil {
return codersdk.WorkspaceAgentListContainersResponse{}, xerrors.Errorf("convert docker inspect output: %w", err)
}
res.Warnings = append(res.Warnings, warns...)
res.Containers = append(res.Containers, outs...)
return res, nil
}
@@ -307,35 +310,44 @@ func (dcl *DockerCLILister) List(ctx context.Context) (codersdk.WorkspaceAgentLi
// runDockerInspect is a helper function that runs `docker inspect` on the given
// container IDs and returns the parsed output.
// The stderr output is also returned for logging purposes.
func runDockerInspect(ctx context.Context, execer agentexec.Execer, ids ...string) ([]dockerInspect, string, error) {
func runDockerInspect(ctx context.Context, execer agentexec.Execer, ids ...string) (stdout, stderr []byte, err error) {
if ctx.Err() != nil {
// If the context is done, we don't want to run the command.
return []byte{}, []byte{}, ctx.Err()
}
var stdoutBuf, stderrBuf bytes.Buffer
cmd := execer.CommandContext(ctx, "docker", append([]string{"inspect"}, ids...)...)
cmd.Stdout = &stdoutBuf
cmd.Stderr = &stderrBuf
err := cmd.Run()
stderr := strings.TrimSpace(stderrBuf.String())
err = cmd.Run()
stdout = bytes.TrimSpace(stdoutBuf.Bytes())
stderr = bytes.TrimSpace(stderrBuf.Bytes())
if err != nil {
return nil, stderr, err
if ctx.Err() != nil {
// If the context was canceled while running the command,
// return the context error instead of the command error,
// which is likely to be "signal: killed".
return stdout, stderr, ctx.Err()
}
if bytes.Contains(stderr, []byte("No such object:")) {
// This can happen if a container is deleted between the time we check for its existence and the time we inspect it.
return stdout, stderr, nil
}
return stdout, stderr, err
}
var ins []dockerInspect
if err := json.NewDecoder(&stdoutBuf).Decode(&ins); err != nil {
return nil, stderr, xerrors.Errorf("decode docker inspect output: %w", err)
}
return ins, stderr, nil
return stdout, stderr, nil
}
// To avoid a direct dependency on the Docker API, we use the docker CLI
// to fetch information about containers.
type dockerInspect struct {
ID string `json:"Id"`
Created time.Time `json:"Created"`
Config dockerInspectConfig `json:"Config"`
HostConfig dockerInspectHostConfig `json:"HostConfig"`
Name string `json:"Name"`
Mounts []dockerInspectMount `json:"Mounts"`
State dockerInspectState `json:"State"`
ID string `json:"Id"`
Created time.Time `json:"Created"`
Config dockerInspectConfig `json:"Config"`
Name string `json:"Name"`
Mounts []dockerInspectMount `json:"Mounts"`
State dockerInspectState `json:"State"`
NetworkSettings dockerInspectNetworkSettings `json:"NetworkSettings"`
}
type dockerInspectConfig struct {
@@ -343,8 +355,9 @@ type dockerInspectConfig struct {
Labels map[string]string `json:"Labels"`
}
type dockerInspectHostConfig struct {
PortBindings map[string]any `json:"PortBindings"`
type dockerInspectPort struct {
HostIP string `json:"HostIp"`
HostPort string `json:"HostPort"`
}
type dockerInspectMount struct {
@@ -359,6 +372,10 @@ type dockerInspectState struct {
Error string `json:"Error"`
}
type dockerInspectNetworkSettings struct {
Ports map[string][]dockerInspectPort `json:"Ports"`
}
func (dis dockerInspectState) String() string {
if dis.Running {
return "running"
@@ -376,50 +393,109 @@ func (dis dockerInspectState) String() string {
return sb.String()
}
func convertDockerInspect(in dockerInspect) (codersdk.WorkspaceAgentDevcontainer, []string) {
func convertDockerInspect(raw []byte) ([]codersdk.WorkspaceAgentContainer, []string, error) {
var warns []string
out := codersdk.WorkspaceAgentDevcontainer{
CreatedAt: in.Created,
// Remove the leading slash from the container name
FriendlyName: strings.TrimPrefix(in.Name, "/"),
ID: in.ID,
Image: in.Config.Image,
Labels: in.Config.Labels,
Ports: make([]codersdk.WorkspaceAgentListeningPort, 0),
Running: in.State.Running,
Status: in.State.String(),
Volumes: make(map[string]string, len(in.Mounts)),
var ins []dockerInspect
if err := json.NewDecoder(bytes.NewReader(raw)).Decode(&ins); err != nil {
return nil, nil, xerrors.Errorf("decode docker inspect output: %w", err)
}
outs := make([]codersdk.WorkspaceAgentContainer, 0, len(ins))
// Say you have two containers:
// - Container A with Host IP 127.0.0.1:8000 mapped to container port 8001
// - Container B with Host IP [::1]:8000 mapped to container port 8001
// A request to localhost:8000 may be routed to either container.
// We don't know which one for sure, so we need to surface this to the user.
// Keep track of all host ports we see. If we see the same host port
// mapped to multiple containers on different host IPs, we need to
// warn the user about this.
// Note that we only do this for loopback or unspecified IPs.
// We'll assume that the user knows what they're doing if they bind to
// a specific IP address.
hostPortContainers := make(map[int][]string)
for _, in := range ins {
out := codersdk.WorkspaceAgentContainer{
CreatedAt: in.Created,
// Remove the leading slash from the container name
FriendlyName: strings.TrimPrefix(in.Name, "/"),
ID: in.ID,
Image: in.Config.Image,
Labels: in.Config.Labels,
Ports: make([]codersdk.WorkspaceAgentContainerPort, 0),
Running: in.State.Running,
Status: in.State.String(),
Volumes: make(map[string]string, len(in.Mounts)),
}
if in.NetworkSettings.Ports == nil {
in.NetworkSettings.Ports = make(map[string][]dockerInspectPort)
}
portKeys := maps.Keys(in.NetworkSettings.Ports)
// Sort the ports for deterministic output.
sort.Strings(portKeys)
// If we see the same port bound to both ipv4 and ipv6 loopback or unspecified
// interfaces to the same container port, there is no point in adding it multiple times.
loopbackHostPortContainerPorts := make(map[int]uint16, 0)
for _, pk := range portKeys {
for _, p := range in.NetworkSettings.Ports[pk] {
cp, network, err := convertDockerPort(pk)
if err != nil {
warns = append(warns, fmt.Sprintf("convert docker port: %s", err.Error()))
// Default network to "tcp" if we can't parse it.
network = "tcp"
}
hp, err := strconv.Atoi(p.HostPort)
if err != nil {
warns = append(warns, fmt.Sprintf("convert docker host port: %s", err.Error()))
continue
}
if hp > 65535 || hp < 1 { // invalid port
warns = append(warns, fmt.Sprintf("convert docker host port: invalid host port %d", hp))
continue
}
// Deduplicate host ports for loopback and unspecified IPs.
if isLoopbackOrUnspecified(p.HostIP) {
if found, ok := loopbackHostPortContainerPorts[hp]; ok && found == cp {
// We've already seen this port, so skip it.
continue
}
loopbackHostPortContainerPorts[hp] = cp
// Also keep track of the host port and the container ID.
hostPortContainers[hp] = append(hostPortContainers[hp], in.ID)
}
out.Ports = append(out.Ports, codersdk.WorkspaceAgentContainerPort{
Network: network,
Port: cp,
// #nosec G115 - Safe conversion since Docker ports are limited to uint16 range
HostPort: uint16(hp),
HostIP: p.HostIP,
})
}
}
if in.Mounts == nil {
in.Mounts = []dockerInspectMount{}
}
// Sort the mounts for deterministic output.
sort.Slice(in.Mounts, func(i, j int) bool {
return in.Mounts[i].Source < in.Mounts[j].Source
})
for _, k := range in.Mounts {
out.Volumes[k.Source] = k.Destination
}
outs = append(outs, out)
}
if in.HostConfig.PortBindings == nil {
in.HostConfig.PortBindings = make(map[string]any)
}
portKeys := maps.Keys(in.HostConfig.PortBindings)
// Sort the ports for deterministic output.
sort.Strings(portKeys)
for _, p := range portKeys {
if port, network, err := convertDockerPort(p); err != nil {
warns = append(warns, err.Error())
} else {
out.Ports = append(out.Ports, codersdk.WorkspaceAgentListeningPort{
Network: network,
Port: port,
})
// Check if any host ports are mapped to multiple containers.
for hp, ids := range hostPortContainers {
if len(ids) > 1 {
warns = append(warns, fmt.Sprintf("host port %d is mapped to multiple containers on different interfaces: %s", hp, strings.Join(ids, ", ")))
}
}
if in.Mounts == nil {
in.Mounts = []dockerInspectMount{}
}
// Sort the mounts for deterministic output.
sort.Slice(in.Mounts, func(i, j int) bool {
return in.Mounts[i].Source < in.Mounts[j].Source
})
for _, k := range in.Mounts {
out.Volumes[k.Source] = k.Destination
}
return out, warns
return outs, warns, nil
}
// convertDockerPort converts a Docker port string to a port number and network
@@ -428,21 +504,94 @@ func convertDockerInspect(in dockerInspect) (codersdk.WorkspaceAgentDevcontainer
// "8080" -> 8080, "tcp"
func convertDockerPort(in string) (uint16, string, error) {
parts := strings.Split(in, "/")
p, err := strconv.ParseUint(parts[0], 10, 16)
if err != nil {
return 0, "", xerrors.Errorf("invalid port format: %s", in)
}
switch len(parts) {
case 1:
// assume it's a TCP port
p, err := strconv.Atoi(parts[0])
if err != nil {
return 0, "", xerrors.Errorf("invalid port format: %s", in)
}
return uint16(p), "tcp", nil
case 2:
p, err := strconv.Atoi(parts[0])
if err != nil {
return 0, "", xerrors.Errorf("invalid port format: %s", in)
}
return uint16(p), parts[1], nil
default:
return 0, "", xerrors.Errorf("invalid port format: %s", in)
}
}
// convenience function to check if an IP address is loopback or unspecified
func isLoopbackOrUnspecified(ips string) bool {
nip := net.ParseIP(ips)
if nip == nil {
return false // technically correct, I suppose
}
return nip.IsLoopback() || nip.IsUnspecified()
}
// DetectArchitecture detects the architecture of a container by inspecting its
// image.
func (dcli *dockerCLI) DetectArchitecture(ctx context.Context, containerName string) (string, error) {
// Inspect the container to get the image name, which contains the architecture.
stdout, stderr, err := runCmd(ctx, dcli.execer, "docker", "inspect", "--format", "{{.Config.Image}}", containerName)
if err != nil {
return "", xerrors.Errorf("inspect container %s: %w: %s", containerName, err, stderr)
}
imageName := string(stdout)
if imageName == "" {
return "", xerrors.Errorf("no image found for container %s", containerName)
}
stdout, stderr, err = runCmd(ctx, dcli.execer, "docker", "inspect", "--format", "{{.Architecture}}", imageName)
if err != nil {
return "", xerrors.Errorf("inspect image %s: %w: %s", imageName, err, stderr)
}
arch := string(stdout)
if arch == "" {
return "", xerrors.Errorf("no architecture found for image %s", imageName)
}
return arch, nil
}
// Copy copies a file from the host to a container.
func (dcli *dockerCLI) Copy(ctx context.Context, containerName, src, dst string) error {
_, stderr, err := runCmd(ctx, dcli.execer, "docker", "cp", src, containerName+":"+dst)
if err != nil {
return xerrors.Errorf("copy %s to %s:%s: %w: %s", src, containerName, dst, err, stderr)
}
return nil
}
// ExecAs executes a command in a container as a specific user.
func (dcli *dockerCLI) ExecAs(ctx context.Context, containerName, uid string, args ...string) ([]byte, error) {
execArgs := []string{"exec"}
if uid != "" {
altUID := uid
if uid == "root" {
// UID 0 is more portable than the name root, so we use that
// because some containers may not have a user named "root".
altUID = "0"
}
execArgs = append(execArgs, "--user", altUID)
}
execArgs = append(execArgs, containerName)
execArgs = append(execArgs, args...)
stdout, stderr, err := runCmd(ctx, dcli.execer, "docker", execArgs...)
if err != nil {
return nil, xerrors.Errorf("exec in container %s as user %s: %w: %s", containerName, uid, err, stderr)
}
return stdout, nil
}
// runCmd is a helper function that runs a command with the given
// arguments and returns the stdout and stderr output.
func runCmd(ctx context.Context, execer agentexec.Execer, cmd string, args ...string) (stdout, stderr []byte, err error) {
var stdoutBuf, stderrBuf bytes.Buffer
c := execer.CommandContext(ctx, cmd, args...)
c.Stdout = &stdoutBuf
c.Stderr = &stderrBuf
err = c.Run()
stdout = bytes.TrimSpace(stdoutBuf.Bytes())
stderr = bytes.TrimSpace(stderrBuf.Bytes())
return stdout, stderr, err
}
@@ -0,0 +1,128 @@
package agentcontainers_test
import (
"os"
"path/filepath"
"runtime"
"strings"
"testing"
"github.com/ory/dockertest/v3"
"github.com/ory/dockertest/v3/docker"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/testutil"
)
// TestIntegrationDockerCLI tests the DetectArchitecture, Copy, and
// ExecAs methods using a real Docker container. All tests share a
// single container to avoid setup overhead.
//
// Run manually with: CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestIntegrationDockerCLI
//
//nolint:tparallel,paralleltest // Docker integration tests don't run in parallel to avoid flakiness.
func TestIntegrationDockerCLI(t *testing.T) {
if ctud, ok := os.LookupEnv("CODER_TEST_USE_DOCKER"); !ok || ctud != "1" {
t.Skip("Set CODER_TEST_USE_DOCKER=1 to run this test")
}
pool, err := dockertest.NewPool("")
require.NoError(t, err, "Could not connect to docker")
// Start a simple busybox container for all subtests to share.
ct, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: "busybox",
Tag: "latest",
Cmd: []string{"sleep", "infinity"},
}, func(config *docker.HostConfig) {
config.AutoRemove = true
config.RestartPolicy = docker.RestartPolicy{Name: "no"}
})
require.NoError(t, err, "Could not start test docker container")
t.Logf("Created container %q", ct.Container.Name)
t.Cleanup(func() {
assert.NoError(t, pool.Purge(ct), "Could not purge resource %q", ct.Container.Name)
t.Logf("Purged container %q", ct.Container.Name)
})
// Wait for container to start.
require.Eventually(t, func() bool {
ct, ok := pool.ContainerByName(ct.Container.Name)
return ok && ct.Container.State.Running
}, testutil.WaitShort, testutil.IntervalSlow, "Container did not start in time")
dcli := agentcontainers.NewDockerCLI(agentexec.DefaultExecer)
containerName := strings.TrimPrefix(ct.Container.Name, "/")
t.Run("DetectArchitecture", func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
arch, err := dcli.DetectArchitecture(ctx, containerName)
require.NoError(t, err, "DetectArchitecture failed")
require.NotEmpty(t, arch, "arch has no content")
require.Equal(t, runtime.GOARCH, arch, "architecture does not match runtime, did you run this test with a remote Docker socket?")
t.Logf("Detected architecture: %s", arch)
})
t.Run("Copy", func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
want := "Help, I'm trapped!"
tempFile := filepath.Join(t.TempDir(), "test-file.txt")
err := os.WriteFile(tempFile, []byte(want), 0o600)
require.NoError(t, err, "create test file failed")
destPath := "/tmp/copied-file.txt"
err = dcli.Copy(ctx, containerName, tempFile, destPath)
require.NoError(t, err, "Copy failed")
got, err := dcli.ExecAs(ctx, containerName, "", "cat", destPath)
require.NoError(t, err, "ExecAs failed after Copy")
require.Equal(t, want, string(got), "copied file content did not match original")
t.Logf("Successfully copied file from %s to container %s:%s", tempFile, containerName, destPath)
})
t.Run("ExecAs", func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
// Test ExecAs without specifying user (should use container's default).
want := "root"
got, err := dcli.ExecAs(ctx, containerName, "", "whoami")
require.NoError(t, err, "ExecAs without user should succeed")
require.Equal(t, want, string(got), "ExecAs without user should output expected string")
// Test ExecAs with numeric UID (non root).
want = "1000"
_, err = dcli.ExecAs(ctx, containerName, want, "whoami")
require.Error(t, err, "ExecAs with UID 1000 should fail as user does not exist in busybox")
require.Contains(t, err.Error(), "whoami: unknown uid 1000", "ExecAs with UID 1000 should return 'unknown uid' error")
// Test ExecAs with root user (should convert "root" to "0", which still outputs root due to passwd).
want = "root"
got, err = dcli.ExecAs(ctx, containerName, "root", "whoami")
require.NoError(t, err, "ExecAs with root user should succeed")
require.Equal(t, want, string(got), "ExecAs with root user should output expected string")
// Test ExecAs with numeric UID.
want = "root"
got, err = dcli.ExecAs(ctx, containerName, "0", "whoami")
require.NoError(t, err, "ExecAs with UID 0 should succeed")
require.Equal(t, want, string(got), "ExecAs with UID 0 should output expected string")
// Test ExecAs with multiple arguments.
want = "multiple args test"
got, err = dcli.ExecAs(ctx, containerName, "", "sh", "-c", "echo '"+want+"'")
require.NoError(t, err, "ExecAs with multiple arguments should succeed")
require.Equal(t, want, string(got), "ExecAs with multiple arguments should output expected string")
t.Logf("Successfully executed commands in container %s", containerName)
})
}
+240 -390
View File
@@ -1,159 +1,18 @@
package agentcontainers
import (
"fmt"
"os"
"slices"
"strconv"
"strings"
"path/filepath"
"testing"
"time"
"go.uber.org/mock/gomock"
"github.com/google/uuid"
"github.com/ory/dockertest/v3"
"github.com/ory/dockertest/v3/docker"
"github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers/acmock"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/pty"
"github.com/coder/coder/v2/testutil"
"github.com/coder/quartz"
)
// TestIntegrationDocker tests agentcontainers functionality using a real
// Docker container. It starts a container with a known
// label, lists the containers, and verifies that the expected container is
// returned. It also executes a sample command inside the container.
// The container is deleted after the test is complete.
// As this test creates containers, it is skipped by default.
// It can be run manually as follows:
//
// CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestDockerCLIContainerLister
func TestIntegrationDocker(t *testing.T) {
t.Parallel()
if ctud, ok := os.LookupEnv("CODER_TEST_USE_DOCKER"); !ok || ctud != "1" {
t.Skip("Set CODER_TEST_USE_DOCKER=1 to run this test")
}
pool, err := dockertest.NewPool("")
require.NoError(t, err, "Could not connect to docker")
testLabelValue := uuid.New().String()
// Create a temporary directory to validate that we surface mounts correctly.
testTempDir := t.TempDir()
// Pick a random port to expose for testing port bindings.
testRandPort := testutil.RandomPortNoListen(t)
ct, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: "busybox",
Tag: "latest",
Cmd: []string{"sleep", "infnity"},
Labels: map[string]string{
"com.coder.test": testLabelValue,
"devcontainer.metadata": `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`,
},
Mounts: []string{testTempDir + ":" + testTempDir},
ExposedPorts: []string{fmt.Sprintf("%d/tcp", testRandPort)},
PortBindings: map[docker.Port][]docker.PortBinding{
docker.Port(fmt.Sprintf("%d/tcp", testRandPort)): {
{
HostIP: "0.0.0.0",
HostPort: strconv.FormatInt(int64(testRandPort), 10),
},
},
},
}, func(config *docker.HostConfig) {
config.AutoRemove = true
config.RestartPolicy = docker.RestartPolicy{Name: "no"}
})
require.NoError(t, err, "Could not start test docker container")
t.Logf("Created container %q", ct.Container.Name)
t.Cleanup(func() {
assert.NoError(t, pool.Purge(ct), "Could not purge resource %q", ct.Container.Name)
t.Logf("Purged container %q", ct.Container.Name)
})
// Wait for container to start
require.Eventually(t, func() bool {
ct, ok := pool.ContainerByName(ct.Container.Name)
return ok && ct.Container.State.Running
}, testutil.WaitShort, testutil.IntervalSlow, "Container did not start in time")
dcl := NewDocker(agentexec.DefaultExecer)
ctx := testutil.Context(t, testutil.WaitShort)
actual, err := dcl.List(ctx)
require.NoError(t, err, "Could not list containers")
require.Empty(t, actual.Warnings, "Expected no warnings")
var found bool
for _, foundContainer := range actual.Containers {
if foundContainer.ID == ct.Container.ID {
found = true
assert.Equal(t, ct.Container.Created, foundContainer.CreatedAt)
// ory/dockertest pre-pends a forward slash to the container name.
assert.Equal(t, strings.TrimPrefix(ct.Container.Name, "/"), foundContainer.FriendlyName)
// ory/dockertest returns the sha256 digest of the image.
assert.Equal(t, "busybox:latest", foundContainer.Image)
assert.Equal(t, ct.Container.Config.Labels, foundContainer.Labels)
assert.True(t, foundContainer.Running)
assert.Equal(t, "running", foundContainer.Status)
if assert.Len(t, foundContainer.Ports, 1) {
assert.Equal(t, testRandPort, foundContainer.Ports[0].Port)
assert.Equal(t, "tcp", foundContainer.Ports[0].Network)
}
if assert.Len(t, foundContainer.Volumes, 1) {
assert.Equal(t, testTempDir, foundContainer.Volumes[testTempDir])
}
// Test that EnvInfo is able to correctly modify a command to be
// executed inside the container.
dei, err := EnvInfo(ctx, agentexec.DefaultExecer, ct.Container.ID, "")
require.NoError(t, err, "Expected no error from DockerEnvInfo()")
ptyWrappedCmd, ptyWrappedArgs := dei.ModifyCommand("/bin/sh", "--norc")
ptyCmd, ptyPs, err := pty.Start(agentexec.DefaultExecer.PTYCommandContext(ctx, ptyWrappedCmd, ptyWrappedArgs...))
require.NoError(t, err, "failed to start pty command")
t.Cleanup(func() {
_ = ptyPs.Kill()
_ = ptyCmd.Close()
})
tr := testutil.NewTerminalReader(t, ptyCmd.OutputReader())
matchPrompt := func(line string) bool {
return strings.Contains(line, "#")
}
matchHostnameCmd := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), "hostname")
}
matchHostnameOuput := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), ct.Container.Config.Hostname)
}
matchEnvCmd := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), "env")
}
matchEnvOutput := func(line string) bool {
return strings.Contains(line, "FOO=bar") || strings.Contains(line, "MULTILINE=foo")
}
require.NoError(t, tr.ReadUntil(ctx, matchPrompt), "failed to match prompt")
t.Logf("Matched prompt")
_, err = ptyCmd.InputWriter().Write([]byte("hostname\r\n"))
require.NoError(t, err, "failed to write to pty")
t.Logf("Wrote hostname command")
require.NoError(t, tr.ReadUntil(ctx, matchHostnameCmd), "failed to match hostname command")
t.Logf("Matched hostname command")
require.NoError(t, tr.ReadUntil(ctx, matchHostnameOuput), "failed to match hostname output")
t.Logf("Matched hostname output")
_, err = ptyCmd.InputWriter().Write([]byte("env\r\n"))
require.NoError(t, err, "failed to write to pty")
t.Logf("Wrote env command")
require.NoError(t, tr.ReadUntil(ctx, matchEnvCmd), "failed to match env command")
t.Logf("Matched env command")
require.NoError(t, tr.ReadUntil(ctx, matchEnvOutput), "failed to match env output")
t.Logf("Matched env output")
break
}
}
assert.True(t, found, "Expected to find container with label 'com.coder.test=%s'", testLabelValue)
}
func TestWrapDockerExec(t *testing.T) {
t.Parallel()
tests := []struct {
@@ -182,7 +41,6 @@ func TestWrapDockerExec(t *testing.T) {
},
}
for _, tt := range tests {
tt := tt // appease the linter even though this isn't needed anymore
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
actualCmd, actualArgs := wrapDockerExec("my-container", tt.containerUser, tt.cmdArgs[0], tt.cmdArgs[1:]...)
@@ -192,120 +50,6 @@ func TestWrapDockerExec(t *testing.T) {
}
}
// TestContainersHandler tests the containersHandler.getContainers method using
// a mock implementation. It specifically tests caching behavior.
func TestContainersHandler(t *testing.T) {
t.Parallel()
t.Run("list", func(t *testing.T) {
t.Parallel()
fakeCt := fakeContainer(t)
fakeCt2 := fakeContainer(t)
makeResponse := func(cts ...codersdk.WorkspaceAgentDevcontainer) codersdk.WorkspaceAgentListContainersResponse {
return codersdk.WorkspaceAgentListContainersResponse{Containers: cts}
}
// Each test case is called multiple times to ensure idempotency
for _, tc := range []struct {
name string
// data to be stored in the handler
cacheData codersdk.WorkspaceAgentListContainersResponse
// duration of cache
cacheDur time.Duration
// relative age of the cached data
cacheAge time.Duration
// function to set up expectations for the mock
setupMock func(*acmock.MockLister)
// expected result
expected codersdk.WorkspaceAgentListContainersResponse
// expected error
expectedErr string
}{
{
name: "no cache",
setupMock: func(mcl *acmock.MockLister) {
mcl.EXPECT().List(gomock.Any()).Return(makeResponse(fakeCt), nil).AnyTimes()
},
expected: makeResponse(fakeCt),
},
{
name: "no data",
cacheData: makeResponse(),
cacheAge: 2 * time.Second,
cacheDur: time.Second,
setupMock: func(mcl *acmock.MockLister) {
mcl.EXPECT().List(gomock.Any()).Return(makeResponse(fakeCt), nil).AnyTimes()
},
expected: makeResponse(fakeCt),
},
{
name: "cached data",
cacheAge: time.Second,
cacheData: makeResponse(fakeCt),
cacheDur: 2 * time.Second,
expected: makeResponse(fakeCt),
},
{
name: "lister error",
setupMock: func(mcl *acmock.MockLister) {
mcl.EXPECT().List(gomock.Any()).Return(makeResponse(), assert.AnError).AnyTimes()
},
expectedErr: assert.AnError.Error(),
},
{
name: "stale cache",
cacheAge: 2 * time.Second,
cacheData: makeResponse(fakeCt),
cacheDur: time.Second,
setupMock: func(mcl *acmock.MockLister) {
mcl.EXPECT().List(gomock.Any()).Return(makeResponse(fakeCt2), nil).AnyTimes()
},
expected: makeResponse(fakeCt2),
},
} {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
var (
ctx = testutil.Context(t, testutil.WaitShort)
clk = quartz.NewMock(t)
ctrl = gomock.NewController(t)
mockLister = acmock.NewMockLister(ctrl)
now = time.Now().UTC()
ch = devcontainersHandler{
cacheDuration: tc.cacheDur,
cl: mockLister,
clock: clk,
containers: &tc.cacheData,
lockCh: make(chan struct{}, 1),
}
)
if tc.cacheAge != 0 {
ch.mtime = now.Add(-tc.cacheAge)
}
if tc.setupMock != nil {
tc.setupMock(mockLister)
}
clk.Set(now).MustWait(ctx)
// Repeat the test to ensure idempotency
for i := 0; i < 2; i++ {
actual, err := ch.getContainers(ctx)
if tc.expectedErr != "" {
require.Empty(t, actual, "expected no data (attempt %d)", i)
require.ErrorContains(t, err, tc.expectedErr, "expected error (attempt %d)", i)
} else {
require.NoError(t, err, "expected no error (attempt %d)", i)
require.Equal(t, tc.expected, actual, "expected containers to be equal (attempt %d)", i)
}
}
})
}
})
}
func TestConvertDockerPort(t *testing.T) {
t.Parallel()
@@ -355,7 +99,6 @@ func TestConvertDockerPort(t *testing.T) {
expectError: "invalid port",
},
} {
tc := tc // not needed anymore but makes the linter happy
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
actualPort, actualNetwork, actualErr := convertDockerPort(tc.in)
@@ -405,160 +148,267 @@ func TestConvertDockerVolume(t *testing.T) {
expectError: "invalid volume",
},
} {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
})
}
}
// TestDockerEnvInfoer tests the ability of EnvInfo to extract information from
// running containers. Containers are deleted after the test is complete.
// As this test creates containers, it is skipped by default.
// It can be run manually as follows:
//
// CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestDockerEnvInfoer
func TestDockerEnvInfoer(t *testing.T) {
// TestConvertDockerInspect tests the convertDockerInspect function using
// fixtures from ./testdata.
func TestConvertDockerInspect(t *testing.T) {
t.Parallel()
if ctud, ok := os.LookupEnv("CODER_TEST_USE_DOCKER"); !ok || ctud != "1" {
t.Skip("Set CODER_TEST_USE_DOCKER=1 to run this test")
}
pool, err := dockertest.NewPool("")
require.NoError(t, err, "Could not connect to docker")
// nolint:paralleltest // variable recapture no longer required
for idx, tt := range []struct {
image string
labels map[string]string
expectedEnv []string
containerUser string
expectedUsername string
expectedUserShell string
//nolint:paralleltest // variable recapture no longer required
for _, tt := range []struct {
name string
expect []codersdk.WorkspaceAgentContainer
expectWarns []string
expectError string
}{
{
image: "busybox:latest",
labels: map[string]string{`devcontainer.metadata`: `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
expectedUsername: "root",
expectedUserShell: "/bin/sh",
name: "container_simple",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 55, 58, 91280203, time.UTC),
ID: "6b539b8c60f5230b8b0fde2502cd2332d31c0d526a3e6eb6eef1cc39439b3286",
FriendlyName: "eloquent_kowalevski",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{},
},
},
},
{
image: "busybox:latest",
labels: map[string]string{`devcontainer.metadata`: `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "root",
expectedUsername: "root",
expectedUserShell: "/bin/sh",
name: "container_labels",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 20, 3, 28, 71706536, time.UTC),
ID: "bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f",
FriendlyName: "fervent_bardeen",
Image: "debian:bookworm",
Labels: map[string]string{"baz": "zap", "foo": "bar"},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{},
},
},
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
expectedUsername: "coder",
expectedUserShell: "/bin/bash",
name: "container_binds",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 58, 43, 522505027, time.UTC),
ID: "fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a",
FriendlyName: "silly_beaver",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{
"/tmp/test/a": "/var/coder/a",
"/tmp/test/b": "/var/coder/b",
},
},
},
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "coder",
expectedUsername: "coder",
expectedUserShell: "/bin/bash",
name: "container_sameport",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 56, 34, 842164541, time.UTC),
ID: "4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2",
FriendlyName: "modest_varahamihira",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{
{
Network: "tcp",
Port: 12345,
HostPort: 12345,
HostIP: "0.0.0.0",
},
},
Volumes: map[string]string{},
},
},
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "root",
expectedUsername: "root",
expectedUserShell: "/bin/bash",
name: "container_differentport",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 57, 8, 862545133, time.UTC),
ID: "3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea",
FriendlyName: "boring_ellis",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{
{
Network: "tcp",
Port: 23456,
HostPort: 12345,
HostIP: "0.0.0.0",
},
},
Volumes: map[string]string{},
},
},
},
{
name: "container_sameportdiffip",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 56, 34, 842164541, time.UTC),
ID: "a",
FriendlyName: "a",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{
{
Network: "tcp",
Port: 8001,
HostPort: 8000,
HostIP: "0.0.0.0",
},
},
Volumes: map[string]string{},
},
{
CreatedAt: time.Date(2025, 3, 11, 17, 56, 34, 842164541, time.UTC),
ID: "b",
FriendlyName: "b",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{
{
Network: "tcp",
Port: 8001,
HostPort: 8000,
HostIP: "::",
},
},
Volumes: map[string]string{},
},
},
expectWarns: []string{"host port 8000 is mapped to multiple containers on different interfaces: a, b"},
},
{
name: "container_volume",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 59, 42, 39484134, time.UTC),
ID: "b3688d98c007f53402a55e46d803f2f3ba9181d8e3f71a2eb19b392cf0377b4e",
FriendlyName: "upbeat_carver",
Image: "debian:bookworm",
Labels: map[string]string{},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{
"/var/lib/docker/volumes/testvol/_data": "/testvol",
},
},
},
},
{
name: "devcontainer_simple",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 1, 5, 751972661, time.UTC),
ID: "0b2a9fcf5727d9562943ce47d445019f4520e37a2aa7c6d9346d01af4f4f9aed",
FriendlyName: "optimistic_hopper",
Image: "debian:bookworm",
Labels: map[string]string{
"devcontainer.config_file": "/home/coder/src/coder/coder/agent/agentcontainers/testdata/devcontainer_simple.json",
"devcontainer.metadata": "[]",
},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{},
},
},
},
{
name: "devcontainer_forwardport",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 3, 55, 22053072, time.UTC),
ID: "4a16af2293fb75dc827a6949a3905dd57ea28cc008823218ce24fab1cb66c067",
FriendlyName: "serene_khayyam",
Image: "debian:bookworm",
Labels: map[string]string{
"devcontainer.config_file": "/home/coder/src/coder/coder/agent/agentcontainers/testdata/devcontainer_forwardport.json",
"devcontainer.metadata": "[]",
},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{},
Volumes: map[string]string{},
},
},
},
{
name: "devcontainer_appport",
expect: []codersdk.WorkspaceAgentContainer{
{
CreatedAt: time.Date(2025, 3, 11, 17, 2, 42, 613747761, time.UTC),
ID: "52d23691f4b954d083f117358ea763e20f69af584e1c08f479c5752629ee0be3",
FriendlyName: "suspicious_margulis",
Image: "debian:bookworm",
Labels: map[string]string{
"devcontainer.config_file": "/home/coder/src/coder/coder/agent/agentcontainers/testdata/devcontainer_appport.json",
"devcontainer.metadata": "[]",
},
Running: true,
Status: "running",
Ports: []codersdk.WorkspaceAgentContainerPort{
{
Network: "tcp",
Port: 8080,
HostPort: 32768,
HostIP: "0.0.0.0",
},
},
Volumes: map[string]string{},
},
},
},
} {
t.Run(fmt.Sprintf("#%d", idx), func(t *testing.T) {
// nolint:paralleltest // variable recapture no longer required
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
// Start a container with the given image
// and environment variables
image := strings.Split(tt.image, ":")[0]
tag := strings.Split(tt.image, ":")[1]
ct, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: image,
Tag: tag,
Cmd: []string{"sleep", "infinity"},
Labels: tt.labels,
}, func(config *docker.HostConfig) {
config.AutoRemove = true
config.RestartPolicy = docker.RestartPolicy{Name: "no"}
})
require.NoError(t, err, "Could not start test docker container")
t.Logf("Created container %q", ct.Container.Name)
t.Cleanup(func() {
assert.NoError(t, pool.Purge(ct), "Could not purge resource %q", ct.Container.Name)
t.Logf("Purged container %q", ct.Container.Name)
})
ctx := testutil.Context(t, testutil.WaitShort)
dei, err := EnvInfo(ctx, agentexec.DefaultExecer, ct.Container.ID, tt.containerUser)
require.NoError(t, err, "Expected no error from DockerEnvInfo()")
u, err := dei.CurrentUser()
require.NoError(t, err, "Expected no error from CurrentUser()")
require.Equal(t, tt.expectedUsername, u.Username, "Expected username to match")
hd, err := dei.UserHomeDir()
require.NoError(t, err, "Expected no error from UserHomeDir()")
require.NotEmpty(t, hd, "Expected user homedir to be non-empty")
sh, err := dei.UserShell(tt.containerUser)
require.NoError(t, err, "Expected no error from UserShell()")
require.Equal(t, tt.expectedUserShell, sh, "Expected user shell to match")
// We don't need to test the actual environment variables here.
environ := dei.Environ()
require.NotEmpty(t, environ, "Expected environ to be non-empty")
// Test that the environment variables are present in modified command
// output.
envCmd, envArgs := dei.ModifyCommand("env")
for _, env := range tt.expectedEnv {
require.Subset(t, envArgs, []string{"--env", env})
bs, err := os.ReadFile(filepath.Join("testdata", tt.name, "docker_inspect.json"))
require.NoError(t, err, "failed to read testdata file")
actual, warns, err := convertDockerInspect(bs)
if len(tt.expectWarns) > 0 {
assert.Len(t, warns, len(tt.expectWarns), "expected warnings")
for _, warn := range tt.expectWarns {
assert.Contains(t, warns, warn)
}
}
// Run the command in the container and check the output
// HACK: we remove the --tty argument because we're not running in a tty
envArgs = slices.DeleteFunc(envArgs, func(s string) bool { return s == "--tty" })
stdout, stderr, err := run(ctx, agentexec.DefaultExecer, envCmd, envArgs...)
require.Empty(t, stderr, "Expected no stderr output")
require.NoError(t, err, "Expected no error from running command")
for _, env := range tt.expectedEnv {
require.Contains(t, stdout, env)
if tt.expectError != "" {
assert.Empty(t, actual, "expected no data")
assert.ErrorContains(t, err, tt.expectError)
return
}
require.NoError(t, err, "expected no error")
if diff := cmp.Diff(tt.expect, actual); diff != "" {
t.Errorf("unexpected diff (-want +got):\n%s", diff)
}
})
}
}
func fakeContainer(t *testing.T, mut ...func(*codersdk.WorkspaceAgentDevcontainer)) codersdk.WorkspaceAgentDevcontainer {
t.Helper()
ct := codersdk.WorkspaceAgentDevcontainer{
CreatedAt: time.Now().UTC(),
ID: uuid.New().String(),
FriendlyName: testutil.GetRandomName(t),
Image: testutil.GetRandomName(t) + ":" + strings.Split(uuid.New().String(), "-")[0],
Labels: map[string]string{
testutil.GetRandomName(t): testutil.GetRandomName(t),
},
Running: true,
Ports: []codersdk.WorkspaceAgentListeningPort{
{
Network: "tcp",
Port: testutil.RandomPortNoListen(t),
},
},
Status: testutil.MustRandString(t, 10),
Volumes: map[string]string{testutil.GetRandomName(t): testutil.GetRandomName(t)},
}
for _, m := range mut {
m(&ct)
}
return ct
}
+296
View File
@@ -0,0 +1,296 @@
package agentcontainers_test
import (
"context"
"fmt"
"os"
"slices"
"strconv"
"strings"
"testing"
"github.com/google/uuid"
"github.com/ory/dockertest/v3"
"github.com/ory/dockertest/v3/docker"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/pty"
"github.com/coder/coder/v2/testutil"
)
// TestIntegrationDocker tests agentcontainers functionality using a real
// Docker container. It starts a container with a known
// label, lists the containers, and verifies that the expected container is
// returned. It also executes a sample command inside the container.
// The container is deleted after the test is complete.
// As this test creates containers, it is skipped by default.
// It can be run manually as follows:
//
// CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestDockerCLIContainerLister
//
//nolint:paralleltest // This test tends to flake when lots of containers start and stop in parallel.
func TestIntegrationDocker(t *testing.T) {
if ctud, ok := os.LookupEnv("CODER_TEST_USE_DOCKER"); !ok || ctud != "1" {
t.Skip("Set CODER_TEST_USE_DOCKER=1 to run this test")
}
pool, err := dockertest.NewPool("")
require.NoError(t, err, "Could not connect to docker")
testLabelValue := uuid.New().String()
// Create a temporary directory to validate that we surface mounts correctly.
testTempDir := t.TempDir()
// Pick a random port to expose for testing port bindings.
testRandPort := testutil.RandomPortNoListen(t)
ct, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: "busybox",
Tag: "latest",
Cmd: []string{"sleep", "infnity"},
Labels: map[string]string{
"com.coder.test": testLabelValue,
"devcontainer.metadata": `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`,
},
Mounts: []string{testTempDir + ":" + testTempDir},
ExposedPorts: []string{fmt.Sprintf("%d/tcp", testRandPort)},
PortBindings: map[docker.Port][]docker.PortBinding{
docker.Port(fmt.Sprintf("%d/tcp", testRandPort)): {
{
HostIP: "0.0.0.0",
HostPort: strconv.FormatInt(int64(testRandPort), 10),
},
},
},
}, func(config *docker.HostConfig) {
config.AutoRemove = true
config.RestartPolicy = docker.RestartPolicy{Name: "no"}
})
require.NoError(t, err, "Could not start test docker container")
t.Logf("Created container %q", ct.Container.Name)
t.Cleanup(func() {
assert.NoError(t, pool.Purge(ct), "Could not purge resource %q", ct.Container.Name)
t.Logf("Purged container %q", ct.Container.Name)
})
// Wait for container to start
require.Eventually(t, func() bool {
ct, ok := pool.ContainerByName(ct.Container.Name)
return ok && ct.Container.State.Running
}, testutil.WaitShort, testutil.IntervalSlow, "Container did not start in time")
dcl := agentcontainers.NewDockerCLI(agentexec.DefaultExecer)
ctx := testutil.Context(t, testutil.WaitShort)
actual, err := dcl.List(ctx)
require.NoError(t, err, "Could not list containers")
require.Empty(t, actual.Warnings, "Expected no warnings")
var found bool
for _, foundContainer := range actual.Containers {
if foundContainer.ID == ct.Container.ID {
found = true
assert.Equal(t, ct.Container.Created, foundContainer.CreatedAt)
// ory/dockertest pre-pends a forward slash to the container name.
assert.Equal(t, strings.TrimPrefix(ct.Container.Name, "/"), foundContainer.FriendlyName)
// ory/dockertest returns the sha256 digest of the image.
assert.Equal(t, "busybox:latest", foundContainer.Image)
assert.Equal(t, ct.Container.Config.Labels, foundContainer.Labels)
assert.True(t, foundContainer.Running)
assert.Equal(t, "running", foundContainer.Status)
if assert.Len(t, foundContainer.Ports, 1) {
assert.Equal(t, testRandPort, foundContainer.Ports[0].Port)
assert.Equal(t, "tcp", foundContainer.Ports[0].Network)
}
if assert.Len(t, foundContainer.Volumes, 1) {
assert.Equal(t, testTempDir, foundContainer.Volumes[testTempDir])
}
// Test that EnvInfo is able to correctly modify a command to be
// executed inside the container.
dei, err := agentcontainers.EnvInfo(ctx, agentexec.DefaultExecer, ct.Container.ID, "")
require.NoError(t, err, "Expected no error from DockerEnvInfo()")
ptyWrappedCmd, ptyWrappedArgs := dei.ModifyCommand("/bin/sh", "--norc")
ptyCmd, ptyPs, err := pty.Start(agentexec.DefaultExecer.PTYCommandContext(ctx, ptyWrappedCmd, ptyWrappedArgs...))
require.NoError(t, err, "failed to start pty command")
t.Cleanup(func() {
_ = ptyPs.Kill()
_ = ptyCmd.Close()
})
tr := testutil.NewTerminalReader(t, ptyCmd.OutputReader())
matchPrompt := func(line string) bool {
return strings.Contains(line, "#")
}
matchHostnameCmd := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), "hostname")
}
matchHostnameOuput := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), ct.Container.Config.Hostname)
}
matchEnvCmd := func(line string) bool {
return strings.Contains(strings.TrimSpace(line), "env")
}
matchEnvOutput := func(line string) bool {
return strings.Contains(line, "FOO=bar") || strings.Contains(line, "MULTILINE=foo")
}
require.NoError(t, tr.ReadUntil(ctx, matchPrompt), "failed to match prompt")
t.Logf("Matched prompt")
_, err = ptyCmd.InputWriter().Write([]byte("hostname\r\n"))
require.NoError(t, err, "failed to write to pty")
t.Logf("Wrote hostname command")
require.NoError(t, tr.ReadUntil(ctx, matchHostnameCmd), "failed to match hostname command")
t.Logf("Matched hostname command")
require.NoError(t, tr.ReadUntil(ctx, matchHostnameOuput), "failed to match hostname output")
t.Logf("Matched hostname output")
_, err = ptyCmd.InputWriter().Write([]byte("env\r\n"))
require.NoError(t, err, "failed to write to pty")
t.Logf("Wrote env command")
require.NoError(t, tr.ReadUntil(ctx, matchEnvCmd), "failed to match env command")
t.Logf("Matched env command")
require.NoError(t, tr.ReadUntil(ctx, matchEnvOutput), "failed to match env output")
t.Logf("Matched env output")
break
}
}
assert.True(t, found, "Expected to find container with label 'com.coder.test=%s'", testLabelValue)
}
// TestDockerEnvInfoer tests the ability of EnvInfo to extract information from
// running containers. Containers are deleted after the test is complete.
// As this test creates containers, it is skipped by default.
// It can be run manually as follows:
//
// CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestDockerEnvInfoer
//
//nolint:paralleltest // This test tends to flake when lots of containers start and stop in parallel.
func TestDockerEnvInfoer(t *testing.T) {
if ctud, ok := os.LookupEnv("CODER_TEST_USE_DOCKER"); !ok || ctud != "1" {
t.Skip("Set CODER_TEST_USE_DOCKER=1 to run this test")
}
pool, err := dockertest.NewPool("")
require.NoError(t, err, "Could not connect to docker")
// nolint:paralleltest // variable recapture no longer required
for idx, tt := range []struct {
image string
labels map[string]string
expectedEnv []string
containerUser string
expectedUsername string
expectedUserShell string
}{
{
image: "busybox:latest",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
expectedUsername: "root",
expectedUserShell: "/bin/sh",
},
{
image: "busybox:latest",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "root",
expectedUsername: "root",
expectedUserShell: "/bin/sh",
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
expectedUsername: "coder",
expectedUserShell: "/bin/bash",
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "coder",
expectedUsername: "coder",
expectedUserShell: "/bin/bash",
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar", "MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "root",
expectedUsername: "root",
expectedUserShell: "/bin/bash",
},
{
image: "codercom/enterprise-minimal:ubuntu",
labels: map[string]string{`devcontainer.metadata`: `[{"remoteEnv": {"FOO": "bar"}},{"remoteEnv": {"MULTILINE": "foo\nbar\nbaz"}}]`},
expectedEnv: []string{"FOO=bar", "MULTILINE=foo\nbar\nbaz"},
containerUser: "root",
expectedUsername: "root",
expectedUserShell: "/bin/bash",
},
} {
//nolint:paralleltest // variable recapture no longer required
t.Run(fmt.Sprintf("#%d", idx), func(t *testing.T) {
// Start a container with the given image
// and environment variables
image := strings.Split(tt.image, ":")[0]
tag := strings.Split(tt.image, ":")[1]
ct, err := pool.RunWithOptions(&dockertest.RunOptions{
Repository: image,
Tag: tag,
Cmd: []string{"sleep", "infinity"},
Labels: tt.labels,
}, func(config *docker.HostConfig) {
config.AutoRemove = true
config.RestartPolicy = docker.RestartPolicy{Name: "no"}
})
require.NoError(t, err, "Could not start test docker container")
t.Logf("Created container %q", ct.Container.Name)
t.Cleanup(func() {
assert.NoError(t, pool.Purge(ct), "Could not purge resource %q", ct.Container.Name)
t.Logf("Purged container %q", ct.Container.Name)
})
ctx := testutil.Context(t, testutil.WaitShort)
dei, err := agentcontainers.EnvInfo(ctx, agentexec.DefaultExecer, ct.Container.ID, tt.containerUser)
require.NoError(t, err, "Expected no error from DockerEnvInfo()")
u, err := dei.User()
require.NoError(t, err, "Expected no error from CurrentUser()")
require.Equal(t, tt.expectedUsername, u.Username, "Expected username to match")
hd, err := dei.HomeDir()
require.NoError(t, err, "Expected no error from UserHomeDir()")
require.NotEmpty(t, hd, "Expected user homedir to be non-empty")
sh, err := dei.Shell(tt.containerUser)
require.NoError(t, err, "Expected no error from UserShell()")
require.Equal(t, tt.expectedUserShell, sh, "Expected user shell to match")
// We don't need to test the actual environment variables here.
environ := dei.Environ()
require.NotEmpty(t, environ, "Expected environ to be non-empty")
// Test that the environment variables are present in modified command
// output.
envCmd, envArgs := dei.ModifyCommand("env")
for _, env := range tt.expectedEnv {
require.Subset(t, envArgs, []string{"--env", env})
}
// Run the command in the container and check the output
// HACK: we remove the --tty argument because we're not running in a tty
envArgs = slices.DeleteFunc(envArgs, func(s string) bool { return s == "--tty" })
stdout, stderr, err := run(ctx, agentexec.DefaultExecer, envCmd, envArgs...)
require.Empty(t, stderr, "Expected no stderr output")
require.NoError(t, err, "Expected no error from running command")
for _, env := range tt.expectedEnv {
require.Contains(t, stdout, env)
}
})
}
}
func run(ctx context.Context, execer agentexec.Execer, cmd string, args ...string) (stdout, stderr string, err error) {
var stdoutBuf, stderrBuf strings.Builder
execCmd := execer.CommandContext(ctx, cmd, args...)
execCmd.Stdout = &stdoutBuf
execCmd.Stderr = &stderrBuf
err = execCmd.Run()
stdout = strings.TrimSpace(stdoutBuf.String())
stderr = strings.TrimSpace(stderrBuf.String())
return stdout, stderr, err
}
+601
View File
@@ -0,0 +1,601 @@
// Code generated by dcspec/gen.sh. DO NOT EDIT.
//
// This file was generated from JSON Schema using quicktype, do not modify it directly.
// To parse and unparse this JSON data, add this code to your project and do:
//
// devContainer, err := UnmarshalDevContainer(bytes)
// bytes, err = devContainer.Marshal()
package dcspec
import (
"bytes"
"errors"
)
import "encoding/json"
func UnmarshalDevContainer(data []byte) (DevContainer, error) {
var r DevContainer
err := json.Unmarshal(data, &r)
return r, err
}
func (r *DevContainer) Marshal() ([]byte, error) {
return json.Marshal(r)
}
// Defines a dev container
type DevContainer struct {
// Docker build-related options.
Build *BuildOptions `json:"build,omitempty"`
// The location of the context folder for building the Docker image. The path is relative to
// the folder containing the `devcontainer.json` file.
Context *string `json:"context,omitempty"`
// The location of the Dockerfile that defines the contents of the container. The path is
// relative to the folder containing the `devcontainer.json` file.
DockerFile *string `json:"dockerFile,omitempty"`
// The docker image that will be used to create the container.
Image *string `json:"image,omitempty"`
// Application ports that are exposed by the container. This can be a single port or an
// array of ports. Each port can be a number or a string. A number is mapped to the same
// port on the host. A string is passed to Docker unchanged and can be used to map ports
// differently, e.g. "8000:8010".
AppPort *DevContainerAppPort `json:"appPort"`
// Whether to overwrite the command specified in the image. The default is true.
//
// Whether to overwrite the command specified in the image. The default is false.
OverrideCommand *bool `json:"overrideCommand,omitempty"`
// The arguments required when starting in the container.
RunArgs []string `json:"runArgs,omitempty"`
// Action to take when the user disconnects from the container in their editor. The default
// is to stop the container.
//
// Action to take when the user disconnects from the primary container in their editor. The
// default is to stop all of the compose containers.
ShutdownAction *ShutdownAction `json:"shutdownAction,omitempty"`
// The path of the workspace folder inside the container.
//
// The path of the workspace folder inside the container. This is typically the target path
// of a volume mount in the docker-compose.yml.
WorkspaceFolder *string `json:"workspaceFolder,omitempty"`
// The --mount parameter for docker run. The default is to mount the project folder at
// /workspaces/$project.
WorkspaceMount *string `json:"workspaceMount,omitempty"`
// The name of the docker-compose file(s) used to start the services.
DockerComposeFile *CacheFrom `json:"dockerComposeFile"`
// An array of services that should be started and stopped.
RunServices []string `json:"runServices,omitempty"`
// The service you want to work on. This is considered the primary container for your dev
// environment which your editor will connect to.
Service *string `json:"service,omitempty"`
// The JSON schema of the `devcontainer.json` file.
Schema *string `json:"$schema,omitempty"`
AdditionalProperties map[string]interface{} `json:"additionalProperties,omitempty"`
// Passes docker capabilities to include when creating the dev container.
CapAdd []string `json:"capAdd,omitempty"`
// Container environment variables.
ContainerEnv map[string]string `json:"containerEnv,omitempty"`
// The user the container will be started with. The default is the user on the Docker image.
ContainerUser *string `json:"containerUser,omitempty"`
// Tool-specific configuration. Each tool should use a JSON object subproperty with a unique
// name to group its customizations.
Customizations map[string]interface{} `json:"customizations,omitempty"`
// Features to add to the dev container.
Features *Features `json:"features,omitempty"`
// Ports that are forwarded from the container to the local machine. Can be an integer port
// number, or a string of the format "host:port_number".
ForwardPorts []ForwardPort `json:"forwardPorts,omitempty"`
// Host hardware requirements.
HostRequirements *HostRequirements `json:"hostRequirements,omitempty"`
// Passes the --init flag when creating the dev container.
Init *bool `json:"init,omitempty"`
// A command to run locally (i.e Your host machine, cloud VM) before anything else. This
// command is run before "onCreateCommand". If this is a single string, it will be run in a
// shell. If this is an array of strings, it will be run as a single command without shell.
// If this is an object, each provided command will be run in parallel.
InitializeCommand *Command `json:"initializeCommand"`
// Mount points to set up when creating the container. See Docker's documentation for the
// --mount option for the supported syntax.
Mounts []MountElement `json:"mounts,omitempty"`
// A name for the dev container which can be displayed to the user.
Name *string `json:"name,omitempty"`
// A command to run when creating the container. This command is run after
// "initializeCommand" and before "updateContentCommand". If this is a single string, it
// will be run in a shell. If this is an array of strings, it will be run as a single
// command without shell. If this is an object, each provided command will be run in
// parallel.
OnCreateCommand *Command `json:"onCreateCommand"`
OtherPortsAttributes *OtherPortsAttributes `json:"otherPortsAttributes,omitempty"`
// Array consisting of the Feature id (without the semantic version) of Features in the
// order the user wants them to be installed.
OverrideFeatureInstallOrder []string `json:"overrideFeatureInstallOrder,omitempty"`
PortsAttributes *PortsAttributes `json:"portsAttributes,omitempty"`
// A command to run when attaching to the container. This command is run after
// "postStartCommand". If this is a single string, it will be run in a shell. If this is an
// array of strings, it will be run as a single command without shell. If this is an object,
// each provided command will be run in parallel.
PostAttachCommand *Command `json:"postAttachCommand"`
// A command to run after creating the container. This command is run after
// "updateContentCommand" and before "postStartCommand". If this is a single string, it will
// be run in a shell. If this is an array of strings, it will be run as a single command
// without shell. If this is an object, each provided command will be run in parallel.
PostCreateCommand *Command `json:"postCreateCommand"`
// A command to run after starting the container. This command is run after
// "postCreateCommand" and before "postAttachCommand". If this is a single string, it will
// be run in a shell. If this is an array of strings, it will be run as a single command
// without shell. If this is an object, each provided command will be run in parallel.
PostStartCommand *Command `json:"postStartCommand"`
// Passes the --privileged flag when creating the dev container.
Privileged *bool `json:"privileged,omitempty"`
// Remote environment variables to set for processes spawned in the container including
// lifecycle scripts and any remote editor/IDE server process.
RemoteEnv map[string]*string `json:"remoteEnv,omitempty"`
// The username to use for spawning processes in the container including lifecycle scripts
// and any remote editor/IDE server process. The default is the same user as the container.
RemoteUser *string `json:"remoteUser,omitempty"`
// Recommended secrets for this dev container. Recommendations are provided as environment
// variable keys with optional metadata.
Secrets *Secrets `json:"secrets,omitempty"`
// Passes docker security options to include when creating the dev container.
SecurityOpt []string `json:"securityOpt,omitempty"`
// A command to run when creating the container and rerun when the workspace content was
// updated while creating the container. This command is run after "onCreateCommand" and
// before "postCreateCommand". If this is a single string, it will be run in a shell. If
// this is an array of strings, it will be run as a single command without shell. If this is
// an object, each provided command will be run in parallel.
UpdateContentCommand *Command `json:"updateContentCommand"`
// Controls whether on Linux the container's user should be updated with the local user's
// UID and GID. On by default when opening from a local folder.
UpdateRemoteUserUID *bool `json:"updateRemoteUserUID,omitempty"`
// User environment probe to run. The default is "loginInteractiveShell".
UserEnvProbe *UserEnvProbe `json:"userEnvProbe,omitempty"`
// The user command to wait for before continuing execution in the background while the UI
// is starting up. The default is "updateContentCommand".
WaitFor *WaitFor `json:"waitFor,omitempty"`
}
// Docker build-related options.
type BuildOptions struct {
// The location of the context folder for building the Docker image. The path is relative to
// the folder containing the `devcontainer.json` file.
Context *string `json:"context,omitempty"`
// The location of the Dockerfile that defines the contents of the container. The path is
// relative to the folder containing the `devcontainer.json` file.
Dockerfile *string `json:"dockerfile,omitempty"`
// Build arguments.
Args map[string]string `json:"args,omitempty"`
// The image to consider as a cache. Use an array to specify multiple images.
CacheFrom *CacheFrom `json:"cacheFrom"`
// Additional arguments passed to the build command.
Options []string `json:"options,omitempty"`
// Target stage in a multi-stage build.
Target *string `json:"target,omitempty"`
}
// Features to add to the dev container.
type Features struct {
Fish interface{} `json:"fish"`
Gradle interface{} `json:"gradle"`
Homebrew interface{} `json:"homebrew"`
Jupyterlab interface{} `json:"jupyterlab"`
Maven interface{} `json:"maven"`
}
// Host hardware requirements.
type HostRequirements struct {
// Number of required CPUs.
Cpus *int64 `json:"cpus,omitempty"`
GPU *GPUUnion `json:"gpu"`
// Amount of required RAM in bytes. Supports units tb, gb, mb and kb.
Memory *string `json:"memory,omitempty"`
// Amount of required disk space in bytes. Supports units tb, gb, mb and kb.
Storage *string `json:"storage,omitempty"`
}
// Indicates whether a GPU is required. The string "optional" indicates that a GPU is
// optional. An object value can be used to configure more detailed requirements.
type GPUClass struct {
// Number of required cores.
Cores *int64 `json:"cores,omitempty"`
// Amount of required RAM in bytes. Supports units tb, gb, mb and kb.
Memory *string `json:"memory,omitempty"`
}
type Mount struct {
// Mount source.
Source *string `json:"source,omitempty"`
// Mount target.
Target string `json:"target"`
// Mount type.
Type Type `json:"type"`
}
type OtherPortsAttributes struct {
// Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is
// required if the local port is a privileged port.
ElevateIfNeeded *bool `json:"elevateIfNeeded,omitempty"`
// Label that will be shown in the UI for this port.
Label *string `json:"label,omitempty"`
// Defines the action that occurs when the port is discovered for automatic forwarding
OnAutoForward *OnAutoForward `json:"onAutoForward,omitempty"`
// The protocol to use when forwarding this port.
Protocol *Protocol `json:"protocol,omitempty"`
RequireLocalPort *bool `json:"requireLocalPort,omitempty"`
}
type PortsAttributes struct{}
// Recommended secrets for this dev container. Recommendations are provided as environment
// variable keys with optional metadata.
type Secrets struct{}
type GPUEnum string
const (
Optional GPUEnum = "optional"
)
// Mount type.
type Type string
const (
Bind Type = "bind"
Volume Type = "volume"
)
// Defines the action that occurs when the port is discovered for automatic forwarding
type OnAutoForward string
const (
Ignore OnAutoForward = "ignore"
Notify OnAutoForward = "notify"
OpenBrowser OnAutoForward = "openBrowser"
OpenPreview OnAutoForward = "openPreview"
Silent OnAutoForward = "silent"
)
// The protocol to use when forwarding this port.
type Protocol string
const (
HTTP Protocol = "http"
HTTPS Protocol = "https"
)
// Action to take when the user disconnects from the container in their editor. The default
// is to stop the container.
//
// Action to take when the user disconnects from the primary container in their editor. The
// default is to stop all of the compose containers.
type ShutdownAction string
const (
ShutdownActionNone ShutdownAction = "none"
StopCompose ShutdownAction = "stopCompose"
StopContainer ShutdownAction = "stopContainer"
)
// User environment probe to run. The default is "loginInteractiveShell".
type UserEnvProbe string
const (
InteractiveShell UserEnvProbe = "interactiveShell"
LoginInteractiveShell UserEnvProbe = "loginInteractiveShell"
LoginShell UserEnvProbe = "loginShell"
UserEnvProbeNone UserEnvProbe = "none"
)
// The user command to wait for before continuing execution in the background while the UI
// is starting up. The default is "updateContentCommand".
type WaitFor string
const (
InitializeCommand WaitFor = "initializeCommand"
OnCreateCommand WaitFor = "onCreateCommand"
PostCreateCommand WaitFor = "postCreateCommand"
PostStartCommand WaitFor = "postStartCommand"
UpdateContentCommand WaitFor = "updateContentCommand"
)
// Application ports that are exposed by the container. This can be a single port or an
// array of ports. Each port can be a number or a string. A number is mapped to the same
// port on the host. A string is passed to Docker unchanged and can be used to map ports
// differently, e.g. "8000:8010".
type DevContainerAppPort struct {
Integer *int64
String *string
UnionArray []AppPortElement
}
func (x *DevContainerAppPort) UnmarshalJSON(data []byte) error {
x.UnionArray = nil
object, err := unmarshalUnion(data, &x.Integer, nil, nil, &x.String, true, &x.UnionArray, false, nil, false, nil, false, nil, false)
if err != nil {
return err
}
if object {
}
return nil
}
func (x *DevContainerAppPort) MarshalJSON() ([]byte, error) {
return marshalUnion(x.Integer, nil, nil, x.String, x.UnionArray != nil, x.UnionArray, false, nil, false, nil, false, nil, false)
}
// Application ports that are exposed by the container. This can be a single port or an
// array of ports. Each port can be a number or a string. A number is mapped to the same
// port on the host. A string is passed to Docker unchanged and can be used to map ports
// differently, e.g. "8000:8010".
type AppPortElement struct {
Integer *int64
String *string
}
func (x *AppPortElement) UnmarshalJSON(data []byte) error {
object, err := unmarshalUnion(data, &x.Integer, nil, nil, &x.String, false, nil, false, nil, false, nil, false, nil, false)
if err != nil {
return err
}
if object {
}
return nil
}
func (x *AppPortElement) MarshalJSON() ([]byte, error) {
return marshalUnion(x.Integer, nil, nil, x.String, false, nil, false, nil, false, nil, false, nil, false)
}
// The image to consider as a cache. Use an array to specify multiple images.
//
// The name of the docker-compose file(s) used to start the services.
type CacheFrom struct {
String *string
StringArray []string
}
func (x *CacheFrom) UnmarshalJSON(data []byte) error {
x.StringArray = nil
object, err := unmarshalUnion(data, nil, nil, nil, &x.String, true, &x.StringArray, false, nil, false, nil, false, nil, false)
if err != nil {
return err
}
if object {
}
return nil
}
func (x *CacheFrom) MarshalJSON() ([]byte, error) {
return marshalUnion(nil, nil, nil, x.String, x.StringArray != nil, x.StringArray, false, nil, false, nil, false, nil, false)
}
type ForwardPort struct {
Integer *int64
String *string
}
func (x *ForwardPort) UnmarshalJSON(data []byte) error {
object, err := unmarshalUnion(data, &x.Integer, nil, nil, &x.String, false, nil, false, nil, false, nil, false, nil, false)
if err != nil {
return err
}
if object {
}
return nil
}
func (x *ForwardPort) MarshalJSON() ([]byte, error) {
return marshalUnion(x.Integer, nil, nil, x.String, false, nil, false, nil, false, nil, false, nil, false)
}
type GPUUnion struct {
Bool *bool
Enum *GPUEnum
GPUClass *GPUClass
}
func (x *GPUUnion) UnmarshalJSON(data []byte) error {
x.GPUClass = nil
x.Enum = nil
var c GPUClass
object, err := unmarshalUnion(data, nil, nil, &x.Bool, nil, false, nil, true, &c, false, nil, true, &x.Enum, false)
if err != nil {
return err
}
if object {
x.GPUClass = &c
}
return nil
}
func (x *GPUUnion) MarshalJSON() ([]byte, error) {
return marshalUnion(nil, nil, x.Bool, nil, false, nil, x.GPUClass != nil, x.GPUClass, false, nil, x.Enum != nil, x.Enum, false)
}
// A command to run locally (i.e Your host machine, cloud VM) before anything else. This
// command is run before "onCreateCommand". If this is a single string, it will be run in a
// shell. If this is an array of strings, it will be run as a single command without shell.
// If this is an object, each provided command will be run in parallel.
//
// A command to run when creating the container. This command is run after
// "initializeCommand" and before "updateContentCommand". If this is a single string, it
// will be run in a shell. If this is an array of strings, it will be run as a single
// command without shell. If this is an object, each provided command will be run in
// parallel.
//
// A command to run when attaching to the container. This command is run after
// "postStartCommand". If this is a single string, it will be run in a shell. If this is an
// array of strings, it will be run as a single command without shell. If this is an object,
// each provided command will be run in parallel.
//
// A command to run after creating the container. This command is run after
// "updateContentCommand" and before "postStartCommand". If this is a single string, it will
// be run in a shell. If this is an array of strings, it will be run as a single command
// without shell. If this is an object, each provided command will be run in parallel.
//
// A command to run after starting the container. This command is run after
// "postCreateCommand" and before "postAttachCommand". If this is a single string, it will
// be run in a shell. If this is an array of strings, it will be run as a single command
// without shell. If this is an object, each provided command will be run in parallel.
//
// A command to run when creating the container and rerun when the workspace content was
// updated while creating the container. This command is run after "onCreateCommand" and
// before "postCreateCommand". If this is a single string, it will be run in a shell. If
// this is an array of strings, it will be run as a single command without shell. If this is
// an object, each provided command will be run in parallel.
type Command struct {
String *string
StringArray []string
UnionMap map[string]*CacheFrom
}
func (x *Command) UnmarshalJSON(data []byte) error {
x.StringArray = nil
x.UnionMap = nil
object, err := unmarshalUnion(data, nil, nil, nil, &x.String, true, &x.StringArray, false, nil, true, &x.UnionMap, false, nil, false)
if err != nil {
return err
}
if object {
}
return nil
}
func (x *Command) MarshalJSON() ([]byte, error) {
return marshalUnion(nil, nil, nil, x.String, x.StringArray != nil, x.StringArray, false, nil, x.UnionMap != nil, x.UnionMap, false, nil, false)
}
type MountElement struct {
Mount *Mount
String *string
}
func (x *MountElement) UnmarshalJSON(data []byte) error {
x.Mount = nil
var c Mount
object, err := unmarshalUnion(data, nil, nil, nil, &x.String, false, nil, true, &c, false, nil, false, nil, false)
if err != nil {
return err
}
if object {
x.Mount = &c
}
return nil
}
func (x *MountElement) MarshalJSON() ([]byte, error) {
return marshalUnion(nil, nil, nil, x.String, false, nil, x.Mount != nil, x.Mount, false, nil, false, nil, false)
}
func unmarshalUnion(data []byte, pi **int64, pf **float64, pb **bool, ps **string, haveArray bool, pa interface{}, haveObject bool, pc interface{}, haveMap bool, pm interface{}, haveEnum bool, pe interface{}, nullable bool) (bool, error) {
if pi != nil {
*pi = nil
}
if pf != nil {
*pf = nil
}
if pb != nil {
*pb = nil
}
if ps != nil {
*ps = nil
}
dec := json.NewDecoder(bytes.NewReader(data))
dec.UseNumber()
tok, err := dec.Token()
if err != nil {
return false, err
}
switch v := tok.(type) {
case json.Number:
if pi != nil {
i, err := v.Int64()
if err == nil {
*pi = &i
return false, nil
}
}
if pf != nil {
f, err := v.Float64()
if err == nil {
*pf = &f
return false, nil
}
return false, errors.New("Unparsable number")
}
return false, errors.New("Union does not contain number")
case float64:
return false, errors.New("Decoder should not return float64")
case bool:
if pb != nil {
*pb = &v
return false, nil
}
return false, errors.New("Union does not contain bool")
case string:
if haveEnum {
return false, json.Unmarshal(data, pe)
}
if ps != nil {
*ps = &v
return false, nil
}
return false, errors.New("Union does not contain string")
case nil:
if nullable {
return false, nil
}
return false, errors.New("Union does not contain null")
case json.Delim:
if v == '{' {
if haveObject {
return true, json.Unmarshal(data, pc)
}
if haveMap {
return false, json.Unmarshal(data, pm)
}
return false, errors.New("Union does not contain object")
}
if v == '[' {
if haveArray {
return false, json.Unmarshal(data, pa)
}
return false, errors.New("Union does not contain array")
}
return false, errors.New("Cannot handle delimiter")
}
return false, errors.New("Cannot unmarshal union")
}
func marshalUnion(pi *int64, pf *float64, pb *bool, ps *string, haveArray bool, pa interface{}, haveObject bool, pc interface{}, haveMap bool, pm interface{}, haveEnum bool, pe interface{}, nullable bool) ([]byte, error) {
if pi != nil {
return json.Marshal(*pi)
}
if pf != nil {
return json.Marshal(*pf)
}
if pb != nil {
return json.Marshal(*pb)
}
if ps != nil {
return json.Marshal(*ps)
}
if haveArray {
return json.Marshal(pa)
}
if haveObject {
return json.Marshal(pc)
}
if haveMap {
return json.Marshal(pm)
}
if haveEnum {
return json.Marshal(pe)
}
if nullable {
return json.Marshal(nil)
}
return nil, errors.New("Union must not be null")
}
+148
View File
@@ -0,0 +1,148 @@
package dcspec_test
import (
"encoding/json"
"os"
"path/filepath"
"slices"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers/dcspec"
"github.com/coder/coder/v2/coderd/util/ptr"
)
func TestUnmarshalDevContainer(t *testing.T) {
t.Parallel()
type testCase struct {
name string
file string
wantErr bool
want dcspec.DevContainer
}
tests := []testCase{
{
name: "minimal",
file: filepath.Join("testdata", "minimal.json"),
want: dcspec.DevContainer{
Image: ptr.Ref("test-image"),
},
},
{
name: "arrays",
file: filepath.Join("testdata", "arrays.json"),
want: dcspec.DevContainer{
Image: ptr.Ref("test-image"),
RunArgs: []string{"--network=host", "--privileged"},
ForwardPorts: []dcspec.ForwardPort{
{
Integer: ptr.Ref[int64](8080),
},
{
String: ptr.Ref("3000:3000"),
},
},
},
},
{
name: "devcontainers/template-starter",
file: filepath.Join("testdata", "devcontainers-template-starter.json"),
wantErr: false,
want: dcspec.DevContainer{
Image: ptr.Ref("mcr.microsoft.com/devcontainers/javascript-node:1-18-bullseye"),
Features: &dcspec.Features{},
Customizations: map[string]interface{}{
"vscode": map[string]interface{}{
"extensions": []interface{}{
"mads-hartmann.bash-ide-vscode",
"dbaeumer.vscode-eslint",
},
},
},
PostCreateCommand: &dcspec.Command{
String: ptr.Ref("npm install -g @devcontainers/cli"),
},
},
},
}
var missingTests []string
files, err := filepath.Glob("testdata/*.json")
require.NoError(t, err, "glob test files failed")
for _, file := range files {
if !slices.ContainsFunc(tests, func(tt testCase) bool {
return tt.file == file
}) {
missingTests = append(missingTests, file)
}
}
require.Empty(t, missingTests, "missing tests case for files: %v", missingTests)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
data, err := os.ReadFile(tt.file)
require.NoError(t, err, "read test file failed")
got, err := dcspec.UnmarshalDevContainer(data)
if tt.wantErr {
require.Error(t, err, "want error but got nil")
return
}
require.NoError(t, err, "unmarshal DevContainer failed")
// Compare the unmarshaled data with the expected data.
if diff := cmp.Diff(tt.want, got); diff != "" {
require.Empty(t, diff, "UnmarshalDevContainer() mismatch (-want +got):\n%s", diff)
}
// Test that marshaling works (without comparing to original).
marshaled, err := got.Marshal()
require.NoError(t, err, "marshal DevContainer back to JSON failed")
require.NotEmpty(t, marshaled, "marshaled JSON should not be empty")
// Verify the marshaled JSON can be unmarshaled back.
var unmarshaled interface{}
err = json.Unmarshal(marshaled, &unmarshaled)
require.NoError(t, err, "unmarshal marshaled JSON failed")
})
}
}
func TestUnmarshalDevContainer_EdgeCases(t *testing.T) {
t.Parallel()
tests := []struct {
name string
json string
wantErr bool
}{
{
name: "empty JSON",
json: "{}",
wantErr: false,
},
{
name: "invalid JSON",
json: "{not valid json",
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
_, err := dcspec.UnmarshalDevContainer([]byte(tt.json))
if tt.wantErr {
require.Error(t, err, "want error but got nil")
return
}
require.NoError(t, err, "unmarshal DevContainer failed")
})
}
}
@@ -0,0 +1,771 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"description": "Defines a dev container",
"allowComments": true,
"allowTrailingCommas": false,
"definitions": {
"devContainerCommon": {
"type": "object",
"properties": {
"$schema": {
"type": "string",
"format": "uri",
"description": "The JSON schema of the `devcontainer.json` file."
},
"name": {
"type": "string",
"description": "A name for the dev container which can be displayed to the user."
},
"features": {
"type": "object",
"description": "Features to add to the dev container.",
"properties": {
"fish": {
"deprecated": true,
"deprecationMessage": "Legacy feature not supported. Please check https://containers.dev/features for replacements."
},
"maven": {
"deprecated": true,
"deprecationMessage": "Legacy feature will be removed in the future. Please check https://containers.dev/features for replacements. E.g., `ghcr.io/devcontainers/features/java` has an option to install Maven."
},
"gradle": {
"deprecated": true,
"deprecationMessage": "Legacy feature will be removed in the future. Please check https://containers.dev/features for replacements. E.g., `ghcr.io/devcontainers/features/java` has an option to install Gradle."
},
"homebrew": {
"deprecated": true,
"deprecationMessage": "Legacy feature not supported. Please check https://containers.dev/features for replacements."
},
"jupyterlab": {
"deprecated": true,
"deprecationMessage": "Legacy feature will be removed in the future. Please check https://containers.dev/features for replacements. E.g., `ghcr.io/devcontainers/features/python` has an option to install JupyterLab."
}
},
"additionalProperties": true
},
"overrideFeatureInstallOrder": {
"type": "array",
"description": "Array consisting of the Feature id (without the semantic version) of Features in the order the user wants them to be installed.",
"items": {
"type": "string"
}
},
"secrets": {
"type": "object",
"description": "Recommended secrets for this dev container. Recommendations are provided as environment variable keys with optional metadata.",
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"description": "Environment variable keys following unix-style naming conventions. eg: ^[a-zA-Z_][a-zA-Z0-9_]*$",
"properties": {
"description": {
"type": "string",
"description": "A description of the secret."
},
"documentationUrl": {
"type": "string",
"format": "uri",
"description": "A URL to documentation about the secret."
}
},
"additionalProperties": false
},
"additionalProperties": false
},
"additionalProperties": false
},
"forwardPorts": {
"type": "array",
"description": "Ports that are forwarded from the container to the local machine. Can be an integer port number, or a string of the format \"host:port_number\".",
"items": {
"oneOf": [
{
"type": "integer",
"maximum": 65535,
"minimum": 0
},
{
"type": "string",
"pattern": "^([a-z0-9-]+):(\\d{1,5})$"
}
]
}
},
"portsAttributes": {
"type": "object",
"patternProperties": {
"(^\\d+(-\\d+)?$)|(.+)": {
"type": "object",
"description": "A port, range of ports (ex. \"40000-55000\"), or regular expression (ex. \".+\\\\/server.js\"). For a port number or range, the attributes will apply to that port number or range of port numbers. Attributes which use a regular expression will apply to ports whose associated process command line matches the expression.",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openBrowserOnce",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens the browser when the port is automatically forwarded, but only the first time the port is forward during a session. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Application"
},
"requireLocalPort": {
"type": "boolean",
"markdownDescription": "When true, a modal dialog will show if the chosen local port isn't used for forwarding.",
"default": false
},
"protocol": {
"type": "string",
"enum": [
"http",
"https"
],
"description": "The protocol to use when forwarding this port."
}
},
"default": {
"label": "Application",
"onAutoForward": "notify"
}
}
},
"markdownDescription": "Set default properties that are applied when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Application\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n},\n\".+\\\\/server.js\": {\n \"onAutoForward\": \"openPreview\"\n}\n```",
"defaultSnippets": [
{
"body": {
"${1:3000}": {
"label": "${2:Application}",
"onAutoForward": "notify"
}
}
}
],
"additionalProperties": false
},
"otherPortsAttributes": {
"type": "object",
"properties": {
"onAutoForward": {
"type": "string",
"enum": [
"notify",
"openBrowser",
"openPreview",
"silent",
"ignore"
],
"enumDescriptions": [
"Shows a notification when a port is automatically forwarded.",
"Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser.",
"Opens a preview in the same window when the port is automatically forwarded.",
"Shows no notification and takes no action when this port is automatically forwarded.",
"This port will not be automatically forwarded."
],
"description": "Defines the action that occurs when the port is discovered for automatic forwarding",
"default": "notify"
},
"elevateIfNeeded": {
"type": "boolean",
"description": "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port.",
"default": false
},
"label": {
"type": "string",
"description": "Label that will be shown in the UI for this port.",
"default": "Application"
},
"requireLocalPort": {
"type": "boolean",
"markdownDescription": "When true, a modal dialog will show if the chosen local port isn't used for forwarding.",
"default": false
},
"protocol": {
"type": "string",
"enum": [
"http",
"https"
],
"description": "The protocol to use when forwarding this port."
}
},
"defaultSnippets": [
{
"body": {
"onAutoForward": "ignore"
}
}
],
"markdownDescription": "Set default properties that are applied to all ports that don't get properties from the setting `remote.portsAttributes`. For example:\n\n```\n{\n \"onAutoForward\": \"ignore\"\n}\n```",
"additionalProperties": false
},
"updateRemoteUserUID": {
"type": "boolean",
"description": "Controls whether on Linux the container's user should be updated with the local user's UID and GID. On by default when opening from a local folder."
},
"containerEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Container environment variables."
},
"containerUser": {
"type": "string",
"description": "The user the container will be started with. The default is the user on the Docker image."
},
"mounts": {
"type": "array",
"description": "Mount points to set up when creating the container. See Docker's documentation for the --mount option for the supported syntax.",
"items": {
"anyOf": [
{
"$ref": "#/definitions/Mount"
},
{
"type": "string"
}
]
}
},
"init": {
"type": "boolean",
"description": "Passes the --init flag when creating the dev container."
},
"privileged": {
"type": "boolean",
"description": "Passes the --privileged flag when creating the dev container."
},
"capAdd": {
"type": "array",
"description": "Passes docker capabilities to include when creating the dev container.",
"examples": [
"SYS_PTRACE"
],
"items": {
"type": "string"
}
},
"securityOpt": {
"type": "array",
"description": "Passes docker security options to include when creating the dev container.",
"examples": [
"seccomp=unconfined"
],
"items": {
"type": "string"
}
},
"remoteEnv": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"null"
]
},
"description": "Remote environment variables to set for processes spawned in the container including lifecycle scripts and any remote editor/IDE server process."
},
"remoteUser": {
"type": "string",
"description": "The username to use for spawning processes in the container including lifecycle scripts and any remote editor/IDE server process. The default is the same user as the container."
},
"initializeCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run locally (i.e Your host machine, cloud VM) before anything else. This command is run before \"onCreateCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"onCreateCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run when creating the container. This command is run after \"initializeCommand\" and before \"updateContentCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"updateContentCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run when creating the container and rerun when the workspace content was updated while creating the container. This command is run after \"onCreateCommand\" and before \"postCreateCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"postCreateCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run after creating the container. This command is run after \"updateContentCommand\" and before \"postStartCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"postStartCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run after starting the container. This command is run after \"postCreateCommand\" and before \"postAttachCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"postAttachCommand": {
"type": [
"string",
"array",
"object"
],
"description": "A command to run when attaching to the container. This command is run after \"postStartCommand\". If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell. If this is an object, each provided command will be run in parallel.",
"items": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
}
},
"waitFor": {
"type": "string",
"enum": [
"initializeCommand",
"onCreateCommand",
"updateContentCommand",
"postCreateCommand",
"postStartCommand"
],
"description": "The user command to wait for before continuing execution in the background while the UI is starting up. The default is \"updateContentCommand\"."
},
"userEnvProbe": {
"type": "string",
"enum": [
"none",
"loginShell",
"loginInteractiveShell",
"interactiveShell"
],
"description": "User environment probe to run. The default is \"loginInteractiveShell\"."
},
"hostRequirements": {
"type": "object",
"description": "Host hardware requirements.",
"properties": {
"cpus": {
"type": "integer",
"minimum": 1,
"description": "Number of required CPUs."
},
"memory": {
"type": "string",
"pattern": "^\\d+([tgmk]b)?$",
"description": "Amount of required RAM in bytes. Supports units tb, gb, mb and kb."
},
"storage": {
"type": "string",
"pattern": "^\\d+([tgmk]b)?$",
"description": "Amount of required disk space in bytes. Supports units tb, gb, mb and kb."
},
"gpu": {
"oneOf": [
{
"type": [
"boolean",
"string"
],
"enum": [
true,
false,
"optional"
],
"description": "Indicates whether a GPU is required. The string \"optional\" indicates that a GPU is optional. An object value can be used to configure more detailed requirements."
},
{
"type": "object",
"properties": {
"cores": {
"type": "integer",
"minimum": 1,
"description": "Number of required cores."
},
"memory": {
"type": "string",
"pattern": "^\\d+([tgmk]b)?$",
"description": "Amount of required RAM in bytes. Supports units tb, gb, mb and kb."
}
},
"description": "Indicates whether a GPU is required. The string \"optional\" indicates that a GPU is optional. An object value can be used to configure more detailed requirements.",
"additionalProperties": false
}
]
}
},
"unevaluatedProperties": false
},
"customizations": {
"type": "object",
"description": "Tool-specific configuration. Each tool should use a JSON object subproperty with a unique name to group its customizations."
},
"additionalProperties": {
"type": "object",
"additionalProperties": true
}
}
},
"nonComposeBase": {
"type": "object",
"properties": {
"appPort": {
"type": [
"integer",
"string",
"array"
],
"description": "Application ports that are exposed by the container. This can be a single port or an array of ports. Each port can be a number or a string. A number is mapped to the same port on the host. A string is passed to Docker unchanged and can be used to map ports differently, e.g. \"8000:8010\".",
"items": {
"type": [
"integer",
"string"
]
}
},
"runArgs": {
"type": "array",
"description": "The arguments required when starting in the container.",
"items": {
"type": "string"
}
},
"shutdownAction": {
"type": "string",
"enum": [
"none",
"stopContainer"
],
"description": "Action to take when the user disconnects from the container in their editor. The default is to stop the container."
},
"overrideCommand": {
"type": "boolean",
"description": "Whether to overwrite the command specified in the image. The default is true."
},
"workspaceFolder": {
"type": "string",
"description": "The path of the workspace folder inside the container."
},
"workspaceMount": {
"type": "string",
"description": "The --mount parameter for docker run. The default is to mount the project folder at /workspaces/$project."
}
}
},
"dockerfileContainer": {
"oneOf": [
{
"type": "object",
"properties": {
"build": {
"type": "object",
"description": "Docker build-related options.",
"allOf": [
{
"type": "object",
"properties": {
"dockerfile": {
"type": "string",
"description": "The location of the Dockerfile that defines the contents of the container. The path is relative to the folder containing the `devcontainer.json` file."
},
"context": {
"type": "string",
"description": "The location of the context folder for building the Docker image. The path is relative to the folder containing the `devcontainer.json` file."
}
},
"required": [
"dockerfile"
]
},
{
"$ref": "#/definitions/buildOptions"
}
],
"unevaluatedProperties": false
}
},
"required": [
"build"
]
},
{
"allOf": [
{
"type": "object",
"properties": {
"dockerFile": {
"type": "string",
"description": "The location of the Dockerfile that defines the contents of the container. The path is relative to the folder containing the `devcontainer.json` file."
},
"context": {
"type": "string",
"description": "The location of the context folder for building the Docker image. The path is relative to the folder containing the `devcontainer.json` file."
}
},
"required": [
"dockerFile"
]
},
{
"type": "object",
"properties": {
"build": {
"description": "Docker build-related options.",
"$ref": "#/definitions/buildOptions"
}
}
}
]
}
]
},
"buildOptions": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "Target stage in a multi-stage build."
},
"args": {
"type": "object",
"additionalProperties": {
"type": [
"string"
]
},
"description": "Build arguments."
},
"cacheFrom": {
"type": [
"string",
"array"
],
"description": "The image to consider as a cache. Use an array to specify multiple images.",
"items": {
"type": "string"
}
},
"options": {
"type": "array",
"description": "Additional arguments passed to the build command.",
"items": {
"type": "string"
}
}
}
},
"imageContainer": {
"type": "object",
"properties": {
"image": {
"type": "string",
"description": "The docker image that will be used to create the container."
}
},
"required": [
"image"
]
},
"composeContainer": {
"type": "object",
"properties": {
"dockerComposeFile": {
"type": [
"string",
"array"
],
"description": "The name of the docker-compose file(s) used to start the services.",
"items": {
"type": "string"
}
},
"service": {
"type": "string",
"description": "The service you want to work on. This is considered the primary container for your dev environment which your editor will connect to."
},
"runServices": {
"type": "array",
"description": "An array of services that should be started and stopped.",
"items": {
"type": "string"
}
},
"workspaceFolder": {
"type": "string",
"description": "The path of the workspace folder inside the container. This is typically the target path of a volume mount in the docker-compose.yml."
},
"shutdownAction": {
"type": "string",
"enum": [
"none",
"stopCompose"
],
"description": "Action to take when the user disconnects from the primary container in their editor. The default is to stop all of the compose containers."
},
"overrideCommand": {
"type": "boolean",
"description": "Whether to overwrite the command specified in the image. The default is false."
}
},
"required": [
"dockerComposeFile",
"service",
"workspaceFolder"
]
},
"Mount": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"bind",
"volume"
],
"description": "Mount type."
},
"source": {
"type": "string",
"description": "Mount source."
},
"target": {
"type": "string",
"description": "Mount target."
}
},
"required": [
"type",
"target"
],
"additionalProperties": false
}
},
"oneOf": [
{
"allOf": [
{
"oneOf": [
{
"allOf": [
{
"oneOf": [
{
"$ref": "#/definitions/dockerfileContainer"
},
{
"$ref": "#/definitions/imageContainer"
}
]
},
{
"$ref": "#/definitions/nonComposeBase"
}
]
},
{
"$ref": "#/definitions/composeContainer"
}
]
},
{
"$ref": "#/definitions/devContainerCommon"
}
]
},
{
"type": "object",
"$ref": "#/definitions/devContainerCommon",
"additionalProperties": false
}
],
"unevaluatedProperties": false
}
+5
View File
@@ -0,0 +1,5 @@
// Package dcspec contains an automatically generated Devcontainer
// specification.
package dcspec
//go:generate ./gen.sh
+74
View File
@@ -0,0 +1,74 @@
#!/usr/bin/env bash
set -euo pipefail
# This script requires quicktype to be installed.
# While you can install it using npm, we have it in our devDependencies
# in ${PROJECT_ROOT}/package.json.
PROJECT_ROOT="$(git rev-parse --show-toplevel)"
if ! pnpm list | grep quicktype &>/dev/null; then
echo "quicktype is required to run this script!"
echo "Ensure that it is present in the devDependencies of ${PROJECT_ROOT}/package.json and then run pnpm install."
exit 1
fi
DEST_FILENAME="dcspec_gen.go"
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
DEST_PATH="${SCRIPT_DIR}/${DEST_FILENAME}"
# Location of the JSON schema for the devcontainer specification.
SCHEMA_SRC="https://raw.githubusercontent.com/devcontainers/spec/refs/heads/main/schemas/devContainer.base.schema.json"
SCHEMA_DEST="${SCRIPT_DIR}/devContainer.base.schema.json"
UPDATE_SCHEMA="${UPDATE_SCHEMA:-false}"
if [[ "${UPDATE_SCHEMA}" = true || ! -f "${SCHEMA_DEST}" ]]; then
# Download the latest schema.
echo "Updating schema..."
curl --fail --silent --show-error --location --output "${SCHEMA_DEST}" "${SCHEMA_SRC}"
else
echo "Using existing schema..."
fi
TMPDIR=$(mktemp -d)
trap 'rm -rfv "$TMPDIR"' EXIT
show_stderr=1
exec 3>&2
if [[ " $* " == *" --quiet "* ]] || [[ ${DCSPEC_QUIET:-false} == "true" ]]; then
# Redirect stderr to log because quicktype can't infer all types and
# we don't care right now.
show_stderr=0
exec 2>"${TMPDIR}/stderr.log"
fi
if ! pnpm exec quicktype \
--src-lang schema \
--lang go \
--top-level "DevContainer" \
--out "${TMPDIR}/${DEST_FILENAME}" \
--package "dcspec" \
"${SCHEMA_DEST}"; then
echo "quicktype failed to generate Go code." >&3
if [[ "${show_stderr}" -eq 1 ]]; then
cat "${TMPDIR}/stderr.log" >&3
fi
exit 1
fi
if [[ "${show_stderr}" -eq 0 ]]; then
# Restore stderr.
exec 2>&3
fi
exec 3>&-
# Format the generated code.
go run mvdan.cc/gofumpt@v0.8.0 -w -l "${TMPDIR}/${DEST_FILENAME}"
# Add a header so that Go recognizes this as a generated file.
if grep -q -- "\[-i extension\]" < <(sed -h 2>&1); then
# darwin sed
sed -i '' '1s/^/\/\/ Code generated by dcspec\/gen.sh. DO NOT EDIT.\n\/\/\n/' "${TMPDIR}/${DEST_FILENAME}"
else
sed -i'' '1s/^/\/\/ Code generated by dcspec\/gen.sh. DO NOT EDIT.\n\/\/\n/' "${TMPDIR}/${DEST_FILENAME}"
fi
mv -v "${TMPDIR}/${DEST_FILENAME}" "${DEST_PATH}"
+5
View File
@@ -0,0 +1,5 @@
{
"image": "test-image",
"runArgs": ["--network=host", "--privileged"],
"forwardPorts": [8080, "3000:3000"]
}
@@ -0,0 +1,12 @@
{
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-18-bullseye",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"customizations": {
"vscode": {
"extensions": ["mads-hartmann.bash-ide-vscode", "dbaeumer.vscode-eslint"]
}
},
"postCreateCommand": "npm install -g @devcontainers/cli"
}
+1
View File
@@ -0,0 +1 @@
{ "image": "test-image" }
+91
View File
@@ -0,0 +1,91 @@
package agentcontainers
import (
"context"
"os"
"path/filepath"
"github.com/google/uuid"
"cdr.dev/slog"
"github.com/coder/coder/v2/codersdk"
)
const (
// DevcontainerLocalFolderLabel is the label that contains the path to
// the local workspace folder for a devcontainer.
DevcontainerLocalFolderLabel = "devcontainer.local_folder"
// DevcontainerConfigFileLabel is the label that contains the path to
// the devcontainer.json configuration file.
DevcontainerConfigFileLabel = "devcontainer.config_file"
// DevcontainerIsTestRunLabel is set if the devcontainer is part of a test
// and should be excluded.
DevcontainerIsTestRunLabel = "devcontainer.is_test_run"
// The default workspace folder inside the devcontainer.
DevcontainerDefaultContainerWorkspaceFolder = "/workspaces"
)
func ExtractDevcontainerScripts(
devcontainers []codersdk.WorkspaceAgentDevcontainer,
scripts []codersdk.WorkspaceAgentScript,
) (filteredScripts []codersdk.WorkspaceAgentScript, devcontainerScripts map[uuid.UUID]codersdk.WorkspaceAgentScript) {
devcontainerScripts = make(map[uuid.UUID]codersdk.WorkspaceAgentScript)
ScriptLoop:
for _, script := range scripts {
for _, dc := range devcontainers {
// The devcontainer scripts match the devcontainer ID for
// identification.
if script.ID == dc.ID {
devcontainerScripts[dc.ID] = script
continue ScriptLoop
}
}
filteredScripts = append(filteredScripts, script)
}
return filteredScripts, devcontainerScripts
}
// ExpandAllDevcontainerPaths expands all devcontainer paths in the given
// devcontainers. This is required by the devcontainer CLI, which requires
// absolute paths for the workspace folder and config path.
func ExpandAllDevcontainerPaths(logger slog.Logger, expandPath func(string) (string, error), devcontainers []codersdk.WorkspaceAgentDevcontainer) []codersdk.WorkspaceAgentDevcontainer {
expanded := make([]codersdk.WorkspaceAgentDevcontainer, 0, len(devcontainers))
for _, dc := range devcontainers {
expanded = append(expanded, expandDevcontainerPaths(logger, expandPath, dc))
}
return expanded
}
func expandDevcontainerPaths(logger slog.Logger, expandPath func(string) (string, error), dc codersdk.WorkspaceAgentDevcontainer) codersdk.WorkspaceAgentDevcontainer {
logger = logger.With(slog.F("devcontainer", dc.Name), slog.F("workspace_folder", dc.WorkspaceFolder), slog.F("config_path", dc.ConfigPath))
if wf, err := expandPath(dc.WorkspaceFolder); err != nil {
logger.Warn(context.Background(), "expand devcontainer workspace folder failed", slog.Error(err))
} else {
dc.WorkspaceFolder = wf
}
if dc.ConfigPath != "" {
// Let expandPath handle home directory, otherwise assume relative to
// workspace folder or absolute.
if dc.ConfigPath[0] == '~' {
if cp, err := expandPath(dc.ConfigPath); err != nil {
logger.Warn(context.Background(), "expand devcontainer config path failed", slog.Error(err))
} else {
dc.ConfigPath = cp
}
} else {
dc.ConfigPath = relativePathToAbs(dc.WorkspaceFolder, dc.ConfigPath)
}
}
return dc
}
func relativePathToAbs(workdir, path string) string {
path = os.ExpandEnv(path)
if !filepath.IsAbs(path) {
path = filepath.Join(workdir, path)
}
return path
}
+482
View File
@@ -0,0 +1,482 @@
package agentcontainers
import (
"bufio"
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"slices"
"strings"
"golang.org/x/xerrors"
"cdr.dev/slog"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/codersdk"
)
// DevcontainerConfig is a wrapper around the output from `read-configuration`.
// Unfortunately we cannot make use of `dcspec` as the output doesn't appear to
// match.
type DevcontainerConfig struct {
MergedConfiguration DevcontainerMergedConfiguration `json:"mergedConfiguration"`
Configuration DevcontainerConfiguration `json:"configuration"`
Workspace DevcontainerWorkspace `json:"workspace"`
}
type DevcontainerMergedConfiguration struct {
Customizations DevcontainerMergedCustomizations `json:"customizations,omitempty"`
Features DevcontainerFeatures `json:"features,omitempty"`
}
type DevcontainerMergedCustomizations struct {
Coder []CoderCustomization `json:"coder,omitempty"`
}
type DevcontainerFeatures map[string]any
// OptionsAsEnvs converts the DevcontainerFeatures into a list of
// environment variables that can be used to set feature options.
// The format is FEATURE_<FEATURE_NAME>_OPTION_<OPTION_NAME>=<value>.
// For example, if the feature is:
//
// "ghcr.io/coder/devcontainer-features/code-server:1": {
// "port": 9090,
// }
//
// It will produce:
//
// FEATURE_CODE_SERVER_OPTION_PORT=9090
//
// Note that the feature name is derived from the last part of the key,
// so "ghcr.io/coder/devcontainer-features/code-server:1" becomes
// "CODE_SERVER". The version part (e.g. ":1") is removed, and dashes in
// the feature and option names are replaced with underscores.
func (f DevcontainerFeatures) OptionsAsEnvs() []string {
var env []string
for k, v := range f {
vv, ok := v.(map[string]any)
if !ok {
continue
}
// Take the last part of the key as the feature name/path.
k = k[strings.LastIndex(k, "/")+1:]
// Remove ":" and anything following it.
if idx := strings.Index(k, ":"); idx != -1 {
k = k[:idx]
}
k = strings.ReplaceAll(k, "-", "_")
for k2, v2 := range vv {
k2 = strings.ReplaceAll(k2, "-", "_")
env = append(env, fmt.Sprintf("FEATURE_%s_OPTION_%s=%s", strings.ToUpper(k), strings.ToUpper(k2), fmt.Sprintf("%v", v2)))
}
}
slices.Sort(env)
return env
}
type DevcontainerConfiguration struct {
Customizations DevcontainerCustomizations `json:"customizations,omitempty"`
}
type DevcontainerCustomizations struct {
Coder CoderCustomization `json:"coder,omitempty"`
}
type CoderCustomization struct {
DisplayApps map[codersdk.DisplayApp]bool `json:"displayApps,omitempty"`
Apps []SubAgentApp `json:"apps,omitempty"`
Name string `json:"name,omitempty"`
Ignore bool `json:"ignore,omitempty"`
AutoStart bool `json:"autoStart,omitempty"`
}
type DevcontainerWorkspace struct {
WorkspaceFolder string `json:"workspaceFolder"`
}
// DevcontainerCLI is an interface for the devcontainer CLI.
type DevcontainerCLI interface {
Up(ctx context.Context, workspaceFolder, configPath string, opts ...DevcontainerCLIUpOptions) (id string, err error)
Exec(ctx context.Context, workspaceFolder, configPath string, cmd string, cmdArgs []string, opts ...DevcontainerCLIExecOptions) error
ReadConfig(ctx context.Context, workspaceFolder, configPath string, env []string, opts ...DevcontainerCLIReadConfigOptions) (DevcontainerConfig, error)
}
// DevcontainerCLIUpOptions are options for the devcontainer CLI Up
// command.
type DevcontainerCLIUpOptions func(*DevcontainerCLIUpConfig)
type DevcontainerCLIUpConfig struct {
Args []string // Additional arguments for the Up command.
Stdout io.Writer
Stderr io.Writer
}
// WithRemoveExistingContainer is an option to remove the existing
// container.
func WithRemoveExistingContainer() DevcontainerCLIUpOptions {
return func(o *DevcontainerCLIUpConfig) {
o.Args = append(o.Args, "--remove-existing-container")
}
}
// WithUpOutput sets additional stdout and stderr writers for logs
// during Up operations.
func WithUpOutput(stdout, stderr io.Writer) DevcontainerCLIUpOptions {
return func(o *DevcontainerCLIUpConfig) {
o.Stdout = stdout
o.Stderr = stderr
}
}
// DevcontainerCLIExecOptions are options for the devcontainer CLI Exec
// command.
type DevcontainerCLIExecOptions func(*DevcontainerCLIExecConfig)
type DevcontainerCLIExecConfig struct {
Args []string // Additional arguments for the Exec command.
Stdout io.Writer
Stderr io.Writer
}
// WithExecOutput sets additional stdout and stderr writers for logs
// during Exec operations.
func WithExecOutput(stdout, stderr io.Writer) DevcontainerCLIExecOptions {
return func(o *DevcontainerCLIExecConfig) {
o.Stdout = stdout
o.Stderr = stderr
}
}
// WithExecContainerID sets the container ID to target a specific
// container.
func WithExecContainerID(id string) DevcontainerCLIExecOptions {
return func(o *DevcontainerCLIExecConfig) {
o.Args = append(o.Args, "--container-id", id)
}
}
// WithRemoteEnv sets environment variables for the Exec command.
func WithRemoteEnv(env ...string) DevcontainerCLIExecOptions {
return func(o *DevcontainerCLIExecConfig) {
for _, e := range env {
o.Args = append(o.Args, "--remote-env", e)
}
}
}
// DevcontainerCLIExecOptions are options for the devcontainer CLI ReadConfig
// command.
type DevcontainerCLIReadConfigOptions func(*devcontainerCLIReadConfigConfig)
type devcontainerCLIReadConfigConfig struct {
stdout io.Writer
stderr io.Writer
}
// WithReadConfigOutput sets additional stdout and stderr writers for logs
// during ReadConfig operations.
func WithReadConfigOutput(stdout, stderr io.Writer) DevcontainerCLIReadConfigOptions {
return func(o *devcontainerCLIReadConfigConfig) {
o.stdout = stdout
o.stderr = stderr
}
}
func applyDevcontainerCLIUpOptions(opts []DevcontainerCLIUpOptions) DevcontainerCLIUpConfig {
conf := DevcontainerCLIUpConfig{Stdout: io.Discard, Stderr: io.Discard}
for _, opt := range opts {
if opt != nil {
opt(&conf)
}
}
return conf
}
func applyDevcontainerCLIExecOptions(opts []DevcontainerCLIExecOptions) DevcontainerCLIExecConfig {
conf := DevcontainerCLIExecConfig{Stdout: io.Discard, Stderr: io.Discard}
for _, opt := range opts {
if opt != nil {
opt(&conf)
}
}
return conf
}
func applyDevcontainerCLIReadConfigOptions(opts []DevcontainerCLIReadConfigOptions) devcontainerCLIReadConfigConfig {
conf := devcontainerCLIReadConfigConfig{stdout: io.Discard, stderr: io.Discard}
for _, opt := range opts {
if opt != nil {
opt(&conf)
}
}
return conf
}
type devcontainerCLI struct {
logger slog.Logger
execer agentexec.Execer
}
var _ DevcontainerCLI = &devcontainerCLI{}
func NewDevcontainerCLI(logger slog.Logger, execer agentexec.Execer) DevcontainerCLI {
return &devcontainerCLI{
execer: execer,
logger: logger,
}
}
func (d *devcontainerCLI) Up(ctx context.Context, workspaceFolder, configPath string, opts ...DevcontainerCLIUpOptions) (string, error) {
conf := applyDevcontainerCLIUpOptions(opts)
logger := d.logger.With(slog.F("workspace_folder", workspaceFolder), slog.F("config_path", configPath))
args := []string{
"up",
"--log-format", "json",
"--workspace-folder", workspaceFolder,
}
if configPath != "" {
args = append(args, "--config", configPath)
}
args = append(args, conf.Args...)
cmd := d.execer.CommandContext(ctx, "devcontainer", args...)
// Capture stdout for parsing and stream logs for both default and provided writers.
var stdoutBuf bytes.Buffer
cmd.Stdout = io.MultiWriter(
&stdoutBuf,
&devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stdout", true)),
writer: conf.Stdout,
},
)
// Stream stderr logs and provided writer if any.
cmd.Stderr = &devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stderr", true)),
writer: conf.Stderr,
}
if err := cmd.Run(); err != nil {
_, err2 := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
if err2 != nil {
err = errors.Join(err, err2)
}
return "", err
}
result, err := parseDevcontainerCLILastLine[devcontainerCLIResult](ctx, logger, stdoutBuf.Bytes())
if err != nil {
return "", err
}
return result.ContainerID, nil
}
func (d *devcontainerCLI) Exec(ctx context.Context, workspaceFolder, configPath string, cmd string, cmdArgs []string, opts ...DevcontainerCLIExecOptions) error {
conf := applyDevcontainerCLIExecOptions(opts)
logger := d.logger.With(slog.F("workspace_folder", workspaceFolder), slog.F("config_path", configPath))
args := []string{"exec"}
// For now, always set workspace folder even if --container-id is provided.
// Otherwise the environment of exec will be incomplete, like `pwd` will be
// /home/coder instead of /workspaces/coder. The downside is that the local
// `devcontainer.json` config will overwrite settings serialized in the
// container label.
if workspaceFolder != "" {
args = append(args, "--workspace-folder", workspaceFolder)
}
if configPath != "" {
args = append(args, "--config", configPath)
}
args = append(args, conf.Args...)
args = append(args, cmd)
args = append(args, cmdArgs...)
c := d.execer.CommandContext(ctx, "devcontainer", args...)
c.Stdout = io.MultiWriter(conf.Stdout, &devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stdout", true)),
writer: io.Discard,
})
c.Stderr = io.MultiWriter(conf.Stderr, &devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stderr", true)),
writer: io.Discard,
})
if err := c.Run(); err != nil {
return xerrors.Errorf("devcontainer exec failed: %w", err)
}
return nil
}
func (d *devcontainerCLI) ReadConfig(ctx context.Context, workspaceFolder, configPath string, env []string, opts ...DevcontainerCLIReadConfigOptions) (DevcontainerConfig, error) {
conf := applyDevcontainerCLIReadConfigOptions(opts)
logger := d.logger.With(slog.F("workspace_folder", workspaceFolder), slog.F("config_path", configPath))
args := []string{"read-configuration", "--include-merged-configuration"}
if workspaceFolder != "" {
args = append(args, "--workspace-folder", workspaceFolder)
}
if configPath != "" {
args = append(args, "--config", configPath)
}
c := d.execer.CommandContext(ctx, "devcontainer", args...)
c.Env = append(c.Env, env...)
var stdoutBuf bytes.Buffer
c.Stdout = io.MultiWriter(
&stdoutBuf,
&devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stdout", true)),
writer: conf.stdout,
},
)
c.Stderr = &devcontainerCLILogWriter{
ctx: ctx,
logger: logger.With(slog.F("stderr", true)),
writer: conf.stderr,
}
if err := c.Run(); err != nil {
return DevcontainerConfig{}, xerrors.Errorf("devcontainer read-configuration failed: %w", err)
}
config, err := parseDevcontainerCLILastLine[DevcontainerConfig](ctx, logger, stdoutBuf.Bytes())
if err != nil {
return DevcontainerConfig{}, err
}
return config, nil
}
// parseDevcontainerCLILastLine parses the last line of the devcontainer CLI output
// which is a JSON object.
func parseDevcontainerCLILastLine[T any](ctx context.Context, logger slog.Logger, p []byte) (T, error) {
var result T
s := bufio.NewScanner(bytes.NewReader(p))
var lastLine []byte
for s.Scan() {
b := s.Bytes()
if len(b) == 0 || b[0] != '{' {
continue
}
lastLine = b
}
if err := s.Err(); err != nil {
return result, err
}
if len(lastLine) == 0 || lastLine[0] != '{' {
logger.Error(ctx, "devcontainer result is not json", slog.F("result", string(lastLine)))
return result, xerrors.Errorf("devcontainer result is not json: %q", string(lastLine))
}
if err := json.Unmarshal(lastLine, &result); err != nil {
logger.Error(ctx, "parse devcontainer result failed", slog.Error(err), slog.F("result", string(lastLine)))
return result, err
}
return result, nil
}
// devcontainerCLIResult is the result of the devcontainer CLI command.
// It is parsed from the last line of the devcontainer CLI stdout which
// is a JSON object.
type devcontainerCLIResult struct {
Outcome string `json:"outcome"` // "error", "success".
// The following fields are set if outcome is success.
ContainerID string `json:"containerId"`
RemoteUser string `json:"remoteUser"`
RemoteWorkspaceFolder string `json:"remoteWorkspaceFolder"`
// The following fields are set if outcome is error.
Message string `json:"message"`
Description string `json:"description"`
}
func (r *devcontainerCLIResult) UnmarshalJSON(data []byte) error {
type wrapperResult devcontainerCLIResult
var wrappedResult wrapperResult
if err := json.Unmarshal(data, &wrappedResult); err != nil {
return err
}
*r = devcontainerCLIResult(wrappedResult)
return r.Err()
}
func (r devcontainerCLIResult) Err() error {
if r.Outcome == "success" {
return nil
}
return xerrors.Errorf("devcontainer up failed: %s (description: %s, message: %s)", r.Outcome, r.Description, r.Message)
}
// devcontainerCLIJSONLogLine is a log line from the devcontainer CLI.
type devcontainerCLIJSONLogLine struct {
Type string `json:"type"` // "progress", "raw", "start", "stop", "text", etc.
Level int `json:"level"` // 1, 2, 3.
Timestamp int `json:"timestamp"` // Unix timestamp in milliseconds.
Text string `json:"text"`
// More fields can be added here as needed.
}
// devcontainerCLILogWriter splits on newlines and logs each line
// separately.
type devcontainerCLILogWriter struct {
ctx context.Context
logger slog.Logger
writer io.Writer
}
func (l *devcontainerCLILogWriter) Write(p []byte) (n int, err error) {
s := bufio.NewScanner(bytes.NewReader(p))
for s.Scan() {
line := s.Bytes()
if len(line) == 0 {
continue
}
if line[0] != '{' {
l.logger.Debug(l.ctx, "@devcontainer/cli", slog.F("line", string(line)))
continue
}
var logLine devcontainerCLIJSONLogLine
if err := json.Unmarshal(line, &logLine); err != nil {
l.logger.Error(l.ctx, "parse devcontainer json log line failed", slog.Error(err), slog.F("line", string(line)))
continue
}
if logLine.Level >= 3 {
l.logger.Info(l.ctx, "@devcontainer/cli", slog.F("line", string(line)))
_, _ = l.writer.Write([]byte(strings.TrimSpace(logLine.Text) + "\n"))
continue
}
// If we've successfully parsed the final log line, it will successfully parse
// but will not fill out any of the fields for `logLine`. In this scenario we
// assume it is the final log line, unmarshal it as that, and check if the
// outcome is a non-empty string.
if logLine.Level == 0 {
var lastLine devcontainerCLIResult
if err := json.Unmarshal(line, &lastLine); err == nil && lastLine.Outcome != "" {
_, _ = l.writer.Write(line)
_, _ = l.writer.Write([]byte{'\n'})
}
}
l.logger.Debug(l.ctx, "@devcontainer/cli", slog.F("line", string(line)))
}
if err := s.Err(); err != nil {
l.logger.Error(l.ctx, "devcontainer log line scan failed", slog.Error(err))
}
return len(p), nil
}
@@ -0,0 +1,750 @@
package agentcontainers_test
import (
"bytes"
"context"
"encoding/json"
"errors"
"flag"
"fmt"
"io"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/ory/dockertest/v3"
"github.com/ory/dockertest/v3/docker"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"cdr.dev/slog"
"cdr.dev/slog/sloggers/slogtest"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/pty"
"github.com/coder/coder/v2/testutil"
)
func TestDevcontainerCLI_ArgsAndParsing(t *testing.T) {
t.Parallel()
testExePath, err := os.Executable()
require.NoError(t, err, "get test executable path")
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
t.Run("Up", func(t *testing.T) {
t.Parallel()
tests := []struct {
name string
logFile string
workspace string
config string
opts []agentcontainers.DevcontainerCLIUpOptions
wantArgs string
wantError bool
}{
{
name: "success",
logFile: "up.log",
workspace: "/test/workspace",
wantArgs: "up --log-format json --workspace-folder /test/workspace",
wantError: false,
},
{
name: "success with config",
logFile: "up.log",
workspace: "/test/workspace",
config: "/test/config.json",
wantArgs: "up --log-format json --workspace-folder /test/workspace --config /test/config.json",
wantError: false,
},
{
name: "already exists",
logFile: "up-already-exists.log",
workspace: "/test/workspace",
wantArgs: "up --log-format json --workspace-folder /test/workspace",
wantError: false,
},
{
name: "docker error",
logFile: "up-error-docker.log",
workspace: "/test/workspace",
wantArgs: "up --log-format json --workspace-folder /test/workspace",
wantError: true,
},
{
name: "bad outcome",
logFile: "up-error-bad-outcome.log",
workspace: "/test/workspace",
wantArgs: "up --log-format json --workspace-folder /test/workspace",
wantError: true,
},
{
name: "does not exist",
logFile: "up-error-does-not-exist.log",
workspace: "/test/workspace",
wantArgs: "up --log-format json --workspace-folder /test/workspace",
wantError: true,
},
{
name: "with remove existing container",
logFile: "up.log",
workspace: "/test/workspace",
opts: []agentcontainers.DevcontainerCLIUpOptions{
agentcontainers.WithRemoveExistingContainer(),
},
wantArgs: "up --log-format json --workspace-folder /test/workspace --remove-existing-container",
wantError: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitMedium)
testExecer := &testDevcontainerExecer{
testExePath: testExePath,
wantArgs: tt.wantArgs,
wantError: tt.wantError,
logFile: filepath.Join("testdata", "devcontainercli", "parse", tt.logFile),
}
dccli := agentcontainers.NewDevcontainerCLI(logger, testExecer)
containerID, err := dccli.Up(ctx, tt.workspace, tt.config, tt.opts...)
if tt.wantError {
assert.Error(t, err, "want error")
assert.Empty(t, containerID, "expected empty container ID")
} else {
assert.NoError(t, err, "want no error")
assert.NotEmpty(t, containerID, "expected non-empty container ID")
}
})
}
})
t.Run("Exec", func(t *testing.T) {
t.Parallel()
tests := []struct {
name string
workspaceFolder string
configPath string
cmd string
cmdArgs []string
opts []agentcontainers.DevcontainerCLIExecOptions
wantArgs string
wantError bool
}{
{
name: "simple command",
workspaceFolder: "/test/workspace",
configPath: "",
cmd: "echo",
cmdArgs: []string{"hello"},
wantArgs: "exec --workspace-folder /test/workspace echo hello",
wantError: false,
},
{
name: "command with multiple args",
workspaceFolder: "/test/workspace",
configPath: "/test/config.json",
cmd: "ls",
cmdArgs: []string{"-la", "/workspace"},
wantArgs: "exec --workspace-folder /test/workspace --config /test/config.json ls -la /workspace",
wantError: false,
},
{
name: "empty command args",
workspaceFolder: "/test/workspace",
configPath: "",
cmd: "bash",
cmdArgs: nil,
wantArgs: "exec --workspace-folder /test/workspace bash",
wantError: false,
},
{
name: "workspace not found",
workspaceFolder: "/nonexistent/workspace",
configPath: "",
cmd: "echo",
cmdArgs: []string{"test"},
wantArgs: "exec --workspace-folder /nonexistent/workspace echo test",
wantError: true,
},
{
name: "with container ID",
workspaceFolder: "/test/workspace",
configPath: "",
cmd: "echo",
cmdArgs: []string{"hello"},
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithExecContainerID("test-container-123")},
wantArgs: "exec --workspace-folder /test/workspace --container-id test-container-123 echo hello",
wantError: false,
},
{
name: "with container ID and config",
workspaceFolder: "/test/workspace",
configPath: "/test/config.json",
cmd: "bash",
cmdArgs: []string{"-c", "ls -la"},
opts: []agentcontainers.DevcontainerCLIExecOptions{agentcontainers.WithExecContainerID("my-container")},
wantArgs: "exec --workspace-folder /test/workspace --config /test/config.json --container-id my-container bash -c ls -la",
wantError: false,
},
{
name: "with container ID and output capture",
workspaceFolder: "/test/workspace",
configPath: "",
cmd: "cat",
cmdArgs: []string{"/etc/hostname"},
opts: []agentcontainers.DevcontainerCLIExecOptions{
agentcontainers.WithExecContainerID("test-container-789"),
},
wantArgs: "exec --workspace-folder /test/workspace --container-id test-container-789 cat /etc/hostname",
wantError: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitMedium)
testExecer := &testDevcontainerExecer{
testExePath: testExePath,
wantArgs: tt.wantArgs,
wantError: tt.wantError,
logFile: "", // Exec doesn't need log file parsing
}
dccli := agentcontainers.NewDevcontainerCLI(logger, testExecer)
err := dccli.Exec(ctx, tt.workspaceFolder, tt.configPath, tt.cmd, tt.cmdArgs, tt.opts...)
if tt.wantError {
assert.Error(t, err, "want error")
} else {
assert.NoError(t, err, "want no error")
}
})
}
})
t.Run("ReadConfig", func(t *testing.T) {
t.Parallel()
tests := []struct {
name string
logFile string
workspaceFolder string
configPath string
opts []agentcontainers.DevcontainerCLIReadConfigOptions
wantArgs string
wantError bool
wantConfig agentcontainers.DevcontainerConfig
}{
{
name: "WithCoderCustomization",
logFile: "read-config-with-coder-customization.log",
workspaceFolder: "/test/workspace",
configPath: "",
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace",
wantError: false,
wantConfig: agentcontainers.DevcontainerConfig{
MergedConfiguration: agentcontainers.DevcontainerMergedConfiguration{
Customizations: agentcontainers.DevcontainerMergedCustomizations{
Coder: []agentcontainers.CoderCustomization{
{
DisplayApps: map[codersdk.DisplayApp]bool{
codersdk.DisplayAppVSCodeDesktop: true,
codersdk.DisplayAppWebTerminal: true,
},
},
{
DisplayApps: map[codersdk.DisplayApp]bool{
codersdk.DisplayAppVSCodeInsiders: true,
codersdk.DisplayAppWebTerminal: false,
},
},
},
},
},
},
},
{
name: "WithoutCoderCustomization",
logFile: "read-config-without-coder-customization.log",
workspaceFolder: "/test/workspace",
configPath: "/test/config.json",
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /test/workspace --config /test/config.json",
wantError: false,
wantConfig: agentcontainers.DevcontainerConfig{
MergedConfiguration: agentcontainers.DevcontainerMergedConfiguration{
Customizations: agentcontainers.DevcontainerMergedCustomizations{
Coder: nil,
},
},
},
},
{
name: "FileNotFound",
logFile: "read-config-error-not-found.log",
workspaceFolder: "/nonexistent/workspace",
configPath: "",
wantArgs: "read-configuration --include-merged-configuration --workspace-folder /nonexistent/workspace",
wantError: true,
wantConfig: agentcontainers.DevcontainerConfig{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitMedium)
testExecer := &testDevcontainerExecer{
testExePath: testExePath,
wantArgs: tt.wantArgs,
wantError: tt.wantError,
logFile: filepath.Join("testdata", "devcontainercli", "readconfig", tt.logFile),
}
dccli := agentcontainers.NewDevcontainerCLI(logger, testExecer)
config, err := dccli.ReadConfig(ctx, tt.workspaceFolder, tt.configPath, []string{}, tt.opts...)
if tt.wantError {
assert.Error(t, err, "want error")
assert.Equal(t, agentcontainers.DevcontainerConfig{}, config, "expected empty config on error")
} else {
assert.NoError(t, err, "want no error")
assert.Equal(t, tt.wantConfig, config, "expected config to match")
}
})
}
})
}
// TestDevcontainerCLI_WithOutput tests that WithUpOutput and WithExecOutput capture CLI
// logs to provided writers.
func TestDevcontainerCLI_WithOutput(t *testing.T) {
t.Parallel()
// Prepare test executable and logger.
testExePath, err := os.Executable()
require.NoError(t, err, "get test executable path")
t.Run("Up", func(t *testing.T) {
t.Parallel()
if runtime.GOOS == "windows" {
t.Skip("Windows uses CRLF line endings, golden file is LF")
}
// Buffers to capture stdout and stderr.
outBuf := &bytes.Buffer{}
errBuf := &bytes.Buffer{}
// Simulate CLI execution with a standard up.log file.
wantArgs := "up --log-format json --workspace-folder /test/workspace"
testExecer := &testDevcontainerExecer{
testExePath: testExePath,
wantArgs: wantArgs,
wantError: false,
logFile: filepath.Join("testdata", "devcontainercli", "parse", "up.log"),
}
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
dccli := agentcontainers.NewDevcontainerCLI(logger, testExecer)
// Call Up with WithUpOutput to capture CLI logs.
ctx := testutil.Context(t, testutil.WaitMedium)
containerID, err := dccli.Up(ctx, "/test/workspace", "", agentcontainers.WithUpOutput(outBuf, errBuf))
require.NoError(t, err, "Up should succeed")
require.NotEmpty(t, containerID, "expected non-empty container ID")
// Read expected log content.
expLog, err := os.ReadFile(filepath.Join("testdata", "devcontainercli", "parse", "up.golden"))
require.NoError(t, err, "reading expected log file")
// Verify stdout buffer contains the CLI logs and stderr is empty.
assert.Equal(t, string(expLog), outBuf.String(), "stdout buffer should match CLI logs")
assert.Empty(t, errBuf.String(), "stderr buffer should be empty on success")
})
t.Run("Exec", func(t *testing.T) {
t.Parallel()
logFile := filepath.Join(t.TempDir(), "exec.log")
f, err := os.Create(logFile)
require.NoError(t, err, "create exec log file")
_, err = f.WriteString("exec command log\n")
require.NoError(t, err, "write to exec log file")
err = f.Close()
require.NoError(t, err, "close exec log file")
// Buffers to capture stdout and stderr.
outBuf := &bytes.Buffer{}
errBuf := &bytes.Buffer{}
// Simulate CLI execution for exec command with container ID.
wantArgs := "exec --workspace-folder /test/workspace --container-id test-container-456 echo hello"
testExecer := &testDevcontainerExecer{
testExePath: testExePath,
wantArgs: wantArgs,
wantError: false,
logFile: logFile,
}
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
dccli := agentcontainers.NewDevcontainerCLI(logger, testExecer)
// Call Exec with WithExecOutput and WithContainerID to capture any command output.
ctx := testutil.Context(t, testutil.WaitMedium)
err = dccli.Exec(ctx, "/test/workspace", "", "echo", []string{"hello"},
agentcontainers.WithExecContainerID("test-container-456"),
agentcontainers.WithExecOutput(outBuf, errBuf),
)
require.NoError(t, err, "Exec should succeed")
assert.NotEmpty(t, outBuf.String(), "stdout buffer should not be empty for exec with log file")
assert.Empty(t, errBuf.String(), "stderr buffer should be empty")
})
}
// testDevcontainerExecer implements the agentexec.Execer interface for testing.
type testDevcontainerExecer struct {
testExePath string
wantArgs string
wantError bool
logFile string
}
// CommandContext returns a test binary command that simulates devcontainer responses.
func (e *testDevcontainerExecer) CommandContext(ctx context.Context, name string, args ...string) *exec.Cmd {
// Only handle "devcontainer" commands.
if name != "devcontainer" {
// For non-devcontainer commands, use a standard execer.
return agentexec.DefaultExecer.CommandContext(ctx, name, args...)
}
// Create a command that runs the test binary with special flags
// that tell it to simulate a devcontainer command.
testArgs := []string{
"-test.run=TestDevcontainerHelperProcess",
"--",
name,
}
testArgs = append(testArgs, args...)
//nolint:gosec // This is a test binary, so we don't need to worry about command injection.
cmd := exec.CommandContext(ctx, e.testExePath, testArgs...)
// Set this environment variable so the child process knows it's the helper.
cmd.Env = append(os.Environ(),
"TEST_DEVCONTAINER_WANT_HELPER_PROCESS=1",
"TEST_DEVCONTAINER_WANT_ARGS="+e.wantArgs,
"TEST_DEVCONTAINER_WANT_ERROR="+fmt.Sprintf("%v", e.wantError),
"TEST_DEVCONTAINER_LOG_FILE="+e.logFile,
)
return cmd
}
// PTYCommandContext returns a PTY command.
func (*testDevcontainerExecer) PTYCommandContext(_ context.Context, name string, args ...string) *pty.Cmd {
// This method shouldn't be called for our devcontainer tests.
panic("PTYCommandContext not expected in devcontainer tests")
}
// This is a special test helper that is executed as a subprocess.
// It simulates the behavior of the devcontainer CLI.
//
//nolint:revive,paralleltest // This is a test helper function.
func TestDevcontainerHelperProcess(t *testing.T) {
// If not called by the test as a helper process, do nothing.
if os.Getenv("TEST_DEVCONTAINER_WANT_HELPER_PROCESS") != "1" {
return
}
helperArgs := flag.Args()
if len(helperArgs) < 1 {
fmt.Fprintf(os.Stderr, "No command\n")
os.Exit(2)
}
if helperArgs[0] != "devcontainer" {
fmt.Fprintf(os.Stderr, "Unknown command: %s\n", helperArgs[0])
os.Exit(2)
}
// Verify arguments against expected arguments and skip
// "devcontainer", it's not included in the input args.
wantArgs := os.Getenv("TEST_DEVCONTAINER_WANT_ARGS")
gotArgs := strings.Join(helperArgs[1:], " ")
if gotArgs != wantArgs {
fmt.Fprintf(os.Stderr, "Arguments don't match.\nWant: %q\nGot: %q\n",
wantArgs, gotArgs)
os.Exit(2)
}
logFilePath := os.Getenv("TEST_DEVCONTAINER_LOG_FILE")
if logFilePath != "" {
// Read and output log file for commands that need it (like "up")
output, err := os.ReadFile(logFilePath)
if err != nil {
fmt.Fprintf(os.Stderr, "Reading log file %s failed: %v\n", logFilePath, err)
os.Exit(2)
}
_, _ = io.Copy(os.Stdout, bytes.NewReader(output))
}
if os.Getenv("TEST_DEVCONTAINER_WANT_ERROR") == "true" {
os.Exit(1)
}
os.Exit(0)
}
// TestDockerDevcontainerCLI tests the DevcontainerCLI component with real Docker containers.
// This test verifies that containers can be created and recreated using the actual
// devcontainer CLI and Docker. It is skipped by default and can be run with:
//
// CODER_TEST_USE_DOCKER=1 go test ./agent/agentcontainers -run TestDockerDevcontainerCLI
//
// The test requires Docker to be installed and running.
func TestDockerDevcontainerCLI(t *testing.T) {
t.Parallel()
if os.Getenv("CODER_TEST_USE_DOCKER") != "1" {
t.Skip("skipping Docker test; set CODER_TEST_USE_DOCKER=1 to run")
}
if _, err := exec.LookPath("devcontainer"); err != nil {
t.Fatal("this test requires the devcontainer CLI: npm install -g @devcontainers/cli")
}
// Connect to Docker.
pool, err := dockertest.NewPool("")
require.NoError(t, err, "connect to Docker")
t.Run("ContainerLifecycle", func(t *testing.T) {
t.Parallel()
// Set up workspace directory with a devcontainer configuration.
workspaceFolder := t.TempDir()
configPath := setupDevcontainerWorkspace(t, workspaceFolder)
// Use a long timeout because container operations are slow.
ctx := testutil.Context(t, testutil.WaitLong)
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
// Create the devcontainer CLI under test.
dccli := agentcontainers.NewDevcontainerCLI(logger, agentexec.DefaultExecer)
// Create a container.
firstID, err := dccli.Up(ctx, workspaceFolder, configPath)
require.NoError(t, err, "create container")
require.NotEmpty(t, firstID, "container ID should not be empty")
defer removeDevcontainerByID(t, pool, firstID)
// Verify container exists.
firstContainer, found := findDevcontainerByID(t, pool, firstID)
require.True(t, found, "container should exist")
// Remember the container creation time.
firstCreated := firstContainer.Created
// Recreate the container.
secondID, err := dccli.Up(ctx, workspaceFolder, configPath, agentcontainers.WithRemoveExistingContainer())
require.NoError(t, err, "recreate container")
require.NotEmpty(t, secondID, "recreated container ID should not be empty")
defer removeDevcontainerByID(t, pool, secondID)
// Verify the new container exists and is different.
secondContainer, found := findDevcontainerByID(t, pool, secondID)
require.True(t, found, "recreated container should exist")
// Verify it's a different container by checking creation time.
secondCreated := secondContainer.Created
assert.NotEqual(t, firstCreated, secondCreated, "recreated container should have different creation time")
// Verify the first container is removed by the recreation.
_, found = findDevcontainerByID(t, pool, firstID)
assert.False(t, found, "first container should be removed")
})
}
// setupDevcontainerWorkspace prepares a test environment with a minimal
// devcontainer.json configuration and returns the path to the config file.
func setupDevcontainerWorkspace(t *testing.T, workspaceFolder string) string {
t.Helper()
// Create the devcontainer directory structure.
devcontainerDir := filepath.Join(workspaceFolder, ".devcontainer")
err := os.MkdirAll(devcontainerDir, 0o755)
require.NoError(t, err, "create .devcontainer directory")
// Write a minimal configuration with test labels for identification.
configPath := filepath.Join(devcontainerDir, "devcontainer.json")
content := `{
"image": "alpine:latest",
"containerEnv": {
"TEST_CONTAINER": "true"
},
"runArgs": ["--label=com.coder.test=devcontainercli", "--label=` + agentcontainers.DevcontainerIsTestRunLabel + `=true"]
}`
err = os.WriteFile(configPath, []byte(content), 0o600)
require.NoError(t, err, "create devcontainer.json file")
return configPath
}
// findDevcontainerByID locates a container by its ID and verifies it has our
// test label. Returns the container and whether it was found.
func findDevcontainerByID(t *testing.T, pool *dockertest.Pool, id string) (*docker.Container, bool) {
t.Helper()
container, err := pool.Client.InspectContainer(id)
if err != nil {
t.Logf("Inspect container failed: %v", err)
return nil, false
}
require.Equal(t, "devcontainercli", container.Config.Labels["com.coder.test"], "sanity check failed: container should have the test label")
return container, true
}
// removeDevcontainerByID safely cleans up a test container by ID, verifying
// it has our test label before removal to prevent accidental deletion.
func removeDevcontainerByID(t *testing.T, pool *dockertest.Pool, id string) {
t.Helper()
errNoSuchContainer := &docker.NoSuchContainer{}
// Check if the container has the expected label.
container, err := pool.Client.InspectContainer(id)
if err != nil {
if errors.As(err, &errNoSuchContainer) {
t.Logf("Container %s not found, skipping removal", id)
return
}
require.NoError(t, err, "inspect container")
}
require.Equal(t, "devcontainercli", container.Config.Labels["com.coder.test"], "sanity check failed: container should have the test label")
t.Logf("Removing container with ID: %s", id)
err = pool.Client.RemoveContainer(docker.RemoveContainerOptions{
ID: container.ID,
Force: true,
RemoveVolumes: true,
})
if err != nil && !errors.As(err, &errNoSuchContainer) {
assert.NoError(t, err, "remove container failed")
}
}
func TestDevcontainerFeatures_OptionsAsEnvs(t *testing.T) {
t.Parallel()
realConfigJSON := `{
"mergedConfiguration": {
"features": {
"./code-server": {
"port": 9090
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": "false"
}
}
}
}`
var realConfig agentcontainers.DevcontainerConfig
err := json.Unmarshal([]byte(realConfigJSON), &realConfig)
require.NoError(t, err, "unmarshal JSON payload")
tests := []struct {
name string
features agentcontainers.DevcontainerFeatures
want []string
}{
{
name: "code-server feature",
features: agentcontainers.DevcontainerFeatures{
"./code-server": map[string]any{
"port": 9090,
},
},
want: []string{
"FEATURE_CODE_SERVER_OPTION_PORT=9090",
},
},
{
name: "docker-in-docker feature",
features: agentcontainers.DevcontainerFeatures{
"ghcr.io/devcontainers/features/docker-in-docker:2": map[string]any{
"moby": "false",
},
},
want: []string{
"FEATURE_DOCKER_IN_DOCKER_OPTION_MOBY=false",
},
},
{
name: "multiple features with multiple options",
features: agentcontainers.DevcontainerFeatures{
"./code-server": map[string]any{
"port": 9090,
"password": "secret",
},
"ghcr.io/devcontainers/features/docker-in-docker:2": map[string]any{
"moby": "false",
"docker-dash-compose-version": "v2",
},
},
want: []string{
"FEATURE_CODE_SERVER_OPTION_PASSWORD=secret",
"FEATURE_CODE_SERVER_OPTION_PORT=9090",
"FEATURE_DOCKER_IN_DOCKER_OPTION_DOCKER_DASH_COMPOSE_VERSION=v2",
"FEATURE_DOCKER_IN_DOCKER_OPTION_MOBY=false",
},
},
{
name: "feature with non-map value (should be ignored)",
features: agentcontainers.DevcontainerFeatures{
"./code-server": map[string]any{
"port": 9090,
},
"./invalid-feature": "not-a-map",
},
want: []string{
"FEATURE_CODE_SERVER_OPTION_PORT=9090",
},
},
{
name: "real config example",
features: realConfig.MergedConfiguration.Features,
want: []string{
"FEATURE_CODE_SERVER_OPTION_PORT=9090",
"FEATURE_DOCKER_IN_DOCKER_OPTION_MOBY=false",
},
},
{
name: "empty features",
features: agentcontainers.DevcontainerFeatures{},
want: nil,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
got := tt.features.OptionsAsEnvs()
if diff := cmp.Diff(tt.want, got); diff != "" {
require.Failf(t, "OptionsAsEnvs() mismatch (-want +got):\n%s", diff)
}
})
}
}
+80
View File
@@ -0,0 +1,80 @@
package agentcontainers
import (
"context"
"fmt"
"os/exec"
"runtime"
"strings"
"cdr.dev/slog"
"github.com/coder/coder/v2/agent/agentexec"
"github.com/coder/coder/v2/agent/usershell"
"github.com/coder/coder/v2/pty"
)
// CommandEnv is a function that returns the shell, working directory,
// and environment variables to use when executing a command. It takes
// an EnvInfoer and a pre-existing environment slice as arguments.
// This signature matches agentssh.Server.CommandEnv.
type CommandEnv func(ei usershell.EnvInfoer, addEnv []string) (shell, dir string, env []string, err error)
// commandEnvExecer is an agentexec.Execer that uses a CommandEnv to
// determine the shell, working directory, and environment variables
// for commands. It wraps another agentexec.Execer to provide the
// necessary context.
type commandEnvExecer struct {
logger slog.Logger
commandEnv CommandEnv
execer agentexec.Execer
}
func newCommandEnvExecer(
logger slog.Logger,
commandEnv CommandEnv,
execer agentexec.Execer,
) *commandEnvExecer {
return &commandEnvExecer{
logger: logger,
commandEnv: commandEnv,
execer: execer,
}
}
// Ensure commandEnvExecer implements agentexec.Execer.
var _ agentexec.Execer = (*commandEnvExecer)(nil)
func (e *commandEnvExecer) prepare(ctx context.Context, inName string, inArgs ...string) (name string, args []string, dir string, env []string) {
shell, dir, env, err := e.commandEnv(nil, nil)
if err != nil {
e.logger.Error(ctx, "get command environment failed", slog.Error(err))
return inName, inArgs, "", nil
}
caller := "-c"
if runtime.GOOS == "windows" {
caller = "/c"
}
name = shell
for _, arg := range append([]string{inName}, inArgs...) {
args = append(args, fmt.Sprintf("%q", arg))
}
args = []string{caller, strings.Join(args, " ")}
return name, args, dir, env
}
func (e *commandEnvExecer) CommandContext(ctx context.Context, cmd string, args ...string) *exec.Cmd {
name, args, dir, env := e.prepare(ctx, cmd, args...)
c := e.execer.CommandContext(ctx, name, args...)
c.Dir = dir
c.Env = env
return c
}
func (e *commandEnvExecer) PTYCommandContext(ctx context.Context, cmd string, args ...string) *pty.Cmd {
name, args, dir, env := e.prepare(ctx, cmd, args...)
c := e.execer.PTYCommandContext(ctx, name, args...)
c.Dir = dir
c.Env = env
return c
}
+124
View File
@@ -0,0 +1,124 @@
package ignore
import (
"bytes"
"context"
"errors"
"io/fs"
"os"
"path/filepath"
"strings"
"github.com/go-git/go-git/v5/plumbing/format/config"
"github.com/go-git/go-git/v5/plumbing/format/gitignore"
"github.com/spf13/afero"
"golang.org/x/xerrors"
"cdr.dev/slog"
)
const (
gitconfigFile = ".gitconfig"
gitignoreFile = ".gitignore"
gitInfoExcludeFile = ".git/info/exclude"
)
func FilePathToParts(path string) []string {
components := []string{}
if path == "" {
return components
}
for segment := range strings.SplitSeq(filepath.Clean(path), string(filepath.Separator)) {
if segment != "" {
components = append(components, segment)
}
}
return components
}
func readIgnoreFile(fileSystem afero.Fs, path, ignore string) ([]gitignore.Pattern, error) {
var ps []gitignore.Pattern
data, err := afero.ReadFile(fileSystem, filepath.Join(path, ignore))
if err != nil && !errors.Is(err, os.ErrNotExist) {
return nil, err
}
for s := range strings.SplitSeq(string(data), "\n") {
if !strings.HasPrefix(s, "#") && len(strings.TrimSpace(s)) > 0 {
ps = append(ps, gitignore.ParsePattern(s, FilePathToParts(path)))
}
}
return ps, nil
}
func ReadPatterns(ctx context.Context, logger slog.Logger, fileSystem afero.Fs, path string) ([]gitignore.Pattern, error) {
var ps []gitignore.Pattern
subPs, err := readIgnoreFile(fileSystem, path, gitInfoExcludeFile)
if err != nil {
return nil, err
}
ps = append(ps, subPs...)
if err := afero.Walk(fileSystem, path, func(path string, info fs.FileInfo, err error) error {
if err != nil {
logger.Error(ctx, "encountered error while walking for git ignore files",
slog.F("path", path),
slog.Error(err))
return nil
}
if !info.IsDir() {
return nil
}
subPs, err := readIgnoreFile(fileSystem, path, gitignoreFile)
if err != nil {
return err
}
ps = append(ps, subPs...)
return nil
}); err != nil {
return nil, err
}
return ps, nil
}
func loadPatterns(fileSystem afero.Fs, path string) ([]gitignore.Pattern, error) {
data, err := afero.ReadFile(fileSystem, path)
if err != nil && !errors.Is(err, os.ErrNotExist) {
return nil, err
}
decoder := config.NewDecoder(bytes.NewBuffer(data))
conf := config.New()
if err := decoder.Decode(conf); err != nil {
return nil, xerrors.Errorf("decode config: %w", err)
}
excludes := conf.Section("core").Options.Get("excludesfile")
if excludes == "" {
return nil, nil
}
return readIgnoreFile(fileSystem, "", excludes)
}
func LoadGlobalPatterns(fileSystem afero.Fs) ([]gitignore.Pattern, error) {
home, err := os.UserHomeDir()
if err != nil {
return nil, err
}
return loadPatterns(fileSystem, filepath.Join(home, gitconfigFile))
}
+38
View File
@@ -0,0 +1,38 @@
package ignore_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers/ignore"
)
func TestFilePathToParts(t *testing.T) {
t.Parallel()
tests := []struct {
path string
expected []string
}{
{"", []string{}},
{"/", []string{}},
{"foo", []string{"foo"}},
{"/foo", []string{"foo"}},
{"./foo/bar", []string{"foo", "bar"}},
{"../foo/bar", []string{"..", "foo", "bar"}},
{"foo/bar/baz", []string{"foo", "bar", "baz"}},
{"/foo/bar/baz", []string{"foo", "bar", "baz"}},
{"foo/../bar", []string{"bar"}},
}
for _, tt := range tests {
t.Run(fmt.Sprintf("`%s`", tt.path), func(t *testing.T) {
t.Parallel()
parts := ignore.FilePathToParts(tt.path)
require.Equal(t, tt.expected, parts)
})
}
}
+294
View File
@@ -0,0 +1,294 @@
package agentcontainers
import (
"context"
"slices"
"github.com/google/uuid"
"golang.org/x/xerrors"
"cdr.dev/slog"
agentproto "github.com/coder/coder/v2/agent/proto"
"github.com/coder/coder/v2/codersdk"
)
// SubAgent represents an agent running in a dev container.
type SubAgent struct {
ID uuid.UUID
Name string
AuthToken uuid.UUID
Directory string
Architecture string
OperatingSystem string
Apps []SubAgentApp
DisplayApps []codersdk.DisplayApp
}
// CloneConfig makes a copy of SubAgent without ID and AuthToken. The
// name is inherited from the devcontainer.
func (s SubAgent) CloneConfig(dc codersdk.WorkspaceAgentDevcontainer) SubAgent {
return SubAgent{
Name: dc.Name,
Directory: s.Directory,
Architecture: s.Architecture,
OperatingSystem: s.OperatingSystem,
DisplayApps: slices.Clone(s.DisplayApps),
Apps: slices.Clone(s.Apps),
}
}
func (s SubAgent) EqualConfig(other SubAgent) bool {
return s.Name == other.Name &&
s.Directory == other.Directory &&
s.Architecture == other.Architecture &&
s.OperatingSystem == other.OperatingSystem &&
slices.Equal(s.DisplayApps, other.DisplayApps) &&
slices.Equal(s.Apps, other.Apps)
}
type SubAgentApp struct {
Slug string `json:"slug"`
Command string `json:"command"`
DisplayName string `json:"displayName"`
External bool `json:"external"`
Group string `json:"group"`
HealthCheck SubAgentHealthCheck `json:"healthCheck"`
Hidden bool `json:"hidden"`
Icon string `json:"icon"`
OpenIn codersdk.WorkspaceAppOpenIn `json:"openIn"`
Order int32 `json:"order"`
Share codersdk.WorkspaceAppSharingLevel `json:"share"`
Subdomain bool `json:"subdomain"`
URL string `json:"url"`
}
func (app SubAgentApp) ToProtoApp() (*agentproto.CreateSubAgentRequest_App, error) {
proto := agentproto.CreateSubAgentRequest_App{
Slug: app.Slug,
External: &app.External,
Hidden: &app.Hidden,
Order: &app.Order,
Subdomain: &app.Subdomain,
}
if app.Command != "" {
proto.Command = &app.Command
}
if app.DisplayName != "" {
proto.DisplayName = &app.DisplayName
}
if app.Group != "" {
proto.Group = &app.Group
}
if app.Icon != "" {
proto.Icon = &app.Icon
}
if app.URL != "" {
proto.Url = &app.URL
}
if app.HealthCheck.URL != "" {
proto.Healthcheck = &agentproto.CreateSubAgentRequest_App_Healthcheck{
Interval: app.HealthCheck.Interval,
Threshold: app.HealthCheck.Threshold,
Url: app.HealthCheck.URL,
}
}
if app.OpenIn != "" {
switch app.OpenIn {
case codersdk.WorkspaceAppOpenInSlimWindow:
proto.OpenIn = agentproto.CreateSubAgentRequest_App_SLIM_WINDOW.Enum()
case codersdk.WorkspaceAppOpenInTab:
proto.OpenIn = agentproto.CreateSubAgentRequest_App_TAB.Enum()
default:
return nil, xerrors.Errorf("unexpected codersdk.WorkspaceAppOpenIn: %#v", app.OpenIn)
}
}
if app.Share != "" {
switch app.Share {
case codersdk.WorkspaceAppSharingLevelAuthenticated:
proto.Share = agentproto.CreateSubAgentRequest_App_AUTHENTICATED.Enum()
case codersdk.WorkspaceAppSharingLevelOwner:
proto.Share = agentproto.CreateSubAgentRequest_App_OWNER.Enum()
case codersdk.WorkspaceAppSharingLevelPublic:
proto.Share = agentproto.CreateSubAgentRequest_App_PUBLIC.Enum()
case codersdk.WorkspaceAppSharingLevelOrganization:
proto.Share = agentproto.CreateSubAgentRequest_App_ORGANIZATION.Enum()
default:
return nil, xerrors.Errorf("unexpected codersdk.WorkspaceAppSharingLevel: %#v", app.Share)
}
}
return &proto, nil
}
type SubAgentHealthCheck struct {
Interval int32 `json:"interval"`
Threshold int32 `json:"threshold"`
URL string `json:"url"`
}
// SubAgentClient is an interface for managing sub agents and allows
// changing the implementation without having to deal with the
// agentproto package directly.
type SubAgentClient interface {
// List returns a list of all agents.
List(ctx context.Context) ([]SubAgent, error)
// Create adds a new agent.
Create(ctx context.Context, agent SubAgent) (SubAgent, error)
// Delete removes an agent by its ID.
Delete(ctx context.Context, id uuid.UUID) error
}
// NewSubAgentClient returns a SubAgentClient that uses the provided
// agent API client.
type subAgentAPIClient struct {
logger slog.Logger
api agentproto.DRPCAgentClient26
}
var _ SubAgentClient = (*subAgentAPIClient)(nil)
func NewSubAgentClientFromAPI(logger slog.Logger, agentAPI agentproto.DRPCAgentClient26) SubAgentClient {
if agentAPI == nil {
panic("developer error: agentAPI cannot be nil")
}
return &subAgentAPIClient{
logger: logger.Named("subagentclient"),
api: agentAPI,
}
}
func (a *subAgentAPIClient) List(ctx context.Context) ([]SubAgent, error) {
a.logger.Debug(ctx, "listing sub agents")
resp, err := a.api.ListSubAgents(ctx, &agentproto.ListSubAgentsRequest{})
if err != nil {
return nil, err
}
agents := make([]SubAgent, len(resp.Agents))
for i, agent := range resp.Agents {
id, err := uuid.FromBytes(agent.GetId())
if err != nil {
return nil, err
}
authToken, err := uuid.FromBytes(agent.GetAuthToken())
if err != nil {
return nil, err
}
agents[i] = SubAgent{
ID: id,
Name: agent.GetName(),
AuthToken: authToken,
}
}
return agents, nil
}
func (a *subAgentAPIClient) Create(ctx context.Context, agent SubAgent) (_ SubAgent, err error) {
a.logger.Debug(ctx, "creating sub agent", slog.F("name", agent.Name), slog.F("directory", agent.Directory))
displayApps := make([]agentproto.CreateSubAgentRequest_DisplayApp, 0, len(agent.DisplayApps))
for _, displayApp := range agent.DisplayApps {
var app agentproto.CreateSubAgentRequest_DisplayApp
switch displayApp {
case codersdk.DisplayAppPortForward:
app = agentproto.CreateSubAgentRequest_PORT_FORWARDING_HELPER
case codersdk.DisplayAppSSH:
app = agentproto.CreateSubAgentRequest_SSH_HELPER
case codersdk.DisplayAppVSCodeDesktop:
app = agentproto.CreateSubAgentRequest_VSCODE
case codersdk.DisplayAppVSCodeInsiders:
app = agentproto.CreateSubAgentRequest_VSCODE_INSIDERS
case codersdk.DisplayAppWebTerminal:
app = agentproto.CreateSubAgentRequest_WEB_TERMINAL
default:
return SubAgent{}, xerrors.Errorf("unexpected codersdk.DisplayApp: %#v", displayApp)
}
displayApps = append(displayApps, app)
}
apps := make([]*agentproto.CreateSubAgentRequest_App, 0, len(agent.Apps))
for _, app := range agent.Apps {
protoApp, err := app.ToProtoApp()
if err != nil {
return SubAgent{}, xerrors.Errorf("convert app: %w", err)
}
apps = append(apps, protoApp)
}
resp, err := a.api.CreateSubAgent(ctx, &agentproto.CreateSubAgentRequest{
Name: agent.Name,
Directory: agent.Directory,
Architecture: agent.Architecture,
OperatingSystem: agent.OperatingSystem,
DisplayApps: displayApps,
Apps: apps,
})
if err != nil {
return SubAgent{}, err
}
defer func() {
if err != nil {
// Best effort.
_, _ = a.api.DeleteSubAgent(ctx, &agentproto.DeleteSubAgentRequest{
Id: resp.GetAgent().GetId(),
})
}
}()
agent.Name = resp.GetAgent().GetName()
agent.ID, err = uuid.FromBytes(resp.GetAgent().GetId())
if err != nil {
return SubAgent{}, err
}
agent.AuthToken, err = uuid.FromBytes(resp.GetAgent().GetAuthToken())
if err != nil {
return SubAgent{}, err
}
for _, appError := range resp.GetAppCreationErrors() {
app := apps[appError.GetIndex()]
a.logger.Warn(ctx, "unable to create app",
slog.F("agent_name", agent.Name),
slog.F("agent_id", agent.ID),
slog.F("directory", agent.Directory),
slog.F("app_slug", app.Slug),
slog.F("field", appError.GetField()),
slog.F("error", appError.GetError()),
)
}
return agent, nil
}
func (a *subAgentAPIClient) Delete(ctx context.Context, id uuid.UUID) error {
a.logger.Debug(ctx, "deleting sub agent", slog.F("id", id.String()))
_, err := a.api.DeleteSubAgent(ctx, &agentproto.DeleteSubAgentRequest{
Id: id[:],
})
return err
}
// noopSubAgentClient is a SubAgentClient that does nothing.
type noopSubAgentClient struct{}
var _ SubAgentClient = noopSubAgentClient{}
func (noopSubAgentClient) List(_ context.Context) ([]SubAgent, error) {
return nil, nil
}
func (noopSubAgentClient) Create(_ context.Context, _ SubAgent) (SubAgent, error) {
return SubAgent{}, xerrors.New("noopSubAgentClient does not support creating sub agents")
}
func (noopSubAgentClient) Delete(_ context.Context, _ uuid.UUID) error {
return xerrors.New("noopSubAgentClient does not support deleting sub agents")
}
+308
View File
@@ -0,0 +1,308 @@
package agentcontainers_test
import (
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/coder/coder/v2/agent/agentcontainers"
"github.com/coder/coder/v2/agent/agenttest"
agentproto "github.com/coder/coder/v2/agent/proto"
"github.com/coder/coder/v2/coderd/util/ptr"
"github.com/coder/coder/v2/codersdk"
"github.com/coder/coder/v2/codersdk/agentsdk"
"github.com/coder/coder/v2/tailnet"
"github.com/coder/coder/v2/testutil"
)
func TestSubAgentClient_CreateWithDisplayApps(t *testing.T) {
t.Parallel()
t.Run("CreateWithDisplayApps", func(t *testing.T) {
t.Parallel()
tests := []struct {
name string
displayApps []codersdk.DisplayApp
expectedApps []agentproto.CreateSubAgentRequest_DisplayApp
}{
{
name: "single display app",
displayApps: []codersdk.DisplayApp{codersdk.DisplayAppVSCodeDesktop},
expectedApps: []agentproto.CreateSubAgentRequest_DisplayApp{
agentproto.CreateSubAgentRequest_VSCODE,
},
},
{
name: "multiple display apps",
displayApps: []codersdk.DisplayApp{
codersdk.DisplayAppVSCodeDesktop,
codersdk.DisplayAppSSH,
codersdk.DisplayAppPortForward,
},
expectedApps: []agentproto.CreateSubAgentRequest_DisplayApp{
agentproto.CreateSubAgentRequest_VSCODE,
agentproto.CreateSubAgentRequest_SSH_HELPER,
agentproto.CreateSubAgentRequest_PORT_FORWARDING_HELPER,
},
},
{
name: "all display apps",
displayApps: []codersdk.DisplayApp{
codersdk.DisplayAppPortForward,
codersdk.DisplayAppSSH,
codersdk.DisplayAppVSCodeDesktop,
codersdk.DisplayAppVSCodeInsiders,
codersdk.DisplayAppWebTerminal,
},
expectedApps: []agentproto.CreateSubAgentRequest_DisplayApp{
agentproto.CreateSubAgentRequest_PORT_FORWARDING_HELPER,
agentproto.CreateSubAgentRequest_SSH_HELPER,
agentproto.CreateSubAgentRequest_VSCODE,
agentproto.CreateSubAgentRequest_VSCODE_INSIDERS,
agentproto.CreateSubAgentRequest_WEB_TERMINAL,
},
},
{
name: "no display apps",
displayApps: []codersdk.DisplayApp{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
logger := testutil.Logger(t)
statsCh := make(chan *agentproto.Stats)
agentAPI := agenttest.NewClient(t, logger, uuid.New(), agentsdk.Manifest{}, statsCh, tailnet.NewCoordinator(logger))
agentClient, _, err := agentAPI.ConnectRPC26(ctx)
require.NoError(t, err)
subAgentClient := agentcontainers.NewSubAgentClientFromAPI(logger, agentClient)
// When: We create a sub agent with display apps.
subAgent, err := subAgentClient.Create(ctx, agentcontainers.SubAgent{
Name: "sub-agent-" + tt.name,
Directory: "/workspaces/coder",
Architecture: "amd64",
OperatingSystem: "linux",
DisplayApps: tt.displayApps,
})
require.NoError(t, err)
displayApps, err := agentAPI.GetSubAgentDisplayApps(subAgent.ID)
require.NoError(t, err)
// Then: We expect the apps to be created.
require.Equal(t, tt.expectedApps, displayApps)
})
}
})
t.Run("CreateWithApps", func(t *testing.T) {
t.Parallel()
tests := []struct {
name string
apps []agentcontainers.SubAgentApp
expectedApps []*agentproto.CreateSubAgentRequest_App
}{
{
name: "SlugOnly",
apps: []agentcontainers.SubAgentApp{
{
Slug: "code-server",
},
},
expectedApps: []*agentproto.CreateSubAgentRequest_App{
{
Slug: "code-server",
},
},
},
{
name: "AllFields",
apps: []agentcontainers.SubAgentApp{
{
Slug: "jupyter",
Command: "jupyter lab --port=8888",
DisplayName: "Jupyter Lab",
External: false,
Group: "Development",
HealthCheck: agentcontainers.SubAgentHealthCheck{
Interval: 30,
Threshold: 3,
URL: "http://localhost:8888/api",
},
Hidden: false,
Icon: "/icon/jupyter.svg",
OpenIn: codersdk.WorkspaceAppOpenInTab,
Order: int32(1),
Share: codersdk.WorkspaceAppSharingLevelAuthenticated,
Subdomain: true,
URL: "http://localhost:8888",
},
},
expectedApps: []*agentproto.CreateSubAgentRequest_App{
{
Slug: "jupyter",
Command: ptr.Ref("jupyter lab --port=8888"),
DisplayName: ptr.Ref("Jupyter Lab"),
External: ptr.Ref(false),
Group: ptr.Ref("Development"),
Healthcheck: &agentproto.CreateSubAgentRequest_App_Healthcheck{
Interval: 30,
Threshold: 3,
Url: "http://localhost:8888/api",
},
Hidden: ptr.Ref(false),
Icon: ptr.Ref("/icon/jupyter.svg"),
OpenIn: agentproto.CreateSubAgentRequest_App_TAB.Enum(),
Order: ptr.Ref(int32(1)),
Share: agentproto.CreateSubAgentRequest_App_AUTHENTICATED.Enum(),
Subdomain: ptr.Ref(true),
Url: ptr.Ref("http://localhost:8888"),
},
},
},
{
name: "AllSharingLevels",
apps: []agentcontainers.SubAgentApp{
{
Slug: "owner-app",
Share: codersdk.WorkspaceAppSharingLevelOwner,
},
{
Slug: "authenticated-app",
Share: codersdk.WorkspaceAppSharingLevelAuthenticated,
},
{
Slug: "public-app",
Share: codersdk.WorkspaceAppSharingLevelPublic,
},
{
Slug: "organization-app",
Share: codersdk.WorkspaceAppSharingLevelOrganization,
},
},
expectedApps: []*agentproto.CreateSubAgentRequest_App{
{
Slug: "owner-app",
Share: agentproto.CreateSubAgentRequest_App_OWNER.Enum(),
},
{
Slug: "authenticated-app",
Share: agentproto.CreateSubAgentRequest_App_AUTHENTICATED.Enum(),
},
{
Slug: "public-app",
Share: agentproto.CreateSubAgentRequest_App_PUBLIC.Enum(),
},
{
Slug: "organization-app",
Share: agentproto.CreateSubAgentRequest_App_ORGANIZATION.Enum(),
},
},
},
{
name: "WithHealthCheck",
apps: []agentcontainers.SubAgentApp{
{
Slug: "health-app",
HealthCheck: agentcontainers.SubAgentHealthCheck{
Interval: 60,
Threshold: 5,
URL: "http://localhost:3000/health",
},
},
},
expectedApps: []*agentproto.CreateSubAgentRequest_App{
{
Slug: "health-app",
Healthcheck: &agentproto.CreateSubAgentRequest_App_Healthcheck{
Interval: 60,
Threshold: 5,
Url: "http://localhost:3000/health",
},
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
ctx := testutil.Context(t, testutil.WaitShort)
logger := testutil.Logger(t)
statsCh := make(chan *agentproto.Stats)
agentAPI := agenttest.NewClient(t, logger, uuid.New(), agentsdk.Manifest{}, statsCh, tailnet.NewCoordinator(logger))
agentClient, _, err := agentAPI.ConnectRPC26(ctx)
require.NoError(t, err)
subAgentClient := agentcontainers.NewSubAgentClientFromAPI(logger, agentClient)
// When: We create a sub agent with display apps.
subAgent, err := subAgentClient.Create(ctx, agentcontainers.SubAgent{
Name: "sub-agent-" + tt.name,
Directory: "/workspaces/coder",
Architecture: "amd64",
OperatingSystem: "linux",
Apps: tt.apps,
})
require.NoError(t, err)
apps, err := agentAPI.GetSubAgentApps(subAgent.ID)
require.NoError(t, err)
// Then: We expect the apps to be created.
require.Len(t, apps, len(tt.expectedApps))
for i, expectedApp := range tt.expectedApps {
actualApp := apps[i]
assert.Equal(t, expectedApp.Slug, actualApp.Slug)
assert.Equal(t, expectedApp.Command, actualApp.Command)
assert.Equal(t, expectedApp.DisplayName, actualApp.DisplayName)
assert.Equal(t, ptr.NilToEmpty(expectedApp.External), ptr.NilToEmpty(actualApp.External))
assert.Equal(t, expectedApp.Group, actualApp.Group)
assert.Equal(t, ptr.NilToEmpty(expectedApp.Hidden), ptr.NilToEmpty(actualApp.Hidden))
assert.Equal(t, expectedApp.Icon, actualApp.Icon)
assert.Equal(t, ptr.NilToEmpty(expectedApp.Order), ptr.NilToEmpty(actualApp.Order))
assert.Equal(t, ptr.NilToEmpty(expectedApp.Subdomain), ptr.NilToEmpty(actualApp.Subdomain))
assert.Equal(t, expectedApp.Url, actualApp.Url)
if expectedApp.OpenIn != nil {
require.NotNil(t, actualApp.OpenIn)
assert.Equal(t, *expectedApp.OpenIn, *actualApp.OpenIn)
} else {
assert.Equal(t, expectedApp.OpenIn, actualApp.OpenIn)
}
if expectedApp.Share != nil {
require.NotNil(t, actualApp.Share)
assert.Equal(t, *expectedApp.Share, *actualApp.Share)
} else {
assert.Equal(t, expectedApp.Share, actualApp.Share)
}
if expectedApp.Healthcheck != nil {
require.NotNil(t, expectedApp.Healthcheck)
assert.Equal(t, expectedApp.Healthcheck.Interval, actualApp.Healthcheck.Interval)
assert.Equal(t, expectedApp.Healthcheck.Threshold, actualApp.Healthcheck.Threshold)
assert.Equal(t, expectedApp.Healthcheck.Url, actualApp.Healthcheck.Url)
} else {
assert.Equal(t, expectedApp.Healthcheck, actualApp.Healthcheck)
}
}
})
}
})
}
@@ -0,0 +1,221 @@
[
{
"Id": "fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a",
"Created": "2025-03-11T17:58:43.522505027Z",
"Path": "sleep",
"Args": [
"infinity"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 644296,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-03-11T17:58:43.569966691Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:d4ccddb816ba27eaae22ef3d56175d53f47998e2acb99df1ae0e5b426b28a076",
"ResolvConfPath": "/var/lib/docker/containers/fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a/hostname",
"HostsPath": "/var/lib/docker/containers/fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a/hosts",
"LogPath": "/var/lib/docker/containers/fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a/fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a-json.log",
"Name": "/silly_beaver",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/tmp/test/a:/var/coder/a:ro",
"/tmp/test/b:/var/coder/b"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "bridge",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
108,
176
],
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 10,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": [],
"BlkioDeviceWriteBps": [],
"BlkioDeviceReadIOps": [],
"BlkioDeviceWriteIOps": [],
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": [],
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"ID": "fdc75ebefdc0243c0fce959e7685931691ac7aede278664a0e2c23af8a1e8d6a",
"LowerDir": "/var/lib/docker/overlay2/c1519be93f8e138757310f6ed8c3946a524cdae2580ad8579913d19c3fe9ffd2-init/diff:/var/lib/docker/overlay2/4b4c37dfbdc0dc01b68d4fb1ddb86109398a2d73555439b874dbd23b87cd5c4b/diff",
"MergedDir": "/var/lib/docker/overlay2/c1519be93f8e138757310f6ed8c3946a524cdae2580ad8579913d19c3fe9ffd2/merged",
"UpperDir": "/var/lib/docker/overlay2/c1519be93f8e138757310f6ed8c3946a524cdae2580ad8579913d19c3fe9ffd2/diff",
"WorkDir": "/var/lib/docker/overlay2/c1519be93f8e138757310f6ed8c3946a524cdae2580ad8579913d19c3fe9ffd2/work"
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/tmp/test/a",
"Destination": "/var/coder/a",
"Mode": "ro",
"RW": false,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/tmp/test/b",
"Destination": "/var/coder/b",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "fdc75ebefdc0",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"sleep",
"infinity"
],
"Image": "debian:bookworm",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "46f98b32002740b63709e3ebf87c78efe652adfaa8753b85d79b814f26d88107",
"SandboxKey": "/var/run/docker/netns/46f98b320027",
"Ports": {},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "356e429f15e354dd23250c7a3516aecf1a2afe9d58ea1dc2e97e33a75ac346a8",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "22:2c:26:d9:da:83",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "22:2c:26:d9:da:83",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "c4dd768ab4945e41ad23fe3907c960dac811141592a861cc40038df7086a1ce1",
"EndpointID": "356e429f15e354dd23250c7a3516aecf1a2afe9d58ea1dc2e97e33a75ac346a8",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]
@@ -0,0 +1,222 @@
[
{
"Id": "3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea",
"Created": "2025-03-11T17:57:08.862545133Z",
"Path": "sleep",
"Args": [
"infinity"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 640137,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-03-11T17:57:08.909898821Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:d4ccddb816ba27eaae22ef3d56175d53f47998e2acb99df1ae0e5b426b28a076",
"ResolvConfPath": "/var/lib/docker/containers/3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea/hostname",
"HostsPath": "/var/lib/docker/containers/3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea/hosts",
"LogPath": "/var/lib/docker/containers/3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea/3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea-json.log",
"Name": "/boring_ellis",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "bridge",
"PortBindings": {
"23456/tcp": [
{
"HostIp": "",
"HostPort": "12345"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
108,
176
],
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 10,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": [],
"BlkioDeviceWriteBps": [],
"BlkioDeviceReadIOps": [],
"BlkioDeviceWriteIOps": [],
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": [],
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"ID": "3090de8b72b1224758a94a11b827c82ba2b09c45524f1263dc4a2d83e19625ea",
"LowerDir": "/var/lib/docker/overlay2/e9f2dda207bde1f4b277f973457107d62cff259881901adcd9bcccfea9a92231-init/diff:/var/lib/docker/overlay2/4b4c37dfbdc0dc01b68d4fb1ddb86109398a2d73555439b874dbd23b87cd5c4b/diff",
"MergedDir": "/var/lib/docker/overlay2/e9f2dda207bde1f4b277f973457107d62cff259881901adcd9bcccfea9a92231/merged",
"UpperDir": "/var/lib/docker/overlay2/e9f2dda207bde1f4b277f973457107d62cff259881901adcd9bcccfea9a92231/diff",
"WorkDir": "/var/lib/docker/overlay2/e9f2dda207bde1f4b277f973457107d62cff259881901adcd9bcccfea9a92231/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "3090de8b72b1",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"23456/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"sleep",
"infinity"
],
"Image": "debian:bookworm",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "ebcd8b749b4c719f90d80605c352b7aa508e4c61d9dcd2919654f18f17eb2840",
"SandboxKey": "/var/run/docker/netns/ebcd8b749b4c",
"Ports": {
"23456/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "12345"
},
{
"HostIp": "::",
"HostPort": "12345"
}
]
},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "465824b3cc6bdd2b307e9c614815fd458b1baac113dee889c3620f0cac3183fa",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "52:b6:f6:7b:4b:5b",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "52:b6:f6:7b:4b:5b",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "c4dd768ab4945e41ad23fe3907c960dac811141592a861cc40038df7086a1ce1",
"EndpointID": "465824b3cc6bdd2b307e9c614815fd458b1baac113dee889c3620f0cac3183fa",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]
@@ -0,0 +1,204 @@
[
{
"Id": "bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f",
"Created": "2025-03-11T20:03:28.071706536Z",
"Path": "sleep",
"Args": [
"infinity"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 913862,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-03-11T20:03:28.123599065Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:d4ccddb816ba27eaae22ef3d56175d53f47998e2acb99df1ae0e5b426b28a076",
"ResolvConfPath": "/var/lib/docker/containers/bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f/hostname",
"HostsPath": "/var/lib/docker/containers/bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f/hosts",
"LogPath": "/var/lib/docker/containers/bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f/bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f-json.log",
"Name": "/fervent_bardeen",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "bridge",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
108,
176
],
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 10,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": [],
"BlkioDeviceWriteBps": [],
"BlkioDeviceReadIOps": [],
"BlkioDeviceWriteIOps": [],
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": [],
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"ID": "bd8818e670230fc6f36145b21cf8d6d35580355662aa4d9fe5ae1b188a4c905f",
"LowerDir": "/var/lib/docker/overlay2/55fc45976c381040c7d261c198333e6331889c51afe1500e2e7837c189a1b794-init/diff:/var/lib/docker/overlay2/4b4c37dfbdc0dc01b68d4fb1ddb86109398a2d73555439b874dbd23b87cd5c4b/diff",
"MergedDir": "/var/lib/docker/overlay2/55fc45976c381040c7d261c198333e6331889c51afe1500e2e7837c189a1b794/merged",
"UpperDir": "/var/lib/docker/overlay2/55fc45976c381040c7d261c198333e6331889c51afe1500e2e7837c189a1b794/diff",
"WorkDir": "/var/lib/docker/overlay2/55fc45976c381040c7d261c198333e6331889c51afe1500e2e7837c189a1b794/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "bd8818e67023",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"sleep",
"infinity"
],
"Image": "debian:bookworm",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [],
"OnBuild": null,
"Labels": {
"baz": "zap",
"foo": "bar"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "24faa8b9aaa58c651deca0d85a3f7bcc6c3e5e1a24b6369211f736d6e82f8ab0",
"SandboxKey": "/var/run/docker/netns/24faa8b9aaa5",
"Ports": {},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "c686f97d772d75c8ceed9285e06c1f671b71d4775d5513f93f26358c0f0b4671",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "96:88:4e:3b:11:44",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "96:88:4e:3b:11:44",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "c4dd768ab4945e41ad23fe3907c960dac811141592a861cc40038df7086a1ce1",
"EndpointID": "c686f97d772d75c8ceed9285e06c1f671b71d4775d5513f93f26358c0f0b4671",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]
@@ -0,0 +1,222 @@
[
{
"Id": "4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2",
"Created": "2025-03-11T17:56:34.842164541Z",
"Path": "sleep",
"Args": [
"infinity"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 638449,
"ExitCode": 0,
"Error": "",
"StartedAt": "2025-03-11T17:56:34.894488648Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:d4ccddb816ba27eaae22ef3d56175d53f47998e2acb99df1ae0e5b426b28a076",
"ResolvConfPath": "/var/lib/docker/containers/4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2/hostname",
"HostsPath": "/var/lib/docker/containers/4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2/hosts",
"LogPath": "/var/lib/docker/containers/4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2/4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2-json.log",
"Name": "/modest_varahamihira",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "bridge",
"PortBindings": {
"12345/tcp": [
{
"HostIp": "",
"HostPort": "12345"
}
]
},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
108,
176
],
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 10,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": [],
"BlkioDeviceWriteBps": [],
"BlkioDeviceReadIOps": [],
"BlkioDeviceWriteIOps": [],
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": [],
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"ID": "4eac5ce199d27b2329d0ff0ce1a6fc595612ced48eba3669aadb6c57ebef3fa2",
"LowerDir": "/var/lib/docker/overlay2/35deac62dd3f610275aaf145d091aaa487f73a3c99de5a90df8ab871c969bc0b-init/diff:/var/lib/docker/overlay2/4b4c37dfbdc0dc01b68d4fb1ddb86109398a2d73555439b874dbd23b87cd5c4b/diff",
"MergedDir": "/var/lib/docker/overlay2/35deac62dd3f610275aaf145d091aaa487f73a3c99de5a90df8ab871c969bc0b/merged",
"UpperDir": "/var/lib/docker/overlay2/35deac62dd3f610275aaf145d091aaa487f73a3c99de5a90df8ab871c969bc0b/diff",
"WorkDir": "/var/lib/docker/overlay2/35deac62dd3f610275aaf145d091aaa487f73a3c99de5a90df8ab871c969bc0b/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "4eac5ce199d2",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"12345/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"sleep",
"infinity"
],
"Image": "debian:bookworm",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "5e966e97ba02013054e0ef15ef87f8629f359ad882fad4c57b33c768ad9b90dc",
"SandboxKey": "/var/run/docker/netns/5e966e97ba02",
"Ports": {
"12345/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "12345"
},
{
"HostIp": "::",
"HostPort": "12345"
}
]
},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "f9e1896fc0ef48f3ea9aff3b4e98bc4291ba246412178331345f7b0745cccba9",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "be:a6:89:39:7e:b0",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "be:a6:89:39:7e:b0",
"DriverOpts": null,
"GwPriority": 0,
"NetworkID": "c4dd768ab4945e41ad23fe3907c960dac811141592a861cc40038df7086a1ce1",
"EndpointID": "f9e1896fc0ef48f3ea9aff3b4e98bc4291ba246412178331345f7b0745cccba9",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]
@@ -0,0 +1,51 @@
[
{
"Id": "a",
"Created": "2025-03-11T17:56:34.842164541Z",
"State": {
"Running": true,
"ExitCode": 0,
"Error": ""
},
"Name": "/a",
"Mounts": [],
"Config": {
"Image": "debian:bookworm",
"Labels": {}
},
"NetworkSettings": {
"Ports": {
"8001/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8000"
}
]
}
}
},
{
"Id": "b",
"Created": "2025-03-11T17:56:34.842164541Z",
"State": {
"Running": true,
"ExitCode": 0,
"Error": ""
},
"Name": "/b",
"Config": {
"Image": "debian:bookworm",
"Labels": {}
},
"NetworkSettings": {
"Ports": {
"8001/tcp": [
{
"HostIp": "::",
"HostPort": "8000"
}
]
}
}
}
]

Some files were not shown because too many files have changed in this diff Show More