[codex] Add TEXT_AD extension update flags#263
Conversation
|
@codex @claude review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems, API contract mismatches, and missing tests. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. |
|
Claude finished @axisrow's task in 3m 28s —— View job Code Review — PR #263 (TEXT_AD extension update flags)
VerdictNo blocking bugs found. The implementation is correct, the subtype gating is enforced, the no-op guard still trips on A few non-blocking follow-up gaps below. Findings1. (FYI / follow-up)
|
|
Codex Review: Didn't find any major issues. 🎉 ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
Pull request overview
Adds typed CLI flags to direct ads update for the TextAd.VideoExtension.CreativeId and TextAd.PriceExtension.* WSDL fields (issue #245), keeping them strictly TEXT_AD-only through the existing per-subtype incompatibility validation.
Changes:
- Add
--video-extension-creative-idand four--price-extension-*typed flags toads update, plus a_build_price_extensionhelper that normalizes enum inputs to upper case. - Mark the seven
TextAd.VideoExtension/TextAd.PriceExtensionWSDL paths assupportedin the parity gate mapping and audit doc, and add dry-run tests covering full/partial payloads, subtype rejection, and the no-op guard. - Update README EN/RU one-liners and explanatory paragraphs to document the new flags and the long-unit price format.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| direct_cli/commands/ads.py | New Click options, _build_price_extension helper, allow-list + flag-name entries, and payload assembly under TextAd. |
| tests/test_wsdl_parity_gate.py | Adds OPTIONAL_FIELD_CLI_OPTIONS mappings for the new paths; removes obsolete missing_followup audit entries. |
| tests/test_dry_run.py | Adds payload, partial-payload, subtype-rejection, and no-op-guard tests for the new flags. |
| tests/WSDL_OPTIONAL_FIELD_AUDIT.md | Drops #245 follow-up rows, flips path rows to supported, updates summary counts (2830→2823 missing, 411→418 supported). |
| README.md | EN and RU sections gain a one-line example and a short explanatory paragraph for the new flags. |
53db1fb
into
feat/issue-239-optional-fields-gate
* [codex] Add adgroup tracking params flags (#258) * Add adgroup tracking params flags * test: cover adgroup tracking params add rejection --------- Co-authored-by: axisrow <[email protected]> * [codex] Add sitelink TurboPageId typed input (#259) * feat(sitelinks): support turbo page id * test(sitelinks): cover turbo page json input --------- Co-authored-by: axisrow <[email protected]> * [codex] Add retargeting description flags (#260) * feat(retargeting): add description flags * fix(retargeting): preserve empty description --------- Co-authored-by: axisrow <[email protected]> * [codex] Add adgroups negative keyword flags (#261) * feat(adgroups): add negative keyword flags * fix(adgroups): report invalid negative set ids as usage errors --------- Co-authored-by: axisrow <[email protected]> * [codex] Add vcards nested contact flags (#262) * feat(vcards): add nested contact fields * fix(vcards): preserve grouped flag usage errors --------- Co-authored-by: axisrow <[email protected]> * feat(ads): add text ad extension update flags (#263) Co-authored-by: axisrow <[email protected]> * feat(feeds): add url feed detail flags (#265) Co-authored-by: axisrow <[email protected]> * docs: align optional WSDL audit depth notes * docs: document milestone 18 typed flags --------- Co-authored-by: axisrow <[email protected]>
Summary
Documentation check
Verification
Closes #245