Skip to content

fix(catalog): document DataForSEO Google AI Mode live as single-task - #528

Merged
stonexer merged 1 commit into
mainfrom
cursor/dataforseo-ai-mode-single-task-7070
Sep 16, 2026
Merged

stonexer merged 1 commit into
mainfrom
cursor/dataforseo-ai-mode-single-task-7070

Conversation

@stonexer

@stonexer stonexer commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

What this does

Stops catalog_get from telling agents they can POST multiple tasks to dataforseo.x.serp-google-ai-mode-live-advanced (/serp/google/ai_mode/live/advanced).

Same class as dataforseo.web.backlinks.summary (treg feedback #102 / #487): this is a Live single-task route. Extra array elements come back as per-task status 40000 "You can set only one task at a time" behind HTTP 200 (first task OK, the rest rejected at $0). The endpoint's input.note still said "the POST body is an ARRAY of task objects with these fields — one object per task", which agents read as multi-task batching. Provider-level limits already name Live = one task per POST; this endpoint's own note did not.

Catalog-only: rewrite input.note to name the single-task cap and the 40000, including that HTTP stays 200. No settlement change, no auto-split of multi-task arrays into billed calls.

Addresses treg feedback #94.

How it was tested

  • YAML note on dataforseo.x.serp-google-ai-mode-live-advanced now mirrors backlinks.summary / google.serp.organic / page.audit: exactly one task object; extra elements get 40000.
  • test_google_ai_mode_live_documents_single_task_constraint locks the YAML note, 40000, and one-element test_request.
  • test_catalog_get_dataforseo_ai_mode_live_names_the_single_task_limit locks the catalog_get HTTP payload.
  • uv run --frozen python scripts/catalog_validate.py — 102 provider files, 0 errors.
  • uv run --locked lint-imports — 14 contracts kept.
  • uv run --with pytest-xdist pytest -n auto -q4171 passed, 8 skipped.

Checklist

  • uv run --with pytest-xdist pytest -n auto -q passes locally
  • Added or updated tests for the change (if it affects behavior)
  • Updated the relevant docs/context/ fragment (docs/context/architecture/catalog.md)
  • No secrets in the diff (keys, tokens, .env values)
Open in Web Open in Cursor 

Feedback #94: catalog_get reused the generic "ARRAY of task objects —
one object per task" note on dataforseo.x.serp-google-ai-mode-live-advanced.
The live route accepts exactly one task; extra elements return per-task
status 40000 behind HTTP 200. Name the cap in input.note, leave
settlement and call splitting unchanged.

Co-authored-by: SToneX <shitianxin@gmail.com>
@github-actions github-actions Bot added the area:docs Documentation & design fragments label Sep 16, 2026
@stonexer
stonexer marked this pull request as ready for review September 16, 2026 09:54
@stonexer
stonexer merged commit b54f7de into main Sep 16, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs Documentation & design fragments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants