@@ -5,6 +5,49 @@ All notable changes to ClojureWasm are documented here. The format follows
55[ SemVer] ( https://semver.org/ ) . SemVer compatibility guarantees start at the
66first stable ` 1.0.0 ` tag; pre-1.0 ` alpha ` / ` rc ` tags may still change surfaces.
77
8+ ## [ 1.2.0] - 2026-07-13
9+
10+ Minor release: the nREPL server is rebuilt to full base-protocol fidelity —
11+ CIDER (and any nREPL editor client) now works end-to-end. Backward-compatible
12+ with 1.1.x.
13+
14+ ### Added
15+
16+ - ** nREPL ` completions ` / ` complete ` ops** — editor completion (CIDER
17+ company/capf) over the live image: vars, macros, namespaces, aliases,
18+ ` ns/var ` qualified prefixes, with type annotations.
19+ - ** nREPL ` lookup ` / ` info ` / ` eldoc ` ops** — arglists + docstrings from var
20+ metadata; CIDER eldoc and ` C-c C-d ` documentation work.
21+ - ** ` *1 ` / ` *2 ` / ` *3 ` / ` *e ` REPL history** — interned in ` clojure.core `
22+ (upstream shape) and rotated by both the CLI REPL and every nREPL session
23+ (per-session isolation: tooling-session evals cannot touch your ` *1 ` ).
24+ - ** nREPL ` ns ` request handling** — evals honor the request namespace
25+ (` namespace-not-found ` per spec); each session keeps its own current
26+ namespace, so an ` in-ns ` in one session never leaks into another.
27+
28+ ### Fixed
29+
30+ - ** CIDER REPL buffer was unusable** — the read loop blocked with complete
31+ requests already buffered, stranding pipelined messages off-by-one; the
32+ REPL prompt never rendered and RET did nothing. The transport now drains
33+ every buffered message before blocking.
34+ - ** Messages over 4 KiB reset the connection** — ` C-c C-k ` (load-file) on any
35+ real file killed the session. The receive buffer now grows (16 MiB frame
36+ cap).
37+ - ** Session identity** — every ` clone ` returned the same id and replies
38+ ignored the request's ` session ` ; CIDER's two-session model (main + tooling)
39+ depends on both. Sessions are now distinct UUIDs and every reply echoes the
40+ request's ` session ` + ` id ` .
41+ - ** Error replies** — errors now carry the same caret-rendered text the CLI
42+ prints (was: a bare Zig error name like ` NameError ` ), as the babashka-style
43+ three-message protocol (` err ` → ` ex ` /` root-ex ` + ` eval-error ` → ` done ` ;
44+ was: bundled in one dict, which nREPL clients mis-route, plus a double
45+ ` done ` ). Evaluation stops at the first failing form (JVM parity).
46+ - ** ` *err* ` output** is captured and streamed to the client alongside ` *out* ` .
47+ - ** ` describe ` ** now derives its ops list from the dispatch table (they can
48+ no longer drift) and reports the real version (was: a stale hardcoded
49+ ` 0.1.0-pre ` ).
50+
851## [ 1.1.0] - 2026-07-12
952
1053Minor release: new REPL / tooling surface and Java-interop additions, a batch
0 commit comments