Skip to content

fix(noema): fail closed at the credential egress boundary - #1279

Open
seonghobae wants to merge 6 commits into
mainfrom
codex/pr930-current-main-replacement-20260824
Open

fix(noema): fail closed at the credential egress boundary#1279
seonghobae wants to merge 6 commits into
mainfrom
codex/pr930-current-main-replacement-20260824

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Outcome

Replaces the conflicted and scope-polluted #930 with a clean current-main change.

  • requires HTTPS for every non-loopback model endpoint
  • resolves the effective host and port before constructing the credentialed request
  • rejects resolver failures, empty or malformed answers, and every non-global or multicast address
  • requires exact pre/post-request DNS-set equality
  • bounds provider responses to 1 MiB before JSON decoding
  • keeps redirect refusal and the existing Wire Noema to a same-job contextual-orchestrator sidecar #1120 same-job sidecar seam, restricted to literal 127.0.0.1 and ::1

This PR does not import contextual-orchestrator, alter provider routing, change model selection, or modify model parameters.

Evidence

  • 1,419 passed, 1 skipped, 16 subtests passed
  • 8,378 statements and 3,228 branches at 100%
  • scripts/ci docstrings: 100%
  • compileall and git diff --check: pass
  • APA 7th doctoring records OWASP SSRF guidance, RFC 6890, CWE-400, and CWE-918, including the residual DNS/socket TOCTOU boundary

Supersedes #930. Preserves the trusted loopback consumer contract from #1120.


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: 9ad886a8-59d0-4956-947b-ba5e5d715f11


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 b19c5b452cf53a5b5a85d9805efaa1899cf0a04b.
  • 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["Changed file: CHANGELOG.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file: CHANGELOG.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: noema-credential-egress-boundary.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: noema-credential-egress-boundary.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script: noema_review_gate.py"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script: noema_review_gate.py"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (3 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (3 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: b19c5b452cf53a5b5a85d9805efaa1899cf0a04b
  • Workflow run: 32664263786
  • 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 b19c5b452cf53a5b5a85d9805efaa1899cf0a04b.
  • 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["Changed file: CHANGELOG.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file: CHANGELOG.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: noema-credential-egress-boundary.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: noema-credential-egress-boundary.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script: noema_review_gate.py"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script: noema_review_gate.py"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (3 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (3 files)"]
  R4 --> V4["targeted test run"]
Loading

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

This comment was marked as resolved.

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

This comment was marked as resolved.

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.

1 participant