Commit Graph
3098 Commits
Author SHA1 Message Date
Asher 4a97df3768 chore: rename flag to disable template insights (#21329)
Because this affects more than just the template insights
page (specifically it also affects the deployment stats endpoint which
is shown on bottom bar and Prometheus), the group is being renamed
generically to just "stats collection".  In the future if we need to
affect the other stats we can put those options here.

Then, because this change only affects a portion of stats, specifically
usage stats like connection and application time, bytes sent, etc, add a
new sub-group called "usage stats".

Then finally add back the "enable" flag.  This also gives us a place to
one day place an "anonymize" flag if we need to go that route.
2026-01-05 11:44:06 -09:00
ケイラ 5691d38db7 chore: migrate tar tests to vitest (#21406) 2026-01-05 13:18:04 -07:00
Jake Howell f524e00df7 feat: implement DEPRECATED_ICONS (#21346)
Closes #21320

This PR introduces a list of deprecated icons that should no longer be displayed in the UI. These icons are kept for backward compatibility but are now filtered out from:

1. The emoji picker component
2. The icons page listing

The deprecated icons include:
- Duplicate icons that have better alternatives (e.g., `apple-grey.svg` → `apple-black.svg`)
- PNG versions of icons that already have SVG versions (e.g., `aws.png` → `aws.svg`)
- Monochrome variants that are no longer needed (e.g., `docker-white.svg`)
2026-01-05 11:20:23 +11:00
William Burton 21241abc4e chore: add airflow icon (#21401) 2025-12-31 14:00:31 +00:00
Danny Kopping a173c38715 chore: remove experimental endpoints (#21390)
This should've been removed when we cut the Beta release, but we missed it. Adding as a drive-by.
2025-12-29 16:17:46 +00:00
Susana Ferreira b97572285a feat: add core AI MITM proxy daemon (#21296)
## Description

Adds the core AI Bridge MITM proxy daemon. This proxy intercepts HTTPS traffic, decrypts it using a configured CA certificate, and forwards requests to AIBridge for processing.

## Changes

* Added `aibridgeproxyd` package with the core proxy server implementation
* Added configuration options: `CODER_AIBRIDGE_PROXY_ENABLED`, `CODER_AIBRIDGE_PROXY_LISTEN_ADDR`, `CODER_AIBRIDGE_PROXY_CERT_FILE`, `CODER_AIBRIDGE_PROXY_KEY_FILE`
* Added tests for server initialization and MITM functionality

Closes https://github.com/coder/internal/issues/1180
2025-12-29 15:31:51 +00:00
Jake Howell df6b316772 feat: extend biome.jsonc with "useConsistentCurlyBraces": "error" (#21379) 2025-12-24 12:08:13 +11:00
Marcin Tojek 923c04e3e3 fix(site): add defensive access to entitlement features (#21381)
Fixes #14784
2025-12-23 16:00:36 +01:00
5448a2645d feat: migrate Alert component from MUI to shadcn and update to new Alert designs (#18412)
--- Although originally created with Blink most of the PR has been
re-written since then

## Summary

This PR migrates the Alert component from MUI to shadcn implementation
while maintaining full backward compatibility with the existing API.
Updates Alerts to new design in Figma.

Figma design:
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=3522-3005&m=dev

<img width="1008" height="623" alt="Screenshot 2025-12-18 at 20 37 32"
src="https://github.com/user-attachments/assets/8b2077f1-f746-4a9a-8b58-3ec3477c247b"
/>

---------

Co-authored-by: blink-so[bot] <211532188+blink-so[bot]@users.noreply.github.com>
Co-authored-by: jaaydenh <1858163+jaaydenh@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden@coder.com>
2025-12-22 11:52:40 +00:00
Danielle Maywood 44a46db487 feat(agent): support deleting dev containers (#21247)
Add logic to the agent, and an endpoint, to allow requesting and then deleting a Dev Container and its related agent.
2025-12-22 11:28:31 +00:00
Jaayden Halko 59959e0add fix: use correct error color (#21355)
fix styling to use destructive instead of danger
2025-12-22 09:58:58 +00:00
Cian Johnston 1de952b556 fix(site): allow updating workspace in TaskPage (#21316)
Relates to #20925 

This PR modifies TaskPage to update an outdated workspace instead of
starting it. Before, starting an outdated workspace where the template
required the active version would fail with the error "cannot use
non-active version: rbac: forbidden".

For the case of a dormant workspace, I deemed it safe enough to simply
unset dormancy on an attempted start (ref:
https://github.com/coder/coder/pull/21306). However, automatically
updating a workspace is a more risky option, so I instead elected to
give the user the option of updating their workspace using the existing
tooltip.


**Note:** I made a change to the `WorkspaceOutdatedTooltip` components
to allow it to have children so that the tooltip could trigger over a
wider element instead of just the info icon.

```
<🤖 AI Disclaimer>I got some help from Gemini 3 Flash in "Ask" mode.</🤖 AI Disclaimer>
```
2025-12-19 11:33:07 +00:00
Jaayden Halko 4ad653a9bd chore: add storybook tests for WorkspaceSharingPageView (#21261) 2025-12-18 21:26:27 +00:00
Jake Howell 7fb9d517af fix: increase workspace <Avatar /> size props (#21321) 2025-12-19 08:22:50 +11:00
Jaayden Halko 2de2cd5513 feat: add workspace filter for shared workspaces (#21310)
resolves coder/internal#1129

<img width="361" height="462" alt="Screenshot 2025-12-17 at 20 49 07"
src="https://github.com/user-attachments/assets/e06843f0-15e4-41fc-b736-ccfaa303ee74"
/>
2025-12-18 14:46:19 -05:00
Jake Howellandケイラ ca971dda29 fix: improve AI Bridge request logs UI/UX (#21252)
Closes #21052 and is related to #21218 

This pull request implements a bunch of changes the team requested to
improve the overall user experience when navigating to the Request Logs
page. Since these are mostly UI changes, screenshots do a much better
job of showing what's different than me trying to explain everything in
words, so I've included them below.

> [!WARNING]  
> More globally we've changed how we're rendering `<PaginationHeader
/>`, therefore we've renamed it to `<PaginationAmount />`. This will
effect multiple layouts however its a global improvement we're
intentionally looking to make.

### Preview 


![ai-bridge-improvements](https://github.com/user-attachments/assets/ce92852e-d0fc-4268-b52b-9aefd431033b)

### Changes

1. Date formatting set to a standardised way including the month as a
`MMM` (i.e `Dec`)
2. Names and avatars are now rendered larger, furthermore they render
the `.name` field falling back on `.username`.
3. Font-size increased from `text-xs` to `text-sm` to increase overall
legibility globally.
4. Initiator is now rendered inside of a `<Badge />` and gives longer
names a chance to render.
5. Models are now rendered in a `<Badge />` alongside their icons.
6. Input/Output tokens are in a shared `<Badge />`-group alongside
truncation (when necessary).
7. Badge from `5` is rendered with the proper name being visible on
hover (for use if truncated).
8. Move globally the `Showing X of X` counts to the bottom of the tables
(effects other components outside of AI Bridge).
9. Icons are now included within the dropdown for the `Provider` filter.
10. Truncation of elements is now handled so larger prompts don't cause
the table to require further scrolling.
11. New merged Input/Output `<dt>` element with the badge 

| Position | Pull-request |
| -------- | ------------ |
| ✅ | [fix: improve AI Bridge request logs
UI/UX](https://github.com/coder/coder/pull/21252) |
| | [feat: add AI Bridge request logs model
filter](https://github.com/coder/coder/pull/21259) |
| | [chore!: promote AIBridge from
`ExperimentalHandler`](https://github.com/coder/coder/pull/21278) |
| | [feat: implement request log collapsing prompt (`<RequestLogsPrompt
/>`)](https://github.com/coder/coder/pull/21313) |

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2025-12-19 00:47:20 +11:00
Dean Sheather b187d33a78 fix: show exclamation mark on negated permissions in org custom roles page (#21314)
Some permissions (in built-in roles only) have `Negated: true`, so the
UI was misleading users by showing that they had those permissions when
they really didn't.

<img width="1053" height="81" alt="image"
src="https://github.com/user-attachments/assets/ccf072ed-5821-4eb6-ac75-a1a563cf55c5"
/>
2025-12-18 05:04:03 +00:00
Jaayden Halko e4a06f842a feat: add workspace share button and dialog (#21299)
resolves coder/internal#1074

<img width="621" height="421" alt="Screenshot 2025-12-16 at 20 31 33"
src="https://github.com/user-attachments/assets/c886d261-1e98-444b-9346-5f30055772ae"
/>
<img width="648" height="483" alt="Screenshot 2025-12-16 at 20 31 16"
src="https://github.com/user-attachments/assets/c247cef2-38b0-4255-b41b-cc91de2cdf2b"
/>
2025-12-17 20:29:34 +00:00
Jaayden Halko 9f34a1dbad chore: create Workspace sharing form component using workspace sharing hook (#21276)
This PR separate the data retrieval for workspace sharing ACL into a
custom hook and creates a separate form component. This is in
preparation for reusing the workspace sharing form from a new share
button on the workspace page.
2025-12-17 16:39:27 +00:00
Jake Howell e4f87d5edc feat: output cached tokens for <RequestLogsRow /> (#20974)
Closes #21217 

This pull-request traverses the `token_usages.metadata[...]` fields and
merges them into a single consumable object so that we're able discern
information about the metadata within the token usages at a glance. Its
not the be-all end-all implementation of this feature but its a stepping
stone in order to render more useful data to the frontend.

These are currently mergable because they only contain `number` based
fields. When it encounters something within the object that can't be
merged (minus empty objects `{}`) it will simply return them as an
array.

### Preview

<img width="2682" height="1360" alt="CleanShot 2025-11-28 at 15 30
09@2x"
src="https://github.com/user-attachments/assets/e07e6515-4b8e-4169-841c-38fd83c434f9"
/>

### Logic breakdown

<img width="914" height="1016" alt="CleanShot 2025-11-28 at 15 11 13@2x"
src="https://github.com/user-attachments/assets/34b78fe1-3b58-4b78-a552-028ea5a88dc4"
/>
2025-12-17 00:21:30 +00:00
Jaayden Halko 5092645e40 feat: add radix autocomplete component (#21262)
<img width="339" height="330" alt="Screenshot 2025-12-13 at 18 39 30"
src="https://github.com/user-attachments/assets/41bade09-1e2e-4ff4-9b27-a3bdc9cb07f2"
/>
2025-12-16 16:15:06 -05:00
Mathias Fredriksson dac822b7f4 refactor: remove deprecated AITaskPromptParameterName constant (#21023)
This removes the deprecated AITaskPromptParameterName constant and all
backward compatibility code that was added for v2.28.

- Remove AITaskPromptParameterName constant from codersdk/aitasks.go
- Remove backward compatibility code in coderd/aitasks.go that populated
  the "AI Prompt" parameter for templates that defined it
- Remove the backward compatibility test (OK AIPromptBackCompat)
- Update dbfake to no longer set the AI Prompt parameter
- Remove AITaskPromptParameterName from frontend TypeScript types
- Remove preset prompt read-only feature from TaskPrompt component
- Update docs to reflect that pre-2.28 definition is no longer supported

Task prompts are now exclusively stored in the tasks.prompt database
column, as introduced in the migration that added the tasks table.
2025-12-16 15:14:59 +00:00
Marcin Tojek e740872272 chore: add perplexica icon (#21289)
Related: https://github.com/coder/registry/pull/596
2025-12-16 13:58:03 +01:00
Jaayden HalkoandGeorge Katsitadze 547e53f557 feat: add workspace sharing indicator (#21222)
<img width="320" height="263" alt="Screenshot 2025-12-11 at 13 10 01"
src="https://github.com/user-attachments/assets/496a420b-788c-4d7a-ae2d-8f203ea33971"
/>

---------

Co-authored-by: George Katsitadze <george@coder.com>
2025-12-15 20:20:17 +00:00
Steven Masley 8fefd91e4a feat!: support PKCE in the oauth2 client's auth/exchange flow (#21215)
**Breaking Change:** Existing oauth apps might now use PKCE. If an
unknown IdP type was being used, and it does not support PKCE, it will
break.

To fix, set the PKCE methods on the external auth to `none`
```
export CODER_EXTERNAL_AUTH_1_PKCE_METHODS=none
```
2025-12-15 17:41:47 +00:00
Steven Masley 3194bcfc9e chore: distinct operations for provisioner's 'parse', 'init', 'plan', 'apply', 'graph' (#21064)
Provisioner steps broken into smaller granular actions.
Changes:
- `ExtractArchive` moved to `init` request (was in `configure`)
- Writing `tfstate` moved to `plan` (was in `configure`)
- Moved most plan/apply outputs to `GraphComplete`
2025-12-15 11:26:41 -06:00
George K 103967ed02 feat: add sharing info to /workspaces endpoint (#21049)
closes: https://github.com/coder/internal/issues/858

Similar to https://github.com/coder/coder/pull/19375, this one uses
system permissions for fetching actual user and group data.

Modifies the `workspaces_expanded` view to fetch the required data; this way it's made available to all code paths that make use of it.  

Also fixes a bug in a test helper function that can result in `null` being saved to the DB for `user_acl` or `group_acl` and break tests; a defensive check constraint that prevents this is worth a PR, e.g:

`ALTER TABLE workspaces
   ADD CONSTRAINT group_acl_is_object CHECK (jsonb_typeof(group_acl) = 'object');`

Also adds missing  `OwnerName` in `ConvertWorkspaceRows`.
2025-12-15 08:42:08 -08:00
Andrew Aquino 13fbbcd279 refactor: replace remaining MUI tooltips (#20938)
closes #19974 

This PR replaces all remaining MUI tooltips with our shadcn tooltip
component, and uncomments the linter restriction on importing the MUI
tooltip
2025-12-15 08:12:27 -08:00
Asher 27f0413347 feat: add flag to disable template insights (#20940)
Closes #20399 

To summarize the original commit messages:

- Do not log stats to the database.
- Return errors on the insight endpoints.
- Update the frontend to show those errors.
- Also fixes an issue with getting the user status count via codersdk,
since I added a test to ensure it was not disabled by this flag and it
was sending the wrong payload.
2025-12-14 03:00:03 +00:00
Jaayden Halko b9f8295845 feat: add workspace sharing page (#20931)
resolves coder/internal#849

<img width="870" height="554" alt="Screenshot 2025-12-10 at 20 37 38"
src="https://github.com/user-attachments/assets/8712bf81-dc6f-4645-9e32-65eee7882e76"
/>
2025-12-12 21:07:35 +00:00
Danielle Maywood e7bbfe2ee7 feat(site): allow modifying task prompts for starting tasks (#20812)
Closes https://github.com/coder/internal/issues/1084

This PR adds the frontend implementation for modifying task prompts.

---

🤖 PR was initially written by Claude Sonnet 4.5 Thinking using [Coder
Mux](https://github.com/coder/cmux) and then heavily modified by a human
👩
2025-12-11 23:20:49 +00:00
Andrew Aquino a87a44412f feat: show sharing info at bottom of AppLink's tooltip (#21197)
for #19974 

`ShareIcon`, which returns a MUI tooltip, had these problems:

1. There was no Storybook story which rendered the "Open external URL"
tooltip
2. `AppLink` renders a button. If it has tooltip text, this button is
also a Radix `TooltipTrigger`. Since `ShareIcon` is rendered as a child
of the `AppLink` button, `ShareIcon`'s tooltip (a nested tooltip) was
never appearing. I did try turning `ShareIcon` into a Radix tooltip as
well, but I still couldn't get the nested tooltip's text to appear, and
nested tooltips are not very accessible. AFAIK there's no way to focus a
child element of a button.

I've deleted the separate `ShareIcon` component and moved `ShareIcon`'s
tooltip text to the bottom of `AppLink`'s tooltip:

## before

<img width="175" height="121" alt="image"
src="https://github.com/user-attachments/assets/ad17927e-c3d1-499b-83f8-a5832b777305"
/>

^The `UsersIcon` on the right is a MUI tooltip trigger, but it can't
receive focus. It's supposed to show the text "Shared with all
authenticated users" when focused

## after

<img width="228" height="121" alt="image"
src="https://github.com/user-attachments/assets/adc202c1-57cd-4a80-8f94-f7f32897d286"
/>
2025-12-11 13:30:16 -08:00
Andrew Aquino 36311e5293 refactor: remove disabled tooltip from PaginationNavButton (#21199)
for #19974 

The MUI tooltip inside `PaginationNavButton` was a controlled component.
This + the stateful logic inside `PaginationNavButtonCore` meant that
`showDisabledMessage` would never be set to true. I.e., the "You are
already on the first page" tooltip if on the first page and the "You are
already on the last page" tooltip if on the last page would never show
up.

The `PaginationNavButton`s gets disabled if we're at either the
first/last page, and disabled buttons can't receive focus, so there's no
way to open the MUI tooltips with keyboard navigation.

Removing the MUI tooltip + related props from `PaginationNavButton` has
no effect on my screen reader UX with macOS VoiceOver; it's entirely
unchanged
2025-12-11 10:43:25 -08:00
Kacper Sawicki 6f86f67754 feat(coderd): add overload protection with rate limiting and concurrency control (#21161)
## Summary

This adds configurable overload protection to the AI Bridge daemon to
prevent the server from being overwhelmed during periods of high load.

Partially addresses coder/internal#1153 (rate limits and concurrency
control; circuit breakers are deferred to a follow-up).

## New Configuration Options

| Option | Environment Variable | Description | Default |
|--------|---------------------|-------------|---------|
| `--aibridge-max-concurrency` | `CODER_AIBRIDGE_MAX_CONCURRENCY` |
Maximum number of concurrent AI Bridge requests. Set to 0 to disable
(unlimited). | `0` |
| `--aibridge-rate-limit` | `CODER_AIBRIDGE_RATE_LIMIT` | Maximum number
of AI Bridge requests per second. Set to 0 to disable rate limiting. |
`0` |

## Behavior

When limits are exceeded:
- **Concurrency limit**: Returns HTTP `503 Service Unavailable` with
message "AI Bridge is currently at capacity. Please try again later."
- **Rate limit**: Returns HTTP `429 Too Many Requests` with
`Retry-After` header.

Both protections are optional and disabled by default (0 values).

## Implementation

The overload protection is implemented as reusable middleware in
`coderd/httpmw/ratelimit.go`:

1. **`RateLimitByAuthToken`**: Per-user rate limiting that uses
`APITokenFromRequest` to extract the authentication token, with fallback
to `X-Api-Key` header for AI provider compatibility (e.g., Anthropic).
Falls back to IP-based rate limiting if no token is present. Includes
`Retry-After` header for backpressure signaling.
2. **`ConcurrencyLimit`**: Uses an atomic counter to track in-flight
requests and reject when at capacity.

The middleware is applied in `enterprise/coderd/aibridge.go` via
`r.Group` in the following order:
1. Concurrency check (faster rejection for load shedding)
2. Rate limit check

**Note**: Rate limiting currently applies to all AI Bridge requests,
including pass-through requests. Ideally only actual interceptions
should count, but this would require changes in the aibridge library.

## Testing

Added comprehensive tests for:
- Rate limiting by auth token (Bearer token, X-Api-Key, no token
fallback to IP)
- Different tokens not rate limited against each other
- Disabled when limit is zero
- Retry-After header is set on 429 responses
- Concurrency limiting (allows within limit, rejects over limit,
disabled when zero)
2025-12-11 16:38:54 +01:00
Ben PotterandClaude Sonnet 4.5 8e460ca865 feat(site): add cmd+enter to submit tasks immediately (#21182)
Implements cmd+enter (Mac) / ctrl+enter (Windows/Linux) keyboard
shortcut for submitting tasks on the tasks page. Regular enter key still
creates new lines as expected.

Fixes #21179

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

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 22:00:24 +00:00
Atif Ali ed3bb76c9b feat(site): add icons for .sh, .json, and .y[a]ml files in template editor (#21171)
Added specific icons for common file types in the template file tree:
- **.sh files**: TerminalIcon (terminal/shell scripts)
- **.json files**: BracesIcon (JSON data files)  
- **.yaml/.yml files**: FileCodeIcon (YAML configuration files)

<img width="260" height="290" alt="image"
src="https://github.com/user-attachments/assets/a470f4bc-fc2c-4e2d-8067-a9fbbfe32e42"
/>

These icons help users quickly identify file types at a glance in the
template editor.
2025-12-10 21:19:25 +01:00
Ben PotterandClaude Sonnet 4.5 67024b80fa fix: use task display_name in browser tab title (#21147)
Fixes #21145

The browser tab title for tasks was showing the machine-readable name
(e.g., `kyle/my-workspace.main`) instead of the user-friendly display
name (e.g., `Create Documentation`).

Changed `site/src/pages/TaskPage/TaskPage.tsx` to use
`task.display_name` for the page title. The `display_name` field is
always set by the backend (NOT NULL constraint, auto-generated if
empty), so no fallback is needed.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-10 08:51:06 -06:00
Marcin Tojek f6ddfdecb7 chore: add open-webui icon (#21189)
Related: https://github.com/coder/registry/pull/580
2025-12-10 11:53:59 +01:00
Atif Ali 3641404e93 chore(site): align AI Bridge Request logs page wording with docs (#21203) 2025-12-10 13:11:54 +05:00
Atif Ali 46fd4aa03e fix(site): add default file icon for files without specific icons (#21170) 2025-12-10 06:17:46 +00:00
Andrew Aquino fca93438ee refactor: replace MUI tooltip in WorkspaceTimings (#21107)
for #19974 

Continuing the train of thought from
https://github.com/coder/coder/pull/20849#issuecomment-3560666271: it's
probably better to do away with a custom tooltip component that's only
used in `ResourcesChart`/`ScriptsChart`/`StagesChart` and only slightly
differs from our base tooltip
2025-12-09 14:19:24 -08:00
Atif Ali d92649ae3b fix(site): use FolderIcon instead of TextAlignStartIcon for folders in template editor (#21169)
## Summary

Fixes folder icons in the template editor file tree.


## Changes

- Import `FolderIcon` instead of `TextAlignStartIcon` from lucide-react
- Use `FolderIcon` for folder entries in the file tree

_Generated with `mux`_
2025-12-09 22:32:02 +05:00
George K 4379230a27 feat: add deployment-wide option to disable workspace sharing (#21172)
Adds `--disable-workspace-sharing` option.

Workspace sharing is disabled by not including user and group ACLs in
the workspace RBAC object, which prevents ACL-based authz.

Closes https://github.com/coder/internal/issues/1072

The commit also adds saving of workspace user/group ACLs in the test DB
data generator.
2025-12-09 08:13:09 -08:00
Atif Ali e31578da4b chore(site): replace stop icon with pause icon (#21173) 2025-12-09 20:57:13 +05:00
Ben PotterandClaude Sonnet 4.5 f6b025ec7b fix(site): show command apps in Tasks view (#21185)
Command apps (terminal apps with `command` field) were being filtered
out from the Tasks view because they have health "disabled" when no
healthcheck is defined.

Updated the filter in `TaskApps.tsx` to allow command apps through
regardless of health status so they appear as tabs alongside web apps.

<img width="1378" height="790" alt="Screenshot 2025-12-08 at 8 10 47 PM"
src="https://github.com/user-attachments/assets/90a73bb2-d49c-4241-a4d5-798e2dd8118b"
/>

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

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-09 09:04:53 -06:00
Jaayden HalkoandClaude a6285dde5e chore(site): mark MUI components and Stack as deprecated (#20973)
Adds deprecation markers for MUI components and the custom Stack
component to guide migration to shadcn/ui and Tailwind CSS.

Changes:
- Added JSDoc @deprecated tags to Stack component and type definitions
- Added deprecation comments to MUI imports in theme files
- Expanded Biome noRestrictedImports rules to flag all MUI component
imports

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-08 21:11:32 +00:00
Ehab Younes ac1d51aeca fix: export site public API to be used in the VS Code extension (#21165) 2025-12-08 23:02:36 +03:00
Jaayden Halko 731683ab4f chore: display the starting date when the license becomes active (#21162)
display the the not before date from the licenses endpoint to display a
Valid from license date in the UI
2025-12-08 15:21:02 +00:00
Ehab Younes 52243557a2 fix: do not log CSRF error in Electron environments (#21054)
Closes #20914
2025-12-08 16:24:59 +03:00
DevCats 8e0516a19c chore: add support for antigravity external app protocol (#20873)
Adds `antigravity` to the allowed protocols list.

Related PR:
https://github.com/coder/registry/pull/558
2025-12-05 13:09:58 +00:00