fix: align Rust behavior with Node qs 6.16.0 - #44
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (19)
💤 Files with no reviewable changes (2)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe update aligns decoding and encoding behavior with Node qs 6.16.0 for strict comma-group limits and dot encoding on top-level primitive-valued keys. It adds regression and parity cases, and updates the documented parity baseline and comparison harness. ChangesNode qs 6.16.0 parity
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The decoding and encoding changes align with the documented qs 6.16.0 behavior, and the comparison harness pins the intended version. The change is mergeable after normal checks. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The changes strengthen configured parser limits and preserve literal dotted keys. No introduced security bypass was identified in the inspected paths. Remaining risk is limited compatibility with downstream consumers and custom callbacks whose integration behavior has not been fully assessed. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 47.62% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 21 functions across 8 files. (9 skipped: 9 unsupported.)
✨ Finishing Touches 💡 1📝 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 |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | -4 |
| Duplication | 0 |
🟢 Coverage 100.00% diff coverage · +0.01% coverage variation
Metric Results Coverage variation ✅ +0.01% coverage variation (-1.00%) Diff coverage ✅ 100.00% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (9594e05) 5060 4938 97.59% Head commit (6ead36a) 5046 (-14) 4925 (-13) 97.60% (+0.01%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#44) 4 4 100.00% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #44 +/- ##
==========================================
+ Coverage 97.58% 97.60% +0.01%
==========================================
Files 37 37
Lines 5060 5046 -14
==========================================
- Hits 4938 4925 -13
+ Misses 122 121 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Description
Fix two parity gaps against the Node
qs6.16.0 baseline:list_limitchecks for each comma group assigned through[]=before splitting or invoking custom value decoders. Preserve the nested outer-list shape at the limit and existing non-throwing behavior.encode_dot_in_keysis enabled, preserving literal-key round trips and function-filter prefixes.Type of change
How Has This Been Tested?
cargo test --lib bracketed_comma— 4 passed.cargo test --test regressions dotted_root— 2 passed.cargo test --test parity_decode --test parity_encode --test comparison -- --nocapture— all 3 suites passed against installedqs6.16.0.cargo test --all-features— 301 passed across 16 suites.cargo clippy --all-targets --all-features -- -D warnings— clean.Compatibility notes
Non-throwing comma decoding,
decode_pairs, existing dot-option validation, and nested separator-dot behavior are unchanged.Summary by CodeRabbit
[]=, with oversized groups rejected before splitting or custom value decoding when strict mode is enabled.qsbehavior baseline to version 6.16.0.