v11.4.0 — EISDIR fix + regression guards for pre-existing TS errors
Summary
Two user-reported issues addressed:
nreki_code action:"read"/"compress"crashed withEISDIRwhen the path was a directory. Both handlers now stat the path first and return a structured error pointing to the correct tool. Same fix also catchesENOENTfor missing files.- Pre-existing TS errors in an edited file appeared to block unrelated edits. Investigation showed the differential check (
count > baseline.get(fingerprint)insrc/kernel/backends/ts-compiler-wrapper.ts:611) was already working in v11.3.x — the user's installed binary was likely an older release. v11.4.0 ships regression tests that pin the same-file scenario so a refactor cannot silently break the filter.
Why
The EISDIR was a clean, reproducible bug — fs.readFileSync on a directory throws an opaque error that surfaced as an MCP server crash with no actionable user-facing message.
The pre-existing-error report turned out to be a non-bug in v11.3.x, but the existing test suite only covered the cross-file case (error in bad.ts, edit in good.ts). The user's actual scenario — pre-existing error in fillTemplate.ts, edit a different symbol in fillTemplate.ts — was not pinned by any test. This release adds four explicit tests for that exact case.
Changes
Fixed
handleRead/handleCompressnow reject directory inputs cleanly with a hint pointing tonreki_navigate action:"outline" / "fast_grep" / "search". ENOENT also gets a structured "Path not found" message.
Added
tests/read-compress-directory.test.ts— 4 tests covering directory + missing-file in both handlers.tests/kernel-pre-existing-errors.test.ts— 4 tests pinning same-file pre-existing-error + unrelated-symbol edit (TS2322, TS1192-family, same-symbol no-change, counter-test for genuine new error).docs/furia-v11.4.0-review.md— adversarial Q1-Q5 review covering why Phase 1 added only tests, why Option A (explicit error) beats Option B (auto-redirect), and two residual gaps logged for a future iteration.
Templates
templates/CLAUDE.md,templates/AGENTS.md,templates/SKILL.mdupdated with notes on the differential check semantics and the new directory-input behavior.
Tests
1 423 passed / 3 skipped / 0 failed. +8 tests vs v11.3.1.
Migration
No API change, no file format change, no breaking signature.
🤖 Generated with Claude Code