Add support for detecting Go files that can be executed directly via
shebang-style comments (e.g., '// usr/bin/env go run "$0" "$@"; exit
"$?"').
This allows Zed to recognize Go scripts with first-line comments
containing 'go run' as executable Go files, similar to how other
languages detect shebangs or mode lines.
Reference: https://stackoverflow.com/q/7707178/1458343
Release Notes:
- Improved: Go language detection now recognizes executable Go scripts
with first-line 'go run' comments.
Release Notes:
- Swapped the default value for `agent.single_file_review` to `false`.
Agent diffs will no longer override the git diff in your buffer. You can
still review the agent's changes via the action log review button, or by
flipping this setting back to `true`
Closes AI-10
The thinking tool is no longer needed. This removes it from the agent
codebase and updates all tests to use other tools instead.
Release Notes:
- Removed the thinking tool from the Agent, as models now have their own
first-class thinking APIs.
Closes#48857
- [x] Code Reviewed
- [x] Manual QA
Release Notes:
- Fixed an issue where some ACP agents would not be loading correctly
when unauthenticated
---------
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
This [change](https://github.com/agentclientprotocol/registry/pull/34)
broke the ACP registry in Zed, since we did not have `#[serde(default)]`
on the `_extensions` field.
- [x] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA
Release Notes:
- Fixed an issue where the ACP registry would fail to load
Closes#48274
Previously, the Copilot language server would continue running even when
`disable_ai: true` was set in settings. This change ensures Copilot
properly responds to the `disable_ai` setting:
- Add `disable_ai` check in `start_copilot()` to prevent starting when
AI is disabled
- Modify the `SettingsStore` observer to shut down the running language
server when `disable_ai` changes from false to true
- Add tests for all scenarios:
- Copilot doesn't start when `disable_ai` is true
- Copilot stops when `disable_ai` becomes true
- Copilot can start again when `disable_ai` becomes false
Release Notes:
- Fixed Copilot starting when disabled_ai: true
`ChunkSlice::point_utf16_to_offset` returned `line.len()` (a relative
line byte length) instead of `row_offset_range.end` (the absolute byte
offset within the chunk) when clipping an out-of-range UTF-16 column on
a non-first row.
This caused incorrect position calculations in LSP coordinate
conversions whenever a UTF-16 point had a column beyond the line's
extent on any row after the first in a chunk.
Added a regression test covering clipping on both row 0 and row 1. Not
sure if it's the best place for a test like this one though.
Release Notes:
- N/A
Fixes a regression that was introduced by the thread view refactor
(Nightly only).
Also fixed another minor focus issue: Dropping files into the agent
panel would not focus the message editor.
- [x] Code Reviewed
- [x] Manual QA
Release Notes:
- N/A
I have added the `code_actions_on_format` setting. I also temporarily
removed the mention of `"formatter": null`. Based on our findings in
#48600, its current behavior is inconsistent, so I've omitted it for now
to avoid confusing users. I will add it back once the underlying issue
is fixed (likely in a subsequent PR).
Closes#48600.
- [ ] Tests or screenshots needed?
- [x] Code Reviewed
- [x] Manual QA
Release Notes:
- N/A
---------
Co-authored-by: Kunall Banerjee <hey@kimchiii.space>
`read_fd` calls `File::from_raw_fd(fd.as_raw_fd())`, which creates a new
`File` that assumes ownership of the raw fd, while the original
`FileDescriptor` also retains ownership. when both drop at the end of
the function, the same fd is closed twice. between the two closes
another thread can receive that fd number from the kernel for an
unrelated file/socket, and the second close silently kills it. this can
cause hard to diagnose data corruption or i/o failures.
fix: use `fd.into_raw_fd()` instead of `fd.as_raw_fd()` to transfer
ownership to the `File` without running `FileDescriptor`'s drop.
Release Notes:
- N/A
We try to remove old excerpt IDs from the companion when mutating
excerpts for a path, but we were incorrectly doing this using the
excerpt IDs for the right-hand side multibuffer _after_ any excerpt
mutations had occurred, causing stale excerpt IDs to accumulate.
Release Notes:
- N/A
- Fix panics caused by reusing cached matches for the wrong side
- Highlight matches on the side that was searched only
- Clear matches in non-searched editor when initiating a new search
Release Notes:
- N/A
---------
Co-authored-by: Eric <eric@zed.dev>
Co-authored-by: Jakub <jakub@zed.dev>
Although this introduces a small possiblity that we will regress the nix
build,
the existing check is very slow and fails very rarely.
Release Notes:
- N/A
Closes#48683
Per the devcontainer spec, `.devcontainer.json` in the project root is
a valid config location. It is only used when no configurations are
found inside `.devcontainer/`.
Extract `find_configs_in_snapshot` for testability and add tests.
Release Notes:
- Added support for `.devcontainer.json` in project root
Currently, whenever Zed has a new version available for download, the
update button shows up in the status bar. Problem is: that status bar
slot can also display other buttons/information, such as problems with
your language server or general errors. In case the two things exist (a
problem and a new version), just one of them would be displayed, which
is not great; you should be able to see both. Additionally, given we
ship new versions pretty often, I've frequently saw feedback about
wanting to hide away the new version button... at least temporarily
while there's no immediate interest in upgrading.
So, this PR tackles all of that. The button to update a new version is
moved up to the title bar, nearby your avatar, and you have the ability
to dismiss, which effectively just moves the button from the title bar
to inside your user menu.
https://github.com/user-attachments/assets/e3f1d76d-9b85-4bee-a70f-e22dd5e7fdb3
Release Notes:
- Moved the update Zed button to the title bar and allowed it to be
dismissed.
---------
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>