v1.2.8
Feature-bearing 1.2.x release. All changes are additive with zero default-behavior change; 1.3.0 remains reserved for native tool calling (#197) and 1.4.x for Forgejo support (#229) — this release lands infrastructure for both lines that nothing invokes yet.
Features
force_reviewinput (#232, refs #231): bypass the diff-unchanged guard for on-demand re-reviews when the diff is unchanged but something the fingerprint can't see has changed (a model repointed behind a stable alias, updated standards). Ships withscripts/parse_review_command.sh— a tested authorization gate for a comment-triggered/ai-reviewcommand that requires the commenter to holdwrite/adminvia the collaborators API (author_association alone is never trusted).platforminput + platform seam (#236, refs #221/#229): every host-forge API call now routes throughscripts/platform_api.sh/pr_reviewer/platform.py.auto(default) detects fromGITHUB_SERVER_URL; the github backend reproduces the exact pre-seamghinvocations (byte-identical output, verified by a 32-case command-line suite). Forgejo mode delegates core PR I/O to the new backend and fails loudly on not-yet-implemented operations.- Forgejo REST backend for core PR I/O (#234, refs #222):
pr_reviewer/forgejo_backend.py, field shapes live-verified against a real Forgejo instance (Codeberg), including correct fork detection viahead.repo.full_name(fails closed on deleted forks).
Internal (inert until 1.3.0)
- SSE tool-call reassembly (#233, refs #201): streamed tool-call deltas for both API formats reassemble into the OpenAI non-streaming shape;
function.argumentsis always the JSON-encoded string. - Multi-turn conversation builder (#235, refs #202): append-only neutral state with OpenAI/Anthropic wire rendering, per-API tool schemas, and a verdict-turn mode that drops tools and stays wire-valid on both APIs.
With no new inputs set, output is byte-identical to v1.2.7.