Skip to content

fix(api): align PDF upload transport budget with Naruon - #682

Open
seonghobae wants to merge 7 commits into
developfrom
fix/align-pdf-upload-budget-64m-20260821
Open

fix(api): align PDF upload transport budget with Naruon#682
seonghobae wants to merge 7 commits into
developfrom
fix/align-pdf-upload-budget-64m-20260821

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Live exact-head state — 2026-08-22

Current exact head is 93383e9538aa713dbb559910c4b297136594a2eb on protected-base candidate develop@e06b1f3fb10903569124af011da213951e6e2473. GitHub reports the PR open, Ready, and mechanically mergeable.

This canonical lane now also absorbs the only unique buyer-facing guidance from closed duplicate #665: the manual API reference states the 64 MiB ceiling, the 413 Payload Too Large behavior, and the customer's next action (split the PDF and retry). A separate streaming regression proves rejection after consuming exactly the first byte above the ceiling, avoiding the predecessor test's requested-chunk-size accounting ambiguity.

Fresh exact-head workflow evidence is still non-authorizing: dependency-review run 32550556753 and scorecards run 32550556570 are terminal success, while tests, SAST Semgrep, container-image, quality-gate, clusterfuzzlite, codeql, and Security Scan are in progress. No predecessor-head success transfers after the two current-head commits.

Summary

Align the owning NewsDOM sidecar upload ceiling with ContextualWisdomLab/naruon#1427 and the customer-facing direct PDF DOM workflow at 64 MiB. The streaming first-byte-over-limit guard, PDF signature validation, authentication-before-multipart boundary, and 413 response remain unchanged.

Root cause

Live develop was still 20 MiB while the Naruon consumer contract was 64 MiB. A valid customer PDF could therefore succeed in one workflow and fail after crossing the sidecar boundary.

TDD lineage

  • RED: the exact transport-contract regression failed at the historical 20 MiB ceiling.
  • GREEN predecessor: PYTHONWARNINGS=error uv run pytest --cov=src/newsdom_api --cov-branch --cov-report=term-missing --cov-fail-under=100 reported 484 passed with 100% statements and branches.
  • The exact-budget success regression uses a virtual streaming upload, so the 64 MiB boundary is exercised without allocating a 64 MiB fixture.
  • Current head adds a complementary virtual-stream regression requiring 413 only after exactly MAX_PARSE_UPLOAD_BYTES + 1 bytes have actually been returned by the upload object.
  • Current head also carries the buyer-facing manual guidance absorbed from fix(parse): align PDF upload budget with naruon #665. fix(parse): align PDF upload budget with naruon #665 is closed as superseded; its checks/reviews do not transfer.

Safety and ownership

Authentication order, PDF signature validation, streaming byte accounting, temporary-file cleanup, parser timeout, and the fail-closed 413 contract remain unchanged. This PR owns the NewsDOM sidecar transport budget; Naruon#1427 remains a consumer dependency and must not duplicate this server-side authority.

The bounded transport decision and standards traceability remain in ADR-0003 and its doctoring record. No customer/private reference data is introduced. This is a backend transport contract, so no Figma or Storybook surface is required for the change itself.

Merge boundary

Do not merge until this unchanged exact head has every then-live repository and organization test/coverage/package/container/security/SAST/supply-chain/semantic-review gate terminal-success, zero valid unresolved current-head findings, and a qualifying independent non-author approval under live protection. Pending, queued, skipped-required, stale, predecessor, author-only, model-only, or synthetic evidence is non-passing. No force merge, self-approval, or ruleset bypass is authorized.


Open in Devin Review

