Home

Changelog

All notable changes to Sourcey. Format based on Keep a Changelog.

Added
  • Native Go documentation as a fifth tab source (godoc). Sourcey extracts package docs directly from Go source via the toolchain (go list + go/parser + go/doc); no Doxygen pipeline. Supports live mode (runs Go at build time) and snapshot mode (reads a committed godoc.json); mode: "auto" (default) picks live when Go is available and snapshot otherwise. Renders consts, vars, functions, types (struct, interface, alias, defined), fields with tags, methods, and examples from *_test.go.
  • sourcey godoc --module . --packages './...' --out godoc.json CLI command to snapshot a Go module's documentation into a portable JSON artifact for JS-only docs hosts.
  • Standalone sourcey-godoc Go module and CLI at github.com/sourcey/sourcey/go/sourcey-godoc/cmd/sourcey-godoc, with generate for static Go docs sites, snapshot for portable JSON, and cross-platform GitHub release binaries on go/sourcey-godoc/v* tags.
  • goEnv option (GOOS/GOARCH/tags) for pinning the live-mode Go build environment so docs reproduce across hosts.
  • includeTests, includeUnexported, hideUndocumented, and exclude options on godoc tabs.
  • godoc package and symbol entries flow through the existing search index, llms.txt, llms-full.txt, and sitemap.xml pipelines.
Changed
  • Changelog page descriptions now render inline markdown so links and inline code resolve, with a constrained reading width and primary-tinted underlined links.
  • Unreleased version cards drop the dashed border for a primary-tinted left accent and soft tint, with a "Next release" pill in place of the empty meta row.
Fixed
  • Changelog parser no longer leaks bullet/paragraph tokens from non-SemVer headings into the page description, so trailing historical sections stop polluting the lead paragraph.
Fixed
  • Output-relative .html links between generated pages now resolve through the active prettyUrls mode, cleaning Doxygen body links such as icy.html#anchor when prettyUrls: "strip" is enabled.
Fixed
  • Generated Doxygen page descriptions now render as plain text, preventing stale .html cross-reference links from appearing in page headers and metadata when prettyUrls: "strip" is enabled.
Fixed
  • Generated Godoc and Doxygen tab navigation now normalizes through the active prettyUrls mode, so prettyUrls: "strip" builds do not emit stale .html or index.html navigation links.
Fixed
  • prettyUrls: "strip" now emits foo.html files and public /foo links, without generated _redirects, so extensionless hosts do not loop between slashless and trailing-slash paths.
  • Internal markdown links that still point at .html pages are rewritten to the active pretty URL form when they resolve to a generated page.
Fixed
  • Sidebar nav and OpenAPI tab anchor base now honour prettyUrls ("slash" / "strip"). Previously hrefs were hard-coded to slug.html / tab/index.html, which 404 on hosts that don't auto-rewrite (e.g. GitHub Pages). Production sourcey.com masked the issue with its /foo.html → /foo/ 308 redirect.
Added
  • OpenAPI 3.2 parsing and rendering for QUERY operations, response summaries, deviceAuthorization OAuth flows, hierarchical tags, querystring parameters, and media-type encoding metadata
  • $self-aware reference resolution for canonical multi-document OpenAPI descriptions
  • prettyUrls config option for clean URLs ("slash" emits foo/index.html and links as /foo/; "strip" links as /foo and emits a _redirects file for static hosts that support redirect rules)
Changed
  • OG image template redesigned for legibility at Slack/Discord preview sizes: larger bold wordmark, vertical accent bar in theme primary, tighter type, single-grey description, no duplicate site-name footer
Fixed
  • Lint configuration for browser-side client scripts and generated MCP test artifacts
Added
  • Automatic per-page OG image generation at build time using Satori and resvg
  • ogImage config option for overriding with a static image URL
  • Heroicons in navigation and UI components
Changed
  • Inter loaded as the default sans-serif; layout rhythm refined for tighter vertical spacing
Fixed
  • Tab path deduplication when multiple tabs share a slug
  • Inline code styling inside TOC items
  • TOC nested-item border alignment
Added
  • Nested directives (e.g. tabs inside :::code-group)
  • Doxygen link rewriting for cross-referenced symbols in prose
Fixed
  • Inline code protection during markdown directive preprocessing
Fixed
  • OAuth security section rendering
  • Footer logo restored after layout refactor
  • Fenced markdown examples preserved through directive preprocessing
Added
  • ::iframe directive for embedding arbitrary https URLs in markdown
Fixed
  • Doxygen page summaries now reuse resolved cross-links in page headers instead of exposing raw {#ref ... #} placeholders
  • Rich Doxygen index cards strip inline markdown link syntax from summaries
  • sourcey init now scaffolds projects against the latest published version again
  • Minimal-theme callout borders and responsive page description sizing
  • TOC sub-item margin alignment
  • Search featured pages, inline dialog, display font, and sidebar dot markers
  • Lighthouse baseline polish for generated docs
Added
  • MCP server documentation as a first-class input format alongside OpenAPI, Markdown, and Doxygen
  • mcp tab config option for rendering tools, resources, and prompts from an mcp.json snapshot
  • Auto-generated code samples in JSON-RPC, TypeScript SDK, and Python SDK for all MCP operations
  • Connection config card showing how to add the server to Claude, Cursor, or any MCP client
  • Annotation badges for tool hints (read-only, destructive, idempotent, open-world)
  • Colour-coded sidebar method pills (purple TOOL, green RES, blue PRMT)
  • Hot-reload for mcp.json files in the dev server
  • ::video directive for embedding YouTube, Vimeo, or raw video files in markdown
  • Sitemap generation
  • OpenGraph and Twitter Card meta tags
  • Dockerfile for Docker Hub
  • Nix flake support
Changed
  • Sidebar active state uses pill-style background instead of left border
  • Table of contents uses a continuous grey track with primary colour active marker
  • Clicking the first sidebar item scrolls to the top of the page
Fixed
  • Dev server fs.allow now includes the sourcey root for npm link compatibility
  • Double-wrapped accordion groups from <AccordionGroup> component syntax
Changed
  • Package metadata moved to sourcey.com and sourcey/sourcey org
Fixed
  • Node 24 JSON import compatibility
Fixed
  • Page slugs preserve directory structure to avoid nav collisions
Fixed
  • slugFromPath preserves directory structure
Added
  • Relative source links in markdown rewrite to repo URLs at build time
Added
  • Doxygen index page generation
Fixed
  • Doxygen index content links
Fixed
  • CLI help output reports the actual package version
  • sourcey init scaffolds new projects with the latest published version
Changed
  • First page renders directly instead of meta-refresh redirect
Added
  • sourcey init auto-detects project type and offers directory selection
  • Init reads Doxygen XML_OUTPUT for proper path resolution
Fixed
  • Use jiti for TypeScript config loading
  • Resolve moxygen from npm registry
Added
  • sourcey init command for scaffolding new projects
  • Scroll tracker ?target query parameter for deep linking
  • Node 24 in CI test matrix
Fixed
  • Dev server asset path resolution for npm installs
Added
  • Internal link resolution between markdown pages
  • editBasePath config option for repos with docs in a subdirectory
  • Previous/next page navigation at the bottom of markdown pages
  • Brand icons (GitHub, npm, etc.) in navbar and footer
Added
  • Mobile navigation drawer with breadcrumbs
  • Configurable tab slugs
  • Collapsible schemas in API reference
  • "Edit this page" links on markdown pages
  • Auto Google Fonts loading from theme config
Changed
  • Stone-palette code surfaces
  • TOC nesting improvements
Fixed
  • Responsive layout at small breakpoints
  • Code indent rendering
  • Dev server error recovery
  • Sidebar active state on prose pages
  • Duplicate h1 headings
  • Logo paths resolve relative to config directory
Added
  • Geist Mono as default monospace font
Changed
  • Config changes hot-reload in dev server
Fixed
  • Scroll offset calculation
Added
  • Doxygen C++ documentation via Moxygen integration
  • Command palette search (Cmd+K)
  • Google Fonts loading and font stack configuration
Fixed
  • Moxygen resolved from npm registry
  • TOC scroll tracking
  • Heading scroll offset
Added
  • Redesigned theme with new layout, typography, and colour system
  • Theme presets (default, minimal, api-first) with custom colours, fonts, and layout
  • EndpointBar component with colour-coded method badges
  • CopyButton and SocialIcon UI components
  • Demo site with markdown guides
  • Unified Vite plugin for dev server
Changed
  • Renamed from spectacle-docs to sourcey
  • License changed from MIT to AGPL-3.0-only
  • Complete redesign of Header, Sidebar, Page, TableOfContents, CodeSamples, Responses, and Security components
Removed
  • Legacy Handlebars/Foundation/SCSS theme
  • TabBar and old CodeBlock components
Added
  • Multi-page sites with tabbed navigation and sidebar groups
  • Markdown pages with rich components (Steps, Cards, Accordions)
  • Vite dev server with SSR hot reload
  • Header with navbar links and CTA button
  • Table of contents with scroll tracking
  • Footer with social links
  • Cross-page navigation link resolution
Changed
  • Dark example panel hidden on prose-only pages
Added
  • Vite dev server with header, TOC, and layout system

Complete rewrite from Handlebars/Grunt to TypeScript/Preact SSG.

Added
  • TypeScript codebase with Preact SSR
  • sourcey.config.ts with defineConfig() and full type safety
  • OpenAPI 3.x support (auto-converts Swagger 2.0)
  • Shiki syntax highlighting
  • Dark mode with localStorage persistence
  • Client-side search with keyboard navigation (Cmd+K)
  • Auto-generated code samples in 10 languages
  • Custom colour theming with hex-to-RGB token system
  • Stone-palette code blocks with language dropdown and response tabs
  • Copy button on code blocks
  • Scroll-tracked sidebar navigation
  • Enum pills and array item type display
  • Logo support with light/dark variants
  • Static HTML output with no framework runtime
  • GitHub Actions CI
Removed
  • Handlebars template engine
  • Grunt build system
  • highlight.js
Fixed
  • Example rendering
  • Dependency vulnerabilities (handlebars, js-yaml, lodash, marked, fstream)
Added
  • YAML example support
Fixed
  • Href with colon characters
  • Href with multiple dots
  • Code block overflow
Changed
  • Licence update
Changed
  • Updated Grunt dependencies
Fixed
  • grunt-sass 3.0 compatibility
  • grunt-sass dependency resolution
Added
  • Nested objects and arrays in definitions
  • Resource embedding support
  • Enum definition descriptions
  • $ref support in parameters and responses
  • Development mode with live reload
  • Schema syntax error reporting in dev mode
  • x-nullable support
Changed
  • Security partial rendering
Fixed
  • Markdown rendering (#122, #126)
  • Schema description rendering and linking

First stable release. Requires Node.js >= 8.

Added
  • Quiet output option
Fixed
  • Remote file reference rendering
Added
  • Response header display
Fixed
  • Null node error in reference resolution
Fixed
  • Null check in reference replacement
Fixed
  • Remote reference tests
Added
  • Min/max range display for parameters
  • maxLength and minLength display for strings
  • Better rendering of arrays of objects
Fixed
  • Rendering on large screens with indents
Added
  • Programmatic API with promise return
Added
  • Remote schema support
  • Temporary directory per build run
Fixed
  • Code highlighting
  • HTTPS for jQuery reference
Added
  • OpenAPI 2.0 (Swagger) rendering
  • Foundation 6 responsive layout with drawer navigation
  • Custom logo support
  • Docker support
  • Recursive example parsing
  • Definition rendering with JSON examples
  • Custom CSS scoping
  • Handlebars template engine