zed/crates
Chiel Robben 4a3b763518
Add progress bar to "Downloading Zed Update..." button (#60294)
# Objective

On a few occasions I have been wondering if the Zed update download had
stalled, when in fact it's just taking a while. This PR adds a progress
bar to the "Downloading Zed Update..." button to give users feedback
that the download is indeed progressing.

## Solution

Add a custom progress bar inside the button. I tried reusing the
existing ProgressBar component but that has a fixed height of 8px which
caused the button to become taller.

## Testing

- Tested manually using the command palette `collab: simulate update
available` and stepping through the different UI states.
- Added unit test

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

## Showcase

<img width="1350" height="748" alt="Image 02-07-2026 at 17 23"
src="https://github.com/user-attachments/assets/ed23c97a-01b8-446b-9693-0c53a69b419d"
/>

Release Notes:

- Added a download progress indicator to the update button.

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-07-03 08:23:06 +00:00
..
acp_thread Refactor agent settings UI code (#60274) 2026-07-02 14:32:34 +00:00
acp_tools acp: Update agent client protocol crate to 0.15.0 (#59593) 2026-06-22 09:04:29 +00:00
action_log Refactor BufferDiff to allow multiple diffs to share the same base text buffer (#58266) 2026-06-09 20:13:13 +00:00
activity_indicator Fix activity indicator menu opening when actions are running (#56865) 2026-05-15 12:01:31 +00:00
agent agent: Sandboxing polish (#60173) 2026-07-01 14:55:30 +00:00
agent_servers acp: Add experimental elicitation UI support (#58927) 2026-07-01 13:10:14 +00:00
agent_settings agent: Sandboxing polish (#60173) 2026-07-01 14:55:30 +00:00
agent_skills settings_ui: Move skills management into settings UI (#58701) 2026-06-08 14:57:47 +00:00
agent_ui agent: Make terminal threads searchable (#60292) 2026-07-02 18:38:37 +00:00
ai_onboarding cloud_api_types: Add ZedVip variant to Plan (#59443) 2026-06-18 20:51:36 +00:00
anthropic Support provider-side compaction in the language model clients (#59145) 2026-06-16 13:06:20 +00:00
askpass Fix SSH askpass on Windows by invoking cli.exe directly (#52491) 2026-06-08 09:37:00 +00:00
assets
audio Remove experimental microphone gain normalization option (#58677) 2026-06-05 16:49:42 +00:00
auto_update Add progress bar to "Downloading Zed Update..." button (#60294) 2026-07-03 08:23:06 +00:00
auto_update_helper Fix Windows icon resource for bin zed.exe (#54738) 2026-05-01 22:33:54 +00:00
auto_update_ui Typed workspace errors (#57649) 2026-06-07 16:55:18 +00:00
aws_http_client
bedrock language_models: Support custom HTTP headers for provider requests (#55246) 2026-06-02 13:29:23 +00:00
benchmarks perf: Add initial benchmark for markdown element (#59524) 2026-06-18 02:47:10 +00:00
breadcrumbs gpui: Allow chaining flex_grow() and flex_shrink() with custom factors (#58142) 2026-06-01 04:40:13 +00:00
buffer_diff Refactor BufferDiff to allow multiple diffs to share the same base text buffer (#58266) 2026-06-09 20:13:13 +00:00
call collab: Revert livekit changes (#59733) 2026-06-23 09:13:28 +00:00
channel client: Add username to User and start using it (#60107) 2026-06-29 20:21:46 +00:00
cli cli: Always open new window when cli_default_open_behavior=new_window (#59415) 2026-06-30 20:10:06 +00:00
client client: Add username to User and start using it (#60107) 2026-06-29 20:21:46 +00:00
clock
cloud_api_client cloud_api_client: Key the cached LlmApiToken by organization (#58915) 2026-06-09 19:12:34 +00:00
cloud_api_types cloud_api_types: Remove unused AcceptTermsOfServiceResponse type (#60226) 2026-07-02 12:38:43 +00:00
cloud_llm_client language_models: Surface disabled cloud models (#59781) 2026-06-26 11:07:29 +00:00
codestral ep: Improve trigger granularity (#58561) 2026-06-04 22:52:29 +00:00
collab Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
collab_ui client: Add username to User and start using it (#60107) 2026-06-29 20:21:46 +00:00
collections Use no-op hasher for TypeId hashing (#58629) 2026-06-05 10:32:57 +00:00
command_palette command_palette: Show scrollbar in command palette (#60239) 2026-07-02 13:23:17 +00:00
command_palette_hooks Use no-op hasher for TypeId hashing (#58629) 2026-06-05 10:32:57 +00:00
component component_preview: Clean up Component trait (#57731) 2026-05-29 07:06:57 +00:00
component_preview component_preview: Fix example rendering no text or icons (#59241) 2026-06-15 03:26:51 +00:00
context_server Implement MCP OAuth client preregistration (#52900) 2026-05-19 17:45:07 +00:00
copilot ep: Improve trigger granularity (#58561) 2026-06-04 22:52:29 +00:00
copilot_chat copilot: Fix auth db fallback (#57764) 2026-05-28 15:00:31 +00:00
copilot_ui settings_ui: Remove feature flag for AI settings and adjust design (#59860) 2026-07-01 04:25:40 +00:00
crashes Move the crash handler process spawn to a background thread (#58881) 2026-06-17 18:29:21 +00:00
credentials_provider
csv_preview csv_preview: Implement data_table columns pining (#56619) 2026-05-15 11:12:41 +00:00
dap util: Use job objects to reap spawned process trees on Windows (#58885) 2026-06-15 10:55:39 +00:00
dap_adapters Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
db Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
debug_adapter_extension
debugger_tools Fix macOS find query seeding (#56681) 2026-05-13 23:35:10 +00:00
debugger_ui picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
deepseek language_models: Support custom HTTP headers for provider requests (#55246) 2026-06-02 13:29:23 +00:00
dev_container picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
diagnostics Hide code lens' blocks in folds (#60011) 2026-06-27 21:19:49 +00:00
docs_preprocessor agent: More sandboxing changes (#60111) 2026-06-30 11:10:04 +00:00
edit_prediction ep: Fix cursor marker leak due to edit splitting in V4 API (#60110) 2026-06-29 19:00:22 +00:00
edit_prediction_cli zeta_prompt: Add V4 edit prediction API types (#59869) 2026-06-25 14:07:41 +00:00
edit_prediction_context ep: Hashed region format (#59837) 2026-06-24 23:28:47 +00:00
edit_prediction_metrics zeta_prompt: Add V4 edit prediction API types (#59869) 2026-06-25 14:07:41 +00:00
edit_prediction_types ep: Improve trigger granularity (#58561) 2026-06-04 22:52:29 +00:00
edit_prediction_ui agent_ui: Refine UI design displaying sandbox information (#59980) 2026-06-29 10:12:28 +00:00
editor editor: Update gutter hover tooltip on modifier changes (#58880) 2026-07-02 14:38:04 +00:00
editor_benchmarks text: Preserve structural sharing when rebuilding the fragment tree (#58681) 2026-06-05 19:24:28 +00:00
encoding_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
env_var
etw_tracing
eval_cli Fix agent terminal in headless eval sandbox (#59969) 2026-06-29 15:58:53 +00:00
eval_utils
explorer_command_injector
extension extension_host: Sync language extensions to remotes (#56487) 2026-06-24 21:32:43 +00:00
extension_api extension_api: Remove x86 support (#58259) 2026-06-04 11:01:48 +00:00
extension_cli extension: Perform compilation tasks in parallel (#55160) 2026-06-07 16:39:58 +00:00
extension_host extension_host: Sync language extensions to remotes (#56487) 2026-06-24 21:32:43 +00:00
extensions_ui picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
feature_flags settings_ui: Remove feature flag for AI settings and adjust design (#59860) 2026-07-01 04:25:40 +00:00
feature_flags_macros Feature flag overrides (#54206) 2026-04-18 06:34:19 +00:00
feedback Cleanup crashes crate (#54927) 2026-05-04 06:30:47 +00:00
file_finder Improve overall compilation stats after the telescope picker feature (#60114) 2026-06-30 09:26:20 +00:00
file_icons
fs project_panel: Continue batch delete when individual entries fail (#59595) 2026-07-02 16:04:53 +00:00
fs_benchmarks
fuzzy multi_buffer: Don't eagerly clone BufferSnapshot in range_to_buffer_ranges (#59190) 2026-06-12 12:27:28 +00:00
fuzzy_nucleo multi_buffer: Don't eagerly clone BufferSnapshot in range_to_buffer_ranges (#59190) 2026-06-12 12:27:28 +00:00
git Support checking out remote HEAD refs (#57648) 2026-07-01 14:51:10 +00:00
git_hosting_providers git_ui: Always display "Create Pull Request" button on push toast (#53913) 2026-06-15 08:48:19 +00:00
git_ui agent: Add commit message project rules toggle (#56867) 2026-06-30 10:21:40 +00:00
go_to_line editor: Refresh active debug line highlight on theme change (#59274) 2026-06-16 17:42:36 +00:00
google_ai Support provider-side compaction in the language model clients (#59145) 2026-06-16 13:06:20 +00:00
gpui Revert "Fix hanging updates after system sleep (#60301)" (#60321) 2026-07-02 23:54:11 +00:00
gpui_linux gpui_linux: Consume Wayland startup activation token (#59995) 2026-06-29 15:16:26 +00:00
gpui_macos gpui: Add system wake callback (#59831) 2026-06-24 19:59:34 +00:00
gpui_macros editor: Speed up multi cursor editing (#58510) 2026-06-17 07:57:05 +00:00
gpui_platform
gpui_shared_string gpui_shared_string: Implement SharedString via smol_str (#54649) 2026-04-24 08:58:26 +00:00
gpui_tokio Remove gpui's dependency on async-process (#59358) 2026-06-16 13:47:55 +00:00
gpui_util Remove gpui's dependency on async-process (#59358) 2026-06-16 13:47:55 +00:00
gpui_web gpui: Add system wake callback (#59831) 2026-06-24 19:59:34 +00:00
gpui_wgpu gpui: Free atlas tile space when removing tiles (#58874) 2026-06-08 23:09:47 +00:00
gpui_windows gpui: Add system wake callback (#59831) 2026-06-24 19:59:34 +00:00
grammars grammars: Fix runnable gutter detection for describe.skipIf / test.skipIf in JS/TS/TSX (#60153) 2026-07-01 17:36:57 +00:00
html_to_markdown
http_client Remove gpui's dependency on async-process (#59358) 2026-06-16 13:47:55 +00:00
http_client_tls
http_proxy sandbox: Linux domain filtering and some more cleanup (#59790) 2026-06-24 01:42:52 +00:00
icons agent_ui: Replace thread controls with slash commands (#59974) 2026-07-01 16:55:07 +00:00
image_viewer image_viewer: Reveal images in file manager from keyboard shortcut (#56438) 2026-06-08 21:24:44 +00:00
input_latency_ui telemetry: Add latency metrics (#54454) 2026-04-22 22:22:10 +00:00
inspector_ui multi_buffer: Don't eagerly clone BufferSnapshot in range_to_buffer_ranges (#59190) 2026-06-12 12:27:28 +00:00
install_cli install_cli: Show notification instead of failing CLI install (#59575) 2026-06-22 18:20:57 +00:00
journal Merge gpui::Task and scheduler::Task (#53674) 2026-05-05 22:41:13 +00:00
json_schema_store Update bundled JSON schemas (2026-04-29) (#58948) 2026-06-25 17:30:12 +00:00
keymap_editor keymap_editor: Fix deleting and editing bindings that use deprecated action names (#60300) 2026-07-02 19:24:34 +00:00
language Fix excluded language servers starting nonetheless (#60000) 2026-07-03 08:22:48 +00:00
language_core language: Support emitting multiple runnables from a single tree-sitter match (#57276) 2026-06-02 13:59:39 +00:00
language_extension
language_model Refactor agent settings UI code (#60274) 2026-07-02 14:32:34 +00:00
language_model_core ai: Add Max reasoning effort (#59806) 2026-06-25 14:47:28 +00:00
language_models Refactor agent settings UI code (#60274) 2026-07-02 14:32:34 +00:00
language_models_cloud language_models: Surface disabled cloud models (#59781) 2026-06-26 11:07:29 +00:00
language_onboarding
language_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
language_tools lsp_button: Fix missing server metadata after restart (#55162) 2026-07-02 11:00:16 +00:00
languages grammars: Fix runnable gutter detection for describe.skipIf / test.skipIf in JS/TS/TSX (#60153) 2026-07-01 17:36:57 +00:00
line_ending_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
livekit_api
livekit_client collab: Revert livekit changes (#59733) 2026-06-23 09:13:28 +00:00
llama_cpp Add llama.cpp as a language model provider (#59964) 2026-06-29 13:24:33 +00:00
lmstudio language_models: Support custom HTTP headers for provider requests (#55246) 2026-06-02 13:29:23 +00:00
lsp Handle dynamic registration of semantic tokens capability (#60015) 2026-06-28 13:48:10 +00:00
markdown markdown: Make linked images clickable (#59525) 2026-07-02 08:00:19 +00:00
markdown_preview Improve context menu experience in the markdown preview (#59993) 2026-06-27 10:09:13 +00:00
media
menu
mermaid_render gpui: Bump resvg/usvg and regression test for panic (#59704) 2026-06-22 15:42:12 +00:00
migrator Handle hiding cursor on keyboard input at GPUI level (#55664) 2026-05-04 22:51:56 +00:00
miniprofiler_ui Log worst hanging tasks and actions (#57835) 2026-06-02 12:03:05 +00:00
mistral language_models: Support custom HTTP headers for provider requests (#55246) 2026-06-02 13:29:23 +00:00
multi_buffer Anchor sticky scroll to symbol name rows (#56333) 2026-06-15 11:03:26 +00:00
net
node_runtime node_runtime: Tolerate non-string values in npm time metadata (#57765) 2026-05-27 04:39:26 +00:00
notifications component_preview: Clean up Component trait (#57731) 2026-05-29 07:06:57 +00:00
oauth_callback_server Add ChatGPT subscription provider via OAuth 2.0 PKCE (#53166) 2026-05-14 21:03:56 +00:00
ollama ollama: Don't abort entire model fetch if one model's details fail to load (#59606) 2026-06-23 09:21:31 +00:00
onboarding picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
open_ai ai: Add Max reasoning effort (#59806) 2026-06-25 14:47:28 +00:00
open_path_prompt picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
open_router open_router: Add prompt caching for Anthropic models (#57498) 2026-06-23 23:01:58 +00:00
opencode ai: Add Max reasoning effort (#59806) 2026-06-25 14:47:28 +00:00
outline picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
outline_panel Anchor sticky scroll to symbol name rows (#56333) 2026-06-15 11:03:26 +00:00
panel git_panel: Add commit history view (#56500) 2026-05-12 15:52:52 +00:00
paths Migrate Rules to global Skills and AGENTS.md (#56672) 2026-05-14 16:30:08 +00:00
picker Restore last picker (#59912) 2026-06-30 10:09:26 +00:00
picker_preview Improve overall compilation stats after the telescope picker feature (#60114) 2026-06-30 09:26:20 +00:00
platform_title_bar Allow opening a new window by default (#58805) 2026-06-10 12:02:29 +00:00
prettier Allow Prettier to read the .editorconfig files of the project when formatting from within Zed (#59149) 2026-06-13 05:21:05 +00:00
project Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
project_benchmarks Merge gpui::Task and scheduler::Task (#53674) 2026-05-05 22:41:13 +00:00
project_panel project_panel: Continue batch delete when individual entries fail (#59595) 2026-07-02 16:04:53 +00:00
project_symbols picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
prompt_store agent: Warn about long skill descriptions (#58356) 2026-06-05 19:46:05 +00:00
proto Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
recent_projects Fix recent projects footer overflowing (#59891) 2026-06-25 10:56:11 +00:00
refineable
release_channel Add a function to produce docs scoped to release channel (#56917) 2026-05-15 21:17:43 +00:00
remote Restore remote binary dev build output (#59997) 2026-06-27 09:21:37 +00:00
remote_connection agent: Fix find_or_create repository to support remote (#54074) 2026-04-16 16:36:09 -07:00
remote_server Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
repl picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
reqwest_client reqwest_client: Fix streamed request bodies being truncated (#60314) 2026-07-03 01:00:54 +00:00
rope Bump ctor (#57728) 2026-05-27 10:31:53 +00:00
rpc Use no-op hasher for TypeId hashing (#58629) 2026-06-05 10:32:57 +00:00
sandbox sandbox: Fix WSL downloaded binary path (#60210) 2026-07-01 22:52:24 +00:00
scheduler Fix TestScheduler::spawn_dedicated leaking due to cycle (#58802) 2026-06-08 15:44:17 +00:00
schema_generator
search text_finder: Add collapsible file groups (#60193) 2026-07-02 13:49:41 +00:00
session
settings keymap_editor: Fix deleting and editing bindings that use deprecated action names (#60300) 2026-07-02 19:24:34 +00:00
settings_content Fix excluded language servers starting nonetheless (#60000) 2026-07-03 08:22:48 +00:00
settings_json
settings_macros
settings_profile_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
settings_ui Refactor agent settings UI code (#60274) 2026-07-02 14:32:34 +00:00
shell_command_parser Extract nested command substitutions from arithmetic expansions (#54690) 2026-05-05 16:25:56 +00:00
sidebar icons: Add some periodic clean up (#59757) 2026-06-23 14:40:13 +00:00
snippet
snippet_provider Rust 1.95 (#55104) 2026-04-29 10:27:47 +00:00
snippets_ui picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
sqlez Remove smol as a dependency from a bunch of crates (#53603) 2026-04-24 10:29:51 +00:00
sqlez_macros
streaming_diff Speed up StreamingDiff::push_new part two (#57849) 2026-05-27 19:33:04 +00:00
sum_tree Bump ctor (#57728) 2026-05-27 10:31:53 +00:00
svg_preview
syntax_theme
system_specs Cleanup crashes crate (#54927) 2026-05-04 06:30:47 +00:00
tab_switcher picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
task Fix miscellaneous typos (#58979) 2026-06-09 22:46:22 +00:00
tasks_ui picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
telemetry
telemetry_events
terminal Fix agent terminal in headless eval sandbox (#59969) 2026-06-29 15:58:53 +00:00
terminal_view terminal_view: Use backslash escaping for dropped file paths for mac (#57747) 2026-07-01 16:00:54 +00:00
text Refactor BufferDiff to allow multiple diffs to share the same base text buffer (#58266) 2026-06-09 20:13:13 +00:00
theme editor: Add intelligent bracket colorization (#51580) 2026-07-01 17:36:23 +00:00
theme_extension
theme_importer
theme_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
theme_settings markdown_preview: Use UI font for base font size (#60212) 2026-07-02 05:04:24 +00:00
time_format time_format: Show compound "N years, M months ago" for blame entries (#57973) 2026-05-28 19:43:30 +00:00
title_bar Add progress bar to "Downloading Zed Update..." button (#60294) 2026-07-03 08:23:06 +00:00
toolchain_selector picker: Simplify presentation and sizing APIs, add preview-aware defaults (#59719) 2026-06-23 09:33:47 +00:00
ui Add progress bar to "Downloading Zed Update..." button (#60294) 2026-07-03 08:23:06 +00:00
ui_input settings_ui: Remove feature flag for AI settings and adjust design (#59860) 2026-07-01 04:25:40 +00:00
ui_macros component_preview: Clean up Component trait (#57731) 2026-05-29 07:06:57 +00:00
ui_prompt Fix error prompt darkened background exceeding window boundaries on Linux (#57608) 2026-06-08 14:59:39 +00:00
util Fix agent terminal in headless eval sandbox (#59969) 2026-06-29 15:58:53 +00:00
util_macros
vim vim: Fix Helix cursor position when deleting to end of line (#59987) 2026-07-02 15:38:22 +00:00
vim_mode_setting
watch Bump ctor (#57728) 2026-05-27 10:31:53 +00:00
web_search
web_search_providers cloud_api_client: Always pass up an organization ID when creating an LLM token (#58872) 2026-06-09 12:06:49 +00:00
which_key
windows_resources Fix Windows icon resource for bin zed.exe (#54738) 2026-05-01 22:33:54 +00:00
workspace Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
worktree Fix worktree grouping for bare checkouts (#59968) 2026-07-02 18:14:11 +00:00
worktree_benchmarks
x_ai x_ai: Add support for specifying reasoning effort (#58078) 2026-05-29 16:28:27 +00:00
zed Add zed: get merch command palette action (#60330) 2026-07-03 05:59:13 +00:00
zed_actions Add zed: get merch command palette action (#60330) 2026-07-03 05:59:13 +00:00
zed_credentials_provider
zed_env_vars
zeta_prompt zeta_prompt: Add V4 edit prediction API types (#59869) 2026-06-25 14:07:41 +00:00
zlog Suppress pet log spam when opening Python projects (#60204) 2026-07-01 15:18:54 +00:00
zlog_settings
ztracing Relicense Zed source code under GPL (#57948) 2026-05-28 20:19:17 +00:00
ztracing_macro Relicense Zed source code under GPL (#57948) 2026-05-28 20:19:17 +00:00