diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84b271f..241ccfc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -278,10 +278,15 @@ jobs: - name: bun audit (block on high/critical) # Blume's image-size has no patched release yet — ignore those GHSAs until one ships. + # Blume 2.1.3 subtree is docs build-time only (no src/ or published-tarball reach): + # brace-expansion via typedoc minimatch + Blume epub-gen-memory ejs jake filelist minimatch, + # http-cache-semantics via Blume @scalar/astro, source-map-js via Blume astro unifont css-tree. + # Runtime-touching advisories (fast-uri, proxy-addr via MCP SDK; tinypool via oxfmt) are + # fixed with package.json overrides instead — never ignored. run: | set +e # bun emits ANSI color even when piped — strip it or the severity grep misses it. - NO_COLOR=1 bun audit --ignore=GHSA-w3rx-r6r6-pgpr --ignore=GHSA-5p2g-fcmc-qvqq 2>&1 | sed -E 's/\x1b\[[0-9;]*m//g' > /tmp/bun-audit.log + NO_COLOR=1 bun audit --ignore=GHSA-w3rx-r6r6-pgpr --ignore=GHSA-5p2g-fcmc-qvqq --ignore=GHSA-qhr7-859c-m2p7 --ignore=GHSA-6j4f-fj2g-mc7p --ignore=GHSA-ch52-4w7c-c8xp --ignore=GHSA-68fv-2mgg-jv7q 2>&1 | sed -E 's/\x1b\[[0-9;]*m//g' > /tmp/bun-audit.log cat /tmp/bun-audit.log if grep -E '(^|[[:space:]])(high|critical):[[:space:]]' /tmp/bun-audit.log; then echo "::error::high or critical vulnerabilities found — blocking" diff --git a/apps/docs/blume.config.ts b/apps/docs/blume.config.ts index 8f0fd7e..9469a90 100644 --- a/apps/docs/blume.config.ts +++ b/apps/docs/blume.config.ts @@ -1,4 +1,6 @@ import { defineConfig } from "blume"; +import { orama } from "blume/search"; +import { filesystem, githubReleases } from "blume/sources"; import { CURATED_POPULAR } from "./components/curated-popular"; @@ -16,6 +18,16 @@ export default defineConfig({ logo: { image: "/logo.svg", text: "Codemap" }, + footer: { + links: [ + { label: "Changelog", href: "/changelog" }, + { label: "Website", href: "https://stainless-code.com" }, + ], + socials: { + github: "https://github.com/stainless-code/codemap", + }, + }, + github: { owner: "stainless-code", repo: "codemap", @@ -23,27 +35,26 @@ export default defineConfig({ dir: "apps/docs", }, - lastModified: true, + lastModified: "git", content: { sources: [ - { type: "filesystem", root: "content" }, - { - type: "github-releases", + filesystem({ root: "content" }), + githubReleases({ prefix: "changelog", owner: "stainless-code", repo: "codemap", limit: 100, - }, + }), ], }, navigation: { tabs: [ - { label: "Guides", path: "/guides", icon: "book-open" }, - { label: "Recipes", path: "/recipes", icon: "flask-conical" }, - { label: "Concepts", path: "/concepts", icon: "lightbulb" }, - { label: "Reference", path: "/reference", icon: "code" }, + { label: "Guides", path: "/guides" }, + { label: "Recipes", path: "/recipes" }, + { label: "Concepts", path: "/concepts" }, + { label: "Reference", path: "/reference" }, ], featured: [ { label: "Changelog", href: "/changelog", icon: "sparkles" }, @@ -69,7 +80,7 @@ export default defineConfig({ }, }, search: { - provider: "orama", + provider: orama(), // Cmd+K empty-state + shared with 404 via CURATED_POPULAR. popular: CURATED_POPULAR.map(({ route, label }) => ({ href: route, @@ -78,16 +89,20 @@ export default defineConfig({ }, markdown: { - code: { icons: true }, - codeBlocks: { theme: { light: "github-light", dark: "github-dark" } }, + externalLinks: true, + code: { + icons: true, + theme: { light: "github-light", dark: "github-dark" }, + }, }, toc: { minHeadingLevel: 2, maxHeadingLevel: 3 }, export: { epub: true, pdf: true }, - ai: { + agents: { llmsTxt: true, + agentReadability: true, }, seo: { @@ -99,11 +114,9 @@ export default defineConfig({ sitemap: true, robots: true, structuredData: true, - agentReadability: true, }, deployment: { - output: "static", site: "https://stainless-code.com", base: "/codemap", }, diff --git a/apps/docs/components.ts b/apps/docs/components.ts index ac684e5..277e274 100644 --- a/apps/docs/components.ts +++ b/apps/docs/components.ts @@ -1,9 +1,11 @@ import { defineComponents } from "blume"; +import Header from "./components/blume/Header.astro"; import Pagination from "./components/blume/Pagination.astro"; export default defineComponents({ layout: { + Header, // Footer omitted from layout — homepage-only in `pages/index.astro`. // Theme radius (rounded-blume) instead of built-in pill corners. Pagination, diff --git a/apps/docs/components/blume/Footer.astro b/apps/docs/components/blume/Footer.astro index 15da3c2..d7616f3 100644 --- a/apps/docs/components/blume/Footer.astro +++ b/apps/docs/components/blume/Footer.astro @@ -91,8 +91,8 @@ const groups: { ]; --- -