Skip to content

0.3.9 — DRY_RUN_PAYLOAD_EXCLUSIONS tail + WRITE_SANDBOX audit #138

Description

@axisrow

Summary

Close the remaining DRY_RUN_PAYLOAD_EXCLUSIONS tail and ship the WRITE_SANDBOX coverage audit (#122). Final patch before 0.4.0.

Entries to resolve (per-entry decision)

For each remaining exclusion, decide either "write a PAYLOAD_CASE" or "keep with documented technical reason":

  • adimages.add — image-data fixture; likely keep with reason "media payload".
  • advideos.add — same.
  • vcards.add — large contact-card payload; likely keep with reason "contact-card complexity".
  • feeds.add — WSDL parser limitation per current comment; verify and keep.
  • retargeting.add — typed --rule fixtures; write PAYLOAD_CASE if feasible.
  • reports.get — TSV endpoint; keep with reason "custom non-RPC contract".
  • agencyclients.add — runtime-deprecated; keep, link to RUNTIME_DEPRECATED_METHODS.
  • adextensions.add — callout-only currently; write PAYLOAD_CASE.
  • dynamicfeedadtargets.*, strategies.* — already covered by focused tests; either add PAYLOAD_CASE entries that mirror those tests, or keep with explicit "covered by test_dry_run.py::<test>" reason.

Plus #122

Build scripts/sandbox_write_audit.py per #122 detailed plan. Output Markdown table to stdout + JSON artifact at build/sandbox_audit.json. CI gate.

Acceptance criteria for closing this issue

Refs: parent #127, #122.

Contract source rule

When this issue touches API contracts, V4 Live methods, request bodies, response shapes, safety classification, or CLI command payloads:

  • Treat official Yandex Direct docs and safe live probes as the only authoritative sources for wire shape.
  • Do not treat issue examples, guessed param names, or vendored method registries as authoritative by themselves.
  • If official docs are missing, 404, ambiguous, disabled, or contradict this issue, stop implementation and record the docs drift before coding.
  • Public CLI must stay typed and canonical: no public --json passthrough for user-facing input.
  • Mutating or financially sensitive V4 commands stay dry-run-only unless the issue explicitly says otherwise after verification.
  • Update direct_cli/v4_contracts.py source status (confirmed-live, docs, undocumented) and add focused tests for exact request bodies.

Closure checklist

Non-blocking follow-up: #213 tracks the intentionally deferred live sandbox scenarios for clients.update, v4tags.update-banners, and v4tags.update-campaigns.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions