Commit Graph
789 Commits
Author SHA1 Message Date
Lena e24cb33363 Fix duplicate bot versioning in false neg:s reporting (#50479)
The case of false negatives (“Missed opportunities”) was not considered
when the bot versioning was added. Now we're also automatically
attributing the false negatives to the bot version that made them.

Release Notes:

- N/A
2026-03-02 11:16:00 +00:00
Finn EversandAnthony Eid d3a489e835 ci: Add check for protobuf formatting (#50418)
This adds more checks for the protobuf files to CI

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-03-01 13:18:09 +01:00
Jakub Konka b3decf6454 ci: Install newer LLVM toolchain on Ubuntu 20.04 runners (#50414)
Release Notes:

- N/A
2026-03-01 00:59:00 +01:00
Conrad Irwin deefbe6762 Add glib-2 to script/linux (#50335)
required after livekit bump

Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-02-27 13:41:22 -07:00
Jakub Konka 3dc87b763a Use updated version of our fork of rust-sdks (#50205)
Use updated version of our fork of `rust-sdks` with two minor tweaks
that I also submitted for upstreaming.

Release Notes:

- N/A
2026-02-27 20:22:03 +01:00
Lena 05611a90c4 Decrease review needs of the duplicate bot (#50289)
Turns out you can't query the duplicate issue for the id of the
original/canonical issue, even though GitHub UI displays “Closed as
duplicate of <original issue id>”. Oh well. For the bot performance
tracking all that matters is whether any of its suggestions were the
actual originals, so we're working around the API limitation by querying
the suggested issues instead.

Release Notes:

- N/A
2026-02-27 12:16:58 +00:00
Lena abaffdedad Fix version reporting for duplicates bot (#50286)
Obviously™, we add the bot-commented issues onto the tracking board at
the time of the issues getting closed, which is very much not the same
time as when the bot commented. We could very well be adding the issue
with a v1 bot comment to the board when v2 is already deployed. This
commit stops messing up those stats.

Release Notes:

- N/A
2026-02-27 11:56:39 +00:00
Lena ed603ba660 Duplicates bot v2: focus on root cause, larger issue body preview (#50209)
Release Notes:

- N/A
2026-02-26 14:09:29 +00:00
morgankrey 86fa8ab2ad Fix and improve docs automation scripts (#50120)
## Summary

Fixes issues discovered while running the docs automation workflow for
the first time, plus improvements based on the v0.225 run where 44
suggestions overwhelmed a single Droid invocation.

### docs-suggest-publish
- Ignore untracked files when checking for clean working directory
- Add `--auto high` flag to droid exec for non-interactive use
- Add error handling to show droid output on failure
- Remove non-existent `documentation` label from PR creation
- Use `--write` flag for prettier to fix formatting
- **Batch suggestions** into groups of 10 (configurable with
`--batch-size`) to prevent Droid from dropping suggestions when context
is too large
- **Pre-PR docs build validation** — runs `generate-action-metadata` +
`mdbook build` before creating the PR to catch invalid `{#action}` and
`{#kb}` references locally instead of waiting for CI (skippable with
`--skip-validation`)
- **Prompt guardrail** — instructs Droid not to invent `{#kb}` or
`{#action}` references, only reusing action names already present in
docs files
- **Stable release detection** — at publish time, checks each queued
PR's merge commit against the latest stable release tag. PRs already in
stable get annotated "ALREADY IN STABLE" so Droid applies content
changes without adding incorrect Preview callouts
- **Feature flag detection** — parses
`crates/feature_flags/src/flags.rs` for all feature flag struct names,
then checks each PR's diff for references. PRs behind feature flags are
skipped entirely since those features aren't generally available yet

### docs-strip-preview-callouts
- Remove non-existent `documentation` label from PR creation
- Add `Release Notes: - N/A` to generated PR body (fixes Danger bot
check)

## Context

These scripts were run for the first time as part of the v0.225 release.
Issues found:
1. The `documentation` label doesn't exist in this repo
2. Droid exec needs `--auto high` for non-interactive execution
3. Prettier needs `--write` to actually fix files (was running in check
mode)
4. Untracked files should not block the workflow
5. Sending all 44 suggestions in one Droid invocation only applied 2 —
batching in groups of 10 fixed this
6. Droid hallucinated action names (`settings::OpenSettings`,
`gpui::Modifiers::secondary_key`) that broke the docs preprocessor build
7. PRs that shipped in stable v0.225 incorrectly got Preview callouts
because the queue doesn't distinguish preview-only from
already-in-stable
8. PRs behind feature flags (subagents, git graph) got documented
despite not being generally available

Release Notes:

- N/A
2026-02-25 19:02:37 -06:00
morgankrey 6de6af4fee docs: Remove Preview callouts for stable release (#50119)
This PR removes Preview callouts from documentation for features that
are now in Stable.

Features documented with Preview callouts are now included in the stable
release.

Generated by script/docs-strip-preview-callouts

Release Notes:

- N/A
2026-02-25 14:16:54 -06:00
Conrad Irwin ac9a8f7ea2 Better cargo wrapper (#49946)
Fixes the wrapper on linux/mac to not double-run cargo. Makes it work at
all on windows

Release Notes:

- N/A
2026-02-24 05:13:04 +00:00
Cameron Mcloughlin 096a097b1e build: Add cargo timing script to devshell (#49941) 2026-02-24 02:46:26 +00:00
Kunall Banerjee 00250b90c6 Respect ZDOTDIR environment variable iff set (#49913)
When `ZDOTDIR` is set, `zsh` reads its configuration from that directory
instead of the user’s `$HOME` directory.

| Setup | `ZDOTDIR` set? | Script writes to | Zsh reads from | Match? |
|---|---|---|---|---|
| XDG + `ZDOTDIR` | ✅ | `$ZDOTDIR/.zshrc` | `$ZDOTDIR/.zshrc` | ✅ |
| XDG without `ZDOTDIR` | ❌ | `$HOME/.zshrc` | `$HOME/.zshrc` | ✅ |
| No XDG at all | ❌ | `$HOME/.zshrc` | `$HOME/.zshrc` | ✅ |


Ref: https://zsh.sourceforge.io/Intro/intro_3.html

Release Notes:

- N/A
2026-02-23 18:04:16 +00:00
Conrad IrwinandMarshall dc73716c2d Add a cargo wrapper to report build times (#49632)
This adds `./script/cargo` which is a transparent wrapper around `cargo`
intended for use by internal staff members at Zed.

It:
- adds `--timings` to `cargo build`/`cargo test`/`cargo run`
- saves the output to ZED_DATA_DIR/build-timings

When Zed starts (and you're logged in as a staff member) the
build-timings
directory is uploaded to our existing telemetry stack.

Co-authored-by: Marshall <git@maxdeviant.com>

Release Notes:

- N/A
2026-02-23 09:46:28 -07:00
Lena c87523f434 Add duplicate bot effectiveness tracking (w/github project) (#49879)
Add a script that classifies open and closed issues that the duplicate
bot commented (or not commented) on and puts them into the appropriate
columns of the dedicated github project board. Add a workflow that calls
that script for every closed issue and also on a schedule (that's for
the open ones).

If you're reading this some time way later and there's no bot running
around the repository leaving comments like “This issue appears to be a
duplicate of...”, you can delete these files.

Release Notes:

- N/A
2026-02-23 13:22:29 +00:00
Lena e4256e3fab Post comments on duplicate bug reports (#49482)
Release Notes:

- N/A
2026-02-18 17:15:15 +00:00
morgankrey 81b5a15f7d Update AI docs for retired hosted models (#49486)
## Summary
- Update hosted model and context-window tables in docs/src/ai/models.md
to remove retired models and list current replacements.
- Add a dated Recent Model Retirements section mapping each retired
model to its replacement.
- Update AI docs examples and references in agent-settings.md,
inline-assistant.md, agent-panel.md, and llm-providers.md to use current
model names.
- Remove stale OpenAI model references in llm-providers.md that no
longer align with currently offered hosted models.

## Validation
- ./script/prettier
- ./script/check-todos

## Suggested .rules additions
- N/A

Release Notes:

- N/A
2026-02-18 10:36:38 -06:00
morgankrey 74f72a3c81 Improve agent pull request hygiene (#49469)
## Summary
- Add pull request title and release notes hygiene guidance to `.rules`
- Update docs automation prompt/workflows to use compliant PR titles
- Ensure automated PR bodies include `Release Notes` when missing

Release Notes:

- N/A
2026-02-18 08:46:47 -06:00
morgankrey c41aeb17f7 Add documentation suggestion automation (#49194)
Adds scripts and a GitHub Action workflow for automatically suggesting
documentation updates when PRs modify user-facing code.

## Scripts

- **`script/docs-suggest`**: Analyze PRs/commits for documentation needs
using AI
- **`script/docs-suggest-publish`**: Create a PR from batched
suggestions
- **`script/docs-strip-preview-callouts`**: Remove Preview callouts when
shipping to stable
- **`script/test-docs-suggest-batch`**: Testing utility for batch
analysis

## Workflow

The GitHub Action (`.github/workflows/docs_suggestions.yml`) handles two
scenarios:

1. **PRs merged to main**: Suggestions are batched to
`docs/suggestions-pending` branch for the next Preview release
2. **Cherry-picks to release branches**: Suggestions are posted as PR
comments for immediate review

## Callout Types

The system distinguishes between:

- **Additive features** (new commands, settings, UI):
  ```markdown
> **Preview:** This feature is available in Zed Preview. It will be
included in the next Stable release.
  ```

- **Behavior modifications** (changed defaults, altered existing
behavior):
  ```markdown
> **Changed in Preview (v0.XXX).** See [release notes](/releases#0.XXX).
  ```

Both callout types are stripped by `docs-strip-preview-callouts` when
features ship to stable.

## Example Output

See PR #49190 for example documentation suggestions generated by running
this on PRs from the v0.224 preview window.

## Usage

```bash
# Analyze a PR (auto-detects batch vs immediate mode)
script/docs-suggest --pr 49100

# Dry run to see assembled context
script/docs-suggest --pr 49100 --dry-run

# Create PR from batched suggestions
script/docs-suggest-publish

# Strip callouts for stable release
script/docs-strip-preview-callouts
```

Release Notes:

- N/A
2026-02-18 06:39:09 -06:00
morgankrey e0b6898ae0 ci: Harden background-agent MVP git authentication loop (#49373)
## Summary
- refresh git auth headers before each per-crash iteration in
`background_agent_mvp`
- add guarded `git fetch`/`git checkout` handling so one candidate auth
failure doesn’t fail the entire run

## Context
- fixes the auth failure seen in workflow run 22106378719 (`fatal: could
not read Username for 'https://github.com'`)
- related Linear issue: BIZOPS-853

## Testing
- ruby -e "require 'yaml';
YAML.load_file('.github/workflows/background_agent_mvp.yml')"

Release Notes:

- N/A
2026-02-17 11:59:47 -06:00
morgankreyandJohn D. Swanson 9c1ef148b1 background-agent: Scaffold week-one crash MVP pipeline (#49299)
## Summary
- add a new crash issue-linking subagent prompt
(`.factory/prompts/crash/link-issues.md`)
- add a scheduled/manual GitHub workflow for week-one background-agent
runs (`.github/workflows/background_agent_mvp.yml`)
- add Sentry candidate selection script to rank top crashes by
solvability × population (`script/select-sentry-crash-candidates`)
- add a local dry-run runner for end-to-end MVP execution without
push/PR actions (`script/run-background-agent-mvp-local`)

## Guardrails in this MVP
- draft PRs only (no auto-merge)
- reviewer routing defaults to: `eholk,morgankrey,osiewicz,bennetbo`
- pipeline order is: investigate -> link-issues -> fix

## Validation
- `python3 -m py_compile script/select-sentry-crash-candidates
script/run-background-agent-mvp-local`
- `python3 script/select-sentry-crash-candidates --help`
- `python3 script/run-background-agent-mvp-local --help`

---------

Co-authored-by: John D. Swanson <swannysec@users.noreply.github.com>
2026-02-16 20:32:51 -06:00
炳andSmit Barmase 628bb8f0ff linux: Name desktop file correctly during bundle (#45508)
Closes #45507

There have been 5+ PRs attempting to fix Linux desktop icon association
by adding `StartupWMClass` back to the `.desktop.in` template (#15763,
#20644, #23459, #33019, #37962), all closed because `StartupWMClass` is
an X11-specific key that GNOME happens to misuse on Wayland, and the
correct fix per the FreeDesktop spec is to name the `.desktop` file to
match the app's Wayland `app_id` / X11 `WM_CLASS`. Refer:
https://github.com/zed-industries/zed/issues/12707#issuecomment-2168742761

The root cause is that `bundle-linux` was never updated to produce the
correct filename in the tarball. The only consumers of the tarball's
desktop file are `install.sh` and manual extractors. So this fix is for
people who download the tarball and extract it without `install.sh`. The
docs already tell them to rename, but as @wcbing points out, not
everyone reads that carefully.

We are now making `bundle-linux` produce the correctly named desktop
file from the start.

Release Notes:

- N/A

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-02-13 20:21:07 +05:30
Eric HolkandBen Brandt 755413502c Add prompts and scripts for automatic crash repro and fix (#49063)
These prompts can be used to automatically diagnose and fix crashes
report in Sentry.

Usage:
1. Find a crash in Sentry. It will have an ID like ZED-123
2. In an agent, do a prompt like `Follow the instructions in
@investigate.md to investigate ZED-123`
3. Once the agent finds a repro, fix it in a new thread by saying
`Follow the instructions in @fix.md`

Release Notes:
- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-02-12 12:42:41 -08:00
Conrad Irwin 8a3badeb90 Remove unnused line from bundle-mac (#48972)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A
2026-02-11 21:33:01 -07:00
Conrad Irwin 914efb1f40 Fix sccache --show-stats not working sometimes on windows (#48974)
Closes #ISSUE

- [ ] Tests or screenshots needed?
- [ ] Code Reviewed
- [ ] Manual QA

Release Notes:

- N/A
2026-02-11 21:40:42 +00:00
Conrad Irwin e8ce551142 Fix sccache on windows (#48943)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-11 09:59:20 -07:00
Conrad Irwin 6eaca71d70 Use sccache in CI (#48895)
Try sccache in CI to paper over cargo's abyssmal caching

Release Notes:

- N/A
2026-02-10 21:36:42 -07:00
Piotr Osiewicz dd077cb31c ci: Trigger tests on Cargo.toml and Cargo.lock changes (#48412)
Finn found out the hard way that the new cool tech does not quite work
at times. Back to the drawing board we go (at least partially).

Closes #ISSUE

Release Notes:

- N/A
2026-02-04 22:33:24 +00:00
Piotr Osiewicz 31f8249b38 ci: Parse Cargo.toml and Cargo.lock with Python script to determine affected packages (#48389)
Closes #ISSUE

Release Notes:

- N/A
2026-02-04 19:31:25 +00:00
ChtiMacFly 3ecbf9b239 Fix capitalization of libX11 in FreeBSD dependencies (#48159)
This work :
> doas pkg install lib**X**11

Release Notes:

- N/A
2026-02-02 23:55:03 +01:00
Conrad Irwin 0a3c0f55bb Fail windows bundle when cargo about fails (#48056)
Release Notes:

- N/A
2026-01-30 19:55:29 -07:00
John TurandLukas Wirth a0d20995c5 Add SSH remote server for Windows (#47460)
Closes https://github.com/zed-industries/zed/issues/33748

Release Notes:

- Windows is now supported as a target platform for SSH remoting.

---------

Co-authored-by: Lukas Wirth <me@lukaswirth.dev>
2026-01-24 13:15:01 -05:00
Winner Edwin c3b4d4c535 Allow specifying ZED_VERSION with fallback to latest in install.sh (#45522)
This PR updates the Linux install script to support installing a
specific version of Zed via the
ZED_VERSION environment variable.

- If ZED_VERSION is set, that version will be downloaded.
- If ZED_VERSION is not set, the script defaults to the latest stable
version, preserving
  existing behavior.
- Works for both Linux and macOS installs.
- Maintains compatibility with ZED_CHANNEL for preview builds.

This enhancement allows users to:
- Pin a specific Zed version for reproducible setups or CI workflows.
- Easily install older or known-good versions without manually
downloading release assets.

Usage examples:
- Install latest stable (default):
  curl -f https://zed.dev/install.sh | sh
- Install specific version:
  curl -f https://zed.dev/install.sh | ZED_VERSION=0.216.0 sh
  
  Use this — it’s correct, concise, and clearly user-facing:

Release Notes

* **Added:** Support for installing a specific Zed version via the
`ZED_VERSION` environment variable in the install script (defaults to
`latest` when unset).
2026-01-23 17:26:01 +01:00
Ben Kunkle 1ebb127371 Use arithmetic expansion instead of expr in ./script/clear-target-dir-if-larger-than (#47298)
Fixes CI failures when the target dir is 0GB in size, which causes
`expr` to output a non-zero exit code per the posix spec.

See exit status section of
https://www.man7.org/linux/man-pages/man1/expr.1p.html

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-21 11:10:18 -05:00
Marshall Bowers dcda6e67e1 danger: Remove check for modifying prompts (#47028)
This PR removes the Danger check for modifying prompts, as we no longer
need to account for these in Cloud.

Release Notes:

- N/A
2026-01-16 22:21:58 +00:00
Joseph T. Lyons 0a3ed66404 Format update_top_ranking_issues with latest ruff (#47023)
Release Notes:

- N/A
2026-01-16 21:43:22 +00:00
Conrad Irwin 042db891e9 Fewer race-conditions in Vercel redeploy (#46826)
Should avoid releases rolling back to older vercel versions

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-15 14:48:05 -07:00
Lukas Wirth b6080eab46 licenses: Verify validity of the symlink files (#46444)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-11 11:43:08 +01:00
Joseph T. Lyons 44ed580aa0 Add fallback message when preview changelog is empty (#46260)
Avoid publishing preview releasing that say nothing in the release
notes:

<img width="947" height="258" alt="SCR-20260107-ioxx"
src="https://github.com/user-attachments/assets/97204551-8f55-43fb-8c9c-35491a4f1378"
/>

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-07 14:24:02 +00:00
Richard Feldman ecc64158d1 Rename visual_test_runner to zed_visual_test_runner (#46171)
This fixes the auto-update failure by ensuring cargo-bundle picks 'zed'
as the first binary.

**Problem:** `cargo metadata` returns binaries alphabetically, so
`visual_test_runner` was coming before `zed`. When cargo-bundle looks
for the first binary to bundle (without `--bin`), it was picking
`visual_test_runner` - which doesn't exist in release builds because it
requires the `visual-tests` feature.

The previous fix (#46163) added `--bin zed` to explicitly select the
binary, but this caused cargo-bundle to use the binary name ('zed')
instead of the bundle metadata name ('Zed Nightly'), breaking
auto-updates.

**Fix:** Rename the binary to `zed_visual_test_runner` so it comes after
`zed` alphabetically. This restores the original bundle script behavior
that has worked for years.

Also reverts the `--bin zed` workaround from #46163.

Release Notes:

- N/A
2026-01-06 13:28:58 -05:00
Richard Feldman e8066a1654 Fix nightly bundle (#46163)
The visual_test_runner binary (added in #45259) has `required-features =
["visual-tests"]`, so it doesn't get built in release builds. However,
`cargo bundle` was trying to bundle all binaries defined in the zed
crate's Cargo.toml, causing it to fail when visual_test_runner doesn't
exist.

Adding `--bin zed` tells cargo bundle to only bundle the main zed
binary.

**Note:** The `cli` binary is unaffected by this change - it's a
separate package (`crates/cli`) that's built separately via `cargo build
--package cli` and manually copied into the app bundle afterward (line
337). It was never part of `cargo bundle`'s scope.

Fixes the nightly build failure:
https://github.com/zed-industries/zed/actions/runs/20740971838

Release Notes:

- N/A
2026-01-06 10:47:23 -05:00
Lukas Wirth 4e84257bb6 conpty: Bump version and fetch from GitHub for dev-builds (#46026)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-01-04 14:41:07 +00:00
Miguel Raz Guzmán Macedo 28ee501f7d Add script/triage_watcher.jl (#45384)
Release Notes:

- N/A
2025-12-19 18:09:40 +00:00
Ben KunkleandZed Zippy 227865c6af Remove zed dependency from docs_preprocessor (#45130)
Closes #ISSUE

Uses the existing `--dump-all-actions` arg on the Zed binary to generate
an asset of all of our actions so that the `docs_preprocessor` can
injest it, rather than depending on the Zed crate itself to collect all
action names

Release Notes:

- N/A *or* Added/Fixed/Improved ...

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2025-12-18 21:59:05 -05:00
Marshall Bowers 7c73e0c9ea danger: Upgrade danger-plugin-pr-hygiene to v0.7.1 (#45303)
This PR upgrades `danger-plugin-pr-hygiene` to v0.7.1.

Release Notes:

- N/A
2025-12-18 21:52:34 +00:00
Marshall Bowers fe06d5e047 danger: Deny conventional commits in PR titles (#45283)
This PR upgrades `danger-plugin-pr-hygiene` to v0.7.0 so that we can
have Danger deny conventional commits in PR titles.

Release Notes:

- N/A
2025-12-18 18:42:28 +00:00
Nathan SoboandMatt Miller de7aca133b macOS: Bundle placeholder Document.icns so Finder can display Zed file icons (#44833)
Generated by AI.

`DocumentTypes.plist` declares `CFBundleTypeIconFile` as `Document` for
Zed’s document types, but the macOS bundle did not include
`Contents/Resources/Document.icns`, causing Finder to fall back to
generic icons.

This PR:
- Adds `crates/zed/resources/Document.icns` as a placeholder document
icon (currently derived from the app icon).
- Updates `script/bundle-mac` to copy it into the `.app` at
`Contents/Resources/Document.icns` during bundling.
- Adds `script/verify-macos-document-icon` for one-command validation.

## How to test (CLI)
1. Build a debug bundle:
   - `./script/bundle-mac -d aarch64-apple-darwin`
2. Verify the bundle contains the referenced icon:
- `./script/verify-macos-document-icon
"target/aarch64-apple-darwin/debug/bundle/osx/Zed Dev.app"`

## Optional visual validation in Finder
- Pick a file (e.g. `.rs`), Get Info → Open with: Zed Dev → Change
All...
- Restart Finder: `killall Finder` (or log out/in)

@JosephTLyons — would you mind running the steps above and confirming
Finder shows Zed’s icon for source files after "Change All" + Finder
restart?

@danilo-leal — this PR ships a placeholder `Document.icns`. When the
real document icon is ready, replace
`crates/zed/resources/Document.icns` and the bundling script will
include it automatically.


Closes #44403.

Release Notes:

- TODO

---------

Co-authored-by: Matt Miller <mattrx@gmail.com>
2025-12-17 16:42:31 -06:00
Conrad Irwin 9f5c8c0ad5 Improve autofix (#44930)
Release Notes:

- N/A
2025-12-15 22:19:18 -07:00
Kirill Bulatov 853d5d3736 Disable word completions in markdown and plaintext files (#44654)
Reformat on save had also added trailing commas.

Release Notes:

- Disable word completions in plaintext and markdown files, see
https://zed.dev/docs/configuring-zed?highlight=word%20completio#words on
how to enable it back in the language settings
2025-12-11 20:15:38 +00:00
Lena f5ff185cea Fix a search filter in top-ranking issues script (#44468)
Release Notes:

- N/A
2025-12-09 09:44:30 +00:00