Skip to content

engrim 1.2.1 — runs cleanly on Windows, macOS and Linux

Choose a tag to compare

@timgordontg timgordontg released this 12 Aug 14:54
· 14 commits to main since this release

A fresh install on Windows surfaced three failures. All of them were silent: engrim setup
printed five green checkmarks while nothing it wired could actually run.

Fixed

  • Hook commands the shell couldn't run. setup interpolated the Windows binary path unquoted
    into a POSIX command. bash read C:\Users\...\engrim.EXE backslashes as escapes and the command
    collapsed to C:UserstimgoAppData... — not found — and the trailing 2>/dev/null || true
    swallowed the error. Every hook was a silent no-op. Paths are now forward-slashed and quoted,
    which also fixes install paths containing spaces on macOS and Linux.
  • setup duplicated its hooks on every run. The idempotency marker engrim hook never matched
    engrim.EXE hook, so each run appended another hook group. Matching now normalises separators,
    quotes and .exe, and still recognises hooks written by earlier versions.
  • UnicodeEncodeError on every piped command. Windows gives a non-console stdout cp1252, and the
    status bar leads with an emoji — so statusline, context and stats crashed on every refresh
    while looking perfect in a terminal. stdin had the mirror bug: the minder silently injected
    nothing for prompts it couldn't decode. All three streams are UTF-8 now.
  • Setup crashed on a CLAUDE.md or settings.json containing an emoji (text-mode open() used the
    locale codec) — and reported it as "settings.json is not valid JSON".
  • Project tags could split one project into two memory buckets on Windows (C:\p from getcwd vs
    c:/p from a hook payload). Normalised there; POSIX tags are untouched.
  • The plugin install route was broken end to end on Windows. A venv puts entry points in
    Scripts/*.exe; only bin/ was ever checked, so the bootstrap failed its own -x test and all
    four hooks no-opped forever. Both layouts are resolved now.
  • The plugin and marketplace manifests still pinned 1.1.0 against a shipped 1.2.0, so the plugin
    installed a version behind the one being announced.

Root cause

CI was Linux-only. It now runs on Windows and macOS as well, and smoke-tests the commands
through pipes the way Claude Code actually invokes them.

17 new tests (103 total). The 10 that reproduce these bugs fail against the unpatched source.

Nothing changed for existing Linux and macOS installs beyond the quoting fix, which is backward
compatible — re-running engrim setup will not duplicate hooks written by any earlier version.