Changelog
Notable changes to the Syntext platform, CLI, and SDKs. Follow @syntextdev for release announcements.
August 2026
-
shellWidth: "full"— runs the page shell edge to edge, so the sidebar starts at the viewport edge and the columns are separated by rules instead of a large responsive gutter. The defaultcontainedkeeps existing geometry unchanged — see Feature Flags -
features.responseStyle— presents endpoint responses as a Returns paragraph instead of a status table and field tree. It carries the success response's description from your spec, so it reads well only where those descriptions are written as prose — see Feature Flags -
Brand lockup keys —
logo.type: "wordmark"stops the header repeating a name the logo already shows, andlogo.suffixrenders a muted lowercase word beside it, replacing the hardcoded uppercase DOCS chip on API pages — see Branding -
features.endpointBarUrl— shows the full request URL in the endpoint bar, host included, instead of the path alone — see Feature Flags -
navStyle: "single"collapses the mobile header too — a one-row desktop header now stays one row on mobile, keeping the menu button in the bar instead of stacking a second breadcrumb row beneath it — see Feature Flags -
Top-bar keys are documented and real —
topbarLinkswas advertised in the config schema and consumed by nothing, andtopbarCtahad no reference section at all; both now render on guide and API pages, anddashboardUrlis deprecated in favour of the named links — see Top Bar -
features.themeToggle— removes the light/dark control for designs that have none, while keeping a visitor's stored preference working — see Feature Flags -
Right rail matches the design width — API reference pages ran a 256px rail holding a panel that needed 384px, clipping the language tabs and every code line
-
Cards take
ctaandmethods—<Card cta="Get started">adds an arrowed call-to-action pinned to the card foot, and<Card methods="POST,GET">renders coloured HTTP method chips for API resource listings; cards are now flex columns so feet align across a row — see Cards -
Hero card columns no longer collapse —
variant="card"usedgrid-row: 1 / -1against a grid with no explicit rows, so the snippet occupied one row and the copy stacked beneath it instead of sitting beside it — see Hero -
Code blocks honour their surface in light mode — guide-page code bodies carried a
!importantbackground that beat bothcodeBlockStyle: "panel"and the syntax theme's own colours, producing a dark header over a white body with dark-theme token colours on it — see Feature Flags -
One-row headers no longer clip — with
navStyle: "single"the tab strip inherited a fade authored for the two-row layout and the action cluster refused to shrink, hiding nav links below roughly 1830px with no scroll affordance -
parameterStyleis documented as the no-op it is — thetablevariant was never implemented, so the flag never changed anything; it still validates so existing configs do not warn — see Feature Flags -
One-row header —
features.navStyle: "single"pulls the section tabs up beside the brand instead of giving them their own row below it — see Feature Flags -
API-reference type scale is configurable —
themeOverrides.apiTypographysets a denser scale scoped to API pages. The field existed in the token contract but was discarded during theme resolution, so a preset that declared one never had it reach the page — see Theming -
sidebarStylenow applies to guide pages — the flag only ever reached API reference pages, because guide pages use a separate collapsible sidebar; a site set toflatstill showed chevrons and collapsed groups everywhere else — see Feature Flags -
Letter-spacing units documented — Figma reports letter-spacing with its unit stripped, so a percent value copied into
themeOverrides.typographylands as pixels and roughly doubles the tracking on small text; the theming guide now covers the conversion — see Theming -
Playground split layout fixed — the request and response columns are now two grid items rather than loose siblings, so the tabs no longer render beside the auth row with empty cells between; the body tab opens by default when the request has a body, and the method pill is filled — see Playground
-
Chrome-level layout flags —
features.codeBlockStyleswitches code blocks between the default floatingpillheader and a borderedpanelrail joined to the block,features.sidebarStyleswitches API sidebar groups between the defaultcollapsibledisclosure and aflatalways-open list,features.panelLabelslifts the request/response captions out of the panel headers, andfeatures.copyControlStylerenders the panel copy action as a word instead of a glyph — see Feature Flags -
Grouped search results — Cmd+K now groups results under Endpoints, Guides, SDKs, Changelog and Pages in a fixed order, with an HTTP method chip on endpoint results. Category is derived from the page path and frontmatter; pages under
api-reference/are now recognised as API pages, which previously fell through to Pages — see Doc site features -
Status chips on API reference pages — the coloured status-code chips shipped for guide pages only, so API reference tables rendered codes as bare cells in a column narrow enough to break "200" across two lines; the pass and the no-wrap rule now apply to both — see Doc site features
-
HTTP status chips — a table whose first column is a status code renders each as a coloured chip (2xx green, 4xx amber, 5xx red) with no component or configuration; it triggers on content shape — see Doc site features
-
Hero card variant —
<Hero variant="card" eyebrow="…">renders an inset panel with the copy on the left and a code fence beside it, instead of the default full-width banner — see Hero -
Request-panel language tabs —
features.codeLanguageSelectorswitches the API request panel between the defaultdropdownand atabsrow. ReplacescodeLanguageTabs, which never controlled anything and is now a documented no-op — see Feature Flags -
copyPageActionsis per-surface — accepts{ "guides": true, "api": false }as well as a plain boolean. It was previously honoured only on API reference pages, so setting itfalsesilently did nothing on guide pages — see Feature Flags -
Themeable parameter fields and code font — API parameter names and the "required" chip now come from
param-name/param-requiredtokens, and the mono family reaches every code surface. 21 rules across the templates previously hardcoded JetBrains Mono, so a theme's mono face was ignored where it mattered most — see Theming -
Theme presets and per-token overrides — a theme is now data, not code: pick a preset with
themeand override any individual token withthemeOverrides(fonts by role, colours per light/dark, named text styles, radii, elevation). Replaces a surface that only exposedcolors.primary— one value expanded by three derived shades — with a full token contract. Ships with thedefaultpreset and agravvpreset — see Theming -
colors.accentnow actually applies — it was accepted by every renderer and injected by none, so setting it silently did nothing. It now maps to theaccent-strongtoken.colorsremains supported and is applied afterthemeOverrides, so no existing site changes appearance because a preset was introduced — see Precedence -
Configurable fonts —
themeOverrides.fontssets thedisplay,bodyandmonoroles, fetched from Google Fonts automatically with weights unioned when one family serves two roles. A theme can set body copy in a monospace face. The old top-levelfontsblock is deprecated but still honoured — the CLI folds it intothemeOverrides.fonts, mappingheadingtodisplay— see Typography -
Syntax colours follow the theme — code highlighting now uses the palette's
syntax-*tokens instead of a fixed bundled theme. Because the highlighter bakes colours into the HTML at build time, these cannot be changed with CSS afterwards, which is why they belong to the theme. ThecodeThemekey is accepted but has no effect — see Code Theme -
Feature flags for site structure — the new
featuresblock controls what a site contains, not just how it is painted:playground,copyPageActions,sidebarMethodBadges,codeLanguageTabs,aiAssistant,parameterStyleandendpointBarAction. Every default reproduces previous behaviour, so nothing changes until you opt out. Unknown flags and wrong value types warn in the build log rather than failing the build — see Feature Flags -
A failed migration no longer starts the server — the API used to log a failed database migration and boot anyway, serving traffic against a schema its code did not match. That now exits non-zero so the platform's health check surfaces it. Migrations are also serialized across instances with an advisory lock, retried while the database is still coming up, and no longer leak a connection on the failure path.
MIGRATIONS_ALLOW_START_ON_FAILURE=truerestores the old behaviour as an incident-response override -
Design polish — code-block chrome,
/askand 404 pages now share one palette instead of three that had drifted apart; HTTP method colours are consistent everywhere (GET was green in the sidebar and blue on the endpoint pill of the same page); inline code no longer breaks mid-word on narrow screens
July 2026
- Doc-site MCP: generated API tools fixed — API tools generated from your reference pages now have complete input schemas (OpenAPI-style
{param}path parameters were previously dropped, leaving tools with no inputs); tools that can't execute because no API base URL is configured are no longer advertised to MCP clients, and calling one returns a clear configuration hint instead of "Unknown tool"; the tool proxy now falls back tobaseUrlfromsyntext.jsonwhen the add-on setting is empty — see MCP Integration - Deploys are safer under concurrent builds — builds for the same project are now serialized (a second build waits for the first to finish), and deploy retention now prunes strictly by age with a one-hour safety window, so overlapping builds can no longer interfere with each other's deployments
- Dashboard mobile menu redesigned — the mobile menu now shows your profile (name, email, link to profile settings) and an inline organization switcher for accounts in multiple orgs; log out moved into a clearly styled action at the bottom of the menu
- Versioned builds ship automatically — after each production deploy of a git-connected project, every non-default version in
versioning.versionsnow builds from its own branch or tag and deploys under/{label}/(e.g./v1/getting-started); versioned pages are indexed for version-scoped search, use the latestversioningconfig even when the old branch predates it, and versioned deployments are protected from retention pruning — see Versioning - Version switcher on doc sites — projects that declare
versioning.versionsinsyntext.jsonnow get a version dropdown in the doc-site header (guide and API-reference pages): the default version is badged latest, deprecated versions are badged deprecated and show a banner with your custom message, and switching preserves the current page path;autoRedirectToLatestnow flows through to the edge so retired versions 302 to the latest docs — see Versioning - Landing pages breathe — pages using the
centeredlayout now get generous top padding between the header tabs and the hero title on every breakpoint, so homepage content no longer sits flush against the header - Sidebar groups start collapsed — collapsible sidebar groups on deployed doc sites now start collapsed by default so long navigations stay scannable; the group containing the current page opens automatically, and any group you expand stays open on future visits — see Navigation
- Copy button on assistant code blocks — every code block in an AI assistant answer now shows a copy icon in its top-right corner, across the doc-site assistant panel, the full-page agent (
/ask), and the embeddable chat widget; the icon flips to a checkmark once copied - More tab icons — the header tab icon set now includes
layers,rocket,zap, andglobe, and API-reference pages render the full icon set (terminal,cli,component,components) identically to guide pages — see Navigation - Mobile tap-highlight removed — links and buttons on deployed doc sites no longer flash the default gray tap highlight on mobile (most visible on the Docs ↔ Agent toggle)
- Reliable code rendering in assistant answers — the agent page (
/ask) and the doc-site assistant panel now parse fenced code blocks with a proper line-based parser: fences with info strings (```bash title="…") render as real code blocks, an unterminated fence keeps rendering as code while an answer streams in, code content is never rewritten by bold/italic/link rules, and###headings inside answers render as headings on every surface - Mobile chat composer stays visible — chat pages now size themselves with dynamic viewport units (
100dvh) and safe-area padding, so mobile browser bottom bars (Samsung Internet, iOS Safari) no longer cover the message composer; the layout also resizes with the on-screen keyboard - Collapsible Steps — on deployed doc sites, every
<Step>with a title is now collapsible and starts collapsed; readers scan the numbered titles and expand only the steps they need — see Steps - Sidebar sections follow your navigation groups — the sidebar now uses the
grouplabels fromsyntext.jsonas collapsible sections, even when many groups share one URL prefix; long flat sidebars become organized, collapsible product groups — see Navigation hideRightSidebaron API-reference prose pages — overview and hand-written pages in the API Reference section can now drop the reserved code-example column and span the full width; endpoint pages keep their request/response column — see Frontmatter- Agent page matches your doc-site branding — the
/askpage now inherits the logo, colors, and favicon fromsyntext.json(previously it only read dashboard settings), so the sidebar brand and send button match the doc view exactly - Ask-page polish — the
/asksidebar brand now matches the doc-view header exactly (light/dark logo variants plus the project name), the redundant "Back to docs" link is gone (use the Docs ↔ Agent toggle), and the composer no longer draws focus rectangles around the input or its container - Redirects docs clarified — the redirects reference now states explicitly that wildcard and
:parampatterns are not yet applied by the doc-site edge; list legacy URLs as literalfrom/toentries (which generate stub pages) when they must keep resolving - Agentic Mode is now an add-on with a Docs ↔ Agent toggle — enable it under Dashboard → Add-ons → Agentic Mode (toggling triggers an automatic redeploy); when enabled, a sliding Docs ↔ Agent switch appears in the doc-site header — click Agent and the pill slides across before the interface swaps to the full-page assistant, with the matching switch on
/asksliding back to Docs — see Agentic Mode - Agentic mode for doc sites — the
/askpage is now a full-page conversational assistant: a sidebar with searchable, date-grouped conversation history that's restored across visits, a "Ready when you are." composer, multi-turn sessions, and cross-conversation memory — the assistant remembers durable facts about each visitor (stack, use case) and tailors future answers; jump into it from the expand button in any doc-site assistant panel — see Agentic Mode and the new conversation history endpoints - Mobile API pages: code examples up top — on small screens the request/response code examples now appear directly below the endpoint bar instead of being pushed to the bottom of the page; they return to the right-hand column on desktop
- Playground auth + headers in
syntext.json— declare the playground's auth scheme ("auth": { "name": "Api-Key" }) and extra header parameters ("headers": [...]) directly insyntext.json, at the top level or peropenapientry. Precedence: page frontmatter > per-entry > top-level > the spec'ssecuritySchemes; top-levelauthalso applies to hand-authored REST pages — see OpenAPI sync - Spec-driven playground auth + header parameters — the API playground's Authorization field now follows your spec's
securitySchemes(apiKeyschemes show their real header name likeApi-Key; bearer/basic keep theAuthorizationheader and prefix), andin: headerparameters get their own Headers section in the playground — values flow into all code snippets and Try-it requests — see OpenAPI sync - Custom callout icon set — all callouts now use a hand-crafted duotone SVG icon set (filled shapes with light/dark variants), and three new callout types get their own icon and palette: Security (teal shield-check), Success (green circle-check), and Important (violet diamond-alert) — triggered by bold labels like
> **Security:**or emoji prefixes like🔒,✅, and❗— see Callouts - Project audit log — every state-changing project action (settings updates, API key lifecycle, custom domain changes, manual build triggers, audience profile changes, webhook endpoints) is now recorded and browsable under Settings → Audit Log, with actor/resource filters and CSV/JSON export — see List Audit Entries
- Settings page cleanup — the General settings page now focuses on project identity: Repository, Access Control, Custom Domains, and Audience Gating moved to their dedicated sidebar and Add-ons entries, the subdomain is displayed as a read-only field, and Audience Gating is now configurable from the Add-ons page; the Assistant sidebar item no longer shows a placeholder "Trialing" badge, and the Profile page now spans the full content width like the other settings pages
- Playground base-URL selector — declare multiple base URLs (production + sandbox) and the API playground shows a base-URL dropdown; code snippets and Try-it requests follow the selected server. Declare them once with a top-level
baseUrlskey insyntext.json, in the spec'sserverslist, or as aserversoverride on anopenapientry — see OpenAPI sync - ReadMe-style emoji callouts — blockquotes prefixed with ReadMe's emoji conventions (
> 📘 Note,> 🚧 …,> 💡 …) are now auto-styled as proper callouts: the emoji is swapped for a real SVG icon and the first line becomes a bold title — no conversion needed when migrating from ReadMe - Icons, not emojis — all doc-site surfaces now render real SVG icons instead of emoji (theme callouts, gRPC deprecation notices, generated changelog headings)
- Complete response dropdowns — statuses without an authored example now get a synthesized skeleton from the response schema, merged alongside authored examples; previously authoring one example (e.g. a
400) hid the generated examples for other statuses - Build-time OpenAPI page generation — list specs under
openapiinsyntext.jsonand every build generates endpoint pages directly into your docs tree; hand-authored pages at the same path always win — see OpenAPI sync - Request samples from spec examples — the auto-generated cURL/Python/JavaScript/PHP/Go/Java/Ruby request snippets now use the request body example from your spec instead of placeholder values
- Per-status response messages — the response panel shows the spec's example name for the selected status code (e.g.
404→ "CustomerNotFound"); named examples for the same status each get their own dropdown entry stx build— self-hosted exports — build your docs on the Syntext backend and download the complete static site (pages, Markdown exports, and a static search index) for hosting on your own infrastructure — see stx build (CLI v0.6.0)- Doc Site Features guide — the built-in reader features (page feedback, prev/next navigation, Copy page / Open in ChatGPT / Open in Claude,
llms.txt, the/askpage) are now documented in one place — see Doc Site Features - Design polish — pill-style tab bars matching code block headers, rounded sidebar highlights, fully rounded API endpoint bars, outline-only expandables sized to match code block headers, compact split-style page-action buttons, a persistent "Try it" label on the playground send button, and a circular playground close button
- Rich footer — add grouped link columns, your logo, and social icons to every doc site page via
footer.columnsinsyntext.json— see Footer - Full-bleed footer — the footer now spans the entire viewport width as a distinct band on both guide and API reference pages, instead of being confined to the content column
- Slimmer scrollbars — page and sidebar scrollbars on doc sites are now consistently slim across Chromium, Safari, and Firefox
- Config changes trigger rebuilds — edits to
syntext.jsonalone (e.g. footer or theme changes) now correctly invalidate the build cache; previously a deploy with unchanged content could skip config-only updates
June 2026
- Hosted MCP connector — connect Claude, Cursor, or VS Code to your docs with a single URL (
https://api.syntext.dev/mcp), OAuth sign-in, no API keys — see MCP Integration - Assistant panel redesign — cleaner chat interface with live thinking states while the assistant searches, one-click conversation clearing, and an AI disclaimer
- Doc site polish — pinned header and navigation while scrolling, redesigned code block headers with language chips, and refreshed API endpoint bars
- Content health & annotation coverage APIs — aggregate documentation health and
@stxcoverage are now queryable: Content Health, Annotation Coverage - Dashboard error surfacing — collaboration, analytics, and editor views now surface partial failures explicitly instead of failing silently
- Live build logs — build detail pages stream logs in real time
May 2026
- GitHub App — connect repos without per-repo webhook setup; PR preview builds work out of the box
- Approval gates — require sign-off on path patterns before publishing
- Scheduled publishing — stage content now, go live later
April 2026
- AI documentation gaps — unanswered assistant questions are ranked and reported in analytics
- Style linter with auto-fix — custom terminology and tone rules, enforced in the editor and via API
- Glossary — hover definitions on doc sites + linter-enforced term consistency
Earlier
- Annotation system — two-tier parsing (zero-config doc comments +
@stxdirectives) across TypeScript, Python, Go, Rust, Java, PHP, and C# - Drift detection —
stx checkfails CI when code signatures diverge from docs - Audience gating, custom domains, OpenAPI import with try-it playground, embeddable AI widget, MCP server for AI IDEs
This changelog covers the platform. For CLI release notes, see the GitHub releases.