Revision history for Langertha-Knarr

0.006     2026-03-10 19:54:03Z

  - Resolve configured engines through both `Langertha::Engine::*` and
    `LangerthaX::Engine::*` (including fully-qualified class names).
  - Add router test coverage for `LangerthaX::Engine::*` custom engines.
  - Tighten dependency minimums in cpanfile:
    `Langertha 0.307`, `Mojolicious 9.0`.
  - Update README and POD docs to describe custom engine resolution order.
  - Dockerfile: add optional `LANGERTHA_SRC` build arg to inject unreleased
    Langertha source when CPAN indexers lag.
  - dist.ini release Docker build supports optional
    `KNARR_DOCKER_BUILD_ARGS='...'` passthrough for temporary build overrides,
    including GitHub release-dist URL examples and a note against
    `/archive/refs/*` source archives for dzil dists.
  - dist.ini now uploads `Langertha-Knarr-%v.tar.gz` to GitHub releases
    (`Getty/langertha-knarr`) via `gh` during post-release hooks.

0.005     2026-03-10 14:48:05Z

  - Add primary Knarr normalization modules (core-backed):
    `Langertha::Knarr::Input`, `Langertha::Knarr::Output`, `Langertha::Knarr::Metrics`.
  - Bump `Langertha` dependency to `>= 0.306`.

  - Add request policy hooks in `build_app`:
    - `before_request` hook to inspect/mutate/block requests before routing
    - `api_key_validator` hook for dynamic per-request key authorization
  - Add cross-format tool bridging between OpenAI and Anthropic request/response shapes
    (including `tools`, `tool_choice`, `tool_calls`, `tool_use`, and `tool_result`)
  - Add Hermes tool XML bridging:
    - Parse `<tool_call>{...}</tool_call>` into OpenAI `tool_calls`
    - Parse `<tool_call>{...}</tool_call>` into Anthropic `tool_use` blocks
  - Route OpenAI `tools` through Hermes-capable engines by normalizing tool schema
  - Extend proxy/unit/integration tests for hook behavior and tool-bridge paths

0.004     2026-03-03 05:22:38Z

  - Fix routing priority: passthrough before default engine fallback
  - Add passthrough-only mode (no API keys needed)
  - Add KNARR_TRACE_NAME / --trace-name for custom Langfuse trace names
  - Support LANGFUSE_BASE_URL env var (in addition to LANGFUSE_URL)
  - Strip quotes from env values (Docker --env-file compatibility)
  - Strip Accept-Encoding/Content-Encoding in passthrough (no gzip issues)
  - Rewrite POD: passthrough proxy as primary use case
  - Fix Langertha dependency version to 0.303
  - Fix author URL

0.001     2026-03-03 04:00:32Z

  - Initial release
  - Multi-format LLM proxy: OpenAI, Anthropic, Ollama
  - Passthrough mode with Langfuse tracing
  - Docker container mode with auto-detect from ENV
  - CLI: start, container, models, check, init
