Skip to content

fix(api): validate vuongtest and icci option arguments - #126

Draft
seonghobae wants to merge 19 commits into
masterfrom
sentinel-input-validation-593108796151447048
Draft

fix(api): validate vuongtest and icci option arguments#126
seonghobae wants to merge 19 commits into
masterfrom
sentinel-input-validation-593108796151447048

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Current authority

  • protected/base: master@b62bf9ac928988a4b988fc3efb0adfb88549fef2
  • exact head: 5a4be4cc5e231dc14155b611b4396ec631d5083a
  • lifecycle: Draft / canonical exported option-contract source + persistent regression
  • protected-base compare: ahead 19 / behind 0
  • effective protected-base delta: R/icci.R, R/vuongtest.R, tests/testthat/test_exported_input_validation.R

Valid delta

The exported vuongtest() boundary rejects invalid nested and adj values before model inspection. icci() requires a scalar numeric conf.level strictly inside (0, 1). The persistent regression covers zero-length, non-scalar, NA/NaN/infinite, wrong-type, boundary and out-of-domain values through the exported functions themselves, and every package-owned validation error must have the selected stable message plus conditionCall(err) == NULL.

The source/test contract is input-contract hardening and deterministic error behavior. It is not promoted to a MEDIUM information-disclosure or denial-of-service vulnerability without a demonstrated deployment/threat model.

Duplicate-lane convergence

Generated PRs #99, #100, #103, #106 and #108 each changed only the same exported option-validation surface plus branch-local .jules/sentinel.md; none carried a stronger executable regression than this lane. Their valid product semantics are fully present here, while the generated Sentinel doctrine is intentionally excluded because it is not protected repository authority.

For #108, normal two-parent descendant 5a4be4cc5e231dc14155b611b4396ec631d5083a records exact predecessor 9b671ba6452b44e65c141ff574626cc0f957b78e as an ancestor while preserving the exact current semantic tree from 6e68c37df52d3b7407bcb3c028d64ac7b5f2e122. Fresh #108 -> current comparison is ahead 19 / behind 0. #99/#100/#103/#106 were closed only after their diffs were re-read and the same valid source behavior was verified here; their generated doctrine is not treated as valid delta and none of their checks/reviews transfer.

Fresh close-time review also verified #127 live exact 8274b193e7e48622e3c8140e6d0d1cd9191efc39 carried no product semantic beyond this conf.level contract. Its current regression was weaker because it exercised five cases through fitted MASS models, while this lane tests the exported admission boundary directly across zero-length, non-scalar, missing/non-finite, type and range cases. #127 was therefore closed unmerged only under verified complete succession; its branch-local .jules/sentinel.md deletion was not treated as protected product authority.

This convergence is provenance/single-writer repair, not a CI re-kick. Current exact-head evidence executes independently.

Callback-contract child

Former separate lane #122 still owns useful ll1/ll2, score1/score2, vc1/vc2 callback contracts plus NEWS, but it is stale/diverged from current protected authority. Draft child #129 is now stacked directly on this exact #126 head and carries those remaining semantics through a new exported-boundary RED and minimal callback guards. Current #129 exact is 39d3cad1f4774f5a61bdc31427a90ca6da691bc2; #122 remains open until #129 obtains executable exact-head acceptance.

#129 currently has zero check runs because the repository R-CMD-check.yaml admits pull requests only when the PR base is main or master, while #129 correctly targets this prerequisite feature branch. That stack-evidence materialization RCA has been delivered read-only to canonical .github#712; no no-op child commit or #126 evidence transfer is used.

Exact-head gate

R-CMD-check 34139084780 is terminal SUCCESS on exact 5a4be4cc.... CodeQL PR 34139083971, SAST Semgrep 34139083990, and Security Scan 34139084031 remain queued at the latest fresh read. There are no submitted reviews or inline review threads. Queued is not GREEN and predecessor evidence does not transfer. The split repository-GREEN/central-queued canary remains on the canonical .github#712 owner path.

Keep Draft until unchanged exact 5a4be4cc5e231dc14155b611b4396ec631d5083a has terminal applicable Security/SAST/CodeQL evidence, zero valid unresolved findings, and the then-live qualifying independent review. No predecessor GREEN, source-neutral retry commit, self-approval, gate weakening, force push, or destructive rebase.

@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 3e943f12-4526-4455-a87a-29bbefd0d75c

📥 Commits

Reviewing files that changed from the base of the PR and between b62bf9a and b974c46.

📒 Files selected for processing (3)
  • .jules/sentinel.md
  • R/icci.R
  • R/vuongtest.R

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


📝 Walkthrough

Walkthrough

vuongtest()icci()가 계산 전에 입력값을 검증합니다. nested, adj, conf.level의 유형, 길이, 결측값 및 허용 범위를 확인합니다. 관련 보안 학습 항목을 문서에 추가했습니다.

Changes

입력 검증

Layer / File(s) Summary
내보내기 함수 인자 검증
R/vuongtest.R, R/icci.R, .jules/sentinel.md
vuongtest()nestedadj를 검증합니다. icci()conf.level의 유형, 길이, 결측값 및 범위를 검증합니다. 검증 규칙을 보안 학습 항목에 기록했습니다.

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

Merge Risk: ⚪ Minimal · up to b974c

vuongtest() and icci() now fail early for invalid inputs while preserving covered valid-input behavior. No merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 vuongtesticci의 옵션 인자 검증 추가라는 주요 변경 사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sentinel-input-validation-593108796151447048

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
seonghobae marked this pull request as draft September 6, 2026 06:09
@seonghobae seonghobae changed the title 🛡️ Sentinel: [MEDIUM] Fix input validation in vuongtest and icci fix(api): validate vuongtest and icci option arguments Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant