Repository navigation
Conversation
loadRecommendationsFromCSV silently tolerated headers it did not recognize: a missing Service/Region/ResourceType column decoded every row to empty values, and the TEST-02 fixture shape (Instance Type / Instance Count) only surfaced as a misleading missing-Count error after rows had already decoded wrong. Validate the header up front against the required set (Service, Region, ResourceType, Count) and name the missing columns; strip a UTF-8 BOM so Excel exports parse. Closes #1327
An explicit Count of 0 bought nothing but still triggered a live purchase call that only the EC2 provider zero guard caught; require at least 1 (the tool's own CSVs never emit 0, the Savings Plans client sets Count to 1). Reject a negative EstimatedSavings as a malformed row, and stop printing the bad value twice in parse errors (the wrapped strconv.NumError already carries it). Closes #2116
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (4)
Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour. 📝 WalkthroughWalkthroughThe CSV loader now rejects missing required headers, invalid UTF-8, counts below one, and negative savings. It strips a UTF-8 BOM from the first header and reconstructs service-specific ChangesCSV input validation
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~20 minutes Change: Bug fix · Severity of issue fixed: Medium Merge Risk: ⚪ Minimal · up to No actionable merge-blocking issue is established by the supplied evidence. Normal checks and the stated independent review requirement still apply. 🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (3 warnings)
✅ Passed checks (2 passed)
Full details: Linked Issues checkExplanation
Full details: Out of Scope Changes checkExplanation The PR summary reports, and the reviewed parser implements, reconstruction of service-specific Recommendation.Details from Engine and Deployment fields. This changes valid CSV parsing and purchase-path behavior, but
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Fresh baseline verification at main65a02a72 also passed: full pinned short race suite532.024s and fresh build. PR head d75df92 full race suite530.548s, pinned lint0issues, fresh build and malformed-input CLI checks pass. CI tests/lint/build/pre-commit passed; failed steps are only gosec/Trivy SARIF uploads, with no error annotations. Rerunning the failed security job and CI summary to isolate an upload/service failure; no checks bypassed. Exact claude-opus-5-5 final-SHA review still blocks merge. |
|
CodeRabbit review at d75df92 reports no actionable comments and no inline findings. Pre-merge warnings triaged: (1) required-column contract is an owner decision because issue #1327 proposes six headers while existing minimal CSV inputs require four. Changed the PR to Refs #1327 so it stays open pending that decision; #379 separately tracks value validation. (2) Engine/Deployment Details reconstruction is already present on base65a02a72 and absent from this PR diff, so removing it would be an unrelated regression. (3) Boilerplate docstrings conflict with the project comment policy; local review removed branch-added narration rather than adding it. Security-upload retry completed successfully on attempt2; CI is green. Exact claude-opus-5-5 final-SHA review remains required before merge. |
CSV input with missing headers now fails before row processing instead of loading incomplete recommendations. UTF-8 BOM input preserves Service values, invalid UTF-8 bytes are rejected, Count must be at least 1, and EstimatedSavings must be nonnegative. Errors include the CSV position without repeating invalid numeric values.
Refs #1327
Closes #2116
The two issues share the parser and retain separate commits. Required columns currently stay Service, Region, ResourceType and Count, preserving existing minimal-CSV inputs. The owner must decide whether the Term and PaymentOption headers proposed in #1327 should become required. Until that decision is settled, #1327 remains open. Their value validation remains tracked by #379.
Verification at d75df92, based on 65a02a7:
Merge gate remains pending: project requires independent exact claude-opus-5-5 review naming the final SHA. Historical Kimi and current local Codex reviews do not satisfy that model gate; local exact-model runtime reports Not logged in. No merge authorization is inferred from CI or fixture verification.
Follow-up issues filed: none. Existing #379 tracks the unchanged Term and PaymentOption validation gap.