# Changelog

<!-- Entries are one line per item and section headings repeat for every release,
     so the line-length and duplicate-heading rules don't fit this file. -->
<!-- markdownlint-disable MD013 MD024 -->

## master (unreleased)

### Changes

- [#4116](https://github.com/clojure-emacs/cider/pull/4116): Bump the injected `cider-nrepl` to [0.62.2](https://github.com/clojure-emacs/cider-nrepl/blob/v0.62.2/CHANGELOG.md#0622-2026-07-18), so a dead trace/tap subscriber no longer breaks every traced evaluation, and the debugger no longer shadows the enlighten middleware's evaluator.

### Bugs fixed

- [#4120](https://github.com/clojure-emacs/cider/issues/4120): Fix evaluation, debugging and inspecting in a dependency's source buffer still erroring with "No linked CIDER sessions": `cider-ensure-session` now honors the pinned REPL (and `cider-default-session`) like the rest of the REPL resolution does, instead of only checking sesman's linked sessions.
- [#4118](https://github.com/clojure-emacs/cider/issues/4118): Fix `xref-find-definitions` (`M-.`) onto a dependency's source breaking session linking: the opened buffer is now pinned to the REPL it was navigated from, so evaluation there no longer errors with "No linked CIDER sessions".
- [#4115](https://github.com/clojure-emacs/cider/pull/4115): Fix inline macro stepping (`cider-macrostep`): pressing `e`/`RET` right after `n`/`p` now expands the operator you jumped to, instead of erroring with "No sexp before point to expand".
- [#4114](https://github.com/clojure-emacs/cider/pull/4114): Fix `cider-enlighten-mode` never lighting anything up: the `enlighten` flag was dropped from eval requests built in source buffers (a 1.22 regression), and the value overlays were discarded because enlighten events carry no source text to verify against.
- [#4111](https://github.com/clojure-emacs/cider/issues/4111): Fix the macroexpansion commands refusing to expand `let`, `fn`, `loop` and `letfn` (macros that double as special forms), restore the no-op expansion of non-macro forms (useful for normalizing reader syntax like `::auto/kw` and `#(...)`), and stop gating `cider-macroexpand-all` on the top-level operator (a fully-recursive expansion can reach macros in nested sub-forms).

## 2.0.0 (2026-07-15)

### New features

- Transient menus everywhere:
  - [#4048](https://github.com/clojure-emacs/cider/pull/4048): Each command group now opens a transient menu instead of a bare prefix keymap (`cider-eval-menu` at `C-c C-v`, `cider-doc-menu` at `C-c C-d`, and likewise for test, ns, insert, macroexpand, profile, trace and references), plus a top-level `cider-menu` dispatch; existing keybindings are preserved.
  - [#4061](https://github.com/clojure-emacs/cider/pull/4061): The jack-in/connect keybindings are a transient menu too (`cider-start-menu`, `C-c C-x`), with flags for aliases (`-a`), the ClojureScript REPL type (`-l`) and editing the command before running (`-e`) ([#3317](https://github.com/clojure-emacs/cider/issues/3317)).
  - Add a transient menu to the debugger (`cider-debug-menu`, `?` during a debug session) - its single-key commands are proper named commands now (e.g. `cider-debug-next`), so `M-x` works too - and to the inspector (`cider-inspector-menu`, `m`).
  - Add per-invocation flags to several menus: the printer (`--print-fn=`) in the pretty-print menu ([#4065](https://github.com/clojure-emacs/cider/pull/4065)), test selectors (`--include=`/`--exclude=`) in the test menu ([#4063](https://github.com/clojure-emacs/cider/pull/4063)), refresh modes (`--all`/`--clear`/`--inhibit-fns`) in the ns menu and expansion display (`--ns=`/`--meta`) in the macroexpand menu ([#4062](https://github.com/clojure-emacs/cider/pull/4062)).
- Rich content in evaluation results:
  - [#2476](https://github.com/clojure-emacs/cider/issues/2476): Interactive evaluations now honor content types too: a result carrying rich content (e.g. an image) renders per the new `cider-eval-rich-content-destination` - `inline` (the default, in the result overlay at point), `repl`, `popup` or `nil` (plain values, the previous behavior).
...
...
