Conversation
Return valid RI recommendations with typed detail and scope failures through the parser, collection fan-out and filtered provider adapter. Keep total API failures and cancellation fatal so consumers can choose their existing policy. Verify mixed responses through the real AWS SDK, exact nested counts, empty versus all-invalid results, filtering and cancellation during enrichment. Refs #54
|
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: Repository: LeanerCloud/cloud-commitments-go/.coderabbit.yaml Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (8)
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. 📝 WalkthroughWalkthroughAWS recommendation parsing and collection now retain surviving recommendations when some details or scopes fail, and return an incomplete-results diagnostic. Cancellation remains terminal, and the service client filters partial results before returning them. ChangesRecommendation completeness
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant Caller
participant Adapter as RecommendationsClientAdapter
participant Collection as GetRecommendationsForService
participant API as AWS recommendation API
participant Parser as parseRecommendations
Caller->>Adapter: Request recommendations
Adapter->>Collection: Get recommendations
Collection->>API: Fetch recommendation combinations
API-->>Collection: Return recommendation details
Collection->>Parser: Parse recommendation details
Parser-->>Collection: Return recommendations and incomplete error
Collection-->>Adapter: Return recommendations and error
Adapter-->>Caller: Return filtered recommendations and error
Merge Risk: ⚪ Minimal · up to No concrete merge-blocking issue is established. Partial recommendation failures now retain diagnostics and surviving filtered results; downstream adoption remains a separate rollout step. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Malformed AWS RI offers were logged and dropped while callers received success. That let interactive searches present an incomplete offer menu as complete.
Return surviving recommendations with IncompleteRecommendationsError, carrying separate failed-detail and failed-scope counts plus contextual causes. Preserve those diagnostics through combo/service aggregation and the SDK adapter. Total ordinary failures and cancellation remain fatal; successful account/region filtering remains intact.
Refs #54
Independent Astra review approved exact commit 8d4be0d with no actionable findings. Fresh independent race tests cover the actual SDK adapter, completeness matrix, nested counts, filters and cancellation. Actual registered MCP protocol verification returns IsError with contextual diagnostics; the unchanged parent and a diagnostic-drop mutation instead return a successful six-row menu and fail the assertion. Full AWS module race tests, build, vet, pinned lint and normal hooks pass.
Verification uses synthetic HTTP responses through the real SDK and registered protocol, with no cloud purchases. The MCP check currently selects the producer through an isolated workspace; it is not evidence of a published consumer upgrade.
#54 remains open until platform, CLI and MCP select the published AWS module and pass standalone GOWORK=off verification. Scheduler preservation of partial results without stale-row eviction and CLI partial-result warnings are subsequent rollout steps. Existing Savings Plans parsing gaps are not covered by this RI diagnostic change.
The AWS module retains its already published shared-pkg dependency v0.0.0-20260929105827-b3b4cb5e3d80; no module files change. The bounded 435-line diff is one concern, including real-SDK regression tests and removal of obsolete error-handling comments.
Summary by CodeRabbit