Skip to content

v0.1.2: The Session-Affine Process Pool

Choose a tag to compare

@HackStrix HackStrix released this 07 Mar 21:42
· 266 commits to main since this release

Release Notes: v0.1.2

Release Date: March 07, 2026

This release focuses on critical concurrency bug fixes, API improvements for worker health checks, and comprehensively expanding documentation and examples.

🐛 Bug Fixes

  • Pool Scaling Race Condition: Fixed a critical bug in Pool.maybeScaleUp() where highly concurrent Acquire calls could circumvent the max worker limit, causing the pool to spawn excessive workers and crash when attempting to release them back into a full channel. We introduced a pendingAdds concurrency counter to strictly bound scaling.

✨ New Features & API Improvements

  • ProcessFactory Enhancements: Added flexible configuration options for ProcessFactory:
    • WithEnv(kv string): Inject custom environment variables (supports {{.Port}} templating).
    • WithHealthPath(path string): Customize the HTTP path polled for liveness (defaults to "/health").
    • WithStartTimeout(duration): Configure the maximum time allowed for the process to successfully start and report healthy.
  • Robust Health Polling: Migrated health check polling from a static 30-retry limit to a clean, context-aware timeout mechanism.

📚 Documentation & Examples

  • Comprehensive README: Added a complete README.md covering Herd's core invariants, architecture, and feature set.
  • Ollama Multi-Agent Gateway: Introduced a fully fleshed-out example in examples/ollama demonstrating how to use Herd as a session-affine LLM proxy.
    • The README was heavily updated to showcase this runnable code, along with curl usage queries.
    • Added a concurrency stress-test suite (TestConcurrentChat) for the Ollama integration.

⚙️ Chores

  • Go Version Compatibility: Updated go.mod files to ensure backward compatibility with Go 1.21 / 1.22.