Skip to content

feat: support all existing bid modifiers#9

Open
Adel7418 wants to merge 3 commits into
masterfrom
feat/bid-modifiers-all-weather
Open

feat: support all existing bid modifiers#9
Adel7418 wants to merge 3 commits into
masterfrom
feat/bid-modifiers-all-weather

Conversation

@Adel7418

@Adel7418 Adel7418 commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • add normalized GET /yandex/campaigns/{campaign_id}/bid-modifiers response for all bid modifier rows returned by Direct
  • generalize POST /yandex/campaigns/{campaign_id}/bid-modifiers request model from age-only to existing modifier updates by modifier_id
  • document/test safe weather modifier boundary: read existing weather modifier first, then update coefficient by Id; no create-new-weather-modifier behavior
  • keep live apply payload minimal: {Id, BidModifier} only, with existing approval/idempotency/live_write gates

Safety

  • No live Yandex writes performed
  • No commit/push/deploy to production runtime beyond this feature branch/PR
  • Existing DirectPilot human approval contract remains required for real applies

Verification

  • uv run pytest -q tests/test_bid_modifiers_update.py tests/test_bid_modifiers_models.py → 18 passed
  • uv run pytest -q → 596 passed
  • uv run python scripts/check_openapi_sync.py → OpenAPI snapshot is in sync
  • uv run python scripts/check_no_secrets_in_git.py → No obvious tracked secrets detected

Notes

  • This PR is based on origin/master to avoid mixing unrelated sitelinks/UTM work from the local dirty checkout.
  • Reviewer gate previously passed; non-blocking future improvements: make _safe_int more tolerant of signed/whitespace strings and extend modifier type inference if new Direct provider shapes appear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant