argus-code-review 0.2.3__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/CHANGELOG.md +17 -1
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/PKG-INFO +1 -1
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/gemini_runner.py +8 -6
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_gemini_runner.py +6 -5
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/.gitignore +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/LICENSE +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/README.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/bench.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/bench_default.toml +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/cli.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/config.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/coverage.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/dotenv_utils.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/gemini_cache.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/github_client.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/graph.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/helpers.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/llm/models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/llm/output_models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/llm/pricing.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/openai_client.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/openai_runner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/pipeline_models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/actions_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/engine.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/.gitignore +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/README.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/eslint.config.js +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/package-lock.json +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/package.json +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/js_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/migration_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/rules/README.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/sarif.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/scanner_utils.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/secrets_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/shadow.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/terraform_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/workflow_lint_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-blocking-validator.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-coverage-check.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-cross-cutting.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-feedback-verifier.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-lite.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-planner.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-preflight-router.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-prior-art.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-deployment.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-frontend.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-infra.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-llm-patterns.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-observability.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-orchestration.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-security.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-slackbot.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-sql.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-subagent.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-tests-and-docs.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-writer.md +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts_runtime.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/repo_provision.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/review_tools.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/runners.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/http.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/precheck.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/resolver.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/session.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/sql.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/storage/sqlite.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/pyproject.toml +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/008_add_code_reviews.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/009_add_reviewer_version.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/010_add_review_patterns.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/011_add_review_progress_columns.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/015_create_agent_runs.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/016_add_agent_runs_failure_reason.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/017_add_precheck_rules.sql +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/conftest.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/golden/review_response.schema.json +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/__init__.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_backend_contract.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_http.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_resolver.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_session.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_sql.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/storage/test_sqlite_backend.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_actions_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_argus_review_local.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_bench.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_bench_config_guard.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_catchup_gate.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_cli_args.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_cli_output_contract.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_cli_post_review.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_cli_preflight.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_cli_prompts.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_config.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_conftest.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_gemini_cache.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_github_client_checks_signal.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_github_client_write.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_fetch_diff.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_get_llm_temperature.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_http_guards.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_precheck.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_preflight_image_bump.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_progress.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_storage_resolution.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_timeout_surfacing.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_js_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_lite_review_cost.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_llm_models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_llm_models_override.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_llm_pricing.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_migration_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_models.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_multi_round.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_openai_client.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_openai_runner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_packaging.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_plan_review.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_engine.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_engine_integration.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_sarif.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_shadow.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_shadow_integration.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_prompts.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_repo_provision.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_review_patterns_integration.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_review_tools.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_runners_context7.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_runners_context_usage.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_runners_helpers.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_runners_new.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_scanner_utils.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_secrets_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_specialist_validation.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_storage_precheck.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_terraform_scanner.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_terraform_scanner_integration.py +0 -0
- {argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_workflow_lint_scanner.py +0 -0
|
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.4] - 2026-09-17
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Decoupled the Gemini reviewer's turn budget from the shared
|
|
15
|
+
`argus.runners._MAX_TURNS` constant (TECH-6453). `argus/gemini_runner.py`
|
|
16
|
+
now has its own `_MAX_TURNS_GEMINI = 45` (30 \* 1.5), independent of the
|
|
17
|
+
Claude Agent SDK and OpenAI runner paths, which remain at `_MAX_TURNS = 30`
|
|
18
|
+
unchanged. Gemini-backed bulk reviewer sessions were exhausting the
|
|
19
|
+
previously-shared 30-turn budget before calling `finish_review`,
|
|
20
|
+
truncating exploration; raising only Gemini's budget avoids widening the
|
|
21
|
+
cost/blast-radius ceiling on the more expensive Claude-Opus-tier
|
|
22
|
+
cross-cutting/blocking-validator/feedback-verifier roles, which showed no
|
|
23
|
+
evidence of needing more turns.
|
|
24
|
+
|
|
10
25
|
## [0.2.3] - 2026-09-14
|
|
11
26
|
|
|
12
27
|
### Added
|
|
@@ -244,7 +259,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
244
259
|
packaged set.
|
|
245
260
|
- `argus --version`, `argus prompts list`, and `argus prompts export`.
|
|
246
261
|
|
|
247
|
-
[Unreleased]: https://github.com/redesignhealth/argus-review/compare/v0.2.
|
|
262
|
+
[Unreleased]: https://github.com/redesignhealth/argus-review/compare/v0.2.4...HEAD
|
|
263
|
+
[0.2.4]: https://github.com/redesignhealth/argus-review/compare/v0.2.3...v0.2.4
|
|
248
264
|
[0.2.3]: https://github.com/redesignhealth/argus-review/compare/v0.2.2...v0.2.3
|
|
249
265
|
[0.2.2]: https://github.com/redesignhealth/argus-review/compare/v0.2.1...v0.2.2
|
|
250
266
|
[0.2.1]: https://github.com/redesignhealth/argus-review/compare/v0.2.0...v0.2.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: argus-code-review
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Self-orchestrated PR review agent using LangGraph + Claude Agent SDK
|
|
5
5
|
Project-URL: Repository, https://github.com/redesignhealth/argus-review
|
|
6
6
|
Project-URL: Issues, https://github.com/redesignhealth/argus-review/issues
|
|
@@ -40,8 +40,9 @@ then loop ``client.aio.models.generate_content(...)`` -- executing every
|
|
|
40
40
|
function call the model requests each turn (there can be more than
|
|
41
41
|
one), feeding all of their results back as a single follow-up turn --
|
|
42
42
|
until the model stops requesting function calls, calls
|
|
43
|
-
``finish_review``, or the turn budget (``
|
|
44
|
-
|
|
43
|
+
``finish_review``, or the turn budget (``_MAX_TURNS_GEMINI``, this
|
|
44
|
+
module's own budget, independent of the Claude/OpenAI paths' shared
|
|
45
|
+
``argus.runners._MAX_TURNS``) is exhausted. Findings arrive via
|
|
45
46
|
``report_finding`` tool calls into ``review_tools``' per-session sink,
|
|
46
47
|
not as a JSON blob embedded in the model's own text -- so, to keep this
|
|
47
48
|
task's blast radius contained to this file plus ``argus.bench``'s
|
|
@@ -158,7 +159,6 @@ from argus.gemini_cache import GeminiCacheKeeper
|
|
|
158
159
|
from argus.llm.models import estimate_cost_usd
|
|
159
160
|
from argus.llm.models import resolve as resolve_model_alias
|
|
160
161
|
from argus.runners import (
|
|
161
|
-
_MAX_TURNS,
|
|
162
162
|
_SUBPROCESS_TIMEOUT_S,
|
|
163
163
|
SessionResult,
|
|
164
164
|
_resolve_repo_root,
|
|
@@ -166,6 +166,8 @@ from argus.runners import (
|
|
|
166
166
|
|
|
167
167
|
logger = logging.getLogger(__name__)
|
|
168
168
|
|
|
169
|
+
_MAX_TURNS_GEMINI = 45 # 30 * 1.5 — see TECH-6453
|
|
170
|
+
|
|
169
171
|
# Both "auto" and "on" attempt explicit caching today -- there is no
|
|
170
172
|
# separate heuristic distinguishing them yet (Track 1 defined the
|
|
171
173
|
# `caching` values without one; see argus.bench's `_VALID_CACHING`). The
|
|
@@ -687,7 +689,7 @@ async def _run_turns(
|
|
|
687
689
|
usage_tool_use_prompt_total = 0
|
|
688
690
|
|
|
689
691
|
with review_tools.review_session(repo_root) as findings_sink:
|
|
690
|
-
for _turn in range(
|
|
692
|
+
for _turn in range(_MAX_TURNS_GEMINI):
|
|
691
693
|
try:
|
|
692
694
|
response = await client.aio.models.generate_content(
|
|
693
695
|
model=model, contents=contents, config=config
|
|
@@ -817,13 +819,13 @@ async def _run_turns(
|
|
|
817
819
|
if finished:
|
|
818
820
|
break
|
|
819
821
|
else:
|
|
820
|
-
# `for...else`: only reached if every one of
|
|
822
|
+
# `for...else`: only reached if every one of _MAX_TURNS_GEMINI
|
|
821
823
|
# iterations executed a function call and none of them was
|
|
822
824
|
# finish_review -- i.e. the turn budget was exhausted.
|
|
823
825
|
logger.warning(
|
|
824
826
|
"Gemini session [%s] exhausted its %d-turn budget without a finish_review call",
|
|
825
827
|
label or "unlabeled",
|
|
826
|
-
|
|
828
|
+
_MAX_TURNS_GEMINI,
|
|
827
829
|
)
|
|
828
830
|
|
|
829
831
|
result_text = _build_result_text(findings_sink, files_explored)
|
|
@@ -323,18 +323,19 @@ class TestMultipleSimultaneousFunctionCalls:
|
|
|
323
323
|
|
|
324
324
|
class TestTurnBudgetExhaustion:
|
|
325
325
|
async def test_exhausting_max_turns_still_returns_a_result(self) -> None:
|
|
326
|
-
from argus.
|
|
326
|
+
from argus.gemini_runner import _MAX_TURNS_GEMINI
|
|
327
327
|
|
|
328
328
|
entry = _make_entry(caching="off")
|
|
329
329
|
settings = _make_settings()
|
|
330
330
|
|
|
331
331
|
# Every turn keeps requesting a function call, never finish_review --
|
|
332
|
-
# the loop must stop after
|
|
332
|
+
# the loop must stop after _MAX_TURNS_GEMINI turns rather than looping
|
|
333
|
+
# forever.
|
|
333
334
|
responses = [
|
|
334
335
|
_make_response(
|
|
335
336
|
calls=[("report_finding", {"file": None, "line": None, "description": "x"})]
|
|
336
337
|
)
|
|
337
|
-
for _ in range(
|
|
338
|
+
for _ in range(_MAX_TURNS_GEMINI)
|
|
338
339
|
]
|
|
339
340
|
fake_client = _make_fake_client(responses)
|
|
340
341
|
|
|
@@ -348,9 +349,9 @@ class TestTurnBudgetExhaustion:
|
|
|
348
349
|
)
|
|
349
350
|
|
|
350
351
|
assert result.failure_reason is None
|
|
351
|
-
assert fake_client.aio.models.generate_content.await_count ==
|
|
352
|
+
assert fake_client.aio.models.generate_content.await_count == _MAX_TURNS_GEMINI
|
|
352
353
|
payload = _parse_result_json(result.result_text)
|
|
353
|
-
assert len(payload["findings"]) ==
|
|
354
|
+
assert len(payload["findings"]) == _MAX_TURNS_GEMINI
|
|
354
355
|
|
|
355
356
|
|
|
356
357
|
# ---------------------------------------------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/eslint.config.js
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/package-lock.json
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/precheck/eslint_bundle/package.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-blocking-validator.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-coverage-check.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-cross-cutting.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-feedback-verifier.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-preflight-router.md
RENAMED
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-deployment.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-frontend.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-infra.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-security.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-slackbot.md
RENAMED
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-specialist-sql.md
RENAMED
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/argus/prompts/pr-review-tests-and-docs.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/011_add_review_progress_columns.sql
RENAMED
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/schema/016_add_agent_runs_failure_reason.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/golden/review_response.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_github_client_checks_signal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_graph_preflight_image_bump.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_engine_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_precheck_shadow_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_review_patterns_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{argus_code_review-0.2.3 → argus_code_review-0.2.4}/tests/test_terraform_scanner_integration.py
RENAMED
|
File without changes
|
|
File without changes
|