v0.9.2 - Consolidation and Refactor, Reasoning support and External Prompts
KeepRoLLMing v0.9.2
KeepRoLLMing 0.9.2 is a major internal consolidation release: the proxy now has a canonical streaming path, modular filters, structured observability, stronger end-to-end coverage, and a cleaner public onboarding experience.
Highlights
-
Canonical streaming pipeline
- One authoritative streaming implementation for SSE parsing, accounting, finalization, serialization, and terminal framing.
- Preserves OpenAI-compatible ordering for reasoning, tool calls,
finish_reason, and[DONE]. - Improved cancellation and keepalive handling for long-running streams.
-
Modular filter architecture
- Filters now live under
keeprollming.filters, with each module owning its request/stream behavior and configuration validation. - Route configuration uses the simpler canonical
filters:format. - Built-in modules include system prompts, summarization, multimodal validation, tool rewriting, timestamps, model nudge, tool-loop stopping, and reasoning-loop stopping.
- Filters now live under
-
Observability and debugging
- Event-based PLAIN and JSON logging with clearer transcript rendering.
- Per-request performance events and cache-aware throughput metrics.
- Opt-in raw SSE and request-body capture for focused production debugging.
-
More reliable tool and reasoning flows
- Correct handling of streamed tool-call fragments and terminal
tool_callsfinish reasons. - Nudge continuations preserve the original assistant prefix and retry with the intended request payload.
- Tool/reasoning loop safeguards are covered by dedicated regression tests.
- Correct handling of streamed tool-call fragments and terminal
-
Configuration and routing
- New
config.example.full.yamldocuments the complete supported configuration surface. - System prompts can be loaded from files.
- Route-level
reasoning_effortoverrides support LibreChat/Qwen-style controls. - Public runtime prompt templates are now shipped under
prompts/.
- New
-
Onboarding and developer experience
- Canonical local launcher:
./krm serve,./krm start,./krm status. - Verified Python/venv setup flow and deterministic fake-backend quick start.
- Updated README, configuration, deployment, troubleshooting, and contributor documentation.
- Canonical local launcher:
Validation
- 1480 tests passed
- 27 intentional integration skips
- Clean clone validation completed successfully:
- fresh virtualenv setup
- both configuration examples validated
- fake-backend quick start verified end-to-end
Upgrade notes
This release intentionally removes legacy internal paths and obsolete launcher scripts. Use:
bash scripts/setup.sh
./krm serve --port 8000 --config config.yamlFor configuration, prefer the new canonical filters: route section and use
[config.example.full.yaml](https://github.com/danielebruneo/KeepRoLLMing/blob/v0.9.2/config.example.full.yaml)
as the complete reference.
See the README and configuration guide
for setup and migration details.