Skip to content

Releases: tusharshah21/PRowl

v1.1.1 — gpt-5 / o-series compatibility

28 May 11:58

Choose a tag to compare

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. callLLM now tries the standard params and, only when the API reports an unsupported parameter/value, falls forward to max_completion_tokens and drops temperature. 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.1

v1.1.0 - Compact TOON, caching, Semgrep pre-pass

27 May 16:13

Choose a tag to compare

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 new CONTEXT_LINES input (default 2, set 0 to 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_CACHE input (default true). LLM responses are cached by SHA256 of (model, messages) under the runner's temp directory. Duplicate chunks within a job (common on synchronize events) skip the model call entirely.

Optional Semgrep pre-pass

  • New SEMGREP_RULES input. When set and semgrep is 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.