Skip to content

fix(opencode): retain adversarial fallback scope - #1273

Open
seonghobae wants to merge 9 commits into
mainfrom
codex/pr904-current-main-replacement-20260824
Open

fix(opencode): retain adversarial fallback scope#1273
seonghobae wants to merge 9 commits into
mainfrom
codex/pr904-current-main-replacement-20260824

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Outcome

Keeps the extracted adversarial-evidence gate and its test inside the exact central OpenCode fallback allowlist. This is a clean current-main replacement for #904 and omits its unrelated pip-lock and materializer history.

Closes #626.
Supersedes #904.

Verification

  • TDD contract failed before the allowlist change and passed after it
  • 1,393 passed, 1 skipped
  • 8,346 statements / 3,214 branches at 100% coverage
  • docstring coverage 100%
  • actionlint workflow validation passed
  • workflow shell-syntax contract passed in the full suite
  • git diff --check passed

Standards

The doctoring record cites NIST SP 800-53 Rev. 5 SA-11 and the stable OWASP Web Security Testing Guide v4.2 in APA 7th form.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1e9d2b1b-94d7-4035-ac91-0e52287ed5f0


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 7bbbed45a4eeaeec6d392dab5a8fad2f82674498.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: opencode-review-dispatch.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: opencode-review-dispatch.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: opencode-adversarial-fallback-scope.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: opencode-adversarial-fallback-scope.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (2 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 7bbbed45a4eeaeec6d392dab5a8fad2f82674498
  • Workflow run: 32662783101
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 7bbbed45a4eeaeec6d392dab5a8fad2f82674498.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: opencode-review-dispatch.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: opencode-review-dispatch.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: opencode-adversarial-fallback-scope.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: opencode-adversarial-fallback-scope.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (2 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 7bbbed45a4eeaeec6d392dab5a8fad2f82674498.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: opencode-review-dispatch.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: opencode-review-dispatch.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file: CHANGELOG.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file: CHANGELOG.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs: opencode-adversarial-fallback-scope.md"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs: opencode-adversarial-fallback-scope.md"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (2 files)"]
  R4 --> V4["targeted test run"]
Loading

@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 03:13
devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 03:24
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 03:43
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Disposition: informational and accepted. The added classifier intentionally matches the exact bare timeout emitted by the existing self-test fixture, while the existing qualified path remains covered. No further source change is required.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Disposition: informational and accepted. The added litellm.Timeout classifier intentionally matches the exact bare timeout emitted by the existing self test fixture, while the existing qualified litellm.exceptions.Timeout path remains covered. No further source change is required.

@opencode-agent
opencode-agent Bot disabled auto-merge August 24, 2026 04:26
@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 04:45
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head RCA: Strix run 32688204055 checked out 9fd37e2 and completed the source scan, but NVIDIA NIM emitted provider infrastructure/failure-signal output; the fallback then used the protected-base openai-direct alias and LiteLLM rejected it before authoritative evidence. No source finding was produced. The separate scan-pr-queue run was cancelled before steps. This PR remains non-mergeable until its base/control-plane provider repair is available and fresh exact-head checks plus formal review are produced.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head re-review request\n\nCurrent exact head: 212d070\n\nThe previous REQUEST_CHANGES review is tied to an older Strix/provider-failure head. Current-head evidence must be re-established from this SHA; predecessor failures and approvals are not being reused. Please inspect the complete current diff and publish a substantive review after the current required Checks finish. No merge is requested until exact-head checks and independent approval are current.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head formal review request for 212d070. Please inspect the complete changed-file diff, with emphasis on adversarial fallback scope and provider-failure handling. Publish a substantive Reviews API verdict tied only to this exact SHA, including security/control-plane impact, test gaps, and residual uncertainty. Do not reuse predecessor-head evidence or failed provider checks as source findings. @opencode-agent

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.

Central review-process fallback allowlist drift: adversarial_evidence.py missing since #555 extraction

1 participant