Skip to content

fix(opencode): 샌드박스 시작 실패를 공급자 장애와 구분 - #1954

Draft
seonghobae wants to merge 2 commits into
mainfrom
codex/strix-sandbox-failure-attribution
Draft

fix(opencode): 샌드박스 시작 실패를 공급자 장애와 구분#1954
seonghobae wants to merge 2 commits into
mainfrom
codex/strix-sandbox-failure-attribution

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

변경 내용

#1953의 후속 소비자 수정입니다. 해당 PR에서 추가한 샌드박스 시작 오류를 OpenCode가 게이트웨이 장애나 애플리케이션 취약점으로 잘못 보고하지 않도록 했습니다.

  • 주 보고 도구와 도구가 없는 경우의 워크플로 보조 경로에 같은 구분을 적용합니다. 정확한 paired marker만 공급자 판정에서 제거하므로 같은 줄·다른 줄에 있는 독립 공급자 오류는 남습니다.
  • 샌드박스 오류만 있으면 근거 없는 소스 위치나 수정안을 만들지 않고, 스캔 미완료와 다음 확인 절차를 진단 로그에 남깁니다. 기존 취약점 파싱 순서와 위치를 찾지 못한 보고의 진단을 보존합니다.
  • 실제 두 보고 경로를 실행하는 회귀 테스트를 기존 OpenCode 품질 작업에 연결했습니다. 새 작업·실행기·의존성은 추가하지 않았습니다.
  • AGENTS.md에 분류·증거 보존·검증 절차를 기록했습니다.

Strix 실행·재시도·모델 선택, Noema, 권한 허용 목록, 규칙 집합, 승인 정책은 수정하지 않습니다. 기존 일반 공급자 진단의 오래된 정책 문구를 전면 개편하는 작업도 이번 범위가 아닙니다.

소스와 검증

Head: f45b44e4a7f9be76bf5122ba724dacbaa7facb10

Base: 43024633eba9d96b0456970391360da5a171fbda (#1953 병합). 구현 커밋 53added6 뒤 최신 main을 일반 병합했으며 강제 push는 사용하지 않았습니다.

테스트 먼저 진행했습니다. 최초 기능 반례 6개, CI 경로 누락 2개, 독립 검토의 같은 줄 복합 오류 2개가 각각 수정 전에 실패했습니다. 최종 새 회귀 테스트는 16/16 통과합니다.

python -m pytest -q -W error -rs \
  tests/test_strix_fallback_attribution.py \
  tests/test_pr_review_autofix_nvidia_nim_contract.py \
  tests/test_agent_review_runtime_quality_consolidation.py \
  tests/test_opencode_rust_coverage_toolchain_contract.py \
  tests/test_strix_caido_bootstrap_timing_retry.py

최종 head에서 77 passed, 1 skipped, 1.57초입니다. 제외된 1개는 이 호스트에 LLVM 19 도구가 없는 경우의 기존 플랫폼 검사입니다. bash -ngit diff --check는 통과했습니다. 독립 읽기 전용 검토의 같은 줄 신호 누락 지적을 재현·수정했고, 후속 소스 검토에서 추가 지적은 없었습니다. 이는 GitHub의 독립 승인 증거가 아닙니다.

전체 검사는 실패 상태입니다

최종 head의 python -m pytest -q -W error와 같은 명령의 GITHUB_ACTIONS=true 실행은 각각 11 failed, 2933 passed, 1 skipped, 21 subtests passed입니다. 다섯 기존 테스트 파일의 동일 실패 11개를 수정 전 fb2ae81dbeaacb0c630e51e9d772c6919fa220cf에서도 별도로 재현했습니다. Noema HTTP 응답 정리의 ResourceWarning 등이 포함되며, 기존 실패라는 이유로 통과 처리하거나 경고를 숨기지 않았습니다.

전체 actionlint 검사도 실패했습니다. 기존 base와 후보의 진단 본문을 위치 정보만 정규화해 비교했으며 동일합니다: SC2012 1개, SC2016 25개, SC2129 1개, SC2221 1개, SC2222 1개. 주 셸 도구의 ShellCheck SC2016 진단도 base에 존재합니다. 린터를 끄거나 규칙을 추가로 제외하지 않았습니다.

이 검증은 기존 프로젝트 격리 Python 환경을 재사용했으므로 새 lock 설치 검증이 아닙니다. 실제 공급자 호출, 배포, 현재 head의 호스팅된 보안 검사 통과를 입증하지 않습니다. 전체 셸 회귀 검사의 최종 결과는 별도 댓글로 보완합니다.

JUnit SHA-256:

  • 집중 검사: 5ece5c53a69efda0f88b98201cf294dcd664ba221706901fb7ab287aa63f1d13
  • 전체 검사: 58a02d2f5e9566d147690c329f9beb0d4cc647cdc14732b36d4aff85bc0f314b
  • CI 환경 전체 검사: d484752329831625711dd00ad94988cd96409f3860cb862ea9bceab90a1534ae

Draft를 유지합니다. 전체 실패와 기존 린터 진단을 해소하고, 변경되지 않은 정확한 head의 필수 검사와 독립 승인을 확인하기 전에는 병합하지 않습니다. 로컬 회귀 통과는 Strix 운영 복구나 조직 작업 적체 해소 완료를 뜻하지 않습니다.

샌드박스 판정과 공급자 오류를 구분하고 독립 취약점 보고를 보존한다. 기존 CI 작업에 실행 회귀 검증과 AGENTS 재발 방지 절차를 연결한다.

Commit-Message-Assisted-by: Codex (OpenAI)
Signed-off-by: Seongho Bae <me@seonghobae.me>
@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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
Contributor Author

최종 head f45b44e4a7f9be76bf5122ba724dacbaa7facb10의 전체 Strix 셸 회귀 검사가 종료됐습니다.

STRIX_TEST_PROCESS_TIMEOUT_SECONDS=3 STRIX_TEST_FAKE_SLEEP_SECONDS=5 bash scripts/ci/test_strix_quick_gate.sh

test_strix_quick_gate: PASS, exit 0입니다. 위 값은 테스트의 가짜 프로세스 예산이며 실제 모델 호출 제한을 바꾸지 않습니다. 최종 출력에서 Timeout, Fatal, Warn, Denied는 발견되지 않았습니다. 부정 입력 fixture의 의도된 NO_CONCLUSION 진단은 포함됩니다.

이는 셸 회귀 검증 영수증이며 실제 Strix 보안 스캔 성공이 아닙니다. 본문의 전체 Python 검사 11개 실패와 기존 actionlint/ShellCheck 진단은 그대로 남아 있습니다. Draft·미병합 상태를 유지합니다.

Copy link
Copy Markdown
Contributor Author

Read-only exact-head RCA for the two current failures on f45b44e4a7f9be76bf5122ba724dacbaa7facb10:

  • CodeQL compatibility analysis (actions) job 101457158334 successfully obtained OIDC/App credentials, emitted the exact .github#1954@f45b44e4 dispatch, and then failed closed with VERDICT_STATE=pending; central run 34025275088 is queued.
  • CodeQL compatibility analysis (python) job 101457158367 followed the same typed path; central run 34025388647 is queued.

Neither source vulnerability nor dispatch authorization rejection is established. Both central runs exist at protected workflow source main@43024633eba9d96b0456970391360da5a171fbda but have not acquired a runner, so the required jobs correctly remain non-passing pending authenticated exact-head verdict publication. No rerun, principal/permission change, model call, bypass, or source mutation was performed.

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