Release 0.8.1: completion cap and safe provider failures - #131
Merged
Conversation
This was referenced Aug 24, 2026
7 tasks
xeonvs
marked this pull request as ready for review
August 24, 2026 19:10
Merged
xeonvs
added a commit
that referenced
this pull request
Aug 24, 2026
## Stable release candidate - stable version: `0.8.1` - next development line: `0.8.2` - exact reviewed head: `8135ce658c4012eeb37868983f76c10a0ae1ad82` - exact tree: `9f3f9487bf9dbf2f489a0cd8feb1b0104e409f03` - protected base / feature squash merge: `3f5c756ca5b6ccf62043765908fdc2cf2b29e14a` - deterministic source epoch: `1787598637` - tracked release issues: #129, #130, #132 ## Included delta - Adds the optional protocol-aware `OCR_LLM_MAX_COMPLETION_TOKENS` contract, unset by default. - Fixes provider URL/configuration ownership and projects private OCR retry facts into safe provider-neutral GitLab failures. - Preserves previous reviews and prevents failed runs from posting findings or approving. - Deduplicates repeated validation while retaining all OS/Python, security, package, TestPyPI, release-PR, and stable-release boundaries. - Keeps OCR pinned to qualified 1.9.10. ## Development artifact evidence Feature PR #131 was squash-merged as `3f5c756ca5b6ccf62043765908fdc2cf2b29e14a`. TestPyPI run 32766642880 published and read back `0.8.1.dev68` with verified provenance and clean installs: - wheel SHA-256: `764d00835c725fa67274b48d95420bb5e3b3d0be28043dc73203cc166bad1ad0` - sdist SHA-256: `a9faf493df1d03d0f078ad6807fc04f9dc7cdc82aafc24ac9fec30cbd9843a12` ## Release-candidate validation - 89 focused release/documentation tests passed. - `scripts/quality.sh check`: 1,232 tests + 306 subtests, 86.13% combined branch coverage, risk groups 84/82/85/87, Ruff, mypy, and Bandit passed. - Dependency audit, lock, OCR manifest, release notes, JSON metadata, pinned Gitleaks 8.24.3, and diff checks passed. - Two explicit `0.8.1` builds were byte-identical; Twine and clean wheel/sdist installs passed on Python 3.12, 3.13, and 3.14. - Candidate wheel SHA-256: `05c3f7425bf69c494da9b5b689ac712daf8d1c3587a7fa564dea67e7c2eb47bc`. - Candidate sdist SHA-256: `14be57f3b0a94d37bb749b10f2494d7fb6d757f688f6e0b727fb750f2fafae8e`. This is the final repository mutation for 0.8.1. After exact-head checks pass, protected squash merge starts the unchanged stable publication, provenance, registry readback, supported-Python install, immutable Release, receipt, issue, and milestone reconciliation workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OCR_LLM_MAX_COMPLETION_TOKENS, unset by default, with protocol-specific request-body mapping and fail-closed collision handling.ocr-ci configureandocr-ci preflightnow share one provider-neutral URL/protocol/header/body owner; classified OCR provider failures produce bounded toolkit-authored GitLab guidance.Build artifactsowns package smoke, and protected-main TestPyPI owns development publication/readback.Release scope
0.8.11.9.104bfd9fc760143cb707c43aeca4f56db2a3096c134e1e8578b328666ac8c24201e0bd3635c42d5b4fOperator contract
openaimaps the cap tollm.extra_body.max_completion_tokens.openai-responsesmaps it tomax_output_tokens.anthropicmaps it tomax_tokens.OCR_LLM_EXTRA_BODYis deduplicated; a conflicting or non-integer field fails configuration./models.max_completion_tokensis not used to choose the cap.429note treats throttling, spending limits, and requested-output cost reservation as possibilities; it may suggest4096without claiming that the cap caused the failure.404remainsendpoint-or-model-not-foundbecause raw provider text is not trusted to distinguish endpoint from model.Validation ownership
Build artifactschecks.main: deterministic TestPyPI development artifact, Twine/smoke, Trusted Publishing, provenance, bounded registry readback, and exact installs. General source and dependency checks are not repeated.The live
mainruleset was read back before push: required check contexts and strict protected-head policy still match the unchanged job names.Exact OCR wire evidence
The official Darwin arm64 OCR 1.9.10 asset was checksum-verified as
c626347bafcdbf25cf058af403d16568a3a9ffa1814046ff7c9d1e6becaf60d2and executed in an isolated no-LLM local-gateway probe through the production configuration path:max_completion_tokens=58888;max_completion_tokens=4096;Local validation
4bfd9fc:scripts/quality.sh checkpassed 1,231 tests + 306 subtests; 86.13% combined branch coverage; risk groups 84% / 82% / 85% / 87% against floors 80 / 80 / 85 / 85; Ruff, mypy, and Bandit passed.git diff --checkpassed.uv lock --check, OCR manifest validation, and checksum-verified Gitleaks 8.24.3 passed.53c6374had byte-identical wheel/sdist builds plus clean Python 3.12-3.14 installs. The workflow-only maintenance commit deliberately does not claim those bytes for the new head; the exact-headBuild artifactscheck is the package owner.Remaining lifecycle
Wait for every hosted check on this exact head. Evidence-driven fixes must pass the same commit gate. After protected feature merge, verify the TestPyPI development build, then prepare the separate protected
Release v0.8.1PR and complete stable registry/GitHub/provenance reconciliation before closing #129, #130, #132, or milestonev0.8.1.