Repository navigation
fix(vclt-gate): state the --input argv positions; pin per-verdict exits - #130
Conversation
Two CodeRabbit findings on #125 that arrived as it merged: - The contract said the consumer "passes the path as argv[1]". The invocation is argv[1] = `--input`, argv[2] = the path; a bare path is `bad_invocation`. Corrected, since a consumer built from the old wording would fail every call. - The transport-parity test compared stdin and --input but not the verdict itself, so both transports being wrong the same way would pass. Each case now pins its exit code (admitted 0, rejected 1, bad version 2), and the bad-version case asserts `unsupported_version`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Invocation contract and transport validation docs/vclt-gate-contract.adoc, src/interface/parse/tests/gate_transport.rs |
The contract specifies --input <path> and defines a bare path as bad_invocation. The test checks both transports against expected exit codes and verifies the file-input error kind for an unsupported version. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Possibly related PRs
- hyperpolymath/vcl-ut#125: Introduced the
--input <path>transport and its initialgate_transport.rscoverage.
Merge Risk: 
Minimal · previous review cd675
-
No merge-blocking issue is identified in this change.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passed-
Full details: Description check
-
Explanation
The description follows the required structure and explains the changes, testing, documentation update, formatting limitation, and unrun REUSE check. It is sufficiently complete, although the unchecked REUSE item and existing rustfmt diff remain documented limitations.
-
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches: 💡 1
-
📝 Generate docstrings: 💡
-
- Commit to this branch
- Create a new PR
🛠️ Fix failing CI checks
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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 help to get the list of available commands.
|
✅ Coding Agent task started: View task and status The task will inspect the CI failures, validate its fix, and commit the fix to this branch automatically.
⏭️ Checks skipped: 1 · already failing on `main` (not caused by this PR)
|
|
Add Carrot credits or activate Agent usage billing to use Autofix |
|
No fix exists yet to port. The six findings are already present on Note for the owner: CodeRabbit has started a docstring-generation task and a "fix CI" task that both say they will commit to this branch. Nobody here asked for either. If they push, I'll review what lands before this merges. Generated by Claude Code |
…es and validation
…references and validation" This reverts commit b20c60d. The commit was pushed to this PR's branch by CodeRabbit's CI-fix agent; nobody asked for it. It is outside this PR's scope (a contract wording fix plus one test), and it adds content to .a2ml files (0-AI-MANIFEST.a2ml, ai/AI.a2ml, policies/MAINTENANCE-AXES.a2ml), which the estate's A2ML retirement rule forbids. The 6a2 -> descriptiles move, if wanted, belongs in its own reviewed change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpQVLrCbURpoXtrdvy8V3B
|
I reverted
After the revert, the branch tree is identical to Generated by Claude Code |
Summary
CodeRabbit posted two findings on #125 that arrived as it merged. This PR fixes both.
Changes
docs/vclt-gate-contract.adoc: the contract said the consumer "passes the path asargv[1]". The actual invocation isargv[1]=--inputandargv[2]= the path, and a bare path isbad_invocation. A consumer written from the old wording would fail on every call.tests/gate_transport.rs: the parity test compared stdin with--inputbut never checked the verdict itself, so it would still pass if both transports were wrong in the same way. Each case now pins its expected exit code, checked against the built binary: admitted 0, rejected 1, bad version 2. The bad-version case also assertsunsupported_version.RSR Quality Checklist
Required
cargo test --test gate_transportpasses 5/5.rustfmt --checkongate_transport.rsstill reports one diff, at line 135 in the schema test that docs,test(schema): clarify fixed OctadSchema contract and add VCLS/gate tests (#118) #128 added. It is onmainand outside this change.cargo clippy --all-targetsproduced no warnings.unsafeblocksAs Applicable
Testing
cargo test --test gate_transportandcargo clippy --all-targetsinsrc/interface/parse.asciidoctor -wis clean on the contract.Generated by Claude Code