Skip to content

docs(gap-baseline): record the sidecar preflight max_tokens root cause - #921

Merged
seonghobae merged 7 commits into
mainfrom
docs-sidecar-preflight-gap
Aug 30, 2026
Merged

docs(gap-baseline): record the sidecar preflight max_tokens root cause#921
seonghobae merged 7 commits into
mainfrom
docs-sidecar-preflight-gap

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Fulfills a reference ContextualWisdomLab/.github#1436 added in scripts/ci/contextual_orchestrator_review_sidecar.sh's code comment, pointing here for the exact-evidence trail behind that PR's fix. Devin's review on #1436 correctly flagged that the comment named this entry before it existed — this PR is that entry.

Records the root cause of the org-wide opencode-review/noema-review/strix failure signature every open PR has been showing at sidecar boot: the sidecar's routing probe already proved a nvidia_nim DeepSeek route healthy at a 4096-token budget, but a separate end-to-end gateway check re-tested the same route with max_tokens:16 — too small for a reasoning model, which returns reasoning with no content, misreported by the server as 502 invalid_structured_output.

This repo's PRs can't fix the sidecar directly (it's central .github-owned infrastructure); this is a documentation-only PR recording the evidence trail.

Verification

  • python3 -m pytest tests/test_hourly_opencode_loop_contract.py — 1 passed (the gap-baseline doc contract)
  • git diff --check — clean

Generated by Claude Code


Devin Review

Summary by CodeRabbit

  • 문서
    • 2026년 8월 30일 검증 기록과 관련 장애 원인을 문서화했습니다.
    • 사전 점검 설정 충돌, 별도 제공자 오류 및 요청 시간 제한 문제를 구분해 기록했습니다.
    • 라우트별 검증 증거 출력과 시간 제한 상향 변경 사항을 추가했으며, 재검증 미완료 상태를 명시했습니다.
    • 기존 원인 추정을 철회하고 오류 라벨의 한계를 명확히 했습니다.

Fulfills the reference added in .github#1436's code comment (Devin flagged
it as a missing baseline entry when it merely pointed at a not-yet-written
one). Records the exact-evidence trail (downloaded strix-reports artifact
from this repo's own PR #912 run) that this repo's PRs cannot fix directly
since the sidecar is central-.github-owned infrastructure.
@coderabbitai

coderabbitai Bot commented Aug 30, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 51 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 180335d5-cfcd-4436-a2ff-f954cae16b0f

📥 Commits

Reviewing files that changed from the base of the PR and between ea40c7d and 55832c0.

📒 Files selected for processing (1)
  • docs/product-technical-gap-baseline.md
📝 Walkthrough

Walkthrough

기술 격차 기준선 문서에 2026-08-30 검증 결과를 추가했다. max_tokens 충돌, provider 오류, route 증거 출력, curl 제한 변경 및 미완료 검증 상태를 기록했다.

Changes

기술 격차 기준선

Layer / File(s) Summary
Preflight 실패 원인 기록
docs/product-technical-gap-baseline.md
strict verdict 검사는 정상이며, reasoning-capable 경로에서 max_tokens:16이 실패한 원인을 gateway preflight와 fail-closed 검사 동작의 충돌로 기록했다.
수정 및 후속 결함 기록
docs/product-technical-gap-baseline.md
#1436max_tokens 수정과 검증 결과를 기록했다. bytez discovery 오류와 route 후보 전체 거부를 별도 결함으로 구분했다. #1440의 route 증거 로그와 curl 제한 변경은 미병합 및 재검증 대기 상태로 기록했다.
Probe 증거 및 오류 라벨 기록
docs/product-technical-gap-baseline.md
sidecar와 gateway preflight의 token 예산 차이를 정리했다. ProviderResponseError가 여러 원인을 502 invalid_structured_output으로 매핑하는 라벨 불일치와 live acceptance 미완료 상태를 기록했다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to ea40c

This documentation-only change has no direct production impact, but it currently contains an unsupported claim about the next scheduler pass and a contradictory statement about the gateway timeout, which could mislead future troubleshooting. It is mergeable with explicit owner follow-up to correct those statements.

Suggested reviewers: claude

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 문서 변경의 핵심인 sidecar preflight의 max_tokens 원인 기록을 정확하게 요약합니다. 추가 검증 결과와 별도 결함까지 모두 포함하지 않아도 되므로 제목은 충분히 명확합니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-sidecar-preflight-gap

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.

claude added 2 commits August 30, 2026 10:29
…ar fix

.github#1436 merged (admin bypass, structurally deadlocked check —
evidence on the PR). Re-queued opencode-review/noema-review/strix on
this PR plus #911/#920 as the live canary: the specific max_tokens
502 symptom is confirmed fixed, but noema-review still failed with a
distinct signature (bytez discovery 500 + preflight finding zero
passing routes). Records what's confirmed, what's still open, and
the working hypothesis (concurrent-run rate-limit contention) pending
a clean re-observation.
Devin flagged (on #921) that ModelClient._response_content returns
successfully for any string content, including "", so the entry's
"reasoning consumes the budget, content comes back empty" narrative
doesn't match the code, and the generic error message quoted implies
a narrower condition (non-string/absent content, reasoning falsy)
than originally claimed. Verified against the code and the original
strix-reports artifact (no raw provider payload was ever captured —
sanitized by design), corrected the entry to state what's actually
evidenced (budget mismatch reproduces, matching it fixes it) versus
what was an unverified hypothesis, and noted the fix's own tests
target a different, stricter function (the launcher's own preflight
content check) that is unaffected by this correction.
devin-ai-integration[bot]

This comment was marked as resolved.

seonghobae pushed a commit to ContextualWisdomLab/.github that referenced this pull request Aug 30, 2026
…al reasoning latency

Exact-evidence reproduction (Strix run 33306775025 on
ContextualWisdomLab/contextual-orchestrator#921, job 99244624298):
the routing probe marked a DeepSeek NIM route "ready" in 18s, then
this identical end-to-end gateway request against that same healthy
route was cut off by curl's own --max-time bound at exactly 30.0s --
"gateway preflight request could not reach the local sidecar" was
that timeout, not a real connectivity failure. 30s is inconsistent
with real reasoning-model completion latency and with this org's own
stated accuracy-over-speed review policy; this job already budgets
120 minutes overall. Raised the bound to 120s so a genuinely healthy,
slower route isn't rejected by an arbitrarily tight preflight check.

Verified RED before GREEN: the new test
(test_gateway_preflight_curl_timeout_tolerates_real_reasoning_latency)
fails against the pre-fix 30s bound (confirmed by stashing the fix
and re-running just that test) and passes after restoring it. Full
suite: 1884 passed, 1 skipped, 25 subtests passed.
…evidence

Downloaded and inspected the actual strix-reports artifact instead of
continuing to speculate: the real causes were (1) noema-review/
opencode-review having zero visibility into per-route preflight
rejection reasons, and (2) the gateway preflight's 30s curl timeout
cutting off a route the routing probe had just proven healthy in 18s.
Both fixed and RED/GREEN-tested in ContextualWisdomLab/.github#1440.
devin-ai-integration[bot]

This comment was marked as resolved.

claude added 2 commits August 30, 2026 10:54
…gling "above"

Devin caught it on #921: the previous edit deleted the paragraph
stating the rate-limit hypothesis while the replacement text still
said "the hypothesis above," leaving nothing for that reference to
point to. Restated it inline.
…ned 8/27, gateway check broke 8/29)

Investigated whether .github's opencode-review verdict-checker itself
was defective, since it's been failing org-wide for days. It isn't:
git history shows it was a rubber stamp (always exit 0) until 8/27,
when it was correctly rewritten to require a real matching review.
Two days later, 8/29's "exercise exact gateway readiness" commit
introduced the end-to-end gateway check that shipped with the
max_tokens:16 bug (#1436 fixed today). The now-strict checker
collided with a newly-broken dispatch path, not a checker design
flaw. Confirmed via #1246: last real opencode-agent review was 8/23,
none since despite the head moving forward repeatedly.
coderabbitai[bot]

This comment was marked as resolved.

1. Softened "will resolve on the scheduler's next pass" to not assert
   an outcome that hasn't been verified.
2. Removed the false implication that the routing probe's 10s
   per-candidate timeout says anything about the separate gateway
   curl timeout completing in time -- especially now stale since
   that curl timeout was raised 30s->120s in .github#1440 after
   being found too tight for real reasoning-model latency.
@seonghobae
seonghobae merged commit 0ad982e into main Aug 30, 2026
33 of 34 checks passed
@seonghobae
seonghobae deleted the docs-sidecar-preflight-gap branch August 30, 2026 11:20
seonghobae pushed a commit that referenced this pull request Aug 30, 2026
Split the 44/46-failure count into its schedule vs workflow_dispatch
components (43 schedule: 42 failure + 1 cancelled; 3 workflow_dispatch:
2 failure + 1 skipped) instead of the looser "44 of 46 scheduled runs"
phrasing, and independently confirmed the corroborating http_status_500
against the primary job log (contextual-orchestrator PR #921, job
99243631744, 2026-08-30T10:26:47Z) rather than only the paraphrase in
the existing gap-baseline entry.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Gs7KmNvH75nxz1sL8mKjw
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.

2 participants