Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ocr-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: Optional exact stable upstream tag, for example v1.7.18
description: Optional exact stable upstream tag to qualify against the current contract
required: false
type: string

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Use this file as the short repository map and startup workflow for Open Code Rev
- `docs/engineering/toolkit_strategy.md` and `ROADMAP.md` - durable direction and outcome state.
- `docs/engineering/project_principles.md` - cross-cutting engineering invariants and ownership boundaries; `docs/engineering/m5_context_contracts.md` owns the current context and evidence contracts.
- `docs/review-decision-flow.md` - canonical detailed Mermaid map for review, diagnostics, receipts, DLP, publication, and later-action decisions; keep it synchronized with runtime and public contracts.
- `docs/development.md` - implementation workflow, boundary checklists, and local validation.
- `docs/development.md` - implementation workflow, boundary checklists, local validation, and [OCR qualification maintenance](docs/development.md#maintaining-ocr-qualification).
- `docs/release.md` - release classification, authorization, publication, and archival lifecycle.
- `docs/codex/TASKS_BACKLOG.md` - inactive work with activation conditions.
- `docs/codex/AGENT_EXECUTION_PITFALLS.md` - incident catalogue for diagnosis, not an instruction source.
Expand Down
256 changes: 256 additions & 0 deletions PLANS.md

Large diffs are not rendered by default.

17 changes: 8 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,12 @@ python -m venv .venv
python -m pip install open-code-review-toolkit
```

The toolkit does not bundle OCR. Download the platform asset for exact
[Open Code Review 1.11.3](https://github.com/alibaba/open-code-review/releases/tag/v1.11.3),
verify it before installation against the [compatibility manifest](compatibility/ocr-support.json),
and place the verified binary on `PATH`. The current Linux amd64 digest is
`9726204ac81baee153fd65b1ff357c380f73e9d8091c4a73c3c9fb541b5164cb`; Darwin arm64 is
`515cd92ce300b62dea2bcaf53e910cdf57b681e1d58bbd0a9e8e49617bca52fa`. The manifest owns
the other platform hashes.
The toolkit does not bundle OCR. Use `recommended_version` in the
[compatibility manifest](compatibility/ocr-support.json) for this toolkit revision
to select the exact [upstream release](https://github.com/alibaba/open-code-review/releases).
Download its platform asset, verify it against that release entry's asset SHA-256,
and place the verified binary on `PATH`. Do not substitute the latest upstream
release or use another toolkit revision's manifest.

Verify the installation without contacting an LLM provider:

Expand All @@ -45,14 +44,14 @@ ocr --version
ocr-ci --help
```

`ocr --version` must report `open-code-review v1.11.3`; `ocr-ci --help` must exit
`ocr --version` must report the manifest's exact `recommended_version`; `ocr-ci --help` must exit
successfully. `ocr-ci preflight` is an operational configuration check, not the installation
smoke test.

The exact recommended OCR release and its verified asset checksums live in the [versioned compatibility manifest](compatibility/ocr-support.json). CI should pin that release and checksum before execution.
The [versioned compatibility policy](docs/compatibility.md) records tested assets and evidence and describes the conservative Dependabot-like qualification workflow for later upstream releases.
Review output defaults to English. `OCR_REVIEW_LANGUAGE` accepts another explicit language name when a project needs localized review output; for example, `OCR_REVIEW_LANGUAGE=Russian`.
The current OCR 1.11.3 integration defaults `OCR_REVIEW_EFFORT` to `medium` for two review rounds. `low` and `high` are explicit one- and three-round alternatives; see the [configuration reference](docs/configuration.md#review-effort) for cost, budget, and precedence boundaries.
The toolkit defaults `OCR_REVIEW_EFFORT` to `medium` for two review rounds. `low` and `high` are explicit one- and three-round alternatives; see the [configuration reference](docs/configuration.md#review-effort) for cost, budget, and precedence boundaries.

Stable distributions are published to [PyPI](https://pypi.org/project/open-code-review-toolkit/) and mirrored as checksum-listed, provenance-attested assets in the corresponding [GitHub Release](https://github.com/xeonvs/open-code-review-toolkit/releases). Development snapshots are published only to TestPyPI.

Expand Down
3 changes: 3 additions & 0 deletions changelog.d/176.bugfix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Accept bounded private `failure_details.arguments` from OCR without treating otherwise valid failed-tool diagnostics as malformed. Arguments are omitted before normalized console output and publication DLP; they never enter finalized results, receipts, GitLab notes, or toolkit telemetry. Invalid diagnostics still preserve valid review findings and summary publication. Existing DLP checks on public findings, warnings, and suggestions and independent later-action restrictions remain in effect.

Fail OCR qualification probes through the closed compatibility-status path when a review emits malformed JSON or invalid result, tool-call, failure-detail, or comment shapes. Private diagnostics remain available on stderr for CI troubleshooting without leaking into the public status artifact.
1 change: 1 addition & 0 deletions changelog.d/176.maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Qualify OCR 1.11.4 as the separately recorded predecessor to the final 1.11.5 target. Verify native comment-batch recovery and its repair warning through a deterministic gateway, while preserving finding fields, anchors, suggestions and rejection of suspect truncation. Upstream site and plugin-distribution changes do not add toolkit capabilities. See the separate diagnostic-parser fix and Objective-C++ Rules entries.
1 change: 1 addition & 0 deletions changelog.d/176.refactor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Separate forward-only live OCR qualification from frozen historical evidence validation. Every candidate now runs the same current behavioral suite; legacy grouping/preview execution fallbacks are removed, promotion validates current contract evidence before writing, and generic promotion tests no longer track the latest runtime pin. Existing recorded evidence remains readable and unchanged. This changes repository qualification tooling, not the toolkit runtime API.
1 change: 1 addition & 0 deletions changelog.d/176.rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Route Objective-C++ `.mm` files through OCR's built-in Objective-C rules. Content-dependent MATLAB/Objective-C routing for `.m` remains qualified.
3 changes: 3 additions & 0 deletions changelog.d/177.doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Document group-scoped concurrency and prompt ceilings, the separate per-file large-diff filter, and the diagnostic-argument discard step in the canonical review decision flow. Distinguish private OCR artifacts from published GitLab summaries and identify the built toolkit artifact required for pre-release qualification.

Keep current operator guidance version-neutral and point installation and pin lookup to the same toolkit revision's compatibility manifest; preserve exact executable pins and historical qualification evidence.
1 change: 1 addition & 0 deletions changelog.d/177.maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Target checksum-verified OCR 1.11.5 as the only supported runtime for toolkit 0.9.1; install it directly without an intermediate OCR release. Separately qualify the 1.11.4 and 1.11.5 changes. Grouped-review naming now describes concurrency and prompt ceilings per group; per-file large-diff filtering, default medium effort, inherited completion cap, max-tools, result/manifest and receipt contracts remain unchanged. The OCR binary includes the grpc update; VS Code dependency updates and browser-only viewer fixed/ignored marks add no toolkit behavior or GitLab lifecycle authority.
257 changes: 257 additions & 0 deletions compatibility/evidence/ocr-1.11.4.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
{
"assets": [
{
"name": "opencodereview-darwin-amd64",
"sha256": "09a57a9022071c19f82cec4d793bb8d93d3b308e0207bdd6b9ad823cbb1e5d17",
"size": 57803552
},
{
"name": "opencodereview-darwin-arm64",
"sha256": "36a29bb525f59ad88f39f6fb4a8bd76a67df5ed95399c92f3d10143274c91b15",
"size": 54844930
},
{
"name": "opencodereview-linux-amd64",
"sha256": "7133465774aff6330fd8d25eecc57a28e5852bc55d1ae55fd00443ebc4c6b023",
"size": 56058018
},
{
"name": "opencodereview-linux-arm64",
"sha256": "981964ac4466f1ed20129ae46b63a31a929219c1228a7a94c345cb4c9b8155d3",
"size": 52822178
},
{
"name": "opencodereview-windows-amd64.exe",
"sha256": "e9300d32877a1512e9571a5776c9173c2f7eccee58d2f7ef4aa54011bd70b9fb",
"size": 57519616
},
{
"name": "opencodereview-windows-arm64.exe",
"sha256": "e08fc1d3896509b1589046f6180b92b921cd540c113faff60a98d4f79198450d",
"size": 53482496
},
{
"name": "sha256sum.txt",
"sha256": "2dccf4dccaabcb0be94e43766316acbf7c8ab6f7309001575ee9e0cd4862a273",
"size": 572
}
],
"classification": "human-review-required",
"classification_reasons": [
"release notes contain a material or ambiguous compatibility signal"
],
"comparison_version": "1.11.3",
"contracts": {
"comment_arguments_probe": {
"comments_per_batch": 2,
"failure_arguments_preserved": true,
"intact_cases": [
"array",
"serialized",
"repaired"
],
"repair_warning": true,
"result": "passed",
"suspect_batch_rejected": true
},
"comment_thinking_probe": {
"additive_field_preserved": true,
"posting_exposes_thinking": false,
"result": "passed"
},
"completion_cap_probe": {
"explicit": 4096,
"inherited": 16384,
"result": "passed",
"wire_field": "max_completion_tokens"
},
"language_rule_probe": {
"excluded_extensions": [
".svh"
],
"extensions": [
".cjs",
".cxx",
".hxx",
".mjs",
".mm",
".pug",
".sv",
".v",
".vh",
".vhd",
".vhdl"
],
"m_routing": "matlab_and_objective_c",
"result": "passed",
"rule_source": "system_builtin",
"selected": 11
},
"numeric_cli_probe": {
"max_tokens_budget": {
"cases": {
"invalid_below": {
"effective": null,
"input": -1,
"outcome": "rejected"
},
"minimum": {
"effective": 1,
"input": 1,
"outcome": "accepted"
},
"omitted": {
"effective": "unlimited",
"input": null,
"outcome": "accepted"
},
"representative": {
"effective": 30000,
"input": 30000,
"outcome": "accepted"
},
"sentinel": {
"effective": "unlimited",
"input": 0,
"outcome": "accepted"
}
},
"maximum": null,
"owner": "ocr-cli"
},
"max_tools": {
"cases": {
"invalid_below": {
"effective": null,
"input": -1,
"outcome": "rejected"
},
"minimum": {
"effective": 100,
"input": 50,
"outcome": "accepted"
},
"minimum_minus_one": {
"effective": 100,
"input": 49,
"outcome": "normalized",
"reported_normalization": 50
},
"omitted": {
"effective": 100,
"input": null,
"outcome": "accepted"
},
"representative": {
"effective": 101,
"input": 101,
"outcome": "accepted"
},
"sentinel": {
"effective": 100,
"input": 0,
"outcome": "accepted"
}
},
"maximum": null,
"owner": "ocr-template-or-higher-cli",
"reported_minimum": 50
},
"result": "passed"
},
"optional_capabilities": [
"llm_result_identity",
"per_run_model_override",
"per_run_provider_override",
"review_effort",
"semantic_grouping"
],
"preview_probe": {
"format": "json",
"path": "example.py",
"result": "passed",
"session_store_created": false
},
"required_review_flags": [
"--audience",
"--background-file",
"--effort",
"--format",
"--from",
"--max-tokens-budget",
"--max-tools",
"--preview",
"--rule",
"--to"
],
"result_contract_probe": {
"additive_fields_allowed": true,
"comment_fields": [
"category",
"content",
"end_line",
"existing_code",
"path",
"severity",
"start_line",
"thinking"
],
"manifest_schema": "ocr.run-manifest/v1",
"normalized_outcome": "clean",
"result": "passed"
},
"review_budget_probe": {
"budget": 30000,
"completed": 2,
"failed_budget": 1,
"grouping_requests": 0,
"grouping_strategy": "per_file",
"partial_findings_preserved": true,
"result": "passed",
"selected": 3
},
"semantic_grouping_probe": {
"default_effort": "medium",
"files": 4,
"filter_requests": 1,
"grouping_completion_cap": 16384,
"grouping_requests": 1,
"main_requests": 3,
"prior_finding_semantics": "filter_survivors_as_confirmed",
"recheck_instruction_requests": 3,
"result": "passed",
"review_rounds": 2
},
"small_change_grouping_probe": {
"grouping_requests": 0,
"high_churn": "per_file",
"low_churn": "bundle_all",
"result": "passed",
"single_file": "per_file",
"threshold_files": 4
},
"target_rule_selection_probe": {
"format": "json",
"from_to_unchanged": true,
"path": "synthetic-template.ocrfixture",
"result": "passed",
"source_exclusion": "unsupported_ext",
"target_selected": true
},
"version_probe": "passed"
},
"published_at": "2026-09-04T12:38:24Z",
"qualification_provenance": {
"asset_verification_run": "https://github.com/xeonvs/open-code-review-toolkit/actions/runs/33962853525",
"contract_binary_sha256": "36a29bb525f59ad88f39f6fb4a8bd76a67df5ed95399c92f3d10143274c91b15",
"contract_platform": "darwin-arm64"
},
"release_changes": "## 🚀 Features\n\n- feat(tool): include arguments in failure details (#1152)\n\n## 🐛 Bug Fixes\n\n- fix(rules): route Objective-C++ files to Objective-C rules (#1166)\n- fix(tool): repair serialized code_comment arguments instead of losing the batch (#1153)\n\n## Other Changes\n\n- Keep repeated documentation headings independently addressable (#1151)\n- ci: add plugin distribution contract guardrails (#1117)\n\n**Full Changelog**: https://github.com/alibaba/open-code-review/compare/v1.11.3...v1.11.4",
"release_notes_sha256": "81f1a6a8b329e688b2575f69b779dc9593e407763783ffbff47cdcacb86febff",
"result": "compatible",
"schema_version": 3,
"tag": "v1.11.4",
"tested_baseline_version": "1.11.3",
"upstream_repository": "alibaba/open-code-review",
"version": "1.11.4"
}
Loading
Loading