Commit Graph
35020 Commits
Author SHA1 Message Date
Jakub Konka c8a7470b63 ztracing: Annotate more callsites that invoke TreeSitter (#47522)
Release Notes:

- N/A
2026-02-11 11:24:04 +00:00
Bennet Bo Fenner ffb72d2de2 agent_ui: Fix editor not getting focused when adding selections (#48926)
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
2026-02-11 11:17:29 +00:00
Xin ZhaoandKunall Banerjee 33e0666a00 docs: Update the formatting section for Python (#48904)
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>
2026-02-11 08:33:41 +00:00
Albab Hasan b7182e1b89 gpui: Fix double-close of fd in read_fd on linux (#48850)
`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
2026-02-11 08:32:39 +00:00
Cole Miller 2361d858dd git: Enable the split diff for everyone (#48912)
Release Notes:

- Added support for viewing diffs in split ("side by side") mode
2026-02-11 06:28:55 +00:00
Cole Miller 44af01c670 git: Standardize nomenclature for side-by-side diff (#48910)
"Unified" for the old view, and "split" for the new one.

Release Notes:

- N/A
2026-02-11 05:33:03 +00:00
Danilo Leal 7073316798 agent_ui: Fix keybinding display inside tooltips in the footer actions (#48909)
- [x] Code Reviewed
- [x] Manual QA

Release Notes:

- Agent: Fixed an issue where keybindings inside tooltips in the message
editor footer actions weren't being displayed.
2026-02-11 02:12:31 -03:00
Cole Miller a4a73c50d0 git: Add click with modifier to set default for side-by-side diff toolbar buttons (#48908)
Release Notes:

- N/A
2026-02-11 05:07:50 +00: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
Cole Miller 56e2ec022c git: Correct logic for updating companion excerpt IDs mapping (#48906)
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
2026-02-11 04:02:02 +00:00
John Tur ba1253c210 Fix path handling regressions on Windows (#48905)
https://github.com/zed-industries/zed/pull/48891 changed `find_worktree`
to use `PathStyle::strip_prefix`, which exposed this bug.

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

Release Notes:

- N/A
2026-02-11 03:23:13 +00:00
Richard FeldmanandMikayla Maki 11d2559091 Switch to a Zed user-agent header for Copilot traffic (#48591)
Follow-up to #48528

Release Notes:

- N/A

---------

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2026-02-11 00:13:14 +00:00
Richard FeldmanandZed Zippy 2f949d14a7 Replace always_allow_tool_actions with tool_permissions.default (#48553)
<img width="1275" height="154" alt="Screenshot 2026-02-10 at 6 55 03 PM"
src="https://github.com/user-attachments/assets/db87fe3f-274b-4bca-b342-b72e651ce57c"
/>
<img width="1275" height="176" alt="Screenshot 2026-02-10 at 6 55 15 PM"
src="https://github.com/user-attachments/assets/4b9a0e70-4897-4736-8cc1-8d1415508f58"
/>

Replaces the boolean `always_allow_tool_actions` setting with a
three-valued `tool_permissions.default` field (`"allow"` / `"confirm"` /
`"deny"`).

Release Notes:

- Introduced per-tool permission settings, including regexes for
controlling when tools may be auto-allowed, auto-denied, or always
require confirmation.
- Replaced the `always_allow_tool_actions` setting with
`tool_permissions.default`.

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-10 18:57:31 -05:00
945e67f5e7 git: Fix searching in the split diff (#48894)
- 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>
2026-02-10 23:29:51 +00:00
John Tur ca431e7500 Reuse existing windows when opening files in remote workspaces (#48891)
Closes https://github.com/zed-industries/zed/issues/42366

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

Release Notes:

- Opening files with the Zed CLI will reuse existing windows for remote
workspaces.
2026-02-10 17:48:54 -05:00
Cole MillerandJakub Konka fed7eae3c1 git: Fewer buffer diff snapshots (#48886)
Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
2026-02-10 20:20:57 +00:00
Conrad Irwin 7a85b88786 Don't run nix checks on PRs (#48849)
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
2026-02-10 13:15:25 -07:00
Oliver Azevedo Barnes 26fbb68aef devcontainer: Support .devcontainer.json in project root (#48814)
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
2026-02-10 11:42:26 -08:00
Danilo LealandConrad Irwin 1725812ba7 workspace: Move the update Zed button to the title bar (#48467)
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>
2026-02-10 16:03:46 -03:00
Mikayla Maki 45c0a1b2ed Canonicalize extension paths (#48632)
Release Notes:

- N/A
2026-02-10 10:38:47 -08:00
Ben KunkleandTom 315babdcdb ep_cli: Include request_id in rated events and tag rated examples with experiment name and prompt format (#48883)
Closes #ISSUE

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

Release Notes:

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

Co-authored-by: Tom <tom@zed.dev>
2026-02-10 11:44:16 -05:00
Ben KunkleandTom 0db002e0c9 ep_cli: Add sync deployments command (#48880)
Closes #ISSUE

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

Release Notes:

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

---------

Co-authored-by: Tom <tom@zed.dev>
2026-02-10 11:31:31 -05:00
Richard Feldman b0243666d7 Un-feature-flag granular tool permissions (#48881)
The granular tool permissions feature is now generally available, and
this flag is no longer used anywhere.

Release Notes:

- N/A
2026-02-10 16:12:37 +00:00
Richard FeldmanandDanilo Leal e2e49afb4e Tool permissions settings UI improvements (#48796)
Various improvements to settings UI for granular tool permissions,
extracted from a larger change:

- Add **copy_path** tool to the permissions configuration list
- Replace local `RuleType` enum with `ToolPermissionMode` from the
settings crate
- Improve rule summary display: singular "1 rule" instead of always "1
rules", show invalid pattern count
- Add **terminal command parsing preview** — uses `extract_commands` to
split chained commands (`&&`, `||`, `;`) so the preview matches the real
permission engine's behavior
- Add **verdict label** showing the authoritative permission decision
(Allow/Deny/Confirm)
- Log disagreements between the pattern preview and the engine's
authoritative verdict
- Display **invalid regex patterns section** with compilation error
details
- Add regex validation error banner (dismissible) on tool config pages
- Add **compile-time validated** `tool_index` for macro-generated render
functions (fails to compile if a tool ID is misspelled)
- Update move_path/copy_path regex explanations for multi-input tools
- Add test validating all tools have `ToolInfo` entries or are in the
exclusion list
- Add `clear_on_confirm()` — clears the input after confirming (used for
"add pattern" inputs)
- Add editor reconciliation fix — when settings change externally (e.g.
editing settings.json), syncs the cached editor text when not focused
- Rename "Configure Tool Rules" → "Tool Permissions" in the settings
sidebar
- Update description text
- Add `regex_validation_error` field to `SettingsWindow` (cleared on
page navigation)

(No release notes because granular tool permissions are behind a feature
flag.)

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2026-02-10 10:30:33 -05:00
Piotr Osiewicz b179d55ac5 ci: Fix builds on Windows following mtime finnickery (#48878)
- **Revert "vim: Make `:bdelete` use new
`workspace::CloseItemInAllPanes` command (#48592)"**
- **Revert "linux: Forward env vars starting with ZED_ to flatpak-spawn
(#48118)"**
- **ci: Fix builds on hel1-windows-1**


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

Release Notes:

- N/A
2026-02-10 16:17:49 +01:00
Marco Mihai CondracheandSmit Barmase 174ba08642 Improve performance when detecting JSX auto close (#48622)
Helps #48601

<img width="1649" height="1071" alt="image"
src="https://github.com/user-attachments/assets/ff3dfee0-cc65-430f-a5fa-b4b4c36e8183"
/>


`syntax_layers` does some offset conversion that might require getting
some chunks from the rope, which is quite expensive. For detecting
autoclose, we only use the language from those syntax layers, so having
a short path that skips all the conversion should skip some sum_tree
traversals.
   
I'm pretty sure other places would benefit from this as well, but I
haven't searched them yet.

Release Notes:

- N/A

---------

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-02-10 20:46:28 +05:30
Smit Barmase 77f23b494c terminal: Fix Spawn Task and Agent terminal hangs on macOS (#48877)
Follow-up to #47420 and #44193.

#47420 fixed child-exit status handling via upstream alacritty change
(https://github.com/alacritty/alacritty/pull/8825). However,
stable/preview/nightly builds still reproduced hangs that dev builds did
not.

The root cause matches #44193: spawned children inherit crash-handler
Mach exception ports and hang. We already reset exception ports in
`util::command::new_smol_command` and
`util::set_pre_exec_to_start_new_session`, but PTY child spawning in
`alacritty_terminal` was not covered.

This PR updates `alacritty_terminal` to include PTY `pre_exec`
exception-port reset:

https://github.com/zed-industries/alacritty/commit/9d9640d4e56d67a09d049f9c0a300aae08d4f61e

Upstream:
- https://github.com/alacritty/alacritty/pull/8835

Release Notes:

- Fixed terminal tasks hanging on macOS when a spawned process is killed
by a signal.
2026-02-10 20:11:20 +05:30
David Baldwinanddino f10827d3dd vim: Make :bdelete use new workspace::CloseItemInAllPanes command (#48592)
Add `workspace::CloseItemInAllPanes` action that closes the active
item's buffer in every pane where it's open, matching Vim's `:bdelete`
semantics. Pane layout is preserved, only the buffer is removed.

`:bd` respects pinned tabs, `:bd!` overrides them and skips save.

Also refactors the tab switcher's close button to use the new
`close_items_with_project_path` method, removing duplicated logic.

Release Notes:

- Vim: `:bd` (`:bdelete`) now closes the file in all panes where it's
open
- Added `workspace::CloseItemInAllPanes` action to close a file across
all panes

---------

Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-02-10 14:32:24 +01:00
Piotr Osiewicz 967b93a975 Revert "ci: Restore mtime of source files to the git log time" (#48874)
Reverts zed-industries/zed#48607

The problem we've ran into is that CI started reusing already-cached
runs from newer branches (that did not have that change pulled in).

Yet this unveiled another potential issue, which is that relying on
mtime might make it so that an artifact for a different (newer) commit
would be reused by an unrelated run of CI.

The answer is: checksum-based-freshness.

Release Notes:
- N/A
2026-02-10 14:32:01 +01:00
refi64 76165cc36b linux: Forward env vars starting with ZED_ to flatpak-spawn (#48118)
Otherwise, it's not easily possible to set *any* of these variables when
running Zed.

Release Notes:

- Added forwarding of `ZED_*` environment variables when using the
Flatpak
2026-02-10 14:31:46 +01:00
Ben Brandt 42c949c7f7 acp: Only use the resumed cwd if it is in the workspace (#48873)
I think we may want to revisit in the future which history sessions we
show, but given the current setup and behavior, I think it makes sense
to only use the cwd if it matches in the worktrees to avoid issues with
reading and editing files outside of there.

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

Release Notes:

- N/A
2026-02-10 13:03:27 +00:00
MohibShaikh 7da90d8a44 Bump tree-sitter-go to v0.25.0 (#48870)
Fixes #48357

## Summary

- Bumps `tree-sitter-go` from `0.23` to `0.25`
- This fixes wrong syntax highlighting with chained indexing in Go (e.g.
`a[b][c] = 0` being incorrectly parsed as a type instantiation
expression instead of an index expression)
- The upstream fix
([tree-sitter/tree-sitter-go#160](https://github.com/tree-sitter/tree-sitter-go/issues/160))
landed in v0.25.0, which gives index expressions a higher dynamic
precedence over type instantiation expressions
- Updated `runnables.scm` to account for the new `statement_list` node
that wraps statements inside blocks in tree-sitter-go 0.25

## Test plan

- [x] `cargo test -p languages` — all 47 tests pass
- Verified that existing Go runnables queries (table tests, subtests,
test detection) work with the updated grammar

Release Notes:

- Fixed wrong syntax highlighting with chained indexing in Go (e.g.
`a[b][c]`) by bumping tree-sitter-go to 0.25
2026-02-10 13:47:29 +01:00
Jason Lee b5d6c3d759 gpui: Impl Cow<'static, str> to IntoElement (#48585)
Release Notes:

- N/A

Make this change to let `div().child(...)` support any types that have
impl `Into<SharedString>`, for example: `Cow<'static, str>`.

```rs
// From somewhere get a `Cow<'static, str>` type.
let label = Cow::Borrowed("Hello");

div()
  .child(label);
```
2026-02-10 13:41:26 +01:00
Piotr Osiewicz 1721ab736a ci: Restore mtime of source files to the git log time (#48607)
Release Notes:

- N/A
2026-02-10 12:52:42 +01:00
ozacodandozacod 762523c32a languages: Change syntax highlighting for C/C++ preprocessor directives (#48109)
This changes the highlight capture for preprocessor directives from
`@keyword.directive` to `@preproc` in both C and C++.

PR #44043 changed C from `@keyword` to `@keyword.directive` for
consistency with C++, but `@keyword.directive` is still semantically
wrong. Preprocessor directives are not language keywords — they are
instructions to a separate preprocessing phase that runs before
compilation.

Using `@preproc` reflects this distinction and allows themes to style
them independently from actual language keywords like `const`,
`struct`,`if`, etc. This is consistent with how editors like CLion
handle preprocessor directives.

Before:
<img width="710" height="653" alt="before"
src="https://github.com/user-attachments/assets/5c02fc06-bc19-4112-ae53-ad72eb8044e3"
/>

After:
<img width="710" height="653" alt="after"
src="https://github.com/user-attachments/assets/2490e796-7286-4fbb-81b0-387f551cde8f"
/>

Release Notes:

- C/C++: Syntax highlighting for preprocessor directives can now be
tweaked with @preproc capture group.

Co-authored-by: ozacod <ozacod@users.noreply.github.com>
2026-02-10 12:44:23 +01:00
2e0da39aa0 agent: Move subagent spawning to ThreadEnvironment (#48381)
TODO
- [x] Cancellation
- [x] Show subagent card as soon as tool_name == "subagent"
- [x] Keybinding for closing subagent full screen view
- [x] Only fire subagent notifications when appropriate
- [x] Fix tests

Release Notes:

- N/A

---------

Co-authored-by: Cameron <cameron@zed.dev>
Co-authored-by: Tom Houlé <tom@tomhoule.com>
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-02-10 11:26:01 +00:00
Dino d7de3e4cff vim: Make end of line infallible (#48867)
When using `$` to move to the end of line (`vim::EndOfLine`), the
`vim::motion::Motion.move_point` method checks whether the new point,
that is, the point after the motion is applied is different from the
point that was passed as a method argument. If the point is not
different, the point and selection goals are only updated if
`vim::motion::Motion.infallible` returns true for the motion in
question.

In short, this means that, if the cursor was already at the end of the
line, and it got there using `vim::Right`, for example, the selection
goal wouldn't actually be set to
`SelectionGoal::HorizontalPosition(f64::INFINITY)`, so when the cursor
was moved to a shorter line, it wouldn't be set at the end of that line,
even though `$` had been used.

This commit updates `vim::motion::Motion.infallible` to ensure that, for
`vim::motion::Motion::EndOfLine`, it returns `true`, so that the
selection goal is always updated, regardless of whether the cursor is
already at the end of the line.

Closes #48855 

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

Release Notes:

- vim: Fixed `$` not sticking to end-of-line on vertical motions
(`j`/`k`) when the cursor was already at the end of the line via `l` or
arrow keys
2026-02-10 10:33:50 +00:00
Lev Zakharov b379ce2d12 languages: Exclude TestMain from Go runnables (#46575)
Exclude special [TestMain](https://pkg.go.dev/testing#hdr-Main) function
from Go runnables.

Release Notes:

- Excluded `TestMain` function from Go runnables.
2026-02-10 09:12:55 +00:00
Cole Miller a19c8b24e5 git: Optimize patch_for_range functions (#48852)
These are heavily used by the side-by-side diff. Previously, we were
iterating over all hunks for each call. Now we skip hunks that can't
affect the provided range.

Release Notes:

- N/A
2026-02-10 01:19:01 -05:00
Conrad Irwin 846b1ae766 Expose the scheduler executor for ex (#48854)
Release Notes:

- N/A
2026-02-10 05:27:20 +00:00
Kyle Kelley 5844235699 repl: Bump jupyter-protocol to v1.1.1 (#48848)
Bringing in the handling of the lack of execution count noticed while
testing other kernels. xref:
https://github.com/zed-industries/zed/pull/48837

Release Notes:

- N/A
2026-02-10 03:59:21 +00:00
Kyle Kelley ed386081db repl: Be more resilient with message parsing (#48837)
Closes #21529

Show a toast when a message from a Jupyter kernel doesn't parse
properly.

Discovered that some kernels don't include their execution count in an
`ExecuteReply` which is required in the jupyter protocol. Upstream I'll
go make that field either be an `Option` or just stick
`#[serde(default)]` on it so it's not a change in the interface.

Release Notes:

- Show error when parsing a message from a Jupyter kernel fails
2026-02-09 22:54:46 -05:00
Marshall Bowers 31ead77fdb collab: Remove unused Config fields (#48836)
This PR removes the unused fields from the `Config` struct in Collab.

Release Notes:

- N/A
2026-02-10 01:21:51 +00:00
Danilo Leal f3bb37bd78 ui: Improve icon preview visualization (#48834)
Just improving the visualization for all icons in the component preview;
I think this will make it easier to quickly skim for an existing icons.

Release Notes:

- N/A
2026-02-10 00:47:57 +00:00
Kyle Kelley a7870cc9d5 repl: Use split() on shell and control dealer sockets (#48823)
Hot on the heels of https://github.com/zed-industries/zed/pull/48817 I'm
bringing the best improvement to the repl underneath: `split()`-able
sockets! Much more will be unlocked by having this.

This split the shell and control `DealerSocket` connections into
independent send/recv halves using the new `split()` API from zeromq
0.5.0 and runtimelib 1.x. This also nicely cleaned things up so we could
have a single `select!` loop over iopub, shell, and control recv halves.
That replaces three separate recv tasks.

This likely closes some issues for certain kernels that would get stuck
either during startup or other flows due to them not sending replies to
specific requests. I'll see if I can find issues around this and update
the release notes after.

This allows us to unlock some nifty new things we can do on the shell
socket, particularly autocompletion for in-memory values, stdin support,
and others. I _think_ it also help with sending and receving
`KernelInfo`, which not all kernels do properly at the start. This makes
us a bit more resilient to errant kernels.

Release Notes:

- N/A
2026-02-09 18:12:00 -06:00
ozacod 1f602d5b69 languages: Fix block comment indentation for C/C++ (#47810)
Before:
<img width="426" height="128" alt="before"
src="https://github.com/user-attachments/assets/89f84f4b-4810-4d11-b8a2-c841d8506cef"
/>

After:
<img width="437" height="125" alt="after"
src="https://github.com/user-attachments/assets/a63c5265-8f1b-4926-a334-93effad22f2b"
/>

Release Notes:

- Fixed for block comment indentation problem for C/C++
2026-02-10 01:05:46 +01:00
ozacod 642bb888bd languages: Fix C/C++ outline for function definitions and declarations with mixed storage and type qualifiers (#47500)
Before:
<img width="1002" height="228" alt="before"
src="https://github.com/user-attachments/assets/94c5d0b7-a467-4bfe-8eaf-5a2c4b3cb7ea"
/>

After:
<img width="1002" height="228" alt="after"
src="https://github.com/user-attachments/assets/73d049d2-4dd1-40a4-ac21-984ca3fd32ee"
/>

Release Notes:

- Fixed C/C++ outline for function definitions and declarations with
mixed storage and type qualifiers.
2026-02-10 01:04:15 +01:00
feeiyu 3fded5832f Fix incorrect first line detection for libstdc++ files (#48351)
https://github.com/zed-industries/zed/pull/48250#issuecomment-3846774856

To ensure the fix covers all affected files, I have checked all C++
files without extensions using the following command:
```bash
find /usr/include/c++ -type f | grep -v '.h' | grep -v '.cpp' | grep -v '.tcc' | xargs head -1 | zed -
```

<details>
  <summary>Click to expand images</summary>
<img width="940" height="935" alt="image"
src="https://github.com/user-attachments/assets/d0346ad4-d9f7-47d5-a85e-cb574dacf290"
/>

<img width="956" height="939" alt="image"
src="https://github.com/user-attachments/assets/d9e872fc-f2b8-4fff-b5a9-99e8a4fc21a3"
/>

<img width="953" height="940" alt="image"
src="https://github.com/user-attachments/assets/dee53cd4-d598-4d65-918d-353b037cdf1b"
/>

<img width="956" height="938" alt="image"
src="https://github.com/user-attachments/assets/777b899c-db25-4dc8-b4a5-fafe28cc14a4"
/>

</details>

Release Notes:

- N/A
2026-02-10 01:02:23 +01:00
ozacod 46fd45fc62 languages: Add attribute highlighting in C++ (#47825)
Before:
<img width="587" height="360" alt="before"
src="https://github.com/user-attachments/assets/85989888-2fc0-43aa-87ca-01d2c3101484"
/>

After:
<img width="591" height="357" alt="after"
src="https://github.com/user-attachments/assets/9e1ceccf-7890-43f7-a0b9-938daa161d13"
/>

Release Notes:

- Added attribute highlighting in C++
2026-02-10 01:01:56 +01:00
Ben Kunkle 83e847cbd9 Fix panic in zeta1 prompt parsing (#48822)
Closes #48712

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

Release Notes:

- Fixed a panic when parsing predictions made by zeta1
2026-02-09 18:48:15 -05:00