Skip to content

docs: async queries reject task history; /v1/search rejects empty text - #2412

Merged
lukekim merged 4 commits into
trunkfrom
emma/docs-sync-async-queries-search
Oct 21, 2026
Merged

lukekim merged 4 commits into
trunkfrom
emma/docs-sync-async-queries-search

Conversation

@spiceemma

Copy link
Copy Markdown
Contributor

Summary

Documents two user-visible changes from spiceai/spiceai merged between 2026-10-14 and 2026-10-21. Both are vNext only: neither merge commit is in a v2.3.* or v2.4.0-rc.* tag, so website/versioned_docs/ is unchanged.

  1. Async queries reject task history (fix(cluster): keep runtime.task_history reads from blocking schedulers spiceai#15213). An async query that reads runtime.task_history or runtime.local_task_history now fails, because task history is read only on the scheduler. The "Defaults and Limitations" list on the distributed query page now states this, together with the existing rejection of locally accelerated datasets and Cayenne catalog tables, which the list did not mention.
  2. /v1/search rejects empty text (fix(search): reject empty or whitespace-only text on /v1/search spiceai#15119). The text field's description in website/public/openapi.json now matches the runtime spec: it must contain at least one non-whitespace character.

Generated API pages

Editing website/public/openapi.json triggers the Generate API Docs workflow, which regenerates website/docs/api/HTTP/ from this file. This PR changes one description string and no paths, so the regeneration only rewrites the post-search request schema. The docs spec also lacks three endpoints that the runtime spec has (POST /v1/decisions, GET /v1/nsql/context, GET /v1/tools/search). That drift predates this PR and is out of scope:

# inline Python: the (path, method) sets of website/public/openapi.json vs spiceai trunk .schema/openapi.json
only upstream: [('/v1/decisions', 'post'), ('/v1/nsql/context', 'get'), ('/v1/tools/search', 'get')]
only docs: []

Source PRs

Verification

Every value below was read from spiceai/spiceai origin/trunk at 437273525b132f821051335b183f7c0319354045. These are name, existence, and value claims taken from code; no cluster was run, so the async-query rejection is Unverified, code inspection only beyond what these lines show.

crates/runtime/src/datafusion/query.rs: "Querying locally accelerated dataset '{table}' via async queries API is not currently supported. ..."
crates/runtime/src/datafusion/query.rs: "Querying Cayenne catalog table '{table}' via async queries API is not currently supported. ..."
crates/runtime/src/datafusion/query.rs: "Querying '{table}' via async queries API is not supported: task history is read only on the scheduler. Use the synchronous query API (/v1/sql or Flight SQL) instead."
crates/runtime/src/task_history/mod.rs:49: pub const DEFAULT_TASK_HISTORY_TABLE: &str = "task_history";
crates/runtime/src/task_history/mod.rs:52: pub const LOCAL_TASK_HISTORY_TABLE: &str = "local_task_history";
crates/runtime/src/jobs/executor.rs:557-560: | Error::AcceleratedTableNotSupportedInDistributedQuery { .. }
                                             | Error::CayenneCatalogTableNotSupportedInDistributedQuery { .. }
                                             | Error::TaskHistoryNotSupportedInDistributedQuery { .. } => {
                                                 JobErrorCode::ExecutionFailed
crates/runtime/src/jobs/state.rs:71: #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
crates/runtime-search/src/request.rs:100-101: if text.trim().is_empty() {
                                                  return Err("Search text must not be empty".to_string());
crates/runtime/tests/search/mod.rs:903: "HTTP error: 400 Bad Request - Search text must not be empty",
.schema/openapi.json:12113: "description": "The text to search documents for similarity. Must contain at least one non-whitespace character."

Local build at the branch head:

$ cd website && npm run build
[SUCCESS] Generated static files in "build".

Test plan

  • cd website && npm run build exits 0 (output above)
  • Versioned-docs propagation: vNext only, per the tag check in the Summary
  • Files updated: 2, matching git diff --name-only origin/trunk..HEAD

@spiceemma
spiceemma requested a review from a team as a code owner October 21, 2026 01:02
Copilot AI balanced review requested due to automatic review settings October 21, 2026 01:02
@spiceemma spiceemma self-assigned this Oct 21, 2026
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

✅ Pull with Spice Passed

Passing checks:

  • ✅ Title meets minimum length requirement (10 characters)
  • ✅ Has at least one of the required labels: area/blog, area/docs, area/cookbook, dependencies
  • ✅ No banned labels detected
  • ✅ Has at least one assignee: spiceemma

Copilot AI previously approved these changes Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

Both documentation updates match the supplied runtime evidence, with no unresolved findings.

No open issues 🎉

What changed in this PR

Updates vNext documentation to reflect runtime restrictions on async queries and search requests. Versioned documentation remains unchanged.

Changes:

  • Documents unsupported async-query sources, synchronous alternatives, and the rejection error code.
  • Clarifies that search text must contain a non-whitespace character.
File Description
website/​public/​openapi.json Clarifies the search text requirement.
website/​docs/​features/​distributed-query/​index.md Documents async-query restrictions and alternatives.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 21, 2026 01:04
Copilot AI dismissed their stale review, a newer Copilot review was requested October 21, 2026 01:04
@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://e3befbce.spiceai-org-website.pages.dev

Copilot AI previously approved these changes Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The documentation matches the referenced runtime behavior, generated artifacts are consistent, and no unresolved issues remain.

No open issues 🎉

Review effort: Balanced

@spiceemma
spiceemma requested a balanced review from Copilot October 21, 2026 01:07
Copilot AI dismissed their stale review, a newer Copilot review was requested October 21, 2026 01:07
Copilot AI previously approved these changes Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The documentation matches the referenced runtime behavior, generated descriptions are consistent, and no blocking issues remain.

No open issues 🎉

Review effort: Balanced

@claudespice

Copy link
Copy Markdown
Contributor

Needs a maintainer: approve the workflow runs on 8af5f65f.

The Generate API Docs workflow pushed 8af5f65f ("chore: update API docs") as Spice Schema Bot. The runs that push triggered stopped at action_required and have not run:

run workflow
39525171370 Enforce Pulls with Spice
39525171335 build_and_publish (Deploy)
39525171385 Generate API Docs

enforce-pull-with-spice and Deploy are the two required checks, so the PR reads BLOCKED although Copilot approved it and no review thread is open. Read with gh run list --repo spiceai/docs --commit 8af5f65f… (all three action_required) and gh pr checks 2412 (neither required check listed on HEAD).

To unblock: approve the three runs from the Actions tab. Once Deploy and enforce-pull-with-spice pass, merge with gh pr merge 2412 --repo spiceai/docs --squash --match-head-commit 8af5f65f46fb49b836d4a6cea4ac6d3165c6770c.

@lukekim
lukekim enabled auto-merge (squash) October 21, 2026 19:09
Copilot AI balanced review requested due to automatic review settings October 21, 2026 19:09
Copilot AI dismissed their stale review, a newer Copilot review was requested October 21, 2026 19:09
Copilot AI previously approved these changes Oct 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The documentation matches the referenced runtime changes, generated API content is consistent, and no blocking issues remain.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 21, 2026 19:11
Copilot AI dismissed their stale review, a newer Copilot review was requested October 21, 2026 19:11
@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://035657b4.spiceai-org-website.pages.dev

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

The documentation matches the referenced runtime changes, generated descriptions are consistent, and no unresolved issues remain.

No open issues 🎉

Review effort: Balanced

@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://2a57e1ee.spiceai-org-website.pages.dev

@github-actions

Copy link
Copy Markdown
Contributor

🚀 deployed to https://81f5d619.spiceai-org-website.pages.dev

@lukekim
lukekim merged commit 249d7ea into trunk Oct 21, 2026
9 checks passed
@lukekim
lukekim deleted the emma/docs-sync-async-queries-search branch October 21, 2026 19:17

This branch was successfully deployed

1 active deployment
preview — 1e53a91e Deployed Oct 21, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants