Commit log

17f2929 collab: Anchor new subscription's billing cycle to the first of the month (#19367)

Click to expand commit body
This PR makes it so new subscriptions will have their billing cycle
anchored to the first of the month.

When someone signs up today, they will be billed starting on the first
of next month.

Release Notes:

- N/A

Co-authored-by: Antonio <antontio@zed.dev>
Co-authored-by: Richard <richard@zed.dev>

Marshall Bowers , Antonio , and Richard created

5ad3920 Support uppercase extensions in image preview (#19304)

Peter Tripp created

8c91054 Subtract FREE_TIER_MONTHLY_SPENDING_LIMIT from reported monthly spend (#19358)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

455f241 Introduce a new /billing/monthly_spend API (#19354)

Click to expand commit body
Fixes https://github.com/zed-industries/zed/issues/19353

Release Notes:

- N/A

Antonio Scandurra created

498ecd6 Fetch more than one page when polling stripe events (#19343)

Click to expand commit body
This fixes a bug that was causing most users to be unable to use the
LLMs via Zed. It was caused by not using pagination and, instead, always
querying the very first page of stripe events.

Note that we're also allowing processing events generated in the last 24
hours (before, this was only 1 hour). I did this so that we can process
the backlog of events that the aforementioned bug was skipping.

Release Notes:

- N/A

Antonio Scandurra created

3216de7 ssh remoting: Do not print error backtrace on non-zero exit (#19290)

Click to expand commit body
Closes #ISSUE


Release Notes:

- N/A

Thorsten Ball created

57369b5 Update Rust crate tree-sitter-elixir to v0.3.1 (#19335)

renovate[bot] created

f9d4272 docs: Java extension settings (#19113)

Click to expand commit body
Co-authored-by: Peter Tripp <peter@zed.dev>

Heavysnowjakarta and Peter Tripp created

378a2cf Allow passing args to ssh (#19336)

Click to expand commit body
This is useful for passing a custom identity file, jump hosts, etc.

Unlike with the v1 feature, we won't support `gh`/`gcloud` ssh wrappers
(yet?). I think the right way of supporting those would be to let
extensions provide remote projects.

Closes #19118

Release Notes:

- SSH remoting: restored ability to set arguments for SSH

Conrad Irwin created

f1d01d5 Simplify PR template (#19337)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

78093b8 ssh: Clean up title bar indicator icon (#19328)

Click to expand commit body
This PR cleans up the custom icon with indicator implementation in favor
of `IconWithIndicator`, which we already had. It seems like it isn't
super used still, but it's good to try to enforce some consistency
either way. I checked my changes against the REPL stuff (one instance
where its used) and everything's looking good so far. As far as SSH,
nothing has visually changed; we just have less code for this thing now.

<img width="800" alt="Screenshot 2024-10-17 at 2 15 47โ€ฏAM"
src="https://github.com/user-attachments/assets/5c146757-501e-4242-b145-a576a8f289b5">

---

Release Notes:

- N/A

Danilo Leal created

a41e973 ssh: Remove server count from modal header (#19329)

Click to expand commit body
The server count was something that existed since the remote development
implementation and we just kept it there without a lot of critical
thinking. However, it doesn't feel like it's particularly useful yet,
which means that, at least for now, we could clean it up more and wait
for further feedback to add it back, if ever requested.

Release Notes:

- N/A

Danilo Leal created

9a3d873 ssh: Use system prompt for the server removal action (#19332)

Click to expand commit body
This PR replaces a toast for the system prompt to confirm the action of
removing a server from the remote list. The alert dialog component is
the right choice here as we want to have a modal action that forces
choice. This should make it easier to convert to a nativa alert dialog
in the future, as well as for other platforms.

<img width="800" alt="Screenshot 2024-10-17 at 3 01 41โ€ฏAM"
src="https://github.com/user-attachments/assets/7bb1210a-54bf-40da-a85a-f269484825a1">

Release Notes:

- N/A

Danilo Leal created

c888101 SSH remoting: Don't panic when opening root, open ~ instead (#19322)

Click to expand commit body
Release Notes:

- Fixed a panic when doing `zed ssh://server/`

Conrad Irwin created

0c04fb9 SSH remoting: better error message for projects (#19320)

Click to expand commit body
Before this, if no project paths were opened you were in a wierd UI
state where
most things didn't work because the project was ssh, but no
files/folders were open.

Release Notes:

- Fixed error handling when no project paths could be opened

Conrad Irwin created

f6fad3b collab: Remove lifetime spending limit in favor of LLM usage billing (#19321)

Click to expand commit body
This PR removes the lifetime spending limit that was added in #16780.

We had previously added this as a way to prevent runaway usage, but now
that we have a cap on free usage per month with paid access after that,
we don't need this check anymore.

Release Notes:

- N/A

Marshall Bowers created

6614fef Pin astral-sh/setup-uv action to f3bcaeb (#19309)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/setup-uv](https://redirect.github.com/astral-sh/setup-uv) |
action | pinDigest | -> `f3bcaeb` |

---

### Configuration

๐Ÿ“… **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

๐Ÿšฆ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

โ™ป **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

๐Ÿ”• **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

08b1545 Show a user-visible error message if saving fails (#19311)

Click to expand commit body
Release Notes:

- Added a user-visible error message when a manual save fails.

Conrad Irwin created

fedd177 collab: Add context to errors syncing billing events to Stripe (#19315)

Click to expand commit body
This PR adds context to errors that occur when trying to sync billing
events to Stripe.

Release Notes:

- N/A

Marshall Bowers created

4288096 Update Rust crate tree-sitter-cpp to v0.23.1 (#18974)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[tree-sitter-cpp](https://redirect.github.com/tree-sitter/tree-sitter-cpp)
| workspace.dependencies | patch | `0.23.0` -> `0.23.1` |

---

### Release Notes

<details>
<summary>tree-sitter/tree-sitter-cpp (tree-sitter-cpp)</summary>

###
[`v0.23.1`](https://redirect.github.com/tree-sitter/tree-sitter-cpp/compare/v0.23.0...v0.23.1)

[Compare
Source](https://redirect.github.com/tree-sitter/tree-sitter-cpp/compare/v0.23.0...v0.23.1)

</details>

---

### Configuration

๐Ÿ“… **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

๐Ÿšฆ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

โ™ป **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

๐Ÿ”• **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM4LjExNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

256c31a Update Rust crate tree-sitter-c to v0.23.1 (#18958)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tree-sitter-c](https://redirect.github.com/tree-sitter/tree-sitter-c)
| workspace.dependencies | patch | `0.23.0` -> `0.23.1` |

---

### Release Notes

<details>
<summary>tree-sitter/tree-sitter-c (tree-sitter-c)</summary>

###
[`v0.23.1`](https://redirect.github.com/tree-sitter/tree-sitter-c/compare/v0.23.0...v0.23.1)

[Compare
Source](https://redirect.github.com/tree-sitter/tree-sitter-c/compare/v0.23.0...v0.23.1)

</details>

---

### Configuration

๐Ÿ“… **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

๐Ÿšฆ **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

โ™ป **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

๐Ÿ”• **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM4LjExNC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

c8b6ad9 Context Servers: Protocol fixes and UI improvements (#19087)

Click to expand commit body
This PR does two things. It fixes some minor inconsistencies in the
protocol. This is mostly about handling JSON RPC notifications correctly
and skipping fields when set to None.

Second part is about improving the rendering of context server commands,
by passing on the description
of the command to the slash command UI and showing the name of the
argument as a CodeLabel.

Release Notes:

- N/A

David Soria Parra created

0e22c9f docs: Add C++ clangd example arguments (#19308)

Peter Tripp created

56f69be Do not allow [re]running ssh tasks when not connected to the server (#19306)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

02f63e4 Resolve proto hints with empty resolve data (#19274)

Click to expand commit body
Fixed ssh remoting not showing a lot of hints


Release Notes:

- N/A

Kirill Bulatov created

3dcc638 Better handle shell for remote ssh projects (#19297)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Conrad Irwin <conrad@zed.dev>

Kirill Bulatov and Conrad Irwin created

d35b646 assistant: Direct user to account page to subscribe for more LLM usage (#19300)

Click to expand commit body
This PR updates the location where we send the user to subscribe for
more LLM usage to the account page.

Release Notes:

- Updated the URL to the account page when subscribing to LLM usage.

Marshall Bowers created

338bf3f windows: Fix window not displaying correctly on launch (#19124)

Click to expand commit body
Closes #18705 (comment)

This PR fixes the issue where the Zed window was not displaying
correctly on launch. Now, when Zed is closed in a maximized state, it
will reopen in a maximized state.

On macOS, when a window is created but not yet visible, calling `zoom`
or `toggle_fullscreen` will still affect the hidden window. However,
this behavior is different on Windows, so special handling is required.

Also, since #18705 hasn't been reviewed yet, I'm not sure if this PR
should be merged now or if it should wait until #18705 is reviewed
first.


Release Notes:

- N/A

ๅผ ๅฐ็™ฝ created

879a2ea gpui: Replace redundant code in animation (#19273)

Click to expand commit body
Just a small change to replace some redundant code in the animation
element.

Release Notes:

- N/A

Matin Aniss created

7a5003b ssh: Do not look up dev servers when rendering the default mode (#19295)

Click to expand commit body
This should help with the bug where there's a mismatch between
connection count and the list showing empty state.

Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

f8f3f36 v0.159.x dev

Joseph T. Lyons created

474e670 Increase monthly free tier spend from 5 dollars to 10 dollars (#19291)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Richard <richard@zed.dev>

Antonio Scandurra , Marshall , and Richard created

fe0bcc0 collab: Add Stripe API key to Kubernetes template (#19292)

Click to expand commit body
This PR adds the Stripe API key to the Kubernetes template.

It's optional right now, so we can set the API key when we're ready.

Release Notes:

- N/A

Marshall Bowers created

69abe71 ssh remoting: Treat closed stderr as error (#19289)

Click to expand commit body
Before this change we had a race condition bug: if stderr was closed
before the other two sockets, we wouldn't properly detect when the
server died, and not report or retry anything.

That's because we treated a closed stderr as a non-error.

Technically, it isn't an error (closing a connection is okay!), but
until we have a proper shutdown ceremony between all three processes, we
can treat it as an error, because that lets us to detect when the server
is gone.

On the client-side, we also always react to these errors by
reconnecting. Except when we shutdown: there we do a proper shutdown and
won't error on the proxy exit code.

So, this works, even if I wish there was a better way for the server to
communicate to the proxy that it shutdown properly. But I don't want a
fourth socket.

Release Notes:

- N/A

Thorsten Ball created

9c3d80d collab: Fetch more meters and prices when initializing `StripeBilling` (#19288)

Click to expand commit body
This PR makes it so we fetch more meters and prices when initializing
`StripeBilling`, as we have more than 10 meters defined.

Release Notes:

- N/A

Marshall Bowers created

834d50f Properly open worktrees when cmd-clicking in terminal or on inlay hints (#19280)

Click to expand commit body
* uses the state that's synced, to fetch the language server name
* uses proper, canonicalized path when creating a remote ssh worktree,
otherwise `~/foo/something` stays unexpanded

Release Notes:

- N/A

Kirill Bulatov created

bcdb10b Do not attempt to install prettier if the language change is unrelated (#19283)

Click to expand commit body
Release Notes:

- Fix prettier install being attempted too much

Kirill Bulatov created

598939d collab: Refresh the user's LLM token when their subscription changes (#19281)

Click to expand commit body
This PR makes it so collab will trigger a refresh for a user's LLM token
whenever their subscription changes.

This allows us to proactively push down changes to their subscription.

In order to facilitate this, the Stripe event processing has been moved
from the `api` service to the `collab` service in order to access the
RPC server.

Release Notes:

- N/A

Marshall Bowers created

9d944d0 ssh remote: Restore ControlPersist=no (#19277)

Click to expand commit body
This restores the change from #19193 that I erroneously reverted in
#19234.

I think the bug in #19275 got in my way when testing.

With that bug fixed, the changes in here also work fine.


Release Notes:

- N/A

Thorsten Ball created

7d2628e Make the divider rule color more muted (#19255)

Click to expand commit body
I've been a bit annoyed by the hover divider rule being extremely bright
compared to other divider rules in the UI. This PR updates their color
to use the regular border color from the current theme instead of the
muted (but still pretty bright) text color.

Apologies for the unsolicited PR (and please feel free to close if it
goes against some other plans / designs you already have in place :).

#### Example screenshot before:
<img width="302" alt="Screenshot 2024-10-15 at 23 29 18"
src="https://github.com/user-attachments/assets/7ea22808-8135-4a46-9457-e670225aebaa">

#### Example screenshot after:
<img width="312" alt="Screenshot 2024-10-15 at 23 28 16"
src="https://github.com/user-attachments/assets/63ac0d02-ae6d-4962-84a2-1fdb95519b15">

***

Release Notes:

- Make the divider rule in LSP hovers more muted

Tilman Roeder created

84df3a0 Allow formatting selections via LSP (#18752)

Click to expand commit body
Release Notes:

- Added a new `editor: format selections` action that allows formatting
only the currently selected text via the primary language server.

---------

Co-authored-by: Thorsten Ball <mrnugget@gmail.com>

Ihnat Aลญtuลกka and Thorsten Ball created

eb76065 ssh remoting: Fix hang when activity channel gets dropped (#19275)

Click to expand commit body
When the SSH command dies or the server, the channel gets dropped and
the heartbeat method went into an infinite loop causing a hang.

Oversight from yesterday. Fixed now.

Release Notes:

- N/A

Thorsten Ball created

84018d7 zig: Bump to v0.3.1 (#19252)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18323
- https://github.com/zed-industries/zed/pull/17488

Peter Tripp created

57c55b3 html: Bump to v0.1.3 (#19251)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024

Peter Tripp created

a4357c4 elixir: Bump to v0.1.0 (#19250)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024
- https://github.com/zed-industries/zed/pull/17488
- https://github.com/zed-industries/zed/pull/16985

Peter Tripp created

103665e astro: Bump to v0.1.1 (#19249)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18024

Peter Tripp created

2f960c4 project environment: Log when which env is used (#19270)

Click to expand commit body
This adds more logging for debugging purposes.

Release Notes:

- N/A

Thorsten Ball created

109ebc5 ui: Add Scrollbar component (#18927)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

eddf70b Revert "lsp: Do not notify all language servers on file save" (#19183)

Click to expand commit body
Reverts zed-industries/zed#17756. According to the existing
implementations of the LSP specification, namely
[Helix](https://github.com/helix-editor/helix/blob/a7651f5bf027ec98645d571ab05a685d97e1b772/helix-view/src/document.rs#L1038)
and, if I'm not wrong,
[VSCode](https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/textSynchronization.ts#L580),
`textDocument/didSave` has nothing to do with the watched files and
should be sent to the language servers connected to the buffers even if
the files are not watched by those. As the LSP spec doesn't say anything
about `didSave` being related to the watched files, and the reference
implementation in VSCode seemingly does not filter the notifications
according to those, it seems like this is an incorrect interpretation of
the specification

This also causes issues with language servers. See [Metals
issue](https://github.com/scalameta/metals-zed/issues/28#issuecomment-2410393150)
for example

Closes #18636

Release Notes:

- N/A

Stanislav Alekseev created

1286198 Environment loading fixes (#19144)

Click to expand commit body
Closes #19040
Addresses the problem with annoying error messages on windows (see
comment from SomeoneToIgnore on #18567)

Release Notes:

- Fixed the bug where language servers from PATH would sometimes be
prioritised over the ones from `direnv`
- Stopped running environment loading on windows as it didn't work
anyways due to `SHELL` not being set

Stanislav Alekseev created