Releases: tusharshah21/PRowl
Releases · tusharshah21/PRowl
v1.1.1 — gpt-5 / o-series compatibility
Fixes
Newer OpenAI models (gpt-5, o-series) now work as the reviewer/fixer.
These models reject the legacy max_tokens parameter and a custom temperature, and they spend their token budget on hidden reasoning before emitting output. PRowl previously always sent max_tokens + temperature with a small budget, so the call failed (or came back empty) and the review silently produced no comments.
- Adaptive request params.
callLLMnow tries the standard params and, only when the API reports an unsupported parameter/value, falls forward tomax_completion_tokensand dropstemperature. The working shape is memoized per model. - Reasoning-model token headroom. The reasoning shape starts with a larger budget and auto-retries with a grown budget if a response comes back empty and truncated (
finish_reason: "length"). - No model-name hardcoding, so OpenAI-compatible providers that expect
max_tokens(Groq, DeepSeek, Ollama, OpenRouter, etc.) are unaffected.
Upgrade
No config changes required. Bump your pin to @v1.1.1 (or stay on @v1 for the latest):
uses: tusharshah21/PRowl@v1.1.1
Full changelog: https://github.com/tusharshah21/PRowl/compare/v1.1.0...v1.1.1v1.1.0 - Compact TOON, caching, Semgrep pre-pass
Changelog
1.1.0
Token efficiency
- Rewrote the TOON encoder as a true tabular format (
F:<path>header +C[N]{op,ln,code}:schema declared once, then CSV-style rows with one-char op codes). - Encoder now operates at the file level instead of per chunk, so the file header is emitted once.
- Context-line trimming: unchanged lines beyond ±N of any
+/-are dropped. Configurable via the newCONTEXT_LINESinput (default2, set0to drop all context). - Benchmarked result on a representative two-file diff: ~45% smaller than the previous JSON encoder, ~20% smaller than the raw unified diff.
Response caching
- New
ENABLE_CACHEinput (defaulttrue). LLM responses are cached by SHA256 of(model, messages)under the runner's temp directory. Duplicate chunks within a job (common onsynchronizeevents) skip the model call entirely.
Optional Semgrep pre-pass
- New
SEMGREP_RULESinput. When set andsemgrepis on PATH, findings are passed to Agent 1 as priors. Agent 1 still verifies before flagging, reducing false positives.
New provider examples
- Ollama (self-hosted, fully private):
http://localhost:11434/v1 - GitHub Models (free for public repos):
https://models.inference.ai.azure.com
Fix-quality
- Agent 2 now receives a snippet of the surrounding file (±15 lines) when the file is available on the runner, giving it imports / enclosing function signature for better fix accuracy.
1.0.0
Initial release.