Commit graph

794 commits

Author SHA1 Message Date
Marshall Bowers
7bf73098a7
danger: Add a check for changing Collab database schemas (#51234)
This PR adds a Danger check to remind contributors that any database
changes for Collab need to be done via a migration in the Cloud repo:

<img width="888" height="323" alt="Screenshot 2026-03-10 at 6 39 21 PM"
src="https://github.com/user-attachments/assets/5b3bbc3d-1e9d-409a-837b-565e1ca36935"
/>

Release Notes:

- N/A
2026-03-10 22:53:38 +00:00
Jakub Konka
6810f23634
ci: Add source list and GPG key manually of ubuntu-toolchain-r (#51102)
Release Notes:

- N/A
2026-03-09 14:55:35 +01:00
Jakub Konka
9ba65944df
livekit: Correctly handle runtime deps: libva and libva-drm (#50527)
Release Notes:

- N/A
2026-03-03 10:25:01 +01:00
Lucas White
0d79f44ec9
Update legal docs to reflect new terms of service (#50530)
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Update legal docs to reflect new Terms, Privacy Policy, Subprocessors,
and Acceptable Use Policies (fka Third Party Terms)
2026-03-02 12:36:31 -08:00
Kunall Banerjee
2d3c05ee41
Add libva-devel as required deps for dnf section (#50476)
If I follow the steps outlined in https://zed.dev/docs/development/linux
then `cargo run` on my Fedora workstation fails because the install
script is missing `libva-devel` as a required dependency under `dnf` /
`yum` sections.

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-03-02 09:37:06 -07:00
Lena
183d1a41f7
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 Evers
14358b711c
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
4668aeb728
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
19190e8613
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
654857d861
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
78878e514e
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
511be9a3ff
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
ceb7c0e1b2
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
2ec2b4c600
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
646ec5e866
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
9f0844399a
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
bb271cf562
build: Add cargo timing script to devshell (#49941) 2026-02-24 02:46:26 +00:00
Kunall Banerjee
e14f6e764e
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 Irwin
b775e5d63f
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
6741a1df28
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
16aeee6361
Post comments on duplicate bug reports (#49482)
Release Notes:

- N/A
2026-02-18 17:15:15 +00:00
morgankrey
71ffaeb817
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
b34e1bdec1
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
dc41f71f57
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
7620c684eb
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
morgankrey
2df11f7bae
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
337311bdc8
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 Holk
889d0db8e1
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
b8df3374bb
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
11d812cd87
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
f571fab30f
Fix sccache on windows (#48943)
Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-11 09:59:20 -07:00
Conrad Irwin
47cb1cf4ab
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
f0dfb443d6
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
825cf2db7e
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
68b2cb3e72
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
a6ab1f1eb7
Fail windows bundle when cargo about fails (#48056)
Release Notes:

- N/A
2026-01-30 19:55:29 -07:00
John Tur
9931c6f944
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
e6d87976bb
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
40fe79938b
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
e05a577fd3
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
eedff99645
Format update_top_ranking_issues with latest ruff (#47023)
Release Notes:

- N/A
2026-01-16 21:43:22 +00:00
Conrad Irwin
4250871a1c
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
5ba6258415
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
b41eb6e763
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
167970bcce
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
61eed8c8b9
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
c32a811b4e
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
1edd050baf
Add script/triage_watcher.jl (#45384)
Release Notes:

- N/A
2025-12-19 18:09:40 +00:00
Ben Kunkle
3f67c5220d
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
0d74f982a5
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