Summary by CodeRabbit

  • 변경 사항

    • /parse PDF 업로드 허용 한도를 64MiB로 조정했습니다.
    • 한도를 초과한 업로드는 즉시 413 Payload Too Large로 처리됩니다.
    • 64MiB까지의 PDF 업로드는 정상적으로 처리됩니다.
  • 문서

    • PDF 업로드 제한 및 초과 시 대응 방법을 API 문서에 반영했습니다.
    • 관련 전송 규격과 운영 기준을 문서화했습니다.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f0efc2ff-3af7-469f-9f93-38b66493b48a

📥 Commits

Reviewing files that changed from the base of the PR and between b06b844 and 585bb4e.

📒 Files selected for processing (2)
  • manual/api-reference.md
  • tests/test_parse_upload_budget_contract.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • manual/api-reference.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

/parse의 PDF 업로드 상한을 20 MiB에서 64 MiB로 변경했습니다. 정확히 64 MiB인 스트리밍 업로드와 제한 초과 업로드의 동작을 검증하는 테스트와 관련 문서를 갱신했습니다.

Changes

PDF 업로드 전송 제한

Layer / File(s) Summary
업로드 상한 및 계약 테스트
src/newsdom_api/main.py, tests/test_parse_endpoint.py, tests/test_parse_upload_budget_contract.py
MAX_PARSE_UPLOAD_BYTES를 64 MiB로 변경했습니다. 정확히 64 MiB인 업로드는 성공하고, 제한을 초과한 업로드는 초과 바이트에서 413 Payload Too Large를 반환하는지 검증합니다.
전송 제한 결정 기록
docs/adr/0003-bounded-pdf-upload-transport.md, docs/adr/README.md, docs/doctoring/bounded-pdf-upload-transport.md, manual/api-reference.md, CHANGELOG.md
64 MiB 제한과 인증 선검사, 스트리밍 초과 검사, PDF 검증, 임시 파일 정리 및 413 Payload Too Large 응답 동작을 기록합니다.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 585bb

This PR aligns the PDF upload ceiling with the documented 64 MiB contract while preserving validation, streaming limits, authentication ordering, and 413 behavior; no actionable merge-blocking risk remains beyond normal checks and review.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 44.44% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 3 files. (1 skipped: 1 unsupported.) Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목은 PDF 업로드 한도를 Naruon 계약에 맞추는 핵심 변경을 간결하고 명확하게 설명합니다.
Description check ✅ Passed 변경 목적과 검증 근거는 충분하지만 템플릿의 Git Flow target, Verification, Notes 섹션은 명시되지 않았습니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/align-pdf-upload-budget-64m-20260821

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.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

Exact-head review request: 71671c6 aligns MAX_PARSE_UPLOAD_BYTES with Naruon#1427 at 64 MiB. Local exact-tree proof is recorded in the PR body: 484 tests, 100% statement/branch coverage, strict docs build, Trivy clean, and Gitleaks clean. Please perform a substantive current-head review of the upload boundary, authentication-before-body parsing, first-byte-over-limit streaming rejection, and cross-repository contract. @coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Current HEAD and changed files =='
git rev-parse HEAD
git status --short
git diff --name-status HEAD^ HEAD
git diff --find-renames --unified=80 HEAD^ HEAD

printf '%s\n' '== Relevant symbols and files =='
rg -n -C 5 \
  'MAX_PARSE_UPLOAD_BYTES|parse.*upload|UploadFile|multipart|request\.stream|request\.body|Content-Length|HTTP_413|status_code=413|PDF|pdf' \
  . \
  -g '!**/.git/**' \
  -g '!**/node_modules/**' \
  -g '!**/dist/**' \
  -g '!**/build/**' || true

printf '%s\n' '== Python module and test outlines =='
fd -e py . | while IFS= read -r file; do
  if rg -q 'MAX_PARSE_UPLOAD_BYTES|parse.*upload|UploadFile|multipart|first.byte|413|64 \* 1024' "$file"; then
    echo "--- $file"
    ast-grep outline "$file" --items all --type function,class --view compact || true
  fi
done

Length of output: 201370


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Exact commit and changed paths =='
git show --no-ext-diff --format=fuller --no-renames --stat HEAD
git diff --name-status HEAD^ HEAD
git diff --numstat HEAD^ HEAD

printf '%s\n' '== Exact source and test diff =='
git diff --no-ext-diff --unified=120 HEAD^ HEAD -- \
  'src/newsdom_api/main.py' \
  'tests/test_parse_endpoint.py' \
  'docs/adr/0003-bounded-pdf-upload-transport.md' \
  'docs/doctoring/bounded-pdf-upload-transport.md'

printf '%s\n' '== Endpoint and test structure =='
ast-grep outline src/newsdom_api/main.py --items all --type function,class --view digest
ast-grep outline tests/test_parse_endpoint.py --items all --type function,class --view digest

printf '%s\n' '== Relevant source, test, and configuration locations =='
rg -n -C 12 --type py \
  'MAX_PARSE_UPLOAD_BYTES|async def parse|def parse|Depends\(|Authorization|authenticate|request\.stream|UploadFile|multipart|413|PDF' \
  src/newsdom_api/main.py tests/test_parse_endpoint.py

printf '%s\n' '== Other active upload limits or proxy limits in tracked text files =='
git grep -n -I -E \
  '20[[:space:]]*\*[[:space:]]*1024[[:space:]]*\*[[:space:]]*1024|64[[:space:]]*\*[[:space:]]*1024[[:space:]]*\*[[:space:]]*1024|MAX_PARSE_UPLOAD_BYTES|client_max_body_size|max_body_size|body_size' \
  HEAD -- \
  ':!tests/fixtures/*' ':!*.pdf' || true

printf '%s\n' '== Linked consumer PR metadata =='
gh pr view 1427 --repo ContextualWisdomLab/naruon \
  --json number,title,state,baseRefName,headRefName,body,files,url 2>&1 || true

Length of output: 75066


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Application middleware and route registration =='
sed -n '285,385p' src/newsdom_api/main.py

printf '%s\n' '== Authorization-before-body tests and multipart body readers =='
rg -n -C 16 --type py \
  'security_boundary_middleware|_parse_access_failure|authorization.*before|before.*multipart|before.*body|read_sizes|_ReadTrackingUpload|Authorization' \
  tests src/newsdom_api \
  -g '!**/fixtures/**'

printf '%s\n' '== Linked consumer PR code diff =='
gh pr diff 1427 --repo ContextualWisdomLab/naruon -- \
  backend/api/data.py backend/tests/test_data_api.py \
  2>&1 || true

printf '%s\n' '== Naruon PR references to NewsDOM pull requests =='
gh pr view 1427 --repo ContextualWisdomLab/naruon --json body \
  --jq '.body' | rg -n 'newsdom-api#[0-9]+' || true

Length of output: 40788


🏁 Script executed:

#!/bin/bash
set -euo pipefail

gh api \
  'repos/ContextualWisdomLab/naruon/pulls/1427/files?per_page=100' \
  --jq '.[] | select(.filename == "backend/api/data.py" or .filename == "backend/tests/test_data_api.py") | "=== \(.filename) ===\n\(.patch)"'

Length of output: 1902


@seonghobae: Review complete. I found no blocking issues.

  • MAX_PARSE_UPLOAD_BYTES is 64 MiB at the current head.
  • The declared-size and streaming guards still reject only when the upload exceeds the limit. The streaming guard checks the total before it writes a chunk.
  • Authentication still runs in security_boundary_middleware() before downstream multipart parsing. The ASGI test verifies that rejected traffic does not read the request body.
  • Naruon #1427 now uses the same 64 MiB limit and has a matching contract test.

Non-blocking traceability note: Naruon #1427 still links to NewsDOM #665 in its PR body. Update that reference to #682 if this PR is the intended sidecar contract delivery.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@seonghobae
seonghobae enabled auto-merge (squash) August 21, 2026 15:12
@seonghobae

seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator Author

Current-head verification

  • PR: fix(api): align PDF upload transport budget with Naruon #682
  • Exact head: 03ec64c2cb31a5f567c89422983b6bd020b0a8b3
  • Exact base: e06b1f3fb10903569124af011da213951e6e2473
  • Local merge-result tree: 572020a5ccdcb8ca6b4322a0ffd17451add318a8
  • Change: completed the ADR index by adding ADR-0002 and aligning the ADR-0003 index title with its document heading.
  • Feature baseline: 64 MiB PDF boundary remains streaming and first-byte bounded; exact-boundary upload regression is covered by the predecessor code change.
  • Local checks: uv run mkdocs build --strict (PASS); git diff --check (PASS). The predecessor exact-head full suite was 485 passed with 100% statement and branch coverage (829/829 statements, 254/254 branches).
  • Review threads: predecessor current-head finding was addressed before this push; hosted review evidence is required again for this exact head.
  • Merge policy: no bypass, no direct protected-branch push, no merge until exact-head required Checks and qualifying review evidence pass.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

Exact-head review request

Current exact head is 71671c605c4d0f065897eb86c7f85654048c4332 against base e06b1f3fb10903569124af011da213951e6e2473. This bounded transport-contract repair is the owning side of Naruon #1427; review the 64 MiB PDF budget and backward-compatible API behavior at this exact head.

Local evidence already recorded: focused/targeted/full test suite (484 passed), 100% statement and branch coverage, strict documentation build, Ruff, Trivy, and git diff --check. Hosted checks are still completing; no qualifying approval is present, so no merge is attempted.

@OpenCode review current head 71671c605c4d0f065897eb86c7f85654048c4332 end-to-end; report changed-file walkthrough, contract/DoS boundary, migration/compatibility impact, and actionable findings.

@coderabbitai review current head 71671c605c4d0f065897eb86c7f85654048c4332 end-to-end; report only actionable source findings.

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='71671c605c4d0f065897eb86c7f85654048c4332'
base='e06b1f3fb10903569124af011da213951e6e2473'

printf '%s\n' '== Commit identity and changed paths =='
git rev-parse HEAD
git cat-file -e "${head}^{commit}"
git cat-file -e "${base}^{commit}"
git diff --name-status "$base" "$head"
git diff --check "$base" "$head"

printf '%s\n' '== Changed content =='
git diff --no-ext-diff --unified=100 "$base" "$head"

printf '%s\n' '== Relevant Python source and tests =='
fd -e py . src tests | while IFS= read -r file; do
  if rg -q 'MAX_PARSE_UPLOAD_BYTES|security_boundary_middleware|parse.*pdf|UploadFile|request\.stream|Content-Length|status_code=413|HTTP_413' "$file"; then
    printf '\n--- %s ---\n' "$file"
    ast-grep outline "$file" --items all --type function,class --view compact || true
    rg -n -C 15 'MAX_PARSE_UPLOAD_BYTES|security_boundary_middleware|parse.*pdf|UploadFile|request\.stream|Content-Length|status_code=413|HTTP_413' "$file"
  fi
done

printf '%s\n' '== All repository upload-limit declarations =='
git grep -n -I -E 'MAX_PARSE_UPLOAD_BYTES|20[[:space:]]*\*[[:space:]]*1024[[:space:]]*\*[[:space:]]*1024|64[[:space:]]*\*[[:space:]]*1024[[:space:]]*\*[[:space:]]*1024|client_max_body_size|max_body_size' "$head" -- ':!*.pdf' ':!tests/fixtures/*' || true

printf '%s\n' '== Linked consumer change =='
gh api 'repos/ContextualWisdomLab/naruon/pulls/1427/files?per_page=100' \
  --jq '.[] | select(.filename == "backend/api/data.py" or .filename == "backend/tests/test_data_api.py") | "=== \(.filename) ===\n\(.patch)"' || true

Length of output: 2585


🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='71671c605c4d0f065897eb86c7f85654048c4332'
base='e06b1f3fb10903569124af011da213951e6e2473'

printf '%s\n' '== Diff check (non-fatal) =='
git diff --check "$base" "$head" || true

printf '%s\n' '== Source and test diff =='
git diff --no-ext-diff --unified=120 "$base" "$head" -- \
  src/newsdom_api/main.py tests/test_parse_endpoint.py

printf '%s\n' '== Endpoint and middleware structure =='
ast-grep outline src/newsdom_api/main.py --items all --type function,class --view expanded
ast-grep outline tests/test_parse_endpoint.py --items all --type function,class --view compact

printf '%s\n' '== Focused implementation context =='
rg -n -C 25 --type py \
  'MAX_PARSE_UPLOAD_BYTES|security_boundary_middleware|async def parse|def parse|request\.stream|UploadFile|Content-Length|HTTPException|status_code=413|Depends\(' \
  src/newsdom_api/main.py tests/test_parse_endpoint.py

printf '%s\n' '== Test cases for body-read order and byte-boundary conditions =='
rg -n -C 18 --type py \
  'authorization.*before|before.*body|before.*multipart|_ReadTrackingUpload|read_sizes|exactly.*limit|limit.*exactly|first.*byte|one.*byte|413|MAX_PARSE_UPLOAD_BYTES' \
  tests/test_parse_endpoint.py

printf '%s\n' '== Consumer contract diff, PR metadata, and cross-reference =='
gh pr view 1427 --repo ContextualWisdomLab/naruon \
  --json number,state,baseRefName,headRefName,title,body,url \
  --jq '{number,state,baseRefName,headRefName,title,url,body}' || true
gh api 'repos/ContextualWisdomLab/naruon/pulls/1427/files?per_page=100' \
  --jq '.[] | select(.filename == "backend/api/data.py" or .filename == "backend/tests/test_data_api.py") | "=== \(.filename) ===\n\(.patch)"' || true

printf '%s\n' '== Active source declarations of parse upload cap =='
git grep -n -I 'MAX_PARSE_UPLOAD_BYTES' "$head" -- 'src/**' 'tests/**' || true

Length of output: 18700


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '== Parse endpoint implementation =='
sed -n '175,365p' src/newsdom_api/main.py

printf '%s\n' '== Parse test structure =='
ast-grep outline tests/test_parse_endpoint.py --items all --type function,class --view digest || true

printf '%s\n' '== Exact relevant test definitions and helpers =='
rg -n -C 30 --type py \
  'class _ReadTrackingUpload|def test_parse_endpoint_rejects_large_files|def test_parse_endpoint_rejects_large_file_without_size_metadata|def test_parse_endpoint_budget_matches_naruon_transport_contract|def test_.*authorization|def test_.*body|def test_.*multipart|def test_.*first.*byte|def test_.*exact' \
  tests/test_parse_endpoint.py

printf '%s\n' '== Route registration and middleware order =='
sed -n '285,375p' src/newsdom_api/main.py
rg -n -C 12 --type py 'add_middleware|`@app`\.middleware|security_boundary_middleware|add_api_route|include_router|app\.(post|route)' src/newsdom_api/main.py

printf '%s\n' '== Naruon `#1427` metadata and relevant files =='
gh pr view 1427 --repo ContextualWisdomLab/naruon \
  --json number,state,title,body,url,headRefOid \
  --jq '{number,state,title,url,headRefOid,body}' || true
gh api 'repos/ContextualWisdomLab/naruon/pulls/1427/files?per_page=100' \
  --jq '.[] | select(.filename == "backend/api/data.py" or .filename == "backend/tests/test_data_api.py") | "=== \(.filename) ===\n\(.patch)"' || true

printf '%s\n' '== Active source constants and cap use sites =='
git grep -n -I 'MAX_PARSE_UPLOAD_BYTES' HEAD -- src tests || true

Length of output: 26873


@seonghobae Review complete for 71671c605c4d0f065897eb86c7f85654048c4332 against e06b1f3fb10903569124af011da213951e6e2473.

No actionable source findings.

  • MAX_PARSE_UPLOAD_BYTES is 64 MiB.
  • The declared-size guard rejects only uploads above 64 MiB.
  • The streaming guard rejects the first chunk that causes the total to exceed 64 MiB before it writes that chunk.
  • security_boundary_middleware() performs /parse authorization before downstream multipart parsing.
  • The new test fixes the sidecar contract at 64 MiB.
  • Naruon #1427 uses the same 64 MiB PDF upload limit and has a matching contract test.

You are interacting with an AI system.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

Hosted check triage at exact head

The live exact-head check set has no source failure. Scorecard concluded neutral because the base develop tree lacks the configured supply-chain/branch-protection workflow; GitHub reports this as a missing base configuration, not a finding introduced by this 64 MiB transport-contract PR. strix and fuzz remain in progress and coverage-source-tree remains queued. I am not altering the unrelated central scorecard configuration in this bounded PR. The PR still awaits qualifying independent approval and normal required-check completion.

@opencode-agent

Copy link
Copy Markdown
Contributor

Queued @cwl-noema-review and @opencode-agent for PR #682 at head 71671c605c4d0f065897eb86c7f85654048c4332. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 21, 2026 16:07
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge (squash) August 21, 2026 17:06
@seonghobae

Copy link
Copy Markdown
Collaborator Author

Fresh exact-head independent review request.

  • Exact head: 03ec64c
  • Exact base: e06b1f3
  • Local merge-result tree: 572020a5ccdcb8ca6b4322a0ffd17451add318a8
  • Current hosted Checks: all 35 completed successfully; no predecessor review or check evidence is being reused.
  • Feature scope: 64 MiB streaming PDF boundary, auth-before-body, first-byte over-limit rejection, ADR index correction, and exact-boundary regression.
  • Review only: walk the exact current diff, report path:line findings and structured verdict; do not merge, dismiss, bypass, or update the branch.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

@opencode-agent @cwl-noema-review review only exact current head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3 against base e06b1f3fb10903569124af011da213951e6e2473. Walk the full diff and return structured substantive findings/verdict. Do not merge, dismiss, bypass, or update the branch.

@opencode-agent

Copy link
Copy Markdown
Contributor

Queued @cwl-noema-review and @opencode-agent for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

5 similar comments
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 03ec64c2cb31a5f567c89422983b6bd020b0a8b3. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@seonghobae

Copy link
Copy Markdown
Collaborator Author

Exact-head Strix disposition

For exact head 585bb4e0fb719ab6a576cf46d1ef12b77872557b, the hosted Strix job 97190711585 failed closed after repeated NVIDIA NIM 429 Too Many Requests; the configured openai-direct/gpt-5.6-luna fallback then failed because its provider/backend returned LLM Provider NOT provided. No authoritative vulnerability report was produced. This is provider infrastructure evidence, not a source finding.

A normal failed-job rerun was attempted and GitHub returned 404 because the owning workflow is no longer available. No check was downgraded and no bypass is requested. Keep the PR in WAIT_AND_REMEDIATE until a current authoritative Strix run and independent approval exist.

@seonghobae
seonghobae enabled auto-merge (squash) August 24, 2026 12:45
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

25 similar comments
@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

@opencode-agent

Copy link
Copy Markdown
Contributor

Already queued @cwl-noema-review and @opencode-agent on this exact request for PR #682 at head 585bb4e0fb719ab6a576cf46d1ef12b77872557b. Central exact-name Actions artifacts are the durable dispatch ledger; existing review workflows remain authoritative for the final verdict and failure evidence.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant