@@ -4,6 +4,37 @@ All notable changes to dirge are documented here. The format follows
44[ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) and the project
55adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
66
7+ ## [ 0.21.5] - 2026-08-03
8+
9+ ### Fixed
10+ - ** The agent could never connect to nREPL on its own.** With no connection,
11+ ` nrepl_eval ` returned "Use ` /nrepl-connect ` first" — but slash commands are
12+ typed by the user, and no harness call or builtin tool lets the agent issue
13+ one. The plugin registered no connect tool either, so the model's only move
14+ was to ask you and wait, which is exactly where sessions stalled. Auto-connect
15+ compounded it: ` on-init ` reads ` .nrepl-port ` once at startup, so a REPL the
16+ agent started itself a few turns later was never picked up even though the
17+ port file was sitting right there.
18+
19+ ` nrepl_eval ` now re-reads ` .nrepl-port ` and connects on demand, and there's
20+ an ` nrepl_connect ` tool for a non-default host/port or a reconnect after a
21+ server restart. It accepts an unquoted port, which a model writes at least
22+ as often as it quotes one — the old string-only extractor dropped those
23+ silently. The error text and the injected skill prompt name the tools;
24+ slash commands remain for interactive use.
25+
26+ ### Security
27+ - ** A worktree writer no longer inherits the LLM auto-approver.**
28+ ` for_working_dir ` drops the parent's session allowlist on purpose — a grant
29+ made against the parent checkout doesn't mean the same thing under a
30+ worktree root — but it kept ` approval_provider ` 's evaluator. Together those
31+ invert the trust model: your own "allow always" decisions vanish while the
32+ thing that can auto-allow * without asking you* survives. Calls you had
33+ already settled came back as ` Ask ` and the evaluator answered on your
34+ behalf, so a background writer ran with a weaker human backstop than the
35+ session that spawned it. Worktree writers now prompt you. Prompt deny-lists
36+ still propagate — they're terminal and path-independent.
37+
738## [ 0.21.4] - 2026-08-03
839
940### Security
0 commit comments