fix: keep successful CLI help strict and bounded - #220
Conversation
|
Warning Review limit reachedNext included review available in 36 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthrough세 운영 CLI의 인자 처리를 ChangesCLI 인자 검증
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: 🔵 Low · up to The PR tightens help handling and unknown-option diagnostics across three CLIs, but malformed non-UTF-8 arguments are not covered by the current regression test, leaving a bounded risk that payload reflection could regress unnoticed. The change is mergeable with explicit owner follow-up for that coverage gap. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
|
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head09733b82b1aac2c6125dab56c927e0be1fc259c3. -
Head SHA:
09733b82b1aac2c6125dab56c927e0be1fc259c3 -
Workflow run: 32167369199
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
OpenCode Review Overview
Pull request overviewOpenCode cannot approve yet because required coverage evidence did not pass. Review outcome1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
Coverage evidenceCoverage Decision
Changed-File Evidence Mapflowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
|
There was a problem hiding this comment.
Pull request overview
OpenCode cannot approve yet because required coverage evidence did not pass.
Review outcome
1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence
-
Problem: The required coverage-evidence job result was
failure, so OpenCode cannot establish approval sufficiency for this head. -
Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.
-
Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports
successwith required evidence or explicit no-source not-applicable evidence. -
Regression test: Keep the approval branch checking
needs.coverage-evidence.result == successbefore posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present. -
Result: REQUEST_CHANGES
-
Reason: coverage-evidence result was
failure, so required test/docstring evidence was not proven for current head09733b82b1aac2c6125dab56c927e0be1fc259c3. -
Head SHA:
09733b82b1aac2c6125dab56c927e0be1fc259c3 -
Workflow run: 32174721809
-
Workflow attempt: 1
Coverage evidence
Coverage Decision
- Result: FAIL
- Test evidence: not proven passing
- Docstring evidence: not proven passing when configured
- Failure count: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Changed file (4 files)"]
S1 --> I1["repository behavior"]
I1 --> R1["Review risk: Changed file (4 files)"]
R1 --> V1["required checks"]
09733b8 to
e679677
Compare
|
Current head |
|
@OpenCode review current exact head |
Dismissing: this REQUEST_CHANGES was posted against commit 09733b8 where coverage-evidence failed. The PR's current head has coverage-evidence passing (verified via gh pr checks), and all review threads are now resolved. Re-request review to re-validate.
Purpose
Keep successful CLI help strict and bounded for three operational CLIs that already supported sole help but previously allowed malformed mixed requests to terminate as successful help:
disksage-reclaim-plan;disksage-podman-reclaim-plan;disksage-volume-snapshot.Exact current state
09733b82b1aac2c6125dab56c927e0be1fc259c3.main:be418bac9bfbdc8aa41b1a698713833e3dbccfdc.src-tauri/tests/cli_help_strict_terminal_exit.rs.COMMENTEDon predecessor headcbb49c97f83a8af581ac1bc7bdf01f45d97d964a. Its valid request to prove non-UTF-8 payload non-reflection is present on the current exact head; the inline thread is resolved. It is not approval and predecessor review evidence does not transfer.Test-first repair
The process regression builds the actual feature-gated binaries with locked dependencies in an isolated target directory and requires:
--helpand-h=> exit 0, stable usage on stdout, empty stderr;The current exact-head regression explicitly asserts that a non-UTF-8
--opaque…argument cannot reflect the substringopaqueinto stderr while preserving UTF-8 and panic-detection checks.The implementation is deliberately narrow:
disksage-reclaim-planno longer interpolates arbitrary unknown-option text;disksage-volume-snapshotconsumesOsStringarguments so malformed host input cannot panic before validation;Reclaim planning, Podman evidence collection, volume snapshot/comparison semantics, JSON stdout purity, read-only authority, native path handling after
--, timeout bounds, and all domain validation remain unchanged.Exact-head validation
On unchanged exact head
09733b82b1aac2c6125dab56c927e0be1fc259c3:31879562388— success;31879562488— success;31879562401— success;31879562407— success.Conditional PR-inapplicable publication/attestation helpers are not represented as passing release evidence. Pending, predecessor, status-only, synthetic, model-only, rate-limited, absent-required, or skipped-required evidence does not transfer.
Scope / ownership
This line does not import #211's Git-worktree/archive/cloud paths, #213's provider/NarUon/cloud paths, #150's Podman desktop projection, #156's repository-wide exact coverage, or #149's canonical documentation.
Remaining integration blockers
Required before merge
Do not merge unless the unchanged exact head satisfies every applicable live required workflow and current finding, every review thread is resolved, a qualifying independent approval covers the required reviewed head/last push, fresh protected-main ancestry remains current, the live ruleset is satisfied, and repository-wide exact coverage is satisfied without exclusions or threshold weakening. Pending, queued, skipped-required, neutral-required, failed, stale, predecessor, synthetic, diagnostic-only, status-only, model-only, rate-limited, no-source-scanner, or infrastructure-only evidence is not passing.