mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
596e55b13630b43decdfd40df9dbcfc6507dabcb
13820
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5000f15021 |
chore: bump the coder-modules group across 2 directories with 1 update (#24061)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <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> |
||
|
|
44be5a0d1e |
chore: update kreuzwerker/docker requirement from ~> 3.6 to ~> 4.0 in /dogfood/coder (#24062)
Updates the requirements on [kreuzwerker/docker](https://github.com/kreuzwerker/terraform-provider-docker) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kreuzwerker/terraform-provider-docker/releases">kreuzwerker/docker's releases</a>.</em></p> <blockquote> <h1>v4.0.0</h1> <p><strong>Please read <a href="https://github.com/kreuzwerker/terraform-provider-docker/blob/master/docs/v3_v4_migration.md">https://github.com/kreuzwerker/terraform-provider-docker/blob/master/docs/v3_v4_migration.md</a></strong></p> <p>This is a major release with potential breaking changes. For most users, however, no changes to terraform code are needed.</p> <h2>What's Changed</h2> <h3>New Features</h3> <ul> <li>feat: Add muxing to introduce new plugin framework by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/838">kreuzwerker/terraform-provider-docker#838</a></li> <li>Feature: Multiple enhancements by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/854">kreuzwerker/terraform-provider-docker#854</a></li> <li>Feat: Make buildx builder default by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/855">kreuzwerker/terraform-provider-docker#855</a></li> <li>Feature: Add new docker container attributes by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/857">kreuzwerker/terraform-provider-docker#857</a></li> <li>feat: add selinux_relabel attribute to docker_container volumes by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/883">kreuzwerker/terraform-provider-docker#883</a></li> <li>feat: Add CDI device support by <a href="https://github.com/jdon"><code>@jdon</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/762">kreuzwerker/terraform-provider-docker#762</a></li> <li>feat: Implement proper parsing of GPU device requests when using gpus… by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/881">kreuzwerker/terraform-provider-docker#881</a></li> </ul> <h3>Fixes</h3> <ul> <li>fix(deps): update module golang.org/x/sync to v0.19.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/828">kreuzwerker/terraform-provider-docker#828</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-log to v0.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/823">kreuzwerker/terraform-provider-docker#823</a></li> <li>fix(deps): update module github.com/morikuni/aec to v1.1.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/829">kreuzwerker/terraform-provider-docker#829</a></li> <li>fix(deps): update module google.golang.org/protobuf to v1.36.11 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/830">kreuzwerker/terraform-provider-docker#830</a></li> <li>fix(deps): update module github.com/sirupsen/logrus to v1.9.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/836">kreuzwerker/terraform-provider-docker#836</a></li> <li>chore: Add deprecation for docker_service.networks_advanced.name by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/837">kreuzwerker/terraform-provider-docker#837</a></li> <li>fix: Refactor docker container state handling to properly restart whe… by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/841">kreuzwerker/terraform-provider-docker#841</a></li> <li>fix: docker container stopped ports by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/842">kreuzwerker/terraform-provider-docker#842</a></li> <li>fix: correctly set docker_container devices by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/843">kreuzwerker/terraform-provider-docker#843</a></li> <li>fix(deps): update module github.com/katbyte/terrafmt to v0.5.6 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/844">kreuzwerker/terraform-provider-docker#844</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-sdk/v2 to v2.38.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/847">kreuzwerker/terraform-provider-docker#847</a></li> <li>fix: Use DOCKER_CONFIG env same way as with docker cli by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/849">kreuzwerker/terraform-provider-docker#849</a></li> <li>Fix: calculation of Dockerfile path in docker_image build by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/853">kreuzwerker/terraform-provider-docker#853</a></li> <li>chore(deps): update actions/checkout action to v6 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/825">kreuzwerker/terraform-provider-docker#825</a></li> <li>chore(deps): update hashicorp/setup-terraform action to v4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/860">kreuzwerker/terraform-provider-docker#860</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-go to v0.30.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/861">kreuzwerker/terraform-provider-docker#861</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-framework to v1.18.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/862">kreuzwerker/terraform-provider-docker#862</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-mux to v0.22.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/863">kreuzwerker/terraform-provider-docker#863</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-sdk/v2 to v2.39.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/864">kreuzwerker/terraform-provider-docker#864</a></li> <li>chore(deps): update docker/setup-docker-action action to v5 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/866">kreuzwerker/terraform-provider-docker#866</a></li> <li>chore(deps): update dependency golangci/golangci-lint to v2.10.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/869">kreuzwerker/terraform-provider-docker#869</a></li> <li>fix(deps): update module golang.org/x/sync to v0.20.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/872">kreuzwerker/terraform-provider-docker#872</a></li> <li>Prevent <code>docker_registry_image</code> panic on registries returning nil body without digest header by <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/880">kreuzwerker/terraform-provider-docker#880</a></li> <li>fix: Handle size_bytes in tmpfs_options in docker_service by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/882">kreuzwerker/terraform-provider-docker#882</a></li> <li>chore(deps): update dependency golangci/golangci-lint to v2.11.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/871">kreuzwerker/terraform-provider-docker#871</a></li> <li>fix: tests for healthcheck is not required for docker container resource by <a href="https://github.com/vnghia"><code>@vnghia</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/834">kreuzwerker/terraform-provider-docker#834</a></li> <li>chore: Prepare 4.0.0 release by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/884">kreuzwerker/terraform-provider-docker#884</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kreuzwerker/terraform-provider-docker/blob/master/CHANGELOG.md">kreuzwerker/docker's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.9.0...v4.0.0">v4.0.0</a> (2026-04-03)</h2> <h3>Chore</h3> <ul> <li>Add deprecation for docker_service.networks_advanced.name (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/837">#837</a>)</li> </ul> <h3>Feat</h3> <ul> <li>add selinux_relabel attribute to docker_container volumes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/883">#883</a>)</li> <li>Implement proper parsing of GPU device requests when using gpus… (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/881">#881</a>)</li> <li>Add CDI device support (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/762">#762</a>)</li> <li>Add muxing to introduce new plugin framework (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/838">#838</a>)</li> </ul> <h3>Feat</h3> <ul> <li>Make buildx builder default (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/855">#855</a>)</li> </ul> <h3>Feature</h3> <ul> <li>Add new docker container attributes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/857">#857</a>)</li> <li>Multiple enhancements (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/854">#854</a>)</li> </ul> <h3>Fix</h3> <ul> <li>tests for healthcheck is not required for docker container resource (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/834">#834</a>)</li> <li>Handle size_bytes in tmpfs_options in docker_service (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/882">#882</a>)</li> <li>Use DOCKER_CONFIG env same way as with docker cli (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/849">#849</a>)</li> <li>correctly set docker_container devices (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/843">#843</a>)</li> <li>docker container stopped ports (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/842">#842</a>)</li> <li>Refactor docker container state handling to properly restart when exited (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/841">#841</a>)</li> </ul> <h3>Fix</h3> <ul> <li>calculation of Dockerfile path in docker_image build (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/853">#853</a>)</li> </ul> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <h2><a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.8.0...v3.9.0">v3.9.0</a> (2025-11-09)</h2> <h3>Chore</h3> <ul> <li>Prepare release v3.9.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/821">#821</a>)</li> <li>Add file requested by hashicorp (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/813">#813</a>)</li> <li>Prepare release v3.8.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/806">#806</a>)</li> </ul> <h3>Feat</h3> <ul> <li>Implement caching of docker provider (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/808">#808</a>)</li> </ul> <h3>Fix</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/b7296b7ec5af2f1c7516077d7056d563a1da774e"><code>b7296b7</code></a> chore: Prepare 4.0.0 release (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/884">#884</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/b25e44ac7b3ede532d307fc6abe6daf39c7d6d56"><code>b25e44a</code></a> feat: add selinux_relabel attribute to docker_container volumes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/883">#883</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/83b9e13b64fb78923ef88a8baeeece4611f61930"><code>83b9e13</code></a> fix: tests for healthcheck is not required for docker container resource (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/834">#834</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/5f4cbc5673699b01c31801ba6154e9f1243a6af0"><code>5f4cbc5</code></a> chore(deps): update dependency golangci/golangci-lint to v2.11.4 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/871">#871</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/83a89ad5a139bb9bffe11cef3b14b98f28109b36"><code>83a89ad</code></a> fix: Handle size_bytes in tmpfs_options in docker_service (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/882">#882</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/57d8be485145db54678b2773d38f1dd7c9927cda"><code>57d8be4</code></a> feat: Implement proper parsing of GPU device requests when using gpus… (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/881">#881</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/e63d18d450f11e3293fa14b52cb20ee3f11b2cba"><code>e63d18d</code></a> Prevent <code>docker_registry_image</code> panic on registries returning nil body withou...</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/8bac991400ae971425d61be5c6e442a1b3f8515c"><code>8bac991</code></a> feat: Add CDI device support (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/762">#762</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/5c3c660fb54e52ccfd82b76ceb685bc82aed7885"><code>5c3c660</code></a> fix(deps): update module golang.org/x/sync to v0.20.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/872">#872</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/75cba1d6ef1b76777443035f0f96c19b5c974553"><code>75cba1d</code></a> chore(deps): update dependency golangci/golangci-lint to v2.10.1 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/869">#869</a>)</li> <li>Additional commits viewable in <a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.6.0...v4.0.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 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> |
||
|
|
3ca2aae9ca |
chore: update kreuzwerker/docker requirement from ~> 3.0 to ~> 4.0 in /dogfood/coder-envbuilder (#24063)
Updates the requirements on [kreuzwerker/docker](https://github.com/kreuzwerker/terraform-provider-docker) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/kreuzwerker/terraform-provider-docker/releases">kreuzwerker/docker's releases</a>.</em></p> <blockquote> <h1>v4.0.0</h1> <p><strong>Please read <a href="https://github.com/kreuzwerker/terraform-provider-docker/blob/master/docs/v3_v4_migration.md">https://github.com/kreuzwerker/terraform-provider-docker/blob/master/docs/v3_v4_migration.md</a></strong></p> <p>This is a major release with potential breaking changes. For most users, however, no changes to terraform code are needed.</p> <h2>What's Changed</h2> <h3>New Features</h3> <ul> <li>feat: Add muxing to introduce new plugin framework by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/838">kreuzwerker/terraform-provider-docker#838</a></li> <li>Feature: Multiple enhancements by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/854">kreuzwerker/terraform-provider-docker#854</a></li> <li>Feat: Make buildx builder default by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/855">kreuzwerker/terraform-provider-docker#855</a></li> <li>Feature: Add new docker container attributes by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/857">kreuzwerker/terraform-provider-docker#857</a></li> <li>feat: add selinux_relabel attribute to docker_container volumes by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/883">kreuzwerker/terraform-provider-docker#883</a></li> <li>feat: Add CDI device support by <a href="https://github.com/jdon"><code>@jdon</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/762">kreuzwerker/terraform-provider-docker#762</a></li> <li>feat: Implement proper parsing of GPU device requests when using gpus… by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/881">kreuzwerker/terraform-provider-docker#881</a></li> </ul> <h3>Fixes</h3> <ul> <li>fix(deps): update module golang.org/x/sync to v0.19.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/828">kreuzwerker/terraform-provider-docker#828</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-log to v0.10.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/823">kreuzwerker/terraform-provider-docker#823</a></li> <li>fix(deps): update module github.com/morikuni/aec to v1.1.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/829">kreuzwerker/terraform-provider-docker#829</a></li> <li>fix(deps): update module google.golang.org/protobuf to v1.36.11 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/830">kreuzwerker/terraform-provider-docker#830</a></li> <li>fix(deps): update module github.com/sirupsen/logrus to v1.9.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/836">kreuzwerker/terraform-provider-docker#836</a></li> <li>chore: Add deprecation for docker_service.networks_advanced.name by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/837">kreuzwerker/terraform-provider-docker#837</a></li> <li>fix: Refactor docker container state handling to properly restart whe… by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/841">kreuzwerker/terraform-provider-docker#841</a></li> <li>fix: docker container stopped ports by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/842">kreuzwerker/terraform-provider-docker#842</a></li> <li>fix: correctly set docker_container devices by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/843">kreuzwerker/terraform-provider-docker#843</a></li> <li>fix(deps): update module github.com/katbyte/terrafmt to v0.5.6 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/844">kreuzwerker/terraform-provider-docker#844</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-sdk/v2 to v2.38.2 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/847">kreuzwerker/terraform-provider-docker#847</a></li> <li>fix: Use DOCKER_CONFIG env same way as with docker cli by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/849">kreuzwerker/terraform-provider-docker#849</a></li> <li>Fix: calculation of Dockerfile path in docker_image build by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/853">kreuzwerker/terraform-provider-docker#853</a></li> <li>chore(deps): update actions/checkout action to v6 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/825">kreuzwerker/terraform-provider-docker#825</a></li> <li>chore(deps): update hashicorp/setup-terraform action to v4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/860">kreuzwerker/terraform-provider-docker#860</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-go to v0.30.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/861">kreuzwerker/terraform-provider-docker#861</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-framework to v1.18.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/862">kreuzwerker/terraform-provider-docker#862</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-mux to v0.22.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/863">kreuzwerker/terraform-provider-docker#863</a></li> <li>fix(deps): update module github.com/hashicorp/terraform-plugin-sdk/v2 to v2.39.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/864">kreuzwerker/terraform-provider-docker#864</a></li> <li>chore(deps): update docker/setup-docker-action action to v5 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/866">kreuzwerker/terraform-provider-docker#866</a></li> <li>chore(deps): update dependency golangci/golangci-lint to v2.10.1 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/869">kreuzwerker/terraform-provider-docker#869</a></li> <li>fix(deps): update module golang.org/x/sync to v0.20.0 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/872">kreuzwerker/terraform-provider-docker#872</a></li> <li>Prevent <code>docker_registry_image</code> panic on registries returning nil body without digest header by <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/880">kreuzwerker/terraform-provider-docker#880</a></li> <li>fix: Handle size_bytes in tmpfs_options in docker_service by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/882">kreuzwerker/terraform-provider-docker#882</a></li> <li>chore(deps): update dependency golangci/golangci-lint to v2.11.4 by <a href="https://github.com/renovate"><code>@renovate</code></a>[bot] in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/871">kreuzwerker/terraform-provider-docker#871</a></li> <li>fix: tests for healthcheck is not required for docker container resource by <a href="https://github.com/vnghia"><code>@vnghia</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/834">kreuzwerker/terraform-provider-docker#834</a></li> <li>chore: Prepare 4.0.0 release by <a href="https://github.com/Junkern"><code>@Junkern</code></a> in <a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/pull/884">kreuzwerker/terraform-provider-docker#884</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/kreuzwerker/terraform-provider-docker/blob/master/CHANGELOG.md">kreuzwerker/docker's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.9.0...v4.0.0">v4.0.0</a> (2026-04-03)</h2> <h3>Chore</h3> <ul> <li>Add deprecation for docker_service.networks_advanced.name (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/837">#837</a>)</li> </ul> <h3>Feat</h3> <ul> <li>add selinux_relabel attribute to docker_container volumes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/883">#883</a>)</li> <li>Implement proper parsing of GPU device requests when using gpus… (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/881">#881</a>)</li> <li>Add CDI device support (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/762">#762</a>)</li> <li>Add muxing to introduce new plugin framework (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/838">#838</a>)</li> </ul> <h3>Feat</h3> <ul> <li>Make buildx builder default (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/855">#855</a>)</li> </ul> <h3>Feature</h3> <ul> <li>Add new docker container attributes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/857">#857</a>)</li> <li>Multiple enhancements (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/854">#854</a>)</li> </ul> <h3>Fix</h3> <ul> <li>tests for healthcheck is not required for docker container resource (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/834">#834</a>)</li> <li>Handle size_bytes in tmpfs_options in docker_service (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/882">#882</a>)</li> <li>Use DOCKER_CONFIG env same way as with docker cli (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/849">#849</a>)</li> <li>correctly set docker_container devices (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/843">#843</a>)</li> <li>docker container stopped ports (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/842">#842</a>)</li> <li>Refactor docker container state handling to properly restart when exited (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/841">#841</a>)</li> </ul> <h3>Fix</h3> <ul> <li>calculation of Dockerfile path in docker_image build (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/853">#853</a>)</li> </ul> <p><!-- raw HTML omitted --><!-- raw HTML omitted --></p> <h2><a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.8.0...v3.9.0">v3.9.0</a> (2025-11-09)</h2> <h3>Chore</h3> <ul> <li>Prepare release v3.9.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/821">#821</a>)</li> <li>Add file requested by hashicorp (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/813">#813</a>)</li> <li>Prepare release v3.8.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/806">#806</a>)</li> </ul> <h3>Feat</h3> <ul> <li>Implement caching of docker provider (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/808">#808</a>)</li> </ul> <h3>Fix</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/b7296b7ec5af2f1c7516077d7056d563a1da774e"><code>b7296b7</code></a> chore: Prepare 4.0.0 release (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/884">#884</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/b25e44ac7b3ede532d307fc6abe6daf39c7d6d56"><code>b25e44a</code></a> feat: add selinux_relabel attribute to docker_container volumes (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/883">#883</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/83b9e13b64fb78923ef88a8baeeece4611f61930"><code>83b9e13</code></a> fix: tests for healthcheck is not required for docker container resource (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/834">#834</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/5f4cbc5673699b01c31801ba6154e9f1243a6af0"><code>5f4cbc5</code></a> chore(deps): update dependency golangci/golangci-lint to v2.11.4 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/871">#871</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/83a89ad5a139bb9bffe11cef3b14b98f28109b36"><code>83a89ad</code></a> fix: Handle size_bytes in tmpfs_options in docker_service (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/882">#882</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/57d8be485145db54678b2773d38f1dd7c9927cda"><code>57d8be4</code></a> feat: Implement proper parsing of GPU device requests when using gpus… (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/881">#881</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/e63d18d450f11e3293fa14b52cb20ee3f11b2cba"><code>e63d18d</code></a> Prevent <code>docker_registry_image</code> panic on registries returning nil body withou...</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/8bac991400ae971425d61be5c6e442a1b3f8515c"><code>8bac991</code></a> feat: Add CDI device support (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/762">#762</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/5c3c660fb54e52ccfd82b76ceb685bc82aed7885"><code>5c3c660</code></a> fix(deps): update module golang.org/x/sync to v0.20.0 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/872">#872</a>)</li> <li><a href="https://github.com/kreuzwerker/terraform-provider-docker/commit/75cba1d6ef1b76777443035f0f96c19b5c974553"><code>75cba1d</code></a> chore(deps): update dependency golangci/golangci-lint to v2.10.1 (<a href="https://redirect.github.com/kreuzwerker/terraform-provider-docker/issues/869">#869</a>)</li> <li>Additional commits viewable in <a href="https://github.com/kreuzwerker/terraform-provider-docker/compare/v3.0.0...v4.0.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 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> |
||
|
|
01080302a5 |
feat: add onboarding info fields to first user setup (#23829)
Add optional demographic and newsletter preference fields to the first user setup page, and redesign the setup form using non-MUI components ## New fields **Newsletter preferences** (opt-in checkboxes): - **Marketing updates** — product announcements, tips, best practices - **Release & security updates** — new releases, patches, security advisories ## Frontend redesign Migrated the setup page from MUI to the shadcn/ui design system used across the rest of the app: - Replaced MUI `TextField`, `MenuItem`, `Checkbox`, `Autocomplete` with `Input`, `Label`, `Select`, and `Checkbox` from `#/components` - Switched from Emotion `css` props to Tailwind utility classes - Left-aligned header, widened form container to 500px - Updated copy: "30-day trial", "Learn more", "Help us make Coder better" - Side-by-side layouts for first/last name, phone/country - Moved privacy policy text to always-visible onboarding section - Removed "Number of developers" field from trial section ### Implementation notes - The `onboarding_info` payload is fire-and-forget via `Telemetry.Report()` — not stored in the database - Country picker switched from MUI Autocomplete to Radix Select for design consistency - GitHub OAuth button preserved — conditionally rendered when `authMethods.github.enabled` - NewPasswordField is meant to be a drop in replacement for the MUI PasswordField ### References - #23989 - #24021 - #24014 - #24018 --------- Co-authored-by: Tracy Johnson <tracy@coder.com> Co-authored-by: Jeremy Ruppel <jeremy.ruppel@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Jeremy Ruppel <jeremyruppel@users.noreply.github.com> Co-authored-by: Kayla はな <mckayla@hey.com> |
||
|
|
61d6c728b9 |
docs: adding a tutorial for persistent shared workspaces (#23738)
Co-authored-by: Jiachen Jiang <jcjiang42@gmail.com> |
||
|
|
648787e739 |
feat: expose busy_behavior on chat message API (#24054)
The backend (`chatd.go`) already fully implements both `"queue"` and `"interrupt"` busy behaviors for `SendMessage`, and the `message_agent` subagent tool already leverages both internally. However the HTTP API hardcoded `"queue"` and the SDK had no way for callers to request interrupt-on-send. This adds a `ChatBusyBehavior` enum type to the SDK and an optional `busy_behavior` field on `CreateChatMessageRequest`. The HTTP handler validates the field and passes it through to `chatd.SendMessage`. Default remains `"queue"` for full backward compatibility. <details><summary>Implementation notes</summary> - `codersdk/chats.go`: New `ChatBusyBehavior` type with `ChatBusyBehaviorQueue` and `ChatBusyBehaviorInterrupt` constants. Added `BusyBehavior` field to `CreateChatMessageRequest` with `enums` tag for codegen. - `coderd/exp_chats.go`: `postChatMessages` now reads `req.BusyBehavior`, maps SDK constants to `chatd.SendMessageBusyBehavior*`, returns 400 on invalid values. - `site/src/api/typesGenerated.ts`: Auto-generated via `make gen`. - No frontend behavior changes — the field is available but unused by the UI. </details> > [!NOTE] > Generated by Coder Agents |
||
|
|
d2950e7615 |
docs: document that license validation works offline (#24013)
## What Documents that Coder license keys are validated locally using cryptographic signatures and do not require an outbound connection to Coder's servers. This is a common question from customers evaluating Coder for air-gapped environments. ## Changes - **`docs/admin/licensing/index.md`**: Added an "Offline license validation" section explaining that license keys are signed JWTs validated locally with no phone-home requirement. - **`docs/install/airgap.md`**: Added a "License validation" row to the air-gapped comparison table, confirming no changes are needed for offline license validation and linking to the licensing docs. ## Why While the air-gapped docs state that "all Coder features are supported" offline, there was no explicit mention that the license itself doesn't require connectivity. This is a frequent question from security-conscious and air-gapped customers. --------- Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> Co-authored-by: Matyas Danter <mdanter@gmail.com> |
||
|
|
df8f695e84 |
fix: update logline prefix to use timestamp (#23966)
This change replaces the line number display in agent logs with formatted timestamps. The `AgentLogLine` component now shows timestamps in `HH:mm:ss.SSS` format using dayjs instead of sequential line numbers. The component no longer requires `number` and `maxLineNumber` props, and the associated styling for line number formatting has been removed. This is a global change.. but I don't think its one that will do much damage. |
||
|
|
8bb48ffdda |
feat: implement kebab menu overflow to <Tabs /> (#23959)
Added `data-slot` attributes to all Tabs components for better CSS targeting and component identification. Replaced generic button selectors with data-slot attribute selectors in tab styling variants. Implemented `useTabOverflowKebabMenu` hook to handle tab overflow scenarios by measuring tab widths and determining which tabs should be hidden in a dropdown menu when container space is limited. Enhanced the AgentRow logs section with: - Tab overflow handling using a kebab menu (three dots) for tabs that don't fit - Copy logs button with visual feedback using CheckIcon animation - Download logs functionality for selected tab content with proper filename generation - Improved layout with flex containers and proper spacing Few props and components updates * Added `overflowKebabMenu` prop to TabsList component to enable `flex-nowrap` behavior when overflow handling is active. * Created `<DownloadSelectedAgentLogsButton />` component to replace the previous download functionality, now working with filtered log content based on selected tab. https://github.com/user-attachments/assets/af48ca39-c906-4a11-a891-0d4399eee827 |
||
|
|
4cfbf544a0 |
feat: add per-chat system prompt option (#24053)
Adds a `system_prompt` field to `CreateChatRequest` that allows API consumers to provide custom instructions when creating a chat. The per-chat prompt is stored as a separate system message (`role=system`, `visibility=model`) in the `chat_messages` table, inserted between the deployment system prompt and the workspace awareness message. Also moves deployment system prompt resolution from the HTTP handler (`resolvedChatSystemPrompt`) into `chatd.CreateChat` where it belongs. The handler no longer assembles system prompts — `CreateOptions.SystemPrompt` is now purely the per-chat user prompt, and the deployment prompt is resolved internally by chatd. No database schema changes required. **Message insertion order:** 1. Deployment system prompt (resolved by chatd, existing) 2. Per-chat user system prompt (new, from `CreateOptions.SystemPrompt`) 3. Workspace awareness (existing) 4. Initial user message (existing) 🤖 Generated with [Coder Agents](https://coder.com/agents) |
||
|
|
a2ce74f398 |
feat: add total_runtime_ms to chat cost analytics endpoints (#24050)
Surface the aggregated `runtime_ms` from `chat_messages` through all
four cost analytics queries (summary, per-model, per-chat, per-user).
This is the key billing metric for agent compute time.
The per-chat breakdown already groups by `root_chat_id`, so subagent
runtime is automatically rolled up under the parent chat — no additional
query changes needed.
<details>
<summary>Implementation details</summary>
**SQL** (`coderd/database/queries/chats.sql`): Added
`COALESCE(SUM(cm.runtime_ms), 0)::bigint AS total_runtime_ms` to
`GetChatCostSummary`, `GetChatCostPerModel`, `GetChatCostPerChat`, and
`GetChatCostPerUser`.
**Go SDK** (`codersdk/chats.go`): Added `TotalRuntimeMs int64` to
`ChatCostSummary`, `ChatCostModelBreakdown`, `ChatCostChatBreakdown`,
and `ChatCostUserRollup`.
**Handler** (`coderd/exp_chats.go`): Wired the new field through all
converter functions and the response assembly.
**Tests** (`coderd/exp_chats_test.go`): Updated fixture to seed non-zero
`runtime_ms` values and added assertions for the new field at summary,
per-model, and per-chat levels.
</details>
> 🤖 Generated by Coder Agents
|
||
|
|
0060dee222 |
fix: remove all mui <IconButton /> instances (#24045)
This pull-request removes all instances of `<IconButton />` being imported from `@mui/material/IconButton`. This means that we've removed one whole dependency from MUI and replaced all instances with the local variant. |
||
|
|
5ff1058f30 |
feat: add AWS PRM user-agent attribution for partner revenue tracking (#23138)
Sets `AWS_SDK_UA_APP_ID` in the Terraform provisioner environment so that all AWS API calls made during workspace builds include Coder's AWS Partner Revenue Measurement (PRM) attribution in the user-agent header. This enables AWS to attribute resource usage driven by Coder back to us as an AWS partner across all deployments. ## How it works - `provisionEnv()` now unconditionally sets `AWS_SDK_UA_APP_ID=APN_1.1/pc_cdfmjwn8i6u8l9fwz8h82e4w3$` in the environment passed to `terraform plan` and `terraform apply` - The Terraform AWS provider picks this up and appends it to the user-agent header on every AWS API call - If a customer has already set `AWS_SDK_UA_APP_ID` in their environment (e.g. via `coder.env`), we don't override it - Templates that don't use the AWS provider are unaffected — the env var is simply ignored ## Notes - The product code is hardcoded in the source. It may be worth obfuscating this value (e.g. via `-ldflags -X` at build time) to keep it out of the public repo, though it is technically a public identifier. - This covers user-agent attribution only. Resource-level `aws-apn-id` tags for cost allocation are a separate effort that requires template changes. ## References - [AWS SDK Application ID docs](https://docs.aws.amazon.com/sdkref/latest/guide/feature-appid.html) - [AWS PRM Automated User Agent](https://prm.partner.aws.dev/automated-user-agent.html) (partner login required) --------- Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com> Co-authored-by: DevCats <christofer@coder.com> |
||
|
|
500fc5e2a4 |
feat: polish model config form UI (#24047)
Polishes the AI model configuration form (add/edit model) with tighter
layout and better input affordances.
**Frontend changes:**
- Replace "Unset" with "Default" in select dropdowns to communicate
system fallback
- Show pricing fields inline instead of behind a collapsible toggle
- Use flat section dividers (`border-t`) instead of bordered fieldsets
- Move field descriptions into info-icon tooltips to fix input
misalignment
- Add InputGroup adornments: `$` prefix + `/1M` suffix on pricing,
`tokens` suffix on token fields, `%` suffix on compression threshold,
range placeholders on temperature/penalty fields
- Shorter pricing labels (Input, Output, Cache Read, Cache Write)
- Compact JSON textareas (1-row height, resizable)
- Smart grid layouts by field type (3-col provider, 4-col pricing, 3-col
advanced)
- Boolean fields render as a segmented control (Default · On · Off)
instead of a dropdown
**Backend changes:**
- Add `enum` tags to OpenAI `service_tier`
(`auto,default,flex,scale,priority`) and `reasoning_summary`
(`auto,concise,detailed`) so they render as select dropdowns instead of
free-text inputs
> 🤖 Generated by Coder Agents
|
||
|
|
baba9e6ede |
feat: disallow auditors from editing <NotificationsPage /> settings (#22382)
Auditors are still able to access and read this page but they won't be aren't able to update any of the content, we should show that to them. Should also be noted that this page isn't shown to the user in the sidebar when they are an Auditor. |
||
|
|
b36619b905 |
feat: implement tabs for agent logs (#23952)
This PR adds log source tabs to the workspace agent logs panel so users can quickly focus on specific log streams instead of scanning one combined feed. It also updates the shared tabs trigger behavior to explicitly use `type="button"` when rendered as a native button, preventing unintended form submission behavior. - Adds per-source tabs in `AgentRow` with an **All Logs** default view. - Shows only log sources that currently have output, with source icons and sorted labels. - Filters rendered log lines based on the active tab while preserving existing log streaming/scroll behavior. - Refines the logs container layout/styling for the new tabbed UI. - Updates `TabsTrigger` to safely default button type when not using `asChild`. https://github.com/user-attachments/assets/9b3e7a9d-72e3-4c12-aba2-2b70cdbc04c1 |
||
|
|
937f50f0ae |
fix: show message action tooltips at bottom on agents page (#24041)
The CopyButton tooltip on `/agents` defaulted to top (Radix default),
while the Edit button already used `side="bottom"`. This adds an
optional `tooltipSide` prop to `CopyButton` and passes `"bottom"` in the
agents `ConversationTimeline` so both tooltips appear below the buttons
consistently.
## Changes
- `CopyButton`: added optional `tooltipSide` prop, forwarded to
`<TooltipContent side={tooltipSide}>`
- `ConversationTimeline`: passed `tooltipSide="bottom"` to the
copy-message `CopyButton`
> Generated by Coder Agents
|
||
|
|
a16755dd66 |
fix: prevent stale REST status from dropping streamed parts (#24040)
The `useEffect` that syncs `chatRecord.status` from React Query unconditionally overwrites the store's `chatStatus`. The `chat(chatId)` query has no `staleTime` (defaults to 0), so it refetches on window focus, remount, etc. If the REST response catches a transient `"pending"` status (e.g. between multi-step tool-call cycles), it regresses `chatStatus` from `"running"` to `"pending"`. Since `shouldApplyMessagePart()` drops ALL parts when status is `"pending"` or `"waiting"`, every incoming `message_part` event is silently discarded — not even buffered. Parts are visible on the WebSocket but nothing renders, and the UI shows "Response is taking longer than expected". A page reload fixes it because a fresh REST fetch returns the current status. **Fix:** Add `wsStatusReceivedRef` — once the WebSocket delivers a status event, it becomes the authoritative source and REST refetches can no longer overwrite it. This mirrors the existing `wsQueueUpdateReceivedRef` pattern already used for queued messages. The ref resets on chat change. > Generated with [Coder Agents](https://coder.com/agents) |
||
|
|
8bdc35f91f |
refactor(site): unify message copy/edit UX across user and assistant messages (#24039)
Aligns the copy/edit action bar so both user and assistant messages use
the same hover-to-reveal pattern.
## Changes
- Replace bifurcated copy UX (inline `afterResponseSlot` for assistant,
floating toolbar for user) with a single unified action bar using
`CopyButton` + optional edit `Button`
- Remove `BlockList` `afterResponseSlot` prop and related machinery
- Remove per-message `copyHovered`/`useClipboard` state and left-border
highlight effect
- Remove `lastAssistantPerTurnIds`/`isTurnActive` computation — all
messages with content get actions on hover
- Hide actions on mid-chain assistant messages (only last in consecutive
chain shows buttons)
- Reduce inter-message gap from `gap-3` to `gap-2`
- Shrink action buttons to `size-6` for tighter vertical spacing
- Add 8px sticky top offset for user messages
> 🤖 Generated by Coder Agents
|
||
|
|
5b32c4d79d |
fix: prevent stdio MCP server subprocess from dying after connect (#24035)
## Problem
MCP servers configured in `.mcp.json` with stdio transport are
discovered successfully (tools appear) but die immediately after
connection, making all tool calls fail.
## Root Cause
In `connectServer`, the subprocess is spawned with `connectCtx` — a
30-second timeout context whose `cancel()` is deferred:
```go
connectCtx, cancel := context.WithTimeout(ctx, connectTimeout)
defer cancel()
if err := c.Start(connectCtx); err != nil { ... }
```
The mcp-go stdio transport calls `exec.CommandContext(connectCtx, ...)`.
When `connectServer` returns, `cancel()` fires, and
`exec.CommandContext` sends SIGKILL to the subprocess. The process
immediately becomes a zombie.
Confirmed by checking `/proc/<pid>/status` after context cancellation:
```
State: Z (zombie)
```
## Fix
Pass the parent `ctx` (which is `a.gracefulCtx` — the agent's long-lived
context) to `c.Start()`. `connectCtx` continues to bound only the
`Initialize()` handshake. The subprocess is cleaned up when the Manager
is closed or the parent context is canceled.
## Regression Test
Added `TestConnectServer_StdioProcessSurvivesConnect` which:
- Spawns a real subprocess (re-execs the test binary as a fake MCP
server)
- Calls `connectServer` and lets it return (internal `connectCtx` gets
canceled)
- Verifies the subprocess is still alive by calling `ListTools`
The test **fails** on the old code with `transport error: context
deadline exceeded` and **passes** with the fix.
> Generated with [Coder Agents](https://coder.com/agents)
|
||
|
|
8625543413 |
feat(coderd/x/chatd): parallelize ConvertMessagesWithFiles with g2 errgroup (#24034)
## Summary Move `ConvertMessagesWithFiles` into the `g2` errgroup so prompt conversion runs concurrently with instruction persistence, user prompt resolution, MCP server connections, and workspace MCP tool discovery. ## Problem In `runChat`, the setup before the first LLM `Stream()` call is sequential across two errgroups: ``` g.Wait() // model + messages + MCP configs ConvertMessagesWithFiles() // sequential — blocked on g2 starting g2.Wait() // instructions + user prompt + MCP connect + workspace MCP ``` `ConvertMessagesWithFiles` can take non-trivial time on conversations with file attachments (batch DB resolution), and it was blocking g2 from starting. ## Fix `ConvertMessagesWithFiles` only reads the `messages` slice (available after `g.Wait()`) and resolves file references via the database. No g2 task reads or writes the `prompt` variable. This makes it safe to overlap with g2: ``` g.Wait() g2.Wait() // now includes ConvertMessagesWithFiles in parallel ``` The `InsertSystem` call for parent chats and the `promptErr` check are deferred to after `g2.Wait()`, preserving correctness. <details><summary>Decision log</summary> - `ConvertMessagesWithFiles` is read-only on `messages` — no mutation, safe for concurrent access - `prompt` and `promptErr` are written only by the conversion goroutine, read only after `g2.Wait()` — no data race - Error from prompt conversion is checked immediately after `g2.Wait()`, before any code that uses `prompt` - `chatloop.Run` now uses `:=` instead of `=` since the prior `err` declaration from `prompt, err :=` was removed </details> > Generated by Coder Agents |
||
|
|
e18094825a | fix: retain message_part buffer for cross-replica relay (#24031) | ||
|
|
919dc299fc |
feat: agent reads context files and discovers skills locally (#23935)
Piggybacks on #23878. Moves instruction file reading and skill discovery from `chatd` (server-side, via multiple `LS`/`ReadFile` round-trips through the agent connection) to the agent itself (local filesystem access). This intentionally drops backward compatibility with older agents that don't support the context-config endpoint. Agents and server are deployed together; there is no rolling-update contract to maintain here. ## What changed The agent's `GET /api/v0/context-config` response now returns `[]ChatMessagePart` directly — the same types chatd persists. This eliminates intermediate type conversions and makes the protocol extensible. | Field | Type | Description | |---|---|---| | `parts` | `[]ChatMessagePart` | Context-file and skill parts, ready to persist | | `working_dir` | `string` | Agent's resolved working directory | Removed from the response: `instructions_dirs`, `instructions_file`, `skills_dirs`, `skill_meta_file`, `mcp_config_files` — the agent reads files locally and returns their content as parts. Removed from chatd: all legacy `LS`/`ReadFile` fallback code (`readHomeInstructionFile`, `readInstructionDirFile`, `DiscoverSkills` via LS, etc). ## Why The previous architecture had the agent resolve paths, serve them over HTTP, then `chatd` make N+1 round-trips back through the agent connection to read files. The agent has direct filesystem access and should just read the files. ## Key design decisions - **Agent returns `ChatMessagePart` directly** — same types chatd persists. No intermediate `InstructionFileEntry`/`SkillEntry` types needed. - **`SkillMeta.MetaFile`** — persisted via `ContextFileSkillMetaFile` on the skill part, so custom meta file names (`CODER_AGENT_EXP_SKILL_META_FILE`) survive across chat turns. - **No pre-read body** — `read_skill` always dials the workspace to fetch the skill body on demand. Simpler than caching the body in the response. - **MCP config paths kept agent-internal** — `MCPConfigFiles()` getter, not sent over the wire. - **No backward compat fallback** — old agents that don't support context-config get no instruction files. This is acceptable since agent and server deploy together. |
||
|
|
7e63fe68f7 |
fix: avoid instantiating a logger if provided /dev/null (#24027)
- Adds some additional context to workspace traffic logging - Fails traffic tests if 0 bytes read from connection |
||
|
|
a1d51f0dab |
feat: batch connection logs to avoid DB lock contention (#23727)
- Running 30k connections was generating a ton of lock contention in the DB |
||
|
|
333503f74e |
feat: improve coordinator peer mapping performance (#23696)
- Skipping DB querying entirely for peers that aren't actually connected to our coordinator - Opportunistically batching the queries for peers |
||
|
|
01b8cdb00d |
fix: remove work/personal onboarding telemetry (#24021)
Following on from #23989 #24018 - We also no longer want to collect `IsBusiness` demographic data - Newsletter fields no longer allow `nil` as a value, instead default to false --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
ec83065b59 |
fix(coderd/x/chatd): inflight wait group data race (#24007)
Addresses https://github.com/coder/internal/issues/1450 |
||
|
|
2a1bef18e0 |
fix: remove IndustryType and OrgSize from FirstUserOnboarding telemetry (#24018)
New `IndustryType` and `OrgSize` enums were added in #23989, but they are no longer desired in the onboarding/marketing telemetry data. This removes them. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
8369fa88fd |
feat: add columns for cached tokens from aibridge (#23832)
Two new columns added to aibridge_token_usages: - cache_read_input_tokens (BIGINT, default 0) - cache_write_input_tokens (BIGINT, default 0) Migration backfills existing rows by extracting values from the metadata JSONB column (cache_read_input, input_cached, prompt_cached for reads (max value selected since only 1 should be set), cache_creation_input for writes). All references to data from metadata were updated to reference new columns. No other changes then changing where data is extracted from. Requires aibridge library version bump to include: https://github.com/coder/aibridge/pull/229 Fixes: https://github.com/coder/aibridge/issues/150 |
||
|
|
da3c46b557 |
feat: add onboarding info fields to first user setup (#23989)
Add optional demographic and newsletter preference fields to the setup page: business use (yes/no), industry type, organization size, and two newsletter toggles (marketing, release/security updates). The new data flows through telemetry via a FirstUserOnboarding struct in the snapshot payload, sent once when the first user is created. The telemetry-server and BigQuery schema changes are required separately to persist this data. --------- Co-authored-by: default <davidiii@fraley.us> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
53482adc2d |
fix(coderd/x/chatd): TestAwaitSubagentCompletion/ContextCanceled flake (#24008)
Addresses https://github.com/coder/internal/issues/1437 |
||
|
|
aa0e288b88 |
fix(site): improve assistant message copy button UX (#23996)
Improves the copy button on the last assistant message in agent chat conversations. **Changes:** - Copy icon aligned to the left edge of the content area - No margin-top gap between message content and the copy button - Hovering the copy button reveals a 2px vertical indicator line spanning the copyable content - Tooltip repositioned to bottom-left with compact sizing - Extra padding below the copy button to visually separate from the next user prompt - Hover state triggers only on the button itself, not the entire row |
||
|
|
1c4a9ed745 |
fix(site): use async findBy queries in ChatModelAdminPanel stories (#23999)
> This PR was authored by Mux on behalf of @ibetitsmike. Chromatic tests for `ChatModelAdminPanel` were failing because synchronous `getByRole`/`getByLabelText` calls were used after `userEvent.click()` actions that trigger navigation to a conditionally-rendered detail view. The switches and inputs in `ProviderForm` aren't in the DOM immediately after click, so the synchronous queries fail with "Unable to find an accessible element." Changed all post-click `getByRole`/`getByLabelText` calls to their async `findByRole`/`findByLabelText` equivalents across three stories: `ProviderWithUserKeysEnabled`, `EnvPresetProviders`, and `CreateAndUpdateProvider`. |
||
|
|
5b6b7719df |
fix: make prebuild claiming durable and idempotent (#23108)
## Problem When a prebuilt workspace is claimed, the agent reinitializes via a single fire-and-forget pubsub event over SSE. If the agent's SSE connection is interrupted at claim time, the event is permanently lost — the workspace is stuck with no self-healing path. Additionally, regular (non-prebuild) workspaces had no way to opt out of the `/reinit` polling loop — agents would reconnect indefinitely to an endpoint that would never send them anything useful. ## Root Cause `workspaceAgentReinit` fetches the workspace (with its current `owner_id`) via `GetWorkspaceByAgentID`, but never checked whether a claim already happened. It only subscribed to pubsub for future events. The database already has durable claim state (`owner_id` changes from `PrebuildsSystemUserID` to the real user), but no layer ever consulted it on reconnection. ## Solution ### Server-side durable check with first-build-initiator gating **TOCTOU-safe ordering**: Subscribe to pubsub claim events *before* any durable checks, so a claim that fires during the check is buffered in the channel rather than lost. **First-build-initiator gating**: When `!workspace.IsPrebuild()` (owner is no longer the system user), look up the first build's `InitiatorID`. The prebuild reconciler always uses `PrebuildsSystemUserID` as the initiator. This distinguishes claimed prebuilds from regular workspaces without any SQL schema changes. - **Regular workspace** (first build initiator ≠ system user) → **409 Conflict**, agent stops reconnecting - **Claimed prebuild, build completed** → pre-seed channel with reinit event and close it, transmitter delivers one-shot then exits - **Claimed prebuild, build in-progress** → fall through to pubsub subscription, agent waits for completion event - **Unclaimed prebuild** → pubsub subscription (existing happy path) ### Declarative reinit events (defense-in-depth) - Added `UserID` field to `ReinitializationEvent` with JSON tags - Switched pubsub serialization from raw string to JSON (with backward-compat fallback for rolling upgrades) - Populated `UserID` at both the publish site and the durable check ### Agent SDK: 409 handling `WaitForReinitLoop` detects 409 Conflict from the server and closes the `reinitEvents` channel, cleanly exiting the retry goroutine. ### Agent CLI: fixed two bugs + added reinitCtx - **Closed channel (`!ok`)**: now blocks on `<-ctx.Done()` instead of `continue`, keeping the current agent running. Previously this would leak agents by skipping `agnt.Close()` and re-entering the loop. - **Duplicate owner reinit**: cancels `reinitCtx` (stops the reinit goroutine), then blocks on `<-ctx.Done()`. Previously `continue` would skip cleanup and create a new agent on the next loop iteration. - **`reinitCtx`**: a cancellable child of `ctx` passed to `WaitForReinitLoop`, allowing the agent to stop the reinit HTTP polling after reinit completes. ### Agent-side idempotency Tracks `lastOwnerID` in the agent reinit loop — duplicate events for the same owner are skipped. ## Testing - **"unclaimed prebuild receives reinit via pubsub"**: prebuild owned by system user, pubsub event triggers reinit - **"claimed prebuild receives one-shot reinit on reconnect"**: first build by system user, owner changed, build completed → immediate reinit (no pubsub needed) - **"claimed prebuild waits during in-progress claim build"**: claimed but build still running → no reinit until build completes - **"regular workspace gets 409"**: first build by real user → 409 Conflict, agent stops polling - Updated claim publisher/listener tests: verify `UserID` survives JSON round-trip + backward compat with raw string payloads - Updated SSE round-trip test: verify `UserID` survives transmit → receive cycle Fixes #22359 ## Rolling upgrade note During a rolling deploy where old coderd instances coexist with new ones, the pubsub `ReinitializationEvent` has a new `workspace_id` field (JSON key `workspace_id`). Old publishers send a raw reason string instead of JSON; the new listener gracefully falls back by treating the entire payload as the reason and filling in `WorkspaceID` from context. The only visible effect during the upgrade window is that `WorkspaceID` may be the zero UUID in agent-side logs — this is cosmetic and resolves once all instances are updated. |
||
|
|
990c006f28 |
feat(coderd/database): add value_key_id column to user_secrets for encryption (#23997)
Add a nullable `value_key_id` column to the `user_secrets` table with a foreign key to `dbcrypt_keys`. This is the column dbcrypt uses to track which encryption key encrypted a given secret's value. This is required for encryption of user secret values. The column was missing from the original migration (000357). |
||
|
|
0cb942aab2 | fix(site): pass workspace and workspaceAgent props to AgentChatPageView (#23988) | ||
|
|
b0a6802d12 |
feat(site): provider key policy frontend UI (#23781)
Frontend for provider key policies (backend in #23751). ## Changes **Admin provider form**: Three policy toggles (central API key, user API keys, central fallback) with cross-field validation and conditional visibility. Form resets properly after save. **User settings page**: New `/settings/providers` route for personal API key management. Conditional sidebar item (visible only when providers allow user keys). Status badges, masked key input, save/remove actions with confirmation. Read-only model list per provider. Gated behind `agents` experiment flag. **Model selector**: Distinguishes user-fixable (`user_api_key_required`) from admin-fixable (`missing_api_key`) empty states. Links to `/settings/providers` when user action is needed. Applied to both chat detail and agent create flows. **API client**: Query/mutation hooks for user provider configs. Cache invalidation across provider configs and model catalog. |
||
|
|
8d08885792 |
fix(site): archive chats when workspace is already deleted (#23994)
When a user tries to archive-and-delete a chat from /agents but the workspace is already gone, the UI showed a "Failed to look up workspace for deletion" toast and blocked the archive. This change detects the workspace-gone response and archives the chat without attempting deletion. ## Changes The backend returns 410 Gone for soft-deleted workspaces and 404 for workspaces that do not exist or the user cannot access. `isWorkspaceNotFound()` detects both status codes. `resolveArchiveAndDeleteAction()` now returns `"archive"` when the workspace preflight fetch gets a 404 or 410, and the page branches on that action to call the existing archive mutation directly. The `archiveAndDeleteMutation` also tolerates these status codes from `deleteWorkspace()` to handle the race where the workspace disappears between the preflight lookup and the actual delete call. The mutation body was extracted into a testable `archiveAndDeleteWorkspace()` utility so the tolerance logic has direct test coverage. A `navigateAfterArchive()` helper consolidates the post-archive redirect logic that was previously duplicated across the proceed, confirm, and archive paths. ## Pre-existing patterns preserved - The `"proceed"` and `"confirm"` archive-and-delete paths use `onSettled` for navigation, matching the existing behavior before this change. Only the new `"archive"` path uses `onSuccess` since it has no workspace deletion step that should still navigate on partial failure. - `isWorkspaceNotFound()` uses the same `isAxiosError(error) && error.response?.status` pattern already used in several places in `site/src/api/api.ts`. The backend 404 ambiguity (deleted vs unauthorized) is documented in the JSDoc. - The pre-existing double-submit race during the async preflight window is unchanged. |
||
|
|
f68161350a |
fix: render non-typed parameter changes immediately (#23951)
This way, if you click a checkbox that is supposed to show a section (for example), you are not stuck waiting half a second. |
||
|
|
9ac67a5253 |
feat(site): agents desktop recordings frontend (#23895)
This PR modifies the `wait_agent` tool call card to display screen recordings of computer use subagents. The backend logic was added in https://github.com/coder/coder/pull/23894. There's one big inefficiency in the current implementation: to display video thumbnails, the frontend downloads the entire video files from the backend. Our backend does not support HTTP range requests to only fetch the first frame. I'll be fixing that in a later PR. https://github.com/user-attachments/assets/684cea8b-66a9-45f8-96b2-57433da41c1c |
||
|
|
7d0a0c6495 | feat: provider key policies and user provider settings (#23751) | ||
|
|
17dec2a70f |
feat: agents desktop recordings backend (#23894)
This PR introduces screen recording of the computer use agent using the virtual desktop. - Screen recording is triggered by a `wait_agent` tool call. Recording is stopped by a successful `wait_agent` tool call or when there hasn't been any desktop activity for 10 minutes. - Recordings are handled by the `portabledesktop` cli via the `record` command. The videos are sped up in periods of inactivity. - Recordings are saved to the database to the `chat_files` table. There's a hard limit of 100MB per recording. Larger recordings are dropped. - A successful `wait_agent` on a computer use subagent tool call returns a `recording_file_id`, later allowing the frontend to display the corresponding video. |
||
|
|
f796f3645f |
fix(coderd): fix isContextLimitKey false positive on max_context_version (#23950)
`isContextLimitKey` had a fallback heuristic that matched any key starting with `"max"` containing `"context"`, causing false positives on keys like `"max_context_version"`. A provider returning such metadata would have the value parsed as a context limit. Replace substring matching on the separator-stripped key with word-level matching. A new `metadataKeyWords` function tokenizes keys by splitting on separators and camelCase boundaries, then the fallback requires `"context"` paired with a limit-related word (`"limit"`, `"window"` + qualifier, `"length"` + qualifier, or `"tokens"` + qualifier). Known exact forms like `"context_window"` remain in the fast-path switch. Closes https://github.com/coder/coder/issues/23332 |
||
|
|
d5ed51a190 | feat: show workspace badge in agent chat top bar (#23964) | ||
|
|
796e8e4e18 |
feat: use -x option in backport script to improve tracability (#23984)
Add `-x` to backport script `git cherry-pick` command to include a commit message reference to the original commit. This makes it easier to trace where a cherry picked commit actually came from. |
||
|
|
5b28548d1c |
chore(docs): fix sample command to grant role (#23987)
Fixes the sample bash one-liner. `--status` does not exist (yet) apparently. |
||
|
|
b5da77ff55 |
test: cover read_template and create_workspace allowlist enforcement (#23645)
- Extend `TestChatTemplateAllowlistEnforcement` to also exercise
`read_template` and `create_workspace` through the allowlist
- Mock LLM now chains 4 tool calls: list_templates, read_template
(blocked), read_template (allowed), create_workspace (blocked)
- Wire dummy `CreateWorkspace` config into test server so the tool
reaches the allowlist check
- Generalize tool result collection to support multiple calls per tool
name
> 🤖 Created by Coder Agents and reviewed by Kyle the human.
|
||
|
|
cc143c8990 |
docs: add byok docs for aibridge (#23922)
Adds documentation for BYOK (Bring Your Own Keys) for AIBridge. Covers claude-code and codex. |
||
|
|
3def04a3ee |
fix(site): use overflow-hidden for prompt text overflow (#23977)
Also had Claude write a couple of stories for the SessionTimeline 🤖 but
they look good
|