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 />
[](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 />
[](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 "next
lint" 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 "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>)"
(<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 "[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 />
[](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