Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
09165c1
gpui: Support prompt_for_paths in TestPlatform (#58139)
nathansobo May 30, 2026
fd93a53
Limit editor rendering to visible clipped rows (#58132)
Veykril May 31, 2026
876ec5a
Improve performance of `create_highlight_endpoints` (#58119)
Veykril May 31, 2026
6f335c2
Do not play join sound in large meetings (#54337)
yara-blue May 31, 2026
f4f5270
Fix json! empty-string highlighting in Rust (#55126)
saberoueslati May 31, 2026
dedb2af
keymap_editor: Fix create keybinding button clipping out of editor (#…
felixschwamm May 31, 2026
0b43719
Remove stale SSH LSP log entries after server restarts (#55299)
chenmijiang May 31, 2026
dfda073
vim: Support matching bracket motion in multibuffers (#54634)
davidalecrim1 May 31, 2026
315d474
Honor anchored patterns in .git/info/exclude (#57779)
hferreiro May 31, 2026
8734d01
git_ui: Update section header checkboxes immediately on stage/unstage…
cppcoffee May 31, 2026
7f826e8
Fix grammatical errors throughout the documentation (#58183)
miguelraz May 31, 2026
5b948e5
git: Suppress blame errors outside Git repositories (#56348)
terror May 31, 2026
c31ff67
git_ui: Fix commit view avatar being squished when gutter line number…
hugh2slowmo Jun 1, 2026
83c52e3
git: Implement compare with branch action (#57886)
AlvaroParker Jun 1, 2026
6d605b3
git_ui: Add setting for custom commit message instructions (#58188)
rbstp Jun 1, 2026
950fd46
git: Prefer main over master when detecting default branch (#57398)
hferreiro Jun 1, 2026
eb424af
file_finder: Allow opening files without dismissing the finder (#57258)
init05 Jun 1, 2026
8982fb1
gpui: Allow chaining `flex_grow()` and `flex_shrink()` with custom fa…
bowenxuuu Jun 1, 2026
0711d9e
git_ui: Fix stale loading message in git history pane (#58133)
Veykril Jun 1, 2026
747c41f
Shorten explanation when edit predictions are disabled for a language…
injust Jun 1, 2026
9cc78ac
lsp: Register available LSP adapters locally when in remote developme…
lingyaochu Jun 1, 2026
3fde4e2
project: Treat replacement literally when dealing non-ASCII text sear…
lingyaochu Jun 1, 2026
0c82368
diagnostics: Show source and code on related diagnostics (#56147)
lingyaochu Jun 1, 2026
ee591c0
python: Sync built-in highlights with Python 3.15 (#57562)
lingyaochu Jun 1, 2026
7cb01e4
python: Stop falling back to `conda activate base` for nameless toolc…
rgbkrk Jun 1, 2026
507d043
gpui: Fix stuck tooltips after mouse leaves origin (#58134)
errmayank Jun 1, 2026
fcf45c6
project: Scope terminal toolchain lookup to the terminal's worktree (…
rgbkrk Jun 1, 2026
29dc988
editor: Fix missing background highlights in multibuffer find-all-ref…
lingyaochu Jun 1, 2026
954ee58
worktree: Fix linked worktree git dir event handling (#57782)
Veykril Jun 1, 2026
735980b
markdown: Fix text selection position in centered/right-aligned markd…
RemcoSmitsDev Jun 1, 2026
0bd41d6
editor: Add toggle breadcrumb action (#57970)
AlvaroParker Jun 1, 2026
5f038c2
git_graph: Exclude non-standard refs (#54291)
timvermeulen Jun 1, 2026
6a7b2bc
workspace: Treat remote roots as directories (#54733)
jknlsn Jun 1, 2026
137eeea
gpui: Allow repositioning macOS traffic lights at runtime (#58169)
errmayank Jun 1, 2026
46ac575
agent_ui: Add some more improvements to the draft UX (#57692)
danilo-leal Jun 1, 2026
195dca4
Notify on slack when new label is created (#58224)
zelenenka Jun 1, 2026
95d9cf1
agent_ui: Remove the staff-only gate on fast mode toggle (#57914)
tomhoule Jun 1, 2026
2c29f1a
Merge branch 'main' into dima
Dima-Butemann Jun 1, 2026
8ec7858
Fix compile issues
Dima-Butemann Jun 1, 2026
b5d9203
Remove note about missing git::DiffWithCommit
Dima-Butemann Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/workflows/slack_notify_label_created.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: New label created, notify slack

on:
label:
types: [created]

jobs:
notify-slack:
if: >-
github.repository_owner == 'zed-industries'
&& (startsWith(github.event.label.name, 'area:')
|| startsWith(github.event.label.name, 'platform:'))
runs-on: namespace-profile-2x4-ubuntu-2404

steps:
- name: Build Slack message payload
env:
LABEL_NAME: ${{ github.event.label.name }}
LABEL_COLOR: ${{ github.event.label.color }}
LABEL_DESCRIPTION: ${{ github.event.label.description }}
CREATED_BY: ${{ github.event.sender.login }}
REPO_URL: ${{ github.event.repository.html_url }}
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
run: |
LABELS_PAGE_URL="${REPO_URL}/labels"
MAPPING_FILE_URL="${REPO_URL}/blob/${DEFAULT_BRANCH}/script/community-pr-track-mapping.json"

jq -n \
--arg label_name "$LABEL_NAME" \
--arg label_color "#$LABEL_COLOR" \
--arg label_description "${LABEL_DESCRIPTION:-(none)}" \
--arg created_by "$CREATED_BY" \
--arg labels_url "$LABELS_PAGE_URL" \
--arg mapping_file_url "$MAPPING_FILE_URL" \
'{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "New label created: *\($label_name)*\nPlease choose a Track for it <\($mapping_file_url)|community-pr-track-mapping.json>."
}
},
{
"type": "section",
"fields": [
{ "type": "mrkdwn", "text": "*Created by:*\n\($created_by)" },
{ "type": "mrkdwn", "text": "*Color:*\n\($label_color)" },
{ "type": "mrkdwn", "text": "*Description:*\n\($label_description)" },
{ "type": "mrkdwn", "text": "*Labels page:*\n<\($labels_url)|View all labels>" }
]
}
]
}' > payload.json

echo "Payload built successfully:"
cat payload.json

- name: Send Slack notification
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_LABEL_CREATED }}
run: |
if [ -z "$SLACK_WEBHOOK_URL" ]; then
echo "::error::SLACK_WEBHOOK_LABEL_CREATED secret is not set"
exit 1
fi

HTTP_RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "$SLACK_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d @payload.json)

HTTP_BODY=$(echo "$HTTP_RESPONSE" | sed '$d')
HTTP_STATUS=$(echo "$HTTP_RESPONSE" | tail -n 1)

echo "Slack API response status: $HTTP_STATUS"
echo "Slack API response body: $HTTP_BODY"

if [ "$HTTP_STATUS" -ne 200 ]; then
echo "::error::Slack notification failed with status $HTTP_STATUS: $HTTP_BODY"
exit 1
fi

echo "Slack notification sent successfully"
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,6 @@ You modify the emojis in your `settings.json` like this in the root setting obje
## Git

- add `blame > git_blame_font_family` setting to specify the font family for the git blame view because I am using a proportional font and the blame view misaligns otherwise
- add `git::DiffWithCommit` from https://github.com/zed-industries/zed/pull/44467 and based on that code, `git::DiffWithBranch` is implemented
- add `({file count})` in the git panel to every directory, inspired by https://github.com/zed-industries/zed/pull/45846 (Improve Git Panel with TreeView, VSCode-style grouping, commit history, and auto-fetch)
- add `split_diff_font_decrease` setting to configure font size decrease for split diff view (default is 30%)
- split diff view uses 30% smaller font size than stacked view
Expand Down
6 changes: 6 additions & 0 deletions assets/keymaps/default-linux.json
Original file line number Diff line number Diff line change
Expand Up @@ -1179,6 +1179,12 @@
"ctrl-shift-i": "file_finder::ToggleFilterMenu",
},
},
{
"context": "FileFinder > Picker > Editor && end_of_input",
"bindings": {
"right": "file_finder::OpenWithoutDismiss",
},
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
"bindings": {
Expand Down
6 changes: 6 additions & 0 deletions assets/keymaps/default-macos.json
Original file line number Diff line number Diff line change
Expand Up @@ -1235,6 +1235,12 @@
"cmd-shift-i": "file_finder::ToggleFilterMenu",
},
},
{
"context": "FileFinder > Picker > Editor && end_of_input",
"bindings": {
"right": "file_finder::OpenWithoutDismiss",
},
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
"use_key_equivalents": true,
Expand Down
6 changes: 6 additions & 0 deletions assets/keymaps/default-windows.json
Original file line number Diff line number Diff line change
Expand Up @@ -1186,6 +1186,12 @@
"ctrl-shift-i": "file_finder::ToggleFilterMenu",
},
},
{
"context": "FileFinder > Picker > Editor && end_of_input",
"bindings": {
"right": "file_finder::OpenWithoutDismiss",
},
},
{
"context": "FileFinder || (FileFinder > Picker > Editor) || (FileFinder > Picker > menu)",
"use_key_equivalents": true,
Expand Down
2 changes: 1 addition & 1 deletion crates/acp_tools/src/acp_tools.rs
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ impl Render for AcpTools {
} else {
div()
.size_full()
.flex_grow()
.flex_grow_1()
.child(
list(
connection.list_state.clone(),
Expand Down
1 change: 1 addition & 0 deletions crates/agent/src/tool_permissions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,7 @@ mod tests {
inline_assistant_model: None,
inline_assistant_use_streaming_tools: false,
commit_message_model: None,
commit_message_instructions: None,
thread_summary_model: None,
inline_alternatives: vec![],
favorite_models: vec![],
Expand Down
2 changes: 2 additions & 0 deletions crates/agent_settings/src/agent_settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ pub struct AgentSettings {
pub inline_assistant_model: Option<LanguageModelSelection>,
pub inline_assistant_use_streaming_tools: bool,
pub commit_message_model: Option<LanguageModelSelection>,
pub commit_message_instructions: Option<String>,
pub thread_summary_model: Option<LanguageModelSelection>,
pub inline_alternatives: Vec<LanguageModelSelection>,
pub favorite_models: Vec<LanguageModelSelection>,
Expand Down Expand Up @@ -649,6 +650,7 @@ impl Settings for AgentSettings {
.inline_assistant_use_streaming_tools
.unwrap_or(true),
commit_message_model: agent.commit_message_model,
commit_message_instructions: agent.commit_message_instructions,
thread_summary_model: agent.thread_summary_model,
inline_alternatives: agent.inline_alternatives.unwrap_or_default(),
favorite_models: agent.favorite_models,
Expand Down
2 changes: 1 addition & 1 deletion crates/agent_ui/src/agent_panel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4949,7 +4949,7 @@ impl AgentPanel {
h_flex()
.key_context("TitleEditor")
.group("title_editor")
.flex_grow()
.flex_grow_1()
.w_full()
.min_w_0()
.max_w_full()
Expand Down
2 changes: 1 addition & 1 deletion crates/agent_ui/src/agent_registry_ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ impl Render for AgentRegistryPage {
let scroll_handle = &self.list;
this.child(
uniform_list("registry-entries", count, cx.processor(Self::render_agents))
.flex_grow()
.flex_grow_1()
.pb_4()
.track_scroll(scroll_handle),
)
Expand Down
1 change: 1 addition & 0 deletions crates/agent_ui/src/agent_ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1013,6 +1013,7 @@ mod tests {
inline_assistant_model: None,
inline_assistant_use_streaming_tools: false,
commit_message_model: None,
commit_message_instructions: None,
thread_summary_model: None,
inline_alternatives: vec![],
favorite_models: vec![],
Expand Down
9 changes: 3 additions & 6 deletions crates/agent_ui/src/conversation_view/thread_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2629,7 +2629,7 @@ impl ThreadView {
v_flex()
.when_some(max_content_width, |this, max_w| this.flex_basis(max_w))
.when(max_content_width.is_none(), |this| this.w_full())
.flex_shrink()
.flex_shrink_1()
.flex_grow_0()
.max_w_full()
.bg(self.activity_bar_bg(cx))
Expand Down Expand Up @@ -3731,7 +3731,7 @@ impl ThreadView {
.when_some(max_content_width, |this, max_w| this.flex_basis(max_w))
.when(max_content_width.is_none(), |this| this.w_full())
.when(fills_container, |this| this.h_full())
.flex_shrink()
.flex_shrink_1()
.flex_grow_0()
.justify_between()
.gap_2()
Expand Down Expand Up @@ -4188,9 +4188,6 @@ impl ThreadView {
}

fn fast_mode_available(&self, cx: &Context<Self>) -> bool {
if !cx.is_staff() {
return false;
}
self.as_native_thread(cx)
.and_then(|thread| thread.read(cx).model())
.map(|model| model.supports_fast_mode())
Expand Down Expand Up @@ -5105,7 +5102,7 @@ impl ThreadView {
}),
)
.with_sizing_behavior(gpui::ListSizingBehavior::Auto)
.flex_grow()
.flex_grow_1()
}

fn render_entry(
Expand Down
19 changes: 19 additions & 0 deletions crates/agent_ui/src/draft_prompt_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
//! alongside the storage so the sidebar's preview rendering can't drift from
//! the format we persist.

use agent::ZED_AGENT_ID;
use agent_client_protocol::schema as acp;
use anyhow::Context as _;
use db::kvp::KeyValueStore;
use gpui::{App, AppContext as _, Entity, Task};
use itertools::Itertools;
use project::AgentId;
use ui::SharedString;
use util::ResultExt as _;
use workspace::Workspace;
Expand Down Expand Up @@ -164,6 +166,23 @@ pub fn display_label_for_draft(
truncate_draft_label(&raw)
}

pub fn empty_draft_placeholder_label(
workspace: Option<&Entity<Workspace>>,
agent_id: &AgentId,
cx: &App,
) -> SharedString {
let agent_name = if agent_id.as_ref() == ZED_AGENT_ID.as_ref() {
SharedString::from(ZED_AGENT_ID.to_string())
} else {
workspace
.map(|ws| ws.read(cx).project().read(cx).agent_server_store().clone())
.and_then(|store| store.read(cx).agent_display_name(agent_id))
.unwrap_or_else(|| SharedString::from(agent_id.to_string()))
};

format!("New {} Thread", agent_name).into()
}

#[cfg(test)]
mod tests {
use super::*;
Expand Down
2 changes: 1 addition & 1 deletion crates/agent_ui/src/text_thread_editor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2670,7 +2670,7 @@ impl Render for TextThreadEditor {
.size_full()
.child(
div()
.flex_grow()
.flex_grow(1.)
.bg(cx.theme().colors().editor_background)
.child(self.editor.clone()),
)
Expand Down
2 changes: 1 addition & 1 deletion crates/agent_ui/src/threads_archive_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1580,7 +1580,7 @@ impl PickerDelegate for ProjectPickerDelegate {
.child(
h_flex()
.gap_3()
.flex_grow()
.flex_grow_1()
.child(highlighted_match.render(window, cx)),
)
.tooltip(Tooltip::text(tooltip_path))
Expand Down
2 changes: 1 addition & 1 deletion crates/breadcrumbs/src/breadcrumbs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ impl Render for Breadcrumbs {
fn render(&mut self, window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
let element = h_flex()
.id("breadcrumb-container")
.flex_grow()
.flex_grow_1()
.h_8()
.overflow_x_scroll()
.text_ui(cx);
Expand Down
3 changes: 2 additions & 1 deletion crates/call/src/call_impl/room.rs
Original file line number Diff line number Diff line change
Expand Up @@ -895,7 +895,8 @@ impl Room {
if this.created.elapsed() > Duration::from_millis(100) {
if let proto::ChannelRole::Guest = role {
Audio::play_sound(Sound::GuestJoined, cx);
} else {
// Do not play join sound in large meetings
} else if this.remote_participants().len() < 10 {
Audio::play_sound(Sound::Joined, cx);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ CREATE TABLE "language_servers" (
"id" INTEGER NOT NULL,
"project_id" INTEGER NOT NULL REFERENCES projects (id) ON DELETE CASCADE,
"name" VARCHAR NOT NULL,
"language_name" VARCHAR,
"capabilities" TEXT NOT NULL,
"worktree_id" BIGINT,
PRIMARY KEY (project_id, id)
Expand Down
3 changes: 3 additions & 0 deletions crates/collab/src/db/queries/projects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -586,6 +586,7 @@ impl Database {
project_id: ActiveValue::set(project_id),
id: ActiveValue::set(server.id as i64),
name: ActiveValue::set(server.name.clone()),
language_name: ActiveValue::set(server.language_name.clone()),
worktree_id: ActiveValue::set(server.worktree_id.map(|id| id as i64)),
capabilities: ActiveValue::set(update.capabilities.clone()),
})
Expand All @@ -596,6 +597,7 @@ impl Database {
])
.update_columns([
language_server::Column::Name,
language_server::Column::LanguageName,
language_server::Column::Capabilities,
language_server::Column::WorktreeId,
])
Expand Down Expand Up @@ -986,6 +988,7 @@ impl Database {
id: language_server.id as u64,
name: language_server.name,
worktree_id: language_server.worktree_id.map(|id| id as u64),
language_name: language_server.language_name,
},
capabilities: language_server.capabilities,
})
Expand Down
1 change: 1 addition & 0 deletions crates/collab/src/db/queries/rooms.rs
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,7 @@ impl Database {
id: language_server.id as u64,
name: language_server.name,
worktree_id: language_server.worktree_id.map(|id| id as u64),
language_name: language_server.language_name,
},
capabilities: language_server.capabilities,
})
Expand Down
1 change: 1 addition & 0 deletions crates/collab/src/db/tables/language_server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ pub struct Model {
#[sea_orm(primary_key)]
pub id: i64,
pub name: String,
pub language_name: Option<String>,
pub capabilities: String,
pub worktree_id: Option<i64>,
}
Expand Down
Loading
Loading