Repository navigation
Harden SDK response drift validation for 1.1.1 - #6
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (16)
📝 WalkthroughWalkthroughThe manifest now inventories response models and field metadata. Runtime deserialization handles two confirmed SDK wire-format mismatches through copied-payload validation. Documentation, tests, and release metadata were updated for these changes and version 1.1.1. ChangesResponse model manifest
Response deserialization compatibility
Release metadata update
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The PR tightens response-drift validation while preserving confirmed wire compatibility; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant AppleAdsAPI
participant Client
participant SDKDeserializer
AppleAdsAPI->>Client: response JSON
Client->>SDKDeserializer: deserialize original response
SDKDeserializer-->>Client: confirmed validation mismatch
Client->>Client: copy and patch affected row values
Client->>SDKDeserializer: validate complete patched response
SDKDeserializer-->>Client: validated response
Client-->>AppleAdsAPI: return original raw payload
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ 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 |
What changed
Why
The ASO adoption work confirmed Apple live responses that disagree with generated SDK types. The original narrow fallback preserved those responses, but a known mismatch raised early by nested SDK hydration could conceal a different invalid row later in the payload. It also used Python integer checks that include booleans.
The closest analogous SDK surface, business-brand keyword status, could not be live-confirmed because the available account is not eligible. It deliberately remains strict and has a regression test proving it is not swept into the compatibility allowlist.
Impact
Existing commands and wire output are unchanged for the two confirmed live mismatches. Unknown, sibling, mixed, malformed, boolean, and floating-point mismatches continue to fail nonzero. The manifest now detects response-model drift even when an SDK upgrade leaves the operation count unchanged.
No Apple Ads mutation or spend change was used for verification.
Validation
uv run ruff check .uv run pytest -q— 407 passedgit diff --checkTracks
roadmap-84yz.Summary by CodeRabbit
New Features
Bug Fixes
Documentation