Skip to content

fix: make Maven operational help successful and bounded - #214

Draft
seonghobae wants to merge 33 commits into
mainfrom
fix/cli-help-maven-batch-v1
Draft

fix: make Maven operational help successful and bounded#214
seonghobae wants to merge 33 commits into
mainfrom
fix/cli-help-maven-batch-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Purpose

Keep the Maven operational audit/prune CLIs bounded while preserving valid native filesystem paths. Sole --help / -h remains a successful terminal action; invalid/mixed input remains non-zero without reflecting arbitrary payloads; native repository/output paths are not coerced through UTF-8 protocol parsing.

Exact current state

  • exact source head: c414b863ef0cae60e33596036d494e023fb80841;
  • live main: 2a727dab04cd6bd73c68d75c54c3e1563bcb16ca;
  • fresh ancestry: ahead-only, behind_by = 0, merge base exactly live main;
  • open / Ready for review / mergeable;
  • all returned inline review threads are resolved; no current qualifying independent approval is claimed.

Exact-head native workflows are green on this unchanged SHA:

  • Test 32924048137 — success;
  • Release 32924048135 — success;
  • Security Scan 32924048106 — success;
  • SAST Semgrep 32924048097 — success.

These feature-local results do not replace repository-wide exact coverage, central required-workflow, package/provenance, or live review/ruleset requirements.

Test-first native-path and resource-bound repairs

The Unix black-box contracts launch the real Maven audit/prune binaries against native filesystem paths, including non-UTF-8 absolute repository paths, and preserve bounded non-reflecting diagnostics for option/protocol fields. --repository-root and --output remain native OsString/PathBuf values; numeric options and the candidate-set fingerprint remain textual.

Resource authority is bounded before repository work: --max-entries is limited to 1..=2,000,000, and --max-candidates / --max-issues are limited to 0..=10,000. Duplicate singleton options, unknown input, mixed help, invalid numbers, and non-UTF-8 option-shaped input remain fail-closed.

Private output uses the shared private_evidence::write_private_json_create_new boundary rather than a weaker per-binary writer. On Unix this enforces create-new/private-parent authority and 0600; on platforms without an equivalent reviewed secure-mode primitive, private publication fails closed instead of silently weakening the evidence contract.

Required before merge

Do not merge unless the unchanged exact head satisfies every applicable live central workflow and repository gate, zero valid unresolved findings remain, fresh live-main ancestry is preserved, required review governance is satisfied, and repository-wide exact non-vacuous 100% owned-production statement/region-equivalent, branch, function, and line coverage is proven without exclusions or threshold weakening. Pending, queued, skipped-required, neutral-required, failed, stale, predecessor, synthetic, diagnostic-only, status-only, model-only, no-source, or infrastructure-only evidence is non-passing.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

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

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 5bd19e72-4330-42a0-aeb5-d8195a65e4ee

📥 Commits

Reviewing files that changed from the base of the PR and between f23fca0 and 8f9b6d3.

📒 Files selected for processing (3)
  • src-tauri/src/bin/disksage-maven-cache-audit.rs
  • src-tauri/src/bin/disksage-maven-cache-prune.rs
  • src-tauri/tests/cli_help_maven_exit.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • src-tauri/src/bin/disksage-maven-cache-audit.rs

📝 Walkthrough

Walkthrough

Maven cache audit 및 prune CLI가 단독 --help-h를 정상 처리합니다. 알 수 없는 인자와 비 UTF-8 인자 오류를 안정적으로 처리합니다. 블랙박스 테스트가 출력, 종료 상태, 인자 반향 여부를 검증합니다.

Changes

Maven CLI 계약

Layer / File(s) Summary
도움말 및 오류 처리
src-tauri/src/bin/disksage-maven-cache-audit.rs, src-tauri/src/bin/disksage-maven-cache-prune.rs
단독 --help-h는 사용법을 출력하고 정상 종료합니다. 알 수 없는 인자와 비 UTF-8 인자는 고정된 알 수 없는 인자 오류로 처리합니다.
CLI 계약 검증
src-tauri/tests/cli_help_maven_exit.rs
두 바이너리의 도움말 출력, 종료 상태, stdout 및 stderr, 인자 반향 여부, 비 UTF-8 인자 처리를 검증합니다. 도움말과 잘못된 인자의 혼합 호출도 검증합니다.

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

Merge Risk: 🔵 Low · up to 8f9b6

The Maven help behavior is localized and the applicable checks pass, but the focused process test does not fully assert the required stable stdout usage contract. The PR is mergeable with explicit owner awareness and follow-up to strengthen that assertion.

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.22% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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 제목은 Maven 운영 CLI의 도움말 동작을 성공 상태로 변경하고 출력을 제한하는 주요 변경 사항을 정확히 요약합니다. 간결하고 명확합니다.
✨ 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/cli-help-maven-batch-v1

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 ready for review August 13, 2026 20:07

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
⚠️ 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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
⚠️ 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.

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

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.

coderabbitai[bot]

This comment was marked as resolved.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before 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 head 8f9b6d3ac151a876f94b4526eafbe079259cf67b.

  • Head SHA: 8f9b6d3ac151a876f94b4526eafbe079259cf67b

  • Workflow run: 32148577155

  • 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 (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 8f9b6d3ac151a876f94b4526eafbe079259cf67b
  • Workflow run: 32148577155
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

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 success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before 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 head 8f9b6d3ac151a876f94b4526eafbe079259cf67b.

  • Head SHA: 8f9b6d3ac151a876f94b4526eafbe079259cf67b

  • Workflow run: 32148577155

  • 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 (3 files)"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Changed file (3 files)"]
  R1 --> V1["required checks"]
Loading

@opencode-agent
opencode-agent Bot disabled auto-merge August 18, 2026 16:58
@seonghobae
seonghobae force-pushed the fix/cli-help-maven-batch-v1 branch from 8f9b6d3 to 3fec2f3 Compare August 20, 2026 16:38
@seonghobae
seonghobae marked this pull request as ready for review August 25, 2026 19:43
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 19:43
devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 25, 2026 20:13
@seonghobae
seonghobae enabled auto-merge (squash) August 25, 2026 21:14

@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 found 1 new potential issue.

Open in Devin Review

Comment thread src-tauri/src/bin/disksage-maven-cache-audit.rs
@seonghobae
seonghobae marked this pull request as draft August 26, 2026 07:06
auto-merge was automatically disabled August 26, 2026 07:06

Pull request was converted to draft

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: operations Operability, observability, readiness, SLO, backup, or retention priority: medium Normal-priority or P2 work status: draft Draft pull request type: bug Defect or incorrect behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant