Skip to content

Releases

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 23:31
f4a6a4d

What's Changed

Full Changelog: v1.8.0...v2.0.0

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 11:14
489d3af

This release fixes four crashes where Zed updated a menu, panel or modal from inside that same element's update. Pane and Workspace now call into items, toolbars, panels, modals, pickers and completion providers outside their own updates. Gemini models from Google's model catalog get thinking settings that match each model, and the catalog fetch retries and reports its failures. The fork is up to date with upstream Zed as of 2026-10-14 (zed-industries@c403bc6af6).

Fork changes

Crashes from reentrant updates

GPUI aborts Zed when code reads or updates an element such as a menu, pane or workspace while that element is in the middle of its own update. kjanat/zed-editor#172 tracks the audit of these sites.

  • Fixed Enter and Ctrl-Enter on Open Worktrees, Move Up, Move Down and Remove in the sidebar's project header menu crashing Zed. The context menu runs a keyboard-selected entry the way it runs a clicked one (kjanat/zed-editor#218).
  • Fixed Open Local Folders in the Recent Projects actions menu crashing Zed when you chose it with Enter and use_system_path_prompts was false (kjanat/zed-editor#218).
  • Fixed a stash action from a key binding crashing Zed while the Commit modal was open (kjanat/zed-editor#218).
  • Fixed file_finder::OpenWithoutDismiss on a channel match crashing Zed (kjanat/zed-editor#218).

Zed now makes these calls with nothing leased:

  • Tabs and toolbar. Pane renders tabs, tab tooltips and toolbar key context in RenderOnce children after its own render ends. Toolbar items receive the active item in a deferred call (kjanat/zed-editor#218).
  • Item hooks. The functions of Pane and Workspace that open, save, focus, close, move, split and join items take the entity handle. They call item hooks such as project_path, is_dirty, capability and act_as before they update the pane or workspace (kjanat/zed-editor#220). This is the class of the tab double-click crash in kjanat/zed-editor#169.
  • Modals. Workspace::toggle_modal builds the modal in a deferred update and returns Task<Option<Entity<V>>>. on_before_dismiss runs with only the modal leased. The new ModalView::on_dismissed hook runs after the modal layer drops the modal (kjanat/zed-editor#218).
  • Pickers, panels and completions. Picker::new computes its first matches in a deferred update, and panel activation is deferred. Edit prediction refresh and editor completion providers run in spawned tasks. CompletionProvider::completions, resolve_completions and apply_additional_edits_for_completion take &mut App (kjanat/zed-editor#218).
  • Tests. Every rewritten site has a test whose item, panel, modal or provider reads its container from the hook (kjanat/zed-editor#218, kjanat/zed-editor#220).

SerializableItem::serialize, Item::added_to_workspace and ProjectItem::for_project_item still receive a leased Workspace or Pane (kjanat/zed-editor#172).

Gemini

These changes apply to the Google provider with your own API key unless a line says otherwise (kjanat/zed-editor#224).

  • Fixed versioned Gemini 2.5 models such as gemini-2.5-flash-preview-05-20 offering thinking levels and failing on thinkingLevel. Zed reads the version from the model ID to choose the thinking controls and the tool media format.
  • Fixed Gemini 2.5 Flash-Lite returning no reasoning with thinking on. A Gemini 2.5 request with thinking on and no budget asks for dynamic thinking.
  • Thinking levels follow Google's table. gemini-3-pro-preview offers Low and High and defaults to High. Gemini 3.1 Flash-Lite defaults to Minimal.
  • Fixed responses failing to parse when Gemini sent a thought signature on a part without text.
  • Fixed Zed-hosted Gemini models failing when the thread's effort level was missing from the model's list, such as Medium for gemini-3-pro-preview. The request now uses the model's default level.
  • The model catalog fetch retries transient failures, honours Retry-After and stops after a fixed number of attempts. A permanent failure, such as an invalid key, appears under the API key in settings with a Retry button.
  • The default model is the newest by version number, so gemini-3.10 comes before gemini-3.9.

External agents

  • Config options that an agent announces after the session starts now appear in the agent panel in place of the fallback selectors, and receive your configured defaults (kjanat/zed-editor#219).
  • Session info updates reach the session list after the thread closes (kjanat/zed-editor#219).

Worktrees

Fixed a deleted file that was opened on its own reporting its deletion again on every change in its folder while an agent thread held the buffer. Zed reports the deletion once and watches the file again when it returns (kjanat/zed-editor#216, kjanat/zed-editor#204).

Builds

  • Release builds upload debug symbols only to the fork's Sentry project, and a bundle script stops before building when a Sentry token comes without an organization and project (kjanat/zed-editor#214).
  • Windows clippy in fork CI fails when cargo fails, and each platform's tests check reports only its own suites (kjanat/zed-editor#218, kjanat/zed-editor#224).

From upstream

Full Changelog: v1.7.0...v1.8.0

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 13:23
7704209

This release keeps environment variable values, such as API tokens and database URLs, out of logs, error messages, process command lines and crash dumps. It also brings the fork up to upstream Zed as of 2026-10-10 (zed-industries@93d7456688).

Fork changes

Environment values stay private

These fixes cover the environment of language servers, terminals, tasks, debug adapters, agents and MCP servers. Its values come from your shell and direnv environment, terminal.env, debug configurations and dev containers.

  • Logs and errors. Spawn errors name the program, its arguments and its folder. That covers the failed language server status, which Zed also sends to collaborators in a shared project. Log redaction keeps the values of a short list of diagnostic names such as PATH, HOME and LANG and hides every other value, DATABASE_URL, *_DSN and lowercase http_proxy included. It also hides the value of a secret-named option such as --password, credentials in URLs and Authorization headers (kjanat/zed-editor#209).
  • Debug views and bug report output. The DAP log, the failed launch message, dev: copy debug adapter arguments and the ACP log view hide values under env, envs, environment and headers (kjanat/zed-editor#209).
  • Remote command lines. Fixed SSH, WSL and Docker terminals and debug adapters putting their environment in the arguments of ssh, wsl.exe and docker exec, where any user on the machine can read it with ps. Zed hands the command to the remote server, the remote server stores it in a file only you can read, and the command line carries just its id. When the remote cannot store it, the launch fails with the remote's error (kjanat/zed-editor#210). Windows SSH hosts and Windows containers still receive the environment on the command line.
  • Docker and Podman. docker exec receives its variables through an --env-file that only you can read. Its arguments carry the file's path (kjanat/zed-editor#212).
  • Crash dumps. Fixed Linux minidumps that sent the whole startup environment of Zed to the crash endpoint. The crash handler clears the environment and every copy of it from a dump before it keeps the file. A dump that fails to scrub is deleted, and only scrubbed dumps are uploaded (kjanat/zed-editor#211).

Settings

Reset to Default in the settings UI removes the setting from the open settings file. Your user settings or the Zed default then apply. The reset button appears only for a value set in the open file, and on a language page it removes only that language's value (kjanat/zed-editor#207).

Deno

Fixed go to definition into a cached remote module or a built-in declaration opening an empty buffer. Zed loads the source from Deno into a read-only tab. Hover, definitions and diagnostics work inside that tab, and it follows Deno across restarts (kjanat/zed-editor#202).

Builds

The Nix tests are formatted with nixfmt, which the shared formatting check now requires (kjanat/zed-editor#213).

From upstream

Full Changelog: v1.6.1...v1.7.0

v1.6.1

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:19
855c96f

This release brings the fork up to upstream Zed as of 2026-10-09 (zed-industries@687d662a0b) and sends every report that went to Zed's servers to this fork's Sentry.

Fork changes

Reports go to this fork's Sentry

Telemetry, hang reports, edit prediction reports and feedback go to this fork's Sentry project, and Zed's servers receive none of them (kjanat/zed-editor#200).

  • Telemetry events arrive as Sentry Logs, each with its properties, release, channel and OS. The telemetry.metrics setting turns them off.
  • Hangs each become a Sentry issue named after the longest-running work and grouped by that work and the hang's trigger. The telemetry.diagnostics setting turns them off, together with crash reports.
  • Edit prediction reports for accepted, rejected and settled Zeta predictions arrive as Sentry Logs under telemetry.metrics.
  • Feedback from rating an agent thread, commenting on that rating or rating an edit prediction arrives as Sentry user feedback, with the thread or prediction attached as feedback.json.

Sign-in, extensions, and Zed-hosted AI and edit prediction requests still use Zed's servers.

Builds and releases

  • The pacman package's update prompt names the package, zed-kjanat, and gives sudo pacman -Syu zed-kjanat as the command (kjanat/zed-editor#199).
  • A release published by hand also gets its Sentry release (kjanat/zed-editor#199).

From upstream

Full Changelog: v1.6.0...v1.6.1

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 23:06
6eb099b

This release brings the fork up to upstream Zed as of 2026-10-08 (zed-industries@b47a4ca595).

Fork changes

Language servers in background projects

With several projects open in one window, the language servers of a background project could restart every few hundred milliseconds without end. Each restart leaked a handle into every extension that the servers called, and after a few minutes every call into those extensions failed with "resource table has no free keys". kjanat/zed-editor#194 fixes both and makes the LSP menu show every server that is not running.

  • No restart loop. An editor in a suspended project no longer resumes it for document highlights, code actions or linked edits. Hover, completions, formatting and the other requests you make still resume the project.
  • Extension handles. Each call into an extension frees the worktree, project and key-value store handles it lent, on success and on error, and dropping an HTTP response stream frees it too.
  • Reload extensions. zed: reload extensions reloads every installed extension, so each one starts again with an empty resource table.

LSP menu

  • A server that failed to start keeps a red row with its error under its worktree, and a stopped server keeps a grey row with Start Server. Each worktree gets its own row, so a server stopped in one worktree stays visible while it runs in another. (kjanat/zed-editor#194)
  • Start Server after Stop All Servers starts only that server, and the others stay stopped. A language opened later starts its server as usual. (kjanat/zed-editor#194)
  • Start Server and Restart Server stay disabled until a file of the server's languages is open in its worktree, and the menu says so. (kjanat/zed-editor#194)
  • SSH projects list their stopped and failed servers, and Restart All Servers restarts them on the host. Collab guests, including guests of a shared SSH project, see the host's running, stopped and failed servers and its restarts. (kjanat/zed-editor#194)

Displays

  • Fixed a crash on Windows when a display change arrived while Zed was inside an app update. (kjanat/zed-editor#191)
  • On X11, a resolution or rotation change from xrandr reaches Zed. (kjanat/zed-editor#191)
  • On macOS and Windows, a window that moves to another display reads that display's current refresh rate. (kjanat/zed-editor#191)

Builds and releases

  • The pacman packages of this release were built outside GitHub Actions and carry no build provenance attestation.

From upstream

Full Changelog: v1.5.1...v1.6.0

v1.5.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 13:23
1e9d3d7

This release brings the fork up to upstream Zed as of 2026-10-07 (zed-industries@a34a062bb7).

Fork changes

Push toast

After a push to the remote's default branch, the git panel's push toast shows "View Log". Pushes to any other branch keep "Create Pull Request". (kjanat/zed-editor#189, closes kjanat/zed-editor#188)

  • Pushed branch. The check uses the remote branch that received the push, which is the tracked upstream branch when there is one.
  • Pull request links. A pull or merge request link that the remote prints only shows for pushes off the default branch.
  • Default branch lookup. Zed reads refs/remotes/<remote>/HEAD. When that ref is missing, or the remote pushes to a separate pushurl, Zed asks the push destination with git ls-remote --symref. The query uses stored credentials only, never shows a prompt, and gives up after five seconds. When it fails, and for remotes with several push URLs, the toast keeps "Create Pull Request".
  • Remote projects. Projects over SSH get the same check. Collaborators in a shared project cannot start the query.

Fixes to the upstream changes

  • Switching from a Pro to a Free organization shows the Free plan notice for edit predictions.
  • Audio output errors that arrive after a call ends, and inlay hint refreshes that finish after nobody waits for them, are logged.
  • FreeBSD hosts report their OS version to remote telemetry again.

Builds and releases

  • CI saves its caches from master only, and the test suites on one OS share one cache.

From upstream

Full Changelog: v1.5.0...v1.5.1

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 20:27
154d5b8

This release brings the fork up to upstream Zed as of 2026-10-07 (zed-industries@eb466341a6).

Fork changes

GPUI update boundaries and tab actions

Re-entering an entity or global while it is being updated aborts Zed. kjanat/zed-editor#173 gives GPUI an enforced boundary against that class of crash, tracked in kjanat/zed-editor#172, and moves the Pane tab click onto it first.

  • Lease registry. App records every active entity and global update with its caller. Reading or updating a target that is already being updated panics with the colliding access, the update it collided with and every active update, in release builds too, so a crash report locates both sides. Every global accessor checks the registry.
  • Typed tab actions. Item::tab_actions returns one TabActions list that builds the tab's context menu and marks at most one entry as the double-click action. A second mark does not compile. The query takes &App, and Pane asks it with the pane released, so a tab may read its own pane while it answers. It replaces tab_extra_context_menu_actions and the lookup of a "Rename" entry, and the terminal's Rename comes from one place.
  • Render-aware dispatch. FocusHandle::dispatch_action called during an update runs the action after the update and its effects settle. It then routes on the last drawn frame when the window has not changed, and otherwise waits for its target, for at most eight frames. An action for a tab that is not drawn yet runs exactly once, so a double-click renames an inactive terminal tab. FocusHandle::try_dispatch_action_now keeps the synchronous form and reports whether the target received the action.
  • Post-render callbacks. Window::on_next_render runs a callback after the next frame is drawn and requests that frame. on_next_frame runs before the draw, and its documentation says so.
  • Handle listeners. Context::entity_listener passes its callback the entity's handle where Context::listener passes a mutable reference, for event handlers that call other entities or open code.
  • Unwind safety. Updates, draws and callbacks put back what they took from the app or the window when they panic: leases, update depth, subscribers, listeners, the input handler, draw state and pending frame callbacks. State stays consistent for code that catches the panic.
  • Global updates. update_global outside another update applies its effects when it ends, and remove_global notifies observers after it removed the global.

Language servers

Builds and releases

  • The Windows Arm bundle builds again. mise.lock had no windows-arm64 entries and stopped its tool install.
  • rustls 0.23.45, a security update. (kjanat/zed-editor#183)
  • With telemetry.diagnostics on, crash reports go to the fork's Sentry project with the end of Zed.log, and each release uploads its debug symbols there. (kjanat/zed-editor#178)

Upstream sync

From upstream

Full Changelog: v1.4.13...v1.5.0

v1.4.13

Choose a tag to compare

@github-actions github-actions released this 04 Oct 17:20
b709cf2

This release has the same upstream base as v1.4.12, upstream Zed as of 2026-10-03 (zed-industries@a84689073d).

Fork changes

Fixed

  • Zed crashing when you double-clicked a tab. Since zed-industries/zed#65081, which v1.4.12 brought in, an editor tab reads its pane to build its extra context menu actions. The double-click handler asked for those actions while it was still updating that pane, and gpui aborted the process. Markdown preview tabs did the same. Zed now looks up the actions after the click handler finishes. (kjanat/zed-editor#169, closes kjanat/zed-editor#168)
  • script/uninstall.sh deleting the wrong paths when $HOME contains a space. With HOME=/Users/John Doe, rm -rf received /Users/John and Doe/.zed_server as two paths. The script now quotes the path.

Language servers

  • When a language server writes plain text to stdout and exits, the error in the status and the log includes up to 512 characters of that text after Server reset the connection:. A misconfigured wrapper, such as mise task -- roslyn printing task info, showed only Server reset the connection before. (kjanat/zed-editor#169)
  • When a server drops the connection during initialize, Zed waits up to 2s for its stdout and stderr to finish before reporting the failure, so stderr from that window reaches the failure status. Stderr after an initialize timeout or error response can still be lost, tracked in kjanat/zed-editor#170. (kjanat/zed-editor#169)
  • Zed skips the shutdown request for a server whose stdout already closed. After a failed start, the log has no Shutdown request failure errors. (kjanat/zed-editor#169)

Builds and releases

  • Each release includes debug symbols for every platform. They turn crash dumps and stack traces into function names and line numbers. The release workflow attests them like the other assets. (kjanat/zed-editor#169)
    • zed-windows-<arch>.dbg.zip: PDB files for Zed, the CLI, the auto-update helper, the Explorer context menu handler and the remote server.
    • zed-linux-<arch>.dbg.tar.gz: DWARF for Zed and the remote server (zed.dbg, remote_server.dbg).
    • zed-macos-<arch>.dwarf.tar.gz: DWARF for Zed and the remote server (zed.dwarf, remote_server.dwarf).
  • The LLVM 23.1.2 release ld.lld needs ICU 70, which only GitHub's Ubuntu 24.04 amd64 image installs. The FreeBSD and Linux bundle jobs now install Ubuntu 22.04's libicu70, pinned by SHA-512.
  • A dispatched release run reuses the tag's draft release and creates one only when none exists.

CI and scripts

  • script/release-notes/linkify.py rewrites issue, pull request and commit references in release notes as explicit links, which Zed's in-app release notes view needs. It asks GitHub whether each number is an issue or a pull request, and links a bare SHA to upstream when upstream's default branch contains it. script/release-notes/publish.bash linkifies a notes file, sets it as the release body and uploads the matching notes.json.
  • script/mitm-proxy.sh stops its mitmproxy container on every exit, including a failing cargo run or closed stdin.
  • script/upstream-sync/test_resolve.py accepts any pinned commit SHA for the resolver's actions, and an action pin bump passes sync_security.
  • Every script with a shebang is executable, among them script/pacman/zed.sh and the GitHub triage scripts under script/.

Full Changelog: v1.4.12...v1.4.13

v1.4.12

Choose a tag to compare

@github-actions github-actions released this 03 Oct 17:27
v1.4.12
8336664

This release brings the fork up to upstream Zed as of 2026-10-03 (zed-industries@a84689073d).

Fork changes

Fixed

  • Self-hosted Git hosting providers losing their instance's path, such as /gitlab in https://git.example.com/gitlab. Commit and file permalinks, pull request links and API requests pointed at the host root, and the owner parsed from an HTTPS remote under that path included the path. Zed now appends paths to the configured base_url and strips its path from HTTPS remotes for GitHub, GitLab, Gitea, Forgejo, Bitbucket, SourceHut, Tangled, Gerrit and Gitiles, and commit avatars from GitLab, Gitea, Forgejo and Bitbucket Server load through the path as well. (kjanat/zed-editor#167)
  • Gerrit HTTPS remotes losing a leading a/ from the project name. Gerrit marks authenticated remotes with a single /a/ prefix, and Zed removed every leading a/, so a project named a/project became project. Zed now strips exactly one. (kjanat/zed-editor#167)
  • "provider": "sourcehut" in git_hosting_providers being rejected, although the docs and the setting's description use that name. Zed now accepts sourcehut and keeps source_hut as an alias. The Git docs and the settings reference list all nine providers, gerrit included, and say that base_url may include a path. (kjanat/zed-editor#167)
  • Arrow keys doing nothing in the tabular data preview of release builds. The default keymaps bind them to tabular_data::MoveFocusedCell, but its handler returned early outside debug builds. The arrow keys now move the focused cell in every build. (kjanat/zed-editor#167)

Changed

  • The settings editor shows markdown_preview.heading_font_weight, new from upstream in this release, under both user and project settings, like the fork's other markdown_preview settings. (kjanat/zed-editor#167)

Builds and releases

  • The Linux builds need glibc 2.43 or newer. The release workflow now builds them on Ubuntu 26.04 runners, and both Linux zed-editor binaries import math functions such as acosf and sinhf at GLIBC_2.43. The bin/zed CLI still needs only glibc 2.39, and the Linux remote servers are static musl builds.
  • The x86_64 Windows installer builds on windows-2025-vs2026, and the aarch64 installer now builds natively on a Windows 11 Arm runner. bundle-windows.ps1 finds Visual Studio through vswhere.
  • The release workflow installs its build tools through mise, including LLVM 23 for the Linux bundles and the FreeBSD remote server and cargo-about 0.9.2 for the bundled third-party license list. On Windows, license generation now fails on a missing license or when cargo-about writes to stderr, as it does on Linux, macOS and FreeBSD.

CI and upstream sync

  • fork_upstream_sync resolves more conflicts on its own. mergiraf merges the remaining files by syntax tree, Markdown merges at the fork's 80-column wrapping, and the fork's file deletions win over upstream changes to those files.
  • Conflicts left after those stages go to a sandboxed resolve job, and the verify job checks its merge on a clean runner with dprint check, a workspace cargo check, clippy and the conflicted crates' tests before open-sync-pr.py opens the PR. When a check fails, open-sync-pr.py updates the Upstream sync conflict issue with the failed check and its output.
  • The sync run keeps the unfinished merge, a patch of the checkout and the job logs as artifacts for 30 days. The resolve job runs its export command once before its long step, and prepare skips the job while a sync PR is open or when the same master commit already failed.
  • kjanat/zed-editor#167 merges 48 upstream commits and keeps the fork's directory watch handling in worktree, which also unwatches a directory when read_dir fails. Upstream's regression tests for zed-industries/zed#61372 run against the fork's version, and a follow-up commit updates the fork's Bedrock test for upstream's optional default_temperature. (kjanat/zed-editor#167, closes kjanat/zed-editor#166)
  • fork_ci and fork_release install node, nextest, cargo-about, the WASI SDK, Python, the Linux apt packages and Postgres through mise, with versions pinned in .mise.toml, and run the repository's scripts as mise run tasks.
  • CodeQL scans pushes to master and runs once a week, and pull request pushes skip the scan. CI, CodeQL and the sync workflow run on ubuntu-26.04 and windows-2025-vs2026 runners, and the workflows pin taiki-e/install-action 2.87.22 and vmactions/freebsd-vm 1.5.9.

From upstream

Git

Editor and files

Markdown preview

Agent

Keybindings, extensions and settings

  • The which-key popup and pending keystroke indicator hide bindings disabled with null or zed::Unbind (zed-industries/zed#64935).
  • Backspace and Delete have distinct icons in the keymap editor (zed-industries/zed#65037).
  • Language server extensions can choose which of their servers are enabled by default (zed-industries/zed#65030).
  • The Copilot enterprise URI moved to the top-level copilot.enterprise_uri setting. Existing settings migrate automatically (zed-industries/zed#65082).

Full Changelog: v1.4.11...v1.4.12

v1.4.11

Choose a tag to compare

@github-actions github-actions released this 01 Oct 20:57
5c9619d

Synced with upstream Zed as of 2026-09-30 (zed-industries@40180d9c40).

Fork changes

Fixed

  • Language server requests acting on a stale cursor position, and inlay hints and other pull-style requests being answered twice when issued while a server started. Zed deferred every request, and a request that waited for a starting server, or for a project's servers to suspend or resume as its workspace moved to the background and back, still used the position from when it was made. Completions, hover, signature help, go to definition, references and on-type formatting could then answer for text that later edits had moved. LspStore now keeps one runtime state for its language servers, runs a request immediately when no transition or startup is pending, and anchors the position of a request it has to defer. Pull-style requests skip the wait for a starting server, because the editor refreshes them when the server registers, and an inlay hint fetch queries only the servers it records. (kjanat/zed-editor#161)
  • Rejecting an agent's file deletion, and agent edits that recreate a deleted file, failing with a save conflict. Zed treats a save over a file that is gone from disk as a conflict, and both saves now confirm the deletion they observed and write the file.

CI and upstream sync

  • fork_ci now lints and tests the packages whose files changed and every package that depends on them, and runs the whole workspace when Cargo.toml, Cargo.lock, the toolchain or the CI scripts change. The test jobs get four hours, a Postgres container for the collab database tests, Mesa's software Vulkan driver for the headless wgpu tests, the WASI SDK and a prebuilt test extension.
  • The full-workspace runs exposed broken tests, which now pass. The extension host's platform linker test checks every extension API version against its own platform interface, the Save As test puts the dirty destination in its own pane, the Windows util PATH test and the agent and remote_server tests compile, and the agent_ui thread recency test passes.
  • Tests that failed on the CI runners now pass. GPUI animations read the executor clock, the GPUI bench test identifies leaked setup work by its start time, fake-filesystem worktree tests reconcile directories only while the fake filesystem can miss events, each macOS test pasteboard gets a per-process name and starts empty, and test_large_buffer_inlay_requests_split gets 300 seconds.
  • Clippy passes on the whole workspace. Cargo.lock pins cocoa-foundation to 0.2.0 like upstream, since 0.2.1 marks the modules gpui_macos uses as deprecated, and title_bar drops itself from its own dev-dependencies.
  • kjanat/zed-editor#161 merges upstream through zed-industries@40180d9c40 by hand. It keeps the fork's FreeBSD, Bun and Deno runtime checks on upstream's SystemNode::MIN_VERSION, moves the fork's WaitForLanguageServers message to proto id 496 next to upstream's terminal shell messages, and keeps the fork's agent thread recency tracking. (kjanat/zed-editor#161, closes kjanat/zed-editor#159, kjanat/zed-editor#163)
  • auto_resolve.sh and a written procedure cover resolving an upstream-sync-conflict issue by hand, from the first read of the issue to the sync PR that closes it. The script applies the sync automation's resolutions to a local merge against origin/master and lists the files left for a person.
  • Every fork workflow job stops within a minute of cancellation, and fork_release shares its checkout, attestation, upload and tag settings through YAML anchors and shows the published release in its own step.
  • The repository's Python scripts share a root uv workspace on Python 3.14 with one lockfile, which carries urllib3 2.8.0. (kjanat/zed-editor#162)

From upstream

Full Changelog: v1.4.10...v1.4.11