docs(search): use the _fused_score column name in the rrf() reference (#2486)
The rrf() table function returns its fused score in a column named _fused_score since v2.0.0. Update the SQL search reference for Next and for versions 2.0.x to 2.4.x. The 1.x copies stay as they are, because runtime 1.x named the column fused_score.
5 hours ago
feat(website): publish agent discovery documents for spiceai.org (#2319)
* feat(website): publish agent discovery documents for spiceai.org
Implement the isitagentready.com checks that apply to a static docs site:
- Serve each page as Markdown to requests that prefer text/markdown
(functions/_middleware.js, using the files the llms-txt plugin now writes)
- Send RFC 8288 Link headers on the homepage
- Publish an RFC 9727 API catalog and /openapi.json for the runtime HTTP API
- Publish the spiceai/skills v2.3.2 skills with an Agent Skills Discovery index
- Publish an ARD manifest at /.well-known/ard.json and ai-catalog.json
- Register WebMCP tools (search_docs, get_page_markdown)
- Declare Content Signals in robots.txt
* fix(website): download the agent skills at a pinned commit, not a tag
A tag can be moved to different content, and the index digests describe only the
downloaded bytes. Pin skillsCommit to the v2.3.2 release commit and reject an
archive of any other commit before publishing.
* fix(website): use the standard ARD media types for skills
A single SKILL.md is text/markdown; profile="urn:air:agent-skills" in the ARD
conformance definitions, not application/agent-skills+md. Drop the llms.txt entry,
whose plain text/markdown type ARD reads as a skill missing its profile.
* fix(website): read search result URLs with get_page_markdown on any deployment
search_docs returns canonical https://spiceai.org URLs, which get_page_markdown
rejected on preview and local deployments. Read the same path from the current
deployment instead. Also write the zero-width space regex as \u200b.
* fix(website): serve openapi.json with its OpenAPI media type, skip Functions for favicons
/openapi.json was served as application/json although the API catalog and Link
headers advertise application/vnd.oai.openapi+json. Root favicon requests invoked
the middleware; exclude them in _routes.json.
a month ago
build: upgrade to Node.js 26 LTS and latest packages (React 19, TypeScript 7, Tailwind CSS 4) (#2451)
* ci: run workflows on Node.js 26 and update actions
Node.js 26 entered Active LTS on 2026-10-28 and Node.js 24 moved to
maintenance on 2026-10-20.
- actions/checkout v3/v4 -> v7
- actions/setup-node v4 -> v7, node-version 24 -> 26
- actions/github-script v7 -> v9
- actions/labeler v5 -> v7
- cloudflare/wrangler-action v3.14.1 -> v4.1.3
- spiceai/pulls-with-spice-action v1.0.7 -> v2.0.0 (v3.0.0 is a prerelease)
* fix(website): make the typecheck pass under TypeScript 7
npm run typecheck previously ran out of memory because tsconfig.json
included build/ and .docusaurus/. Exclude them, as upstream Docusaurus
does.
TypeScript 7 removes baseUrl, which @docusaurus/tsconfig 3.10 still sets.
Unset it and redeclare the @site/* path relative to this tsconfig.
Fix the errors the typecheck then reports:
- Resolve two bare imports that only worked through baseUrl.
- Import ProcessedFile from the module that exports it.
- Type the Quote props (TypeScript 7 enables strict by default).
- Add the Font Awesome Slack icon that the Slack link in Social expects;
it still referenced a Discord icon that never existed.
* build(deps): upgrade all packages, including React 19, TypeScript 7 and Tailwind CSS 4
Require Node.js 26 (Active LTS) and move every direct dependency to its
latest release. The lockfile is regenerated, so transitive dependencies
are current too.
Majors: react/react-dom 18 -> 19, typescript 5.9 -> 7.0,
tailwindcss 3 -> 4. tailwindcss-animate is replaced by tw-animate-css,
and postcss-import is removed because @tailwindcss/postcss resolves
imports itself.
Tailwind CSS 4 migration, keeping rendered output identical:
- Move tailwind.config.ts into CSS (@theme inline). Pin the v3 values
that v4 changed: neutral and red-700 colors, px breakpoints, and rem
line heights for text-xs/sm/base/xl/2xl.
- Scope utilities under .tailwind by nesting @tailwind utilities, which
replaces v3's important: '.tailwind' and keeps them unlayered so they
still win over Infima.
- Generate utilities only from src/ (the v3 content glob) and exclude
container, which v3 disabled in favor of Infima's .container.
- Keep hover styles on touch devices, as in v3.
- Replace theme() calls in preflight.css with the values v3 resolved.
- Rename utilities whose meaning changed: outline-none -> outline-hidden,
backdrop-blur-sm -> backdrop-blur-xs, bg-gradient-to-* -> bg-linear-to-*.
- leading-* now overrides responsive text-* line heights: drop the
redundant leading-8 from Title and add md:leading-8 to Paragraph.
- Dialog: drop the slide offsets that compensated for v3 transforms, and
use gap instead of space-*, matching shadcn's Tailwind 4 version.
* ci: pin third-party actions to commit SHAs
Resolves CodeQL actions/unpinned-tag alerts #13 and #14: a mutable tag
can be repointed, and the Deploy step passes the Cloudflare API token to
wrangler-action. The version stays in a trailing comment.
- cloudflare/wrangler-action v4.1.3 -> 953926a2e2182532811c01a25e53647d93bf07c0
- spiceai/pulls-with-spice-action v2.0.0 -> 61ef22e4a17be07209f0811fbfe4f0deb2e490a4
5 days ago
docs(api): sync openapi.json with the runtime schema; document GET /v1/tools/search and GET /v1/nsql/context (#2457)
* docs(api): sync openapi.json with the runtime schema; document GET /v1/tools/search and GET /v1/nsql/context
Copies spiceai/spiceai .schema/openapi.json at eb5d4cb8 to website/public/openapi.json,
keeping the docs-side Apache-2.0 license block. Adds POST /v1/decisions,
GET /v1/nsql/context, and GET /v1/tools/search to the spec, so the Generate API Docs
workflow regenerates website/docs/api/HTTP/ with their pages.
Documents GET /v1/tools/search on the Tool Registry page and GET /v1/nsql/context on
the API overview, in vNext, 2.4.x, and 2.3.x, where both endpoints ship.
* docs(api): define NamespacePath and CompoundType so API page generation resolves every reference; regenerate HTTP API pages
* docs(api): describe an Iceberg namespace as the array of strings the runtime returns
* chore: update API docs
* docs(api): mark the Accept header of GET /v1/nsql/context optional; the handler defaults to Markdown
* chore: update API docs
---------
Co-authored-by: Emma Spice <emma@EmmasMacStudio.localdomain>
Co-authored-by: Spice Schema Bot <schema-bot@spice.ai>
5 days ago
Spice v2.4.1 Release Blog (#2483)
* Spice v2.4.1 Release Blog
* Use the v2.4.1 release notes copy and set the publish date to 2026-11-02
* Match the opening line of earlier release posts
11 hours ago
docs: per-dataset snapshot settings and delegation behavior in the cluster-sidecar guide; reranker, schema evolution, and refresh processed metrics (#2472)
* docs: per-dataset snapshot settings and delegation behavior in the cluster-sidecar guide; reranker, schema evolution, and refresh processed metrics
* docs: say that the zero-results fallback skips the sidecar's refresh_sql filter
---------
Co-authored-by: Emma Spice <emma@EmmasMacStudio.localdomain>
2 days ago
feat(website): publish agent discovery documents for spiceai.org (#2319)
* feat(website): publish agent discovery documents for spiceai.org
Implement the isitagentready.com checks that apply to a static docs site:
- Serve each page as Markdown to requests that prefer text/markdown
(functions/_middleware.js, using the files the llms-txt plugin now writes)
- Send RFC 8288 Link headers on the homepage
- Publish an RFC 9727 API catalog and /openapi.json for the runtime HTTP API
- Publish the spiceai/skills v2.3.2 skills with an Agent Skills Discovery index
- Publish an ARD manifest at /.well-known/ard.json and ai-catalog.json
- Register WebMCP tools (search_docs, get_page_markdown)
- Declare Content Signals in robots.txt
* fix(website): download the agent skills at a pinned commit, not a tag
A tag can be moved to different content, and the index digests describe only the
downloaded bytes. Pin skillsCommit to the v2.3.2 release commit and reject an
archive of any other commit before publishing.
* fix(website): use the standard ARD media types for skills
A single SKILL.md is text/markdown; profile="urn:air:agent-skills" in the ARD
conformance definitions, not application/agent-skills+md. Drop the llms.txt entry,
whose plain text/markdown type ARD reads as a skill missing its profile.
* fix(website): read search result URLs with get_page_markdown on any deployment
search_docs returns canonical https://spiceai.org URLs, which get_page_markdown
rejected on preview and local deployments. Read the same path from the current
deployment instead. Also write the zero-width space regex as \u200b.
* fix(website): serve openapi.json with its OpenAPI media type, skip Functions for favicons
/openapi.json was served as application/json although the API catalog and Link
headers advertise application/vnd.oai.openapi+json. Root favicon requests invoked
the middleware; exclude them in _routes.json.
a month ago
docs(search): use the _fused_score column name in the rrf() reference (#2486)
The rrf() table function returns its fused score in a column named _fused_score since v2.0.0. Update the SQL search reference for Next and for versions 2.0.x to 2.4.x. The 1.x copies stay as they are, because runtime 1.x named the column fused_score.
5 hours ago
docs: add versioned docs for v2.4 (#2414)
* docs: add versioned docs for v2.4
Copy of website/docs at 77dd0e0f, made with website/create-release.sh 2.4.
* docs(v2.4): exclude 223a66e4 (Parquet page-size bound, JSON function federation, Docker /tmp, GraphQL error previews, MySQL binlog thread)
Reverts 223a66e4 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15078, spiceai/spiceai#15181, spiceai/spiceai#15245, spiceai/spiceai#15255, spiceai/spiceai#15321, which release/2.4 does not contain.
* docs(v2.4): exclude 249d7eac (async queries reject task history; /v1/search rejects empty text)
Reverts 249d7eac in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15119, spiceai/spiceai#15213, which release/2.4 does not contain.
* docs(v2.4): exclude af5309a4 (snapshot refresh error reasons, snapshot metrics, query-interactive pool, Iceberg append warning, Datadog pod panels)
Reverts af5309a4 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15144, spiceai/spiceai#15212, spiceai/spiceai#15309, spiceai/spiceai#15310, which release/2.4 does not contain. Keeps the components/data-accelerators/cayenne/index.md change, which documents spiceai/spiceai#15340, backported to release/2.4.
* docs(v2.4): exclude a2aab93e (http: file reads send Basic credentials as a header, not in the URL)
Reverts a2aab93e in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15305, which release/2.4 does not contain.
* docs(v2.4): exclude db4fe591 (search: pass query parameters to search table functions)
Reverts db4fe591 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15048, which release/2.4 does not contain.
* docs(v2.4): exclude 94f266ff (models: chat completions keep the text a model writes beside a tool call)
Reverts 94f266ff in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15035, spiceai/spiceai#15088, which release/2.4 does not contain.
* docs(v2.4): exclude 6359209c (http: forward the query's traceparent to the HTTP origin)
Reverts 6359209c in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15089, which release/2.4 does not contain.
* docs(v2.4): exclude bfeec6c8 (auth: read-only sql tool without a read-write key; startup warning for writable data without runtime.auth)
Reverts bfeec6c8 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15284, which release/2.4 does not contain.
* docs(v2.4): exclude f7c360b5 (cluster: a restarted scheduler waits for its old heartbeat to lapse, then registers)
Reverts f7c360b5 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15196, which release/2.4 does not contain.
* docs(v2.4): exclude 511eac6b (cdc: MySQL CDC takes commit time from the GTID event, to the millisecond)
Reverts 511eac6b in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15188, which release/2.4 does not contain.
* docs(v2.4): exclude 7b1a3f48 (models: Spice replays its tool calls from earlier turns on /v1/chat/completions)
Reverts 7b1a3f48 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15127, which release/2.4 does not contain.
* docs(v2.4): exclude b33f2255 (distributed-query: cluster port requires mTLS; deprecate --allow-insecure-connections)
Reverts b33f2255 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15285, which release/2.4 does not contain.
* docs(v2.4): exclude 9c2a7d95 (models: retry failed model loads in the background)
Reverts 9c2a7d95 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15277, which release/2.4 does not contain.
* docs(v2.4): exclude 93f2cbe0 (cli: spice dataset configure prompts for spiceai_region)
Reverts 93f2cbe0 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15170, which release/2.4 does not contain.
* docs(v2.4): exclude 7f7633ec (refresh: warn about on_zero_results in caching mode only when set to use_source)
Reverts 7f7633ec in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15254, which release/2.4 does not contain.
* docs(v2.4): exclude 94b3239b (snapshots: release the snapshot writer lease on graceful shutdown)
Reverts 94b3239b in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15256, which release/2.4 does not contain.
* docs(v2.4): exclude c01cc016 (observability: state-store request, conflict and cleanup metrics)
Reverts c01cc016 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15203, which release/2.4 does not contain.
* docs(v2.4): exclude f65269c0 (snapshots: keep 28 days of snapshots)
Reverts f65269c0 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15199, spiceai/spiceai#15241, which release/2.4 does not contain.
* docs(v2.4): exclude 6561cca6 (cayenne: refuse a Spicepod whose Cayenne datasets resolve to different metastore directories)
Reverts 6561cca6 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15232, which release/2.4 does not contain.
* docs(v2.4): exclude f4d86be6 (snapshots: pin and unpin a snapshot; spice acceleration CLI reference)
Reverts f4d86be6 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15221, which release/2.4 does not contain.
* docs(v2.4): exclude 4720cf21 (store and query OpenTelemetry logs)
Reverts 4720cf21 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15206, which release/2.4 does not contain.
* docs(v2.4): exclude f443ab63 (snapshots: keep 14 days of snapshots, and async job cleanup timing)
Reverts f443ab63 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15199, which release/2.4 does not contain.
* docs(v2.4): exclude 52139445 (snapshots: per-dataset snapshot settings; deprecate top-level snapshots and runtime.scheduler state settings)
Reverts 52139445 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15136, which release/2.4 does not contain.
* docs(v2.4): exclude be5092e8 (observability: store every OTLP metric in one table and query it with time-series functions)
Reverts be5092e8 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15066, which release/2.4 does not contain.
* docs(v2.4): exclude 66ab1e4e (runtime: one instance identity for every shared-state feature)
Reverts 66ab1e4e in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15135, which release/2.4 does not contain.
* docs(v2.4): exclude 9058c8da (sql: fractional literals compare exactly with DECIMAL columns)
Reverts 9058c8da in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15082, which release/2.4 does not contain.
* docs(v2.4): exclude d28c5171 (observability: list Drasi forward delivery metrics)
Reverts d28c5171 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15075, which release/2.4 does not contain.
* docs(v2.4): exclude 2c75b374 (ai: /v1/decisions names load failures and reports cached and reasoning tokens)
Reverts 2c75b374 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15146, which release/2.4 does not contain.
* docs: link the views, DuckDB, and Databricks pages to .md files
These index.md pages used file-relative paths without .md, which Docusaurus resolves as URLs one level too high. In Next they land on the latest version's pages; in the latest version they resolve outside /docs and fail the broken-link check.
12 days ago
Add blog (#735)
* Add blog
* Update
* Update authors.yml
* Update v1.0-rc.4.md
* Fixes
* Update v0.20-beta.md
* Update v0.19.4-beta.md
* Update v0.17.2-beta.md
* Update v0.17.1-beta.md
* Update v0.17-beta.md
* Update v0.13.3-alpha.md
* Update v0.12.1-alpha.md
* Update v0.10-alpha.md
* Update v0.7-alpha.md
* Update v0.6-alpha.md
* Update v0.5.1-alpha.md
* Update v0.5-alpha.md
* Update v0.4-alpha.md
* Update v0.3-alpha.md
* Update authors, update releases (#736)
* Update authors.yml
* Update v0.19-beta.md
* Update v1.0-rc.2.md
* Add website
* add jeadie author, add to releases
* Fixes
* Update packages
* Fixes for react
* Fixes
* Merge
* Update names
* Use hosted generator
* Tweak
* fix scoped tailwind styles
* Fix images
* use scpoed preflight.css, adjust home page styles
* Update links
* Update inline HTML to Markdown
* add evgenii to authors
* fix expressions
* fix static links
* fix linnks
* fix url docs links
* fix blog links
* prefix docs links with /docs
* fix fonts and tweak styles
* apply fonts
* add sgrebnov to authors
* Fix broken links
---------
Co-authored-by: Phillip LeBlanc <phillip@spiceai.io>
Co-authored-by: peasee <98815791+peasee@users.noreply.github.com>
Co-authored-by: jeadie <jack@spice.ai>
Co-authored-by: Evgenii Khramkov <evgenii@spice.ai>
Co-authored-by: Sergei Grebnov <sergei.grebnov@gmail.com>
2 years ago
Check in versioned docs and remove generate-versions script (#1386)
* Check in versioned docs and remove generate-versions script
Transition from per-branch versioning to all versions checked in.
Generated versioned docs from release branches 1.5 through 1.11.
Removed generate-versions.sh and updated .gitignore.
* Remove generate-versions script from build workflow
Versioned docs are now checked in directly. Remove the script
invocation from package.json build, drop the fetch-depth: 0 from CI
(no longer needed), and update README to reflect the new process.
8 months ago
build: upgrade to Node.js 26 LTS and latest packages (React 19, TypeScript 7, Tailwind CSS 4) (#2451)
* ci: run workflows on Node.js 26 and update actions
Node.js 26 entered Active LTS on 2026-10-28 and Node.js 24 moved to
maintenance on 2026-10-20.
- actions/checkout v3/v4 -> v7
- actions/setup-node v4 -> v7, node-version 24 -> 26
- actions/github-script v7 -> v9
- actions/labeler v5 -> v7
- cloudflare/wrangler-action v3.14.1 -> v4.1.3
- spiceai/pulls-with-spice-action v1.0.7 -> v2.0.0 (v3.0.0 is a prerelease)
* fix(website): make the typecheck pass under TypeScript 7
npm run typecheck previously ran out of memory because tsconfig.json
included build/ and .docusaurus/. Exclude them, as upstream Docusaurus
does.
TypeScript 7 removes baseUrl, which @docusaurus/tsconfig 3.10 still sets.
Unset it and redeclare the @site/* path relative to this tsconfig.
Fix the errors the typecheck then reports:
- Resolve two bare imports that only worked through baseUrl.
- Import ProcessedFile from the module that exports it.
- Type the Quote props (TypeScript 7 enables strict by default).
- Add the Font Awesome Slack icon that the Slack link in Social expects;
it still referenced a Discord icon that never existed.
* build(deps): upgrade all packages, including React 19, TypeScript 7 and Tailwind CSS 4
Require Node.js 26 (Active LTS) and move every direct dependency to its
latest release. The lockfile is regenerated, so transitive dependencies
are current too.
Majors: react/react-dom 18 -> 19, typescript 5.9 -> 7.0,
tailwindcss 3 -> 4. tailwindcss-animate is replaced by tw-animate-css,
and postcss-import is removed because @tailwindcss/postcss resolves
imports itself.
Tailwind CSS 4 migration, keeping rendered output identical:
- Move tailwind.config.ts into CSS (@theme inline). Pin the v3 values
that v4 changed: neutral and red-700 colors, px breakpoints, and rem
line heights for text-xs/sm/base/xl/2xl.
- Scope utilities under .tailwind by nesting @tailwind utilities, which
replaces v3's important: '.tailwind' and keeps them unlayered so they
still win over Infima.
- Generate utilities only from src/ (the v3 content glob) and exclude
container, which v3 disabled in favor of Infima's .container.
- Keep hover styles on touch devices, as in v3.
- Replace theme() calls in preflight.css with the values v3 resolved.
- Rename utilities whose meaning changed: outline-none -> outline-hidden,
backdrop-blur-sm -> backdrop-blur-xs, bg-gradient-to-* -> bg-linear-to-*.
- leading-* now overrides responsive text-* line heights: drop the
redundant leading-8 from Title and add md:leading-8 to Paragraph.
- Dialog: drop the slide offsets that compensated for v3 transforms, and
use gap instead of space-*, matching shadcn's Tailwind 4 version.
* ci: pin third-party actions to commit SHAs
Resolves CodeQL actions/unpinned-tag alerts #13 and #14: a mutable tag
can be repointed, and the Deploy step passes the Cloudflare API token to
wrangler-action. The version stays in a trailing comment.
- cloudflare/wrangler-action v4.1.3 -> 953926a2e2182532811c01a25e53647d93bf07c0
- spiceai/pulls-with-spice-action v2.0.0 -> 61ef22e4a17be07209f0811fbfe4f0deb2e490a4
5 days ago
Add create-release script + workflow (#1392)
8 months ago
docs(website): group X, Slack, YouTube, and Blog under a Community navbar dropdown
5 days ago
build: upgrade to Node.js 26 LTS and latest packages (React 19, TypeScript 7, Tailwind CSS 4) (#2451)
* ci: run workflows on Node.js 26 and update actions
Node.js 26 entered Active LTS on 2026-10-28 and Node.js 24 moved to
maintenance on 2026-10-20.
- actions/checkout v3/v4 -> v7
- actions/setup-node v4 -> v7, node-version 24 -> 26
- actions/github-script v7 -> v9
- actions/labeler v5 -> v7
- cloudflare/wrangler-action v3.14.1 -> v4.1.3
- spiceai/pulls-with-spice-action v1.0.7 -> v2.0.0 (v3.0.0 is a prerelease)
* fix(website): make the typecheck pass under TypeScript 7
npm run typecheck previously ran out of memory because tsconfig.json
included build/ and .docusaurus/. Exclude them, as upstream Docusaurus
does.
TypeScript 7 removes baseUrl, which @docusaurus/tsconfig 3.10 still sets.
Unset it and redeclare the @site/* path relative to this tsconfig.
Fix the errors the typecheck then reports:
- Resolve two bare imports that only worked through baseUrl.
- Import ProcessedFile from the module that exports it.
- Type the Quote props (TypeScript 7 enables strict by default).
- Add the Font Awesome Slack icon that the Slack link in Social expects;
it still referenced a Discord icon that never existed.
* build(deps): upgrade all packages, including React 19, TypeScript 7 and Tailwind CSS 4
Require Node.js 26 (Active LTS) and move every direct dependency to its
latest release. The lockfile is regenerated, so transitive dependencies
are current too.
Majors: react/react-dom 18 -> 19, typescript 5.9 -> 7.0,
tailwindcss 3 -> 4. tailwindcss-animate is replaced by tw-animate-css,
and postcss-import is removed because @tailwindcss/postcss resolves
imports itself.
Tailwind CSS 4 migration, keeping rendered output identical:
- Move tailwind.config.ts into CSS (@theme inline). Pin the v3 values
that v4 changed: neutral and red-700 colors, px breakpoints, and rem
line heights for text-xs/sm/base/xl/2xl.
- Scope utilities under .tailwind by nesting @tailwind utilities, which
replaces v3's important: '.tailwind' and keeps them unlayered so they
still win over Infima.
- Generate utilities only from src/ (the v3 content glob) and exclude
container, which v3 disabled in favor of Infima's .container.
- Keep hover styles on touch devices, as in v3.
- Replace theme() calls in preflight.css with the values v3 resolved.
- Rename utilities whose meaning changed: outline-none -> outline-hidden,
backdrop-blur-sm -> backdrop-blur-xs, bg-gradient-to-* -> bg-linear-to-*.
- leading-* now overrides responsive text-* line heights: drop the
redundant leading-8 from Title and add md:leading-8 to Paragraph.
- Dialog: drop the slide offsets that compensated for v3 transforms, and
use gap instead of space-*, matching shadcn's Tailwind 4 version.
* ci: pin third-party actions to commit SHAs
Resolves CodeQL actions/unpinned-tag alerts #13 and #14: a mutable tag
can be repointed, and the Deploy step passes the Cloudflare API token to
wrangler-action. The version stays in a trailing comment.
- cloudflare/wrangler-action v4.1.3 -> 953926a2e2182532811c01a25e53647d93bf07c0
- spiceai/pulls-with-spice-action v2.0.0 -> 61ef22e4a17be07209f0811fbfe4f0deb2e490a4
5 days ago
build: upgrade to Node.js 26 LTS and latest packages (React 19, TypeScript 7, Tailwind CSS 4) (#2451)
* ci: run workflows on Node.js 26 and update actions
Node.js 26 entered Active LTS on 2026-10-28 and Node.js 24 moved to
maintenance on 2026-10-20.
- actions/checkout v3/v4 -> v7
- actions/setup-node v4 -> v7, node-version 24 -> 26
- actions/github-script v7 -> v9
- actions/labeler v5 -> v7
- cloudflare/wrangler-action v3.14.1 -> v4.1.3
- spiceai/pulls-with-spice-action v1.0.7 -> v2.0.0 (v3.0.0 is a prerelease)
* fix(website): make the typecheck pass under TypeScript 7
npm run typecheck previously ran out of memory because tsconfig.json
included build/ and .docusaurus/. Exclude them, as upstream Docusaurus
does.
TypeScript 7 removes baseUrl, which @docusaurus/tsconfig 3.10 still sets.
Unset it and redeclare the @site/* path relative to this tsconfig.
Fix the errors the typecheck then reports:
- Resolve two bare imports that only worked through baseUrl.
- Import ProcessedFile from the module that exports it.
- Type the Quote props (TypeScript 7 enables strict by default).
- Add the Font Awesome Slack icon that the Slack link in Social expects;
it still referenced a Discord icon that never existed.
* build(deps): upgrade all packages, including React 19, TypeScript 7 and Tailwind CSS 4
Require Node.js 26 (Active LTS) and move every direct dependency to its
latest release. The lockfile is regenerated, so transitive dependencies
are current too.
Majors: react/react-dom 18 -> 19, typescript 5.9 -> 7.0,
tailwindcss 3 -> 4. tailwindcss-animate is replaced by tw-animate-css,
and postcss-import is removed because @tailwindcss/postcss resolves
imports itself.
Tailwind CSS 4 migration, keeping rendered output identical:
- Move tailwind.config.ts into CSS (@theme inline). Pin the v3 values
that v4 changed: neutral and red-700 colors, px breakpoints, and rem
line heights for text-xs/sm/base/xl/2xl.
- Scope utilities under .tailwind by nesting @tailwind utilities, which
replaces v3's important: '.tailwind' and keeps them unlayered so they
still win over Infima.
- Generate utilities only from src/ (the v3 content glob) and exclude
container, which v3 disabled in favor of Infima's .container.
- Keep hover styles on touch devices, as in v3.
- Replace theme() calls in preflight.css with the values v3 resolved.
- Rename utilities whose meaning changed: outline-none -> outline-hidden,
backdrop-blur-sm -> backdrop-blur-xs, bg-gradient-to-* -> bg-linear-to-*.
- leading-* now overrides responsive text-* line heights: drop the
redundant leading-8 from Title and add md:leading-8 to Paragraph.
- Dialog: drop the slide offsets that compensated for v3 transforms, and
use gap instead of space-*, matching shadcn's Tailwind 4 version.
* ci: pin third-party actions to commit SHAs
Resolves CodeQL actions/unpinned-tag alerts #13 and #14: a mutable tag
can be repointed, and the Deploy step passes the Cloudflare API token to
wrangler-action. The version stays in a trailing comment.
- cloudflare/wrangler-action v4.1.3 -> 953926a2e2182532811c01a25e53647d93bf07c0
- spiceai/pulls-with-spice-action v2.0.0 -> 61ef22e4a17be07209f0811fbfe4f0deb2e490a4
5 days ago
feat(website): publish agent discovery documents for spiceai.org (#2319)
* feat(website): publish agent discovery documents for spiceai.org
Implement the isitagentready.com checks that apply to a static docs site:
- Serve each page as Markdown to requests that prefer text/markdown
(functions/_middleware.js, using the files the llms-txt plugin now writes)
- Send RFC 8288 Link headers on the homepage
- Publish an RFC 9727 API catalog and /openapi.json for the runtime HTTP API
- Publish the spiceai/skills v2.3.2 skills with an Agent Skills Discovery index
- Publish an ARD manifest at /.well-known/ard.json and ai-catalog.json
- Register WebMCP tools (search_docs, get_page_markdown)
- Declare Content Signals in robots.txt
* fix(website): download the agent skills at a pinned commit, not a tag
A tag can be moved to different content, and the index digests describe only the
downloaded bytes. Pin skillsCommit to the v2.3.2 release commit and reject an
archive of any other commit before publishing.
* fix(website): use the standard ARD media types for skills
A single SKILL.md is text/markdown; profile="urn:air:agent-skills" in the ARD
conformance definitions, not application/agent-skills+md. Drop the llms.txt entry,
whose plain text/markdown type ARD reads as a skill missing its profile.
* fix(website): read search result URLs with get_page_markdown on any deployment
search_docs returns canonical https://spiceai.org URLs, which get_page_markdown
rejected on preview and local deployments. Read the same path from the current
deployment instead. Also write the zero-width space regex as \u200b.
* fix(website): serve openapi.json with its OpenAPI media type, skip Functions for favicons
/openapi.json was served as application/json although the API catalog and Link
headers advertise application/vnd.oai.openapi+json. Root favicon requests invoked
the middleware; exclude them in _routes.json.
a month ago
Add blog (#735)
* Add blog
* Update
* Update authors.yml
* Update v1.0-rc.4.md
* Fixes
* Update v0.20-beta.md
* Update v0.19.4-beta.md
* Update v0.17.2-beta.md
* Update v0.17.1-beta.md
* Update v0.17-beta.md
* Update v0.13.3-alpha.md
* Update v0.12.1-alpha.md
* Update v0.10-alpha.md
* Update v0.7-alpha.md
* Update v0.6-alpha.md
* Update v0.5.1-alpha.md
* Update v0.5-alpha.md
* Update v0.4-alpha.md
* Update v0.3-alpha.md
* Update authors, update releases (#736)
* Update authors.yml
* Update v0.19-beta.md
* Update v1.0-rc.2.md
* Add website
* add jeadie author, add to releases
* Fixes
* Update packages
* Fixes for react
* Fixes
* Merge
* Update names
* Use hosted generator
* Tweak
* fix scoped tailwind styles
* Fix images
* use scpoed preflight.css, adjust home page styles
* Update links
* Update inline HTML to Markdown
* add evgenii to authors
* fix expressions
* fix static links
* fix linnks
* fix url docs links
* fix blog links
* prefix docs links with /docs
* fix fonts and tweak styles
* apply fonts
* add sgrebnov to authors
* Fix broken links
---------
Co-authored-by: Phillip LeBlanc <phillip@spiceai.io>
Co-authored-by: peasee <98815791+peasee@users.noreply.github.com>
Co-authored-by: jeadie <jack@spice.ai>
Co-authored-by: Evgenii Khramkov <evgenii@spice.ai>
Co-authored-by: Sergei Grebnov <sergei.grebnov@gmail.com>
2 years ago
build: upgrade to Node.js 26 LTS and latest packages (React 19, TypeScript 7, Tailwind CSS 4) (#2451)
* ci: run workflows on Node.js 26 and update actions
Node.js 26 entered Active LTS on 2026-10-28 and Node.js 24 moved to
maintenance on 2026-10-20.
- actions/checkout v3/v4 -> v7
- actions/setup-node v4 -> v7, node-version 24 -> 26
- actions/github-script v7 -> v9
- actions/labeler v5 -> v7
- cloudflare/wrangler-action v3.14.1 -> v4.1.3
- spiceai/pulls-with-spice-action v1.0.7 -> v2.0.0 (v3.0.0 is a prerelease)
* fix(website): make the typecheck pass under TypeScript 7
npm run typecheck previously ran out of memory because tsconfig.json
included build/ and .docusaurus/. Exclude them, as upstream Docusaurus
does.
TypeScript 7 removes baseUrl, which @docusaurus/tsconfig 3.10 still sets.
Unset it and redeclare the @site/* path relative to this tsconfig.
Fix the errors the typecheck then reports:
- Resolve two bare imports that only worked through baseUrl.
- Import ProcessedFile from the module that exports it.
- Type the Quote props (TypeScript 7 enables strict by default).
- Add the Font Awesome Slack icon that the Slack link in Social expects;
it still referenced a Discord icon that never existed.
* build(deps): upgrade all packages, including React 19, TypeScript 7 and Tailwind CSS 4
Require Node.js 26 (Active LTS) and move every direct dependency to its
latest release. The lockfile is regenerated, so transitive dependencies
are current too.
Majors: react/react-dom 18 -> 19, typescript 5.9 -> 7.0,
tailwindcss 3 -> 4. tailwindcss-animate is replaced by tw-animate-css,
and postcss-import is removed because @tailwindcss/postcss resolves
imports itself.
Tailwind CSS 4 migration, keeping rendered output identical:
- Move tailwind.config.ts into CSS (@theme inline). Pin the v3 values
that v4 changed: neutral and red-700 colors, px breakpoints, and rem
line heights for text-xs/sm/base/xl/2xl.
- Scope utilities under .tailwind by nesting @tailwind utilities, which
replaces v3's important: '.tailwind' and keeps them unlayered so they
still win over Infima.
- Generate utilities only from src/ (the v3 content glob) and exclude
container, which v3 disabled in favor of Infima's .container.
- Keep hover styles on touch devices, as in v3.
- Replace theme() calls in preflight.css with the values v3 resolved.
- Rename utilities whose meaning changed: outline-none -> outline-hidden,
backdrop-blur-sm -> backdrop-blur-xs, bg-gradient-to-* -> bg-linear-to-*.
- leading-* now overrides responsive text-* line heights: drop the
redundant leading-8 from Title and add md:leading-8 to Paragraph.
- Dialog: drop the slide offsets that compensated for v3 transforms, and
use gap instead of space-*, matching shadcn's Tailwind 4 version.
* ci: pin third-party actions to commit SHAs
Resolves CodeQL actions/unpinned-tag alerts #13 and #14: a mutable tag
can be repointed, and the Deploy step passes the Cloudflare API token to
wrangler-action. The version stays in a trailing comment.
- cloudflare/wrangler-action v4.1.3 -> 953926a2e2182532811c01a25e53647d93bf07c0
- spiceai/pulls-with-spice-action v2.0.0 -> 61ef22e4a17be07209f0811fbfe4f0deb2e490a4
5 days ago
docs: add versioned docs for v2.4 (#2414)
* docs: add versioned docs for v2.4
Copy of website/docs at 77dd0e0f, made with website/create-release.sh 2.4.
* docs(v2.4): exclude 223a66e4 (Parquet page-size bound, JSON function federation, Docker /tmp, GraphQL error previews, MySQL binlog thread)
Reverts 223a66e4 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15078, spiceai/spiceai#15181, spiceai/spiceai#15245, spiceai/spiceai#15255, spiceai/spiceai#15321, which release/2.4 does not contain.
* docs(v2.4): exclude 249d7eac (async queries reject task history; /v1/search rejects empty text)
Reverts 249d7eac in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15119, spiceai/spiceai#15213, which release/2.4 does not contain.
* docs(v2.4): exclude af5309a4 (snapshot refresh error reasons, snapshot metrics, query-interactive pool, Iceberg append warning, Datadog pod panels)
Reverts af5309a4 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15144, spiceai/spiceai#15212, spiceai/spiceai#15309, spiceai/spiceai#15310, which release/2.4 does not contain. Keeps the components/data-accelerators/cayenne/index.md change, which documents spiceai/spiceai#15340, backported to release/2.4.
* docs(v2.4): exclude a2aab93e (http: file reads send Basic credentials as a header, not in the URL)
Reverts a2aab93e in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15305, which release/2.4 does not contain.
* docs(v2.4): exclude db4fe591 (search: pass query parameters to search table functions)
Reverts db4fe591 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15048, which release/2.4 does not contain.
* docs(v2.4): exclude 94f266ff (models: chat completions keep the text a model writes beside a tool call)
Reverts 94f266ff in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15035, spiceai/spiceai#15088, which release/2.4 does not contain.
* docs(v2.4): exclude 6359209c (http: forward the query's traceparent to the HTTP origin)
Reverts 6359209c in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15089, which release/2.4 does not contain.
* docs(v2.4): exclude bfeec6c8 (auth: read-only sql tool without a read-write key; startup warning for writable data without runtime.auth)
Reverts bfeec6c8 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15284, which release/2.4 does not contain.
* docs(v2.4): exclude f7c360b5 (cluster: a restarted scheduler waits for its old heartbeat to lapse, then registers)
Reverts f7c360b5 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15196, which release/2.4 does not contain.
* docs(v2.4): exclude 511eac6b (cdc: MySQL CDC takes commit time from the GTID event, to the millisecond)
Reverts 511eac6b in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15188, which release/2.4 does not contain.
* docs(v2.4): exclude 7b1a3f48 (models: Spice replays its tool calls from earlier turns on /v1/chat/completions)
Reverts 7b1a3f48 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15127, which release/2.4 does not contain.
* docs(v2.4): exclude b33f2255 (distributed-query: cluster port requires mTLS; deprecate --allow-insecure-connections)
Reverts b33f2255 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15285, which release/2.4 does not contain.
* docs(v2.4): exclude 9c2a7d95 (models: retry failed model loads in the background)
Reverts 9c2a7d95 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15277, which release/2.4 does not contain.
* docs(v2.4): exclude 93f2cbe0 (cli: spice dataset configure prompts for spiceai_region)
Reverts 93f2cbe0 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15170, which release/2.4 does not contain.
* docs(v2.4): exclude 7f7633ec (refresh: warn about on_zero_results in caching mode only when set to use_source)
Reverts 7f7633ec in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15254, which release/2.4 does not contain.
* docs(v2.4): exclude 94b3239b (snapshots: release the snapshot writer lease on graceful shutdown)
Reverts 94b3239b in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15256, which release/2.4 does not contain.
* docs(v2.4): exclude c01cc016 (observability: state-store request, conflict and cleanup metrics)
Reverts c01cc016 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15203, which release/2.4 does not contain.
* docs(v2.4): exclude f65269c0 (snapshots: keep 28 days of snapshots)
Reverts f65269c0 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15199, spiceai/spiceai#15241, which release/2.4 does not contain.
* docs(v2.4): exclude 6561cca6 (cayenne: refuse a Spicepod whose Cayenne datasets resolve to different metastore directories)
Reverts 6561cca6 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15232, which release/2.4 does not contain.
* docs(v2.4): exclude f4d86be6 (snapshots: pin and unpin a snapshot; spice acceleration CLI reference)
Reverts f4d86be6 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15221, which release/2.4 does not contain.
* docs(v2.4): exclude 4720cf21 (store and query OpenTelemetry logs)
Reverts 4720cf21 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15206, which release/2.4 does not contain.
* docs(v2.4): exclude f443ab63 (snapshots: keep 14 days of snapshots, and async job cleanup timing)
Reverts f443ab63 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15199, which release/2.4 does not contain.
* docs(v2.4): exclude 52139445 (snapshots: per-dataset snapshot settings; deprecate top-level snapshots and runtime.scheduler state settings)
Reverts 52139445 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15136, which release/2.4 does not contain.
* docs(v2.4): exclude be5092e8 (observability: store every OTLP metric in one table and query it with time-series functions)
Reverts be5092e8 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15066, which release/2.4 does not contain.
* docs(v2.4): exclude 66ab1e4e (runtime: one instance identity for every shared-state feature)
Reverts 66ab1e4e in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15135, which release/2.4 does not contain.
* docs(v2.4): exclude 9058c8da (sql: fractional literals compare exactly with DECIMAL columns)
Reverts 9058c8da in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15082, which release/2.4 does not contain.
* docs(v2.4): exclude d28c5171 (observability: list Drasi forward delivery metrics)
Reverts d28c5171 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15075, which release/2.4 does not contain.
* docs(v2.4): exclude 2c75b374 (ai: /v1/decisions names load failures and reports cached and reasoning tokens)
Reverts 2c75b374 in website/versioned_docs/version-2.4.x. It documents spiceai/spiceai#15146, which release/2.4 does not contain.
* docs: link the views, DuckDB, and Databricks pages to .md files
These index.md pages used file-relative paths without .md, which Docusaurus resolves as URLs one level too high. In Next they land on the latest version's pages; in the latest version they resolve outside /docs and fail the broken-link check.
12 days ago