Skip to content

v0.2.0 — cross-platform (Windows) portability hardening

Choose a tag to compare

@phense phense released this 09 Jul 12:07
· 155 commits to main since this release

Cross-platform (Windows) portability hardening. These changes remove the hard blockers to importing and running the core on non-POSIX platforms and are verified on macOS/Linux. Native Windows is not yet verified end-to-end — background-job scheduling (Task Scheduler) and a real-Windows test pass remain.

Fixed

  • Cross-platform worker lock. The single-writer singleton no longer does an unconditional top-level import fcntl, which made agentic_rag.worker unimportable on Windows. The non-blocking exclusive lock is now dispatched by platform — fcntl.flock on POSIX, msvcrt.locking on Windows — behind an identical "return a held handle or None, never crash" contract.
  • UTF-8 subprocess decoding. Output of the claude CLI is now decoded as strict UTF-8, so non-ASCII content (e.g. German umlauts) is no longer mangled on platforms whose default text encoding is not UTF-8 (Windows cp1252). A non-UTF-8 byte fails loudly rather than being silently replaced.
  • PATH resolution of the claude CLI. The LLM seam and MCP registration resolve the CLI through shutil.which before spawning, so a bare claude also resolves where the executable is a claude.cmd shim (Windows).

See docs/03-quick-start.md → Platform support for how to run on WSL2 or native Windows.

Full Changelog: v0.1.0...v0.2.0