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
21 changes: 10 additions & 11 deletions .github/workflows/ai-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ on:
review_model:
description: "Explicit model for analysis and optional native benchmark."
type: string
default: "gpt-5.6-terra"
default: "gpt-6-astra"
review_effort:
description: "Reasoning effort: low, medium, high, xhigh, or max."
type: string
Expand All @@ -31,7 +31,7 @@ on:
codex_version:
description: "Pinned stable CLI version; candidate versions can be tested in dry runs."
type: string
default: "0.149.0"
default: "0.163.0"
incremental:
description: "Review changes since the last compatible completed review."
type: boolean
Expand Down Expand Up @@ -75,7 +75,7 @@ on:
review_model:
description: "Explicit model for analysis and optional native benchmark."
type: string
default: "gpt-5.6-terra"
default: "gpt-6-astra"
review_effort:
description: "Reasoning effort: low, medium, high, xhigh, or max."
type: string
Expand All @@ -87,7 +87,7 @@ on:
codex_version:
description: "Pinned stable CLI version; candidate versions can be tested in dry runs."
type: string
default: "0.149.0"
default: "0.163.0"
incremental:
description: "Review changes since the last compatible completed review."
type: boolean
Expand Down Expand Up @@ -135,9 +135,9 @@ jobs:
subject_url: ${{ steps.resolve-target.outputs.subject_url }}

env:
REVIEW_MODEL: ${{ inputs.review_model || 'gpt-5.6-terra' }}
REVIEW_MODEL: ${{ inputs.review_model || 'gpt-6-astra' }}
REVIEW_EFFORT: ${{ inputs.review_effort || 'high' }}
CODEX_VERSION: ${{ inputs.codex_version || '0.149.0' }}
CODEX_VERSION: ${{ inputs.codex_version || '0.163.0' }}
REVIEW_BOT_LOGIN: ${{ inputs.review_bot_login || 'jitsu-code-review[bot]' }}

steps:
Expand Down Expand Up @@ -465,9 +465,8 @@ jobs:
{"type": "object", "additionalProperties": false, "required": ["version", "reviewed_sha", "completion_status", "summary", "findings"], "properties": {"version": {"type": "integer", "enum": [1]}, "reviewed_sha": {"type": "string"}, "completion_status": {"type": "string", "enum": ["complete", "incomplete"]}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["priority", "title", "body", "path", "side", "start_line", "end_line"], "properties": {"priority": {"type": "string", "enum": ["P0", "P1", "P2"]}, "title": {"type": "string"}, "body": {"type": "string"}, "path": {"type": "string"}, "side": {"type": "string", "enum": ["LEFT", "RIGHT"]}, "start_line": {"type": "integer"}, "end_line": {"type": "integer"}}}}}}
model: ${{ env.REVIEW_MODEL }}
effort: ${{ env.REVIEW_EFFORT }}
# the CLI floated to npm latest too; pinned to the release verified
# clean with v1.11 so a CLI release can't change review behaviour
# under us either
# Keep the CLI pinned independently of the action. Version 0.163.0
# exited cleanly with v1.11 in structured and native review benchmarks.
codex-version: ${{ env.CODEX_VERSION }}
codex-home: .github/codex/home
sandbox: danger-full-access
Expand Down Expand Up @@ -637,9 +636,9 @@ jobs:
REVIEW_BASE: ${{ needs.ai-review.outputs.compare_base }}
FULL_BASE: ${{ needs.ai-review.outputs.full_base }}
REVIEW_PROFILE: ${{ needs.ai-review.outputs.review_profile }}
REVIEW_MODEL: ${{ inputs.review_model || 'gpt-5.6-terra' }}
REVIEW_MODEL: ${{ inputs.review_model || 'gpt-6-astra' }}
REVIEW_EFFORT: ${{ inputs.review_effort || 'high' }}
CODEX_VERSION: ${{ inputs.codex_version || '0.149.0' }}
CODEX_VERSION: ${{ inputs.codex_version || '0.163.0' }}
EXPECTED_BOT_LOGIN: ${{ inputs.review_bot_login || 'jitsu-code-review[bot]' }}
REVIEW_REPO: ${{ github.workspace }}/reviewed-repo
REVIEW_FILE: ${{ github.workspace }}/review-artifact/review.json
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,10 @@ These inputs are available through `workflow_call` and manual dispatch:

| Input | Default | Purpose |
|-------|---------|---------|
| `review_model` | `gpt-5.6-terra` | Explicit model identifier |
| `review_model` | `gpt-6-astra` | Explicit model identifier |
| `review_effort` | `high` | `low`, `medium`, `high`, `xhigh`, or `max`; model must support it |
| `analysis_timeout_minutes` | `12` | Per-engine timeout; integer from 1 to 30 |
| `codex_version` | `0.149.0` | Pinned stable CLI version; floating versions are rejected |
| `codex_version` | `0.163.0` | Pinned stable CLI version; floating versions are rejected |
| `incremental` | `true` | Set false to force a full comparison |
| `review_bot_login` | `jitsu-code-review[bot]` | Trusted completion-marker author; must match the posting App |
| `dry_run` | `false` | Validate/archive without posting or advancing coverage |
Expand All @@ -190,18 +190,18 @@ isolate prompt wording as the only variable. Both outputs are archived, includin
`native-review.md` and `native-events.jsonl` (which includes native token usage events).
The structured result still passes the normal validator. Benchmark failure fails the run.

Example: compare a newer pinned CLI without adopting it as the production default:
Example: compare a candidate CLI without adopting it as the production default:

```sh
gh workflow run ai-review.yml --repo jitsucom/github-workflows --ref <candidate-branch> \
-f pr_number=<pr-number> -f codex_version=0.163.0 \
-f pr_number=<pr-number> -f codex_version=<candidate-version> \
-f incremental=false -f dry_run=true -f benchmark_native=true
```

For reusable callers, pass the same inputs under `with:`. Primary token usage is collected
before the native benchmark; other models retain usage counts but have no estimated
cost until their pricing is explicitly configured. No runtime or model default changes
are implied by a successful benchmark. Evaluate confirmed findings, false positives,
before the native benchmark. Cost estimation currently has rates only for Terra; the
Astra default records usage counts without an estimated cost until its pricing is configured.
No runtime or model default changes are implied by a successful benchmark. Evaluate confirmed findings, false positives,
runtime and usage across representative PRs before adopting a new default.

#### Versioning
Expand Down
4 changes: 2 additions & 2 deletions tests/test_review_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ def test_checkout_and_prompt_contract(self):
self.assertIn('Intentional tradeoffs are context, not immunity', prompt)
self.assertIn('Re-raise a dismissed finding only if new changes invalidate', prompt)
self.assertNotIn('still prefer to post it', prompt)
self.assertIn("REVIEW_MODEL: ${{ inputs.review_model || 'gpt-5.6-terra' }}", text)
self.assertIn("CODEX_VERSION: ${{ inputs.codex_version || '0.149.0' }}", text)
self.assertIn("REVIEW_MODEL: ${{ inputs.review_model || 'gpt-6-astra' }}", text)
self.assertIn("CODEX_VERSION: ${{ inputs.codex_version || '0.163.0' }}", text)


if __name__ == '__main__':
Expand Down
Loading