Commit log

69ab1c0 Make toolbar horizontal padding more consistent (#2944)

Click to expand commit body
* increase horizontal padding of toolbar itself, remove padding that was
added to individual toolbar items like feedback button.
* make feedback info text and breadcrumbs have the same additional
padding as quick action buttons.

Release Notes:

- Fixed some inconsistencies in the layout of toolbars.

Max Brunsfeld created

fd37351 update semantic search to show no results if search query is blank (#2942)

Click to expand commit body
Update semantic search to show no search results if search query is
blank

Kyle Caverly created

a61d639 zed 0.103.1

Joseph T. Lyons created

eb8cf7c Start indexing right away when project was already indexed before (#2941)

Click to expand commit body
Release notes:
- Improved semantic search indexing to start in the background if the
project was already indexed before.

Antonio Scandurra created

fedec2d Rework how we track projects and worktrees in semantic index (#2938)

Click to expand commit body
This pull request introduces several improvements to the semantic search
experience. We're still missing collaboration and searching modified
buffers, which we'll tackle after we take a detour into reducing the
number of tokens used to generate embeddings.

Release Notes:

- Fixed a bug that could prevent semantic search from working when
deploying right after opening a project.
- Fixed a panic that could sometimes occur when using semantic search
while simultaneously changing a file.
- Fixed a bug that prevented semantic search from including new
worktrees when adding them to a project.

Antonio Scandurra created

f685265 Token count fix (#2935)

Click to expand commit body
Fix token count for OpenAIEmbeddings

Release Notes (Preview Only)

- update token count calculation for truncated OpenAIEmbeddings
- increased request timeout for OpenAI

Kyle Caverly created

3b173b6 Allow call events to be logged without a room id (#2937)

Click to expand commit body
Prior to this PR, we assumed that all call events needed a room_id, but
we now have call-based actions that don't need a room_id - for instance,
you can right click a channel and view the notes while not in a call. In
this case, there is no room_id. We want to be able to track these
events, which requires removing the restriction that requires a room_id.

Release Notes:

- N/A

Joseph T. Lyons created

d88dd41 v0.103.x preview

Joseph T. Lyons created

9701b3d x

Joseph T. Lyons created

a2e91e4 Use preview server when not on stable (#2909)

Click to expand commit body
This PR updates our client code to connect to preview whenever we're not
on stable. This will make it more likely that we'll be able to
collaborate on a dev build, but obviously won't work if there's a
protocol change on main that hasn't made its way to preview yet.

Nathan Sobo created

246b699 Remove NodeRuntime static & add fake implementation for tests (#2934)

Click to expand commit body
Release Notes:

- N/A

Julia created

8d672f5 Remove NodeRuntime static & add fake implementation for tests

Julia created

9272e93 Add operation for opening channel notes in channel-based calls (#2933)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

653d497 Add operation for opening channel notes in channel based calls

Joseph T. Lyons created

49af287 Eager background indexing (#2928)

Click to expand commit body
This PR ships a series of optimizations for the semantic search engine.
Mostly focused on removing invalid states, optimizing requests to
OpenAI, and reducing token usage.

Release Notes (Preview-Only):

- Added eager incremental indexing in the background on a debounce.
- Added a local embeddings cache for reducing redundant calls to OpenAI.
- Moved to an Embeddings Queue model which ensures optimal batch sizes
at the token level, and atomic file & document writes.
- Adjusted OpenAI Embedding API requests to use provided backoff delays
during Rate Limiting.
- Removed flush races between parsing files step and embedding queue
steps.
- Moved truncation to parsing step reducing the probability that OpenAI
encounters bad data.

Kyle Caverly created

c2c0461 vim S (#2929)

Click to expand commit body
Release Notes:
- vim: Add `S` to substitute line ([#1897](https://github.com/zed-industries/community/issues/1897)).

Conrad Irwin created

27143e2 Split ContextMenu actions (#2931)

Click to expand commit body
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.

Conrad Irwin created

4855063 Fix cropped search filters (#2932)

Click to expand commit body
Because of the way we set up tools that add rows inside the toolbar it
is complicated to tighten up the spacing inside the toolbar.

This PR just reverts the changes I made previously. We'll need to
properly add rows below the toolbar instead of rendering search inside
of it to have non-equal height tools be able to descend from it.

Release Notes:

- Preview – Fixed an issue where search filters were partially cut off
in the UI.

Nate Butler created

e2479a7 Fix cropped search filters

Nate Butler created

42976b6 Add LSP logs clear button (#2913)

Click to expand commit body
LSP logs tend to accumulate and hinder performance (e.g. search is
slower over 20 MB of json files).
Add a way to clear them.

Release Notes:

- N/A

Kirill Bulatov created

56db21d Split ContextMenu actions

Click to expand commit body
This should have no user-visible impact.

For vim `.` to repeat it's important that actions are replayable.
Currently editor::MoveDown *sometimes* moves the cursor down, and
*sometimes* selects the next completion.

For replay we need to be able to separate the two.

Conrad Irwin created

55dd0b1 Use consistent naming

Conrad Irwin created

3a7b551 Fix tests with no neovim

Conrad Irwin created

8dbc0fe update pragma settings for improved database performance

KCaverly created

da16167 Fix find_{,preceding}boundary to work on buffer text (#2912)

Click to expand commit body
Fixes movement::find_boundary to work on the buffer, not on display
points.

The user-visible impact is that the "until end of word" commands now
correctly go to the end of a soft-wrapped word (instead of to the first
character of the wrapped line).

It also fixes a bug where the callback passed to these methods was
called with the content of inlay hints.

[[PR Description]]

Release Notes:

- fix finding end of word on soft-wrapped lines

Conrad Irwin created

af12977 vim: Add `S` to substitute line

Click to expand commit body
For zed-industries/community#1897

Conrad Irwin created

aa7b65b Merge branch 'main' into vim-softwrap-word

Conrad Irwin created

0e41c6c Fix accidental visual selection on scroll (#2927)

Click to expand commit body
Release Notes:

- vim: Fix bug where scrolling vertically would sometimes enter visual
mode

Conrad Irwin created

6d79496 Fix accidental visual selection on scroll

Click to expand commit body
As part of this fix partial page distance calculations to more closely
match vim.

Conrad Irwin created

54235f4 updated embeddings background delay to 5 minutes

Click to expand commit body
Co-authored-by: Max <max@zed.dev>

KCaverly and Max created

e86964e optimize insert file in vector database

Click to expand commit body
Co-authored-by: Max <max@zed.dev>

KCaverly and Max created

524533c flush embeddings queue when no files are parsed for 250 milliseconds

Click to expand commit body
Co-authored-by: Antonio <antonio@zed.dev>

KCaverly and Antonio created

c4db914 move embeddings queue to use single hashmap for all changed paths

Click to expand commit body
Co-authored-by: Antonio <me@as-cii.com>

KCaverly and Antonio created

2bf417f Avoid duplicate entries in inline assistant's prompt history (#2926)

Click to expand commit body
Release Notes:

- Improved the inline assistant's prompt history to avoid including the
same entry multiple times. (preview-only)

Antonio Scandurra created

d868ec9 Avoid duplicate entries in inline assistant's prompt history

Antonio Scandurra created

7bcc59c Remove the concept of a local clock; use lamport clocks for all per-replica versioning (#2924)

Click to expand commit body
### Background

Currently, our CRDT uses three different types of timestamps:

| clock type | representation | purpose |
|-----|----------------|----------|
| `Local` | replica id + u32 | uniquely identifies operations |
| `Lamport` | replica id + u32 | provides a consistent total ordering
for all operations |
| `Global` | N local clocks | fully defines the partial ordering between
all concurrent operations |

All text operations include *each* type of timestamp. And every
`Fragment` in a buffer's fragment tree contains both a local and a
lamport timestamp.

### Change

An operation can be uniquely identified by its lamport timestamp, so we
don't really need a concept of a local timestamp. In this PR, I've
removed the concept of a local timestamp. Version vectors
(`clock::Global`) now store vectors of *lamport* timestamps.

Eliminating local timestamps reduces the memory footprint of a buffer by
four bytes per fragment, reduces the size of our `UpdateBuffer` RPC
messages, and reduces the amount of data we need to store in our
database for channel buffers. It also makes our CRDT a bit easier to
understand, IMO, because there is now only one scalar value that we
increment per replica.

It's possible I'm missing something here though. @as-cii, @nathansobo
it'd be good to get your 👀

Max Brunsfeld created

1e60454 Renumber protobuf fields, bump protocol version

Max Brunsfeld created

03f0365 Remove local timestamps from CRDT operations

Click to expand commit body
Use lamport timestamps for everything.

Max Brunsfeld created

afa59ab WIP: work towards wiring up a embeddings_for_digest hashmap that is stored for all indexed files

KCaverly created

00aae5a Assistant: propagate cancel action if there is no pending inline assist (#2923)

Click to expand commit body
Release Notes:

- Fixed a bug where modals could not be dismissed with `escape` when
certain views were active in the workspace (preview only).

Max Brunsfeld created

eecd4e3 Propagate Cancel action if there is no pending inline assist

Max Brunsfeld created

50cfb06 fill embeddings with database values and skip during embeddings queue

KCaverly created

220533f WIP

Antonio Scandurra created

2503d54 Rename `Sha1` to `DocumentDigest`

Click to expand commit body
Co-Authored-By: Kyle Caverly <kyle@zed.dev>

Antonio Scandurra and Kyle Caverly created

3001a46 Reify `Embedding`/`Sha1` structs that can be (de)serialized from SQL

Click to expand commit body
Co-Authored-By: Kyle Caverly <kyle@zed.dev>

Antonio Scandurra and Kyle Caverly created

fe2300f Style the clear button better, add border to button constructor options

Kirill Bulatov created

7b5974e Add LSP logs clear button

Kirill Bulatov created

c763e72 Write to and read from the database in a transactional way

Click to expand commit body
Co-Authored-By: Kyle Caverly <kyle@zed.dev>

Antonio Scandurra and Kyle Caverly created

35440be Abstract away how database transactions are executed

Click to expand commit body
Co-Authored-By: Kyle Caverly <kyle@zed.dev>

Antonio Scandurra and Kyle Caverly created

ddc6214 Tailwind autocomplete (#2920)

Click to expand commit body
Release Notes:
- Added basic Tailwind CSS autocomplete support
([#746](https://github.com/zed-industries/community/issues/746)).

Kirill Bulatov created