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.

@opencode-agent
opencode-agent Bot disabled auto-merge August 31, 2026 06:38
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