Skip to content

Bundle OpenCodeReview v1.12.12 (accept unlisted models) - #4

Merged
testudor merged 2 commits into
mainfrom
chore/ocr-1.12.12
Oct 7, 2026
Merged

testudor merged 2 commits into
mainfrom
chore/ocr-1.12.12

Conversation

@testudor

@testudor testudor commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Why

pruefbyte 0.1.0 bundles OpenCodeReview (ocr) v1.12.10. That version rejects any --model that is missing from a built-in provider's model list. A CI review configured with provider: openai-responses, model: gpt-6.1-sol fails with:

Error: resolve LLM endpoint: resolve OCR config file: model "gpt-6.1-sol" is not available for provider "openai-responses"; available models: gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna

What changed in ocr (v1.12.10 → v1.12.12)

The diff is 6 commits (compare):

  • v1.12.12, fix(llm): allow unlisted OpenRouter model overrides (#1610)
    • In internal/llm/resolver.go, a --model that is not listed for a built-in provider no longer fails. ocr now prints [ocr] WARNING: model "…" is not in the suggested models for provider "…"; the provider will validate it and sends the request.
    • Custom providers keep the old check.
    • The openai-responses list itself is unchanged.
  • v1.12.11, feat(allowlist): add Jinja template support (#1056)
    • .jinja2 and .j2 files are now reviewed, with a new built-in rule (jinja.md).
    • Repositories with Jinja templates will see findings on them.
  • v1.12.11, other changes: they don't affect pruefbyte.
    • IDE extensions: provider catalogs generated from the Go registry (#1212), merge-commit file listing (#1544)
    • viewer pagination (#1576)
    • Windows make output name (#1573)
    • docs

Checked against what pruefbyte relies on:

  • Asset names and sha256sum.txt format: unchanged. The Dockerfile and go run ./internal/ocrbin/fetch work as before.
  • Flags and config keys pruefbyte passes: unchanged. No ocr CLI code changed; --provider/--model keep their meaning.
  • JSON output and rule-file format: unchanged. No review or output code changed. The rule schema is the same, and the only addition is the Jinja system rule.
  • Minimum git version: still 2.41.
  • Provider registry: identical in both versions (29 presets). pruefbyte's builtinProviders already matched it; only the version in its comment changes.

Changes in this PR

  • internal/ocrbin/VERSION: v1.12.10 → v1.12.12. This file drives both the Docker image and the release binaries.
  • Version references in the comments of internal/config/config.go and internal/ocrbin/ocrbin.go.
  • README.md and pruefbyte.example.yml: llm.model can be any ID the provider serves; ocr's built-in lists are only suggestions.

pruefbyte itself never validated the model against a list; it only requires llm.model to be set. No behaviour change beyond the ocr bump.

Verification

  • Static checks and tests on a clean LF clone in Linux containers:
    • gofmt -l . prints nothing.
    • golangci-lint run ./... (v2.14.0): 0 issues.
    • go test -race ./...: all packages pass.
    • go vet passes with and without -tags embedocr.
  • Fetch: go run ./internal/ocrbin/fetch downloaded all six v1.12.12 binaries and verified each against the release sha256sum.txt.
  • Release build: goreleaser release --snapshot --clean produced all six archives. The Windows and Linux snapshot binaries both report ocr v1.12.12 (built in).
  • Model check, before and after, in a scratch repo whose target branch has a .pruefbyte.yml with provider: openai-responses, model: gpt-6.1-sol, running pruefbyte local --target main with a dummy key:
    • Released 0.1.0 (ocr v1.12.10) fails with model "gpt-6.1-sol" is not available for provider "openai-responses", reproducing the report.
    • This branch (ocr v1.12.12) prints [ocr] WARNING: model "gpt-6.1-sol" is not in the suggested models for provider "openai-responses"; the provider will validate it, gets past "resolve LLM endpoint", and fails at the provider.
    • ocr llm test with the same config shows the provider's answer: POST https://api.openai.com/v1/responses: 401 Unauthorized … invalid_api_key.
  • Docker: docker buildx build --platform linux/amd64,linux/arm64 succeeds. Each architecture, loaded and run (arm64 under QEMU), reports open-code-review v1.12.12 and ships both license texts.

Not verified

  • A real review with gpt-6.1-sol: no OpenAI key was available in the environment, so I couldn't confirm the model ID works at OpenAI or that the review output is sound.
  • macOS binaries: built, but not run.

Release (maintainer, after merge)

Tagging is not part of this PR. After merging, push v0.1.1 on the merge commit. The tag's CI run produces:

  • GitHub release v0.1.1: pruefbyte_{linux,darwin}_{amd64,arm64}.tar.gz, pruefbyte_windows_{amd64,arm64}.zip and checksums.txt, all with ocr v1.12.12 embedded.
  • Image tags: ghcr.io/feinarbyte/pruefbyte:0.1.1, :0.1 (moves from 0.1.0), and :sha-<commit>, each for linux/amd64 and linux/arm64.

:latest follows main, so it gets ocr v1.12.12 as soon as this PR is merged, before the tag.

🤖 Generated with Claude Code

testudor and others added 2 commits October 7, 2026 16:50
ocr v1.12.12 no longer rejects a --model that is missing from a built-in
provider's suggested list; it warns and leaves validation to the
provider. With v1.12.10, a review configured with
provider: openai-responses, model: gpt-6.1-sol failed with
'model "gpt-6.1-sol" is not available for provider "openai-responses"'.

- internal/ocrbin/VERSION: v1.12.10 -> v1.12.12 (Docker image and
  release binaries).
- builtinProviders: the preset registry is unchanged in v1.12.12 (29
  providers); only the version in the comment changes.
- README / example config: llm.model can be any ID the provider serves.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- README: unlisted models work with the bundled OCR (v1.12.12+); an older
  ocr on the PATH or set via ocr.binary may still reject them.
- Comments in config.go and ocrbin.go refer to internal/ocrbin/VERSION
  instead of repeating the version.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@testudor
testudor merged commit 90d48e8 into main Oct 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant