Skip to content

Drop dead code: kbar search index, MDX video mapping, unused components and dependencies - #1997

Open
marcleblanc2 wants to merge 11 commits into
marc/fix/mark-svg-base-pathfrom
marc/chore/drop-kbar-search-index
Open

marcleblanc2 wants to merge 11 commits into
marc/fix/mark-svg-base-pathfrom
marc/chore/drop-kbar-search-index

Conversation

@marcleblanc2

@marcleblanc2 marcleblanc2 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Problem

  • kbar (a ⌘K palette) was removed in Fix docs search with Algolia #110, but its config in src/data/search.ts and the contentlayer onSuccess hook stayed behind, writing a 725 KB public/search.json on every build that nothing fetches
  • src/utils/contentlayer.ts only existed to build that index
  • The video entry in MdxComponents.tsx never runs: MDX compiles an explicit <video> to a literal element, so components.video is never consulted (the rounded-xl class it set has never been applied)
  • A knip scan turned up more dead code nothing imports:
    • docsearch/icons/index.ts barrel and the AlgoliaLogo, NoResultsIcon, ControlKeyIcon, GoToExternalIcon icons only it re-exported (plus two commented-out usages and the searchByText translation that only fed AlgoliaLogo)
    • docsearch/types/useDocSearchKeyboardEvents.ts, a drifted copy of the sibling hook DocSearch.tsx actually imports
    • src/images/logos/aws/index.ts, generator output from before dev/generate-mermaid-icons.mjs switched to icons.generated.ts
    • latestVersion in src/data/versions.ts, exported since 📦 NEW: Add versioning #48 with no reader
    • Dependencies @iconify-json/logos, @iconify/types, and mdx (not MDX: a 2013 "generic documentation extractor", likely a typo-install of @mdx-js/mdx)
  • Absorbed from Cleanup unused dependencies and src files #1986 (closed in favour of this PR; the two collided on package.json, the lockfile, .gitignore, and src/utils/contentlayer.ts):
    • src/components/PreCode.tsx (empty; the real PreCode lives in PreCodeBlock.tsx), src/components/ResourceEstimator.tsx (older duplicate of resource-estimator/ResourceEstimator.tsx), src/components/DemoLayout.tsx (template leftover), src/components/TopBanner.tsx, src/components/icons/Globe.tsx, src/components/icons/BugIcon.tsx
    • Dependencies with no import in src/, dev/, or any config: @docsearch/react (only its CSS is vendored under src/components/search/docsearch/), @mdx-js/mdx (contentlayer2 pulls the same 3.1.1 transitively), date-fns, fast-glob, feed, prism-react-renderer, react-highlight-words + @types/react-highlight-words, react-syntax-highlighter, rehype-toc, simple-functional-loader, dotenv. Kept on purpose: shiki (peer of rehype-pretty-code) and sharp
    • .gitignore entries for public/changelog.rss and public/technical-changelog.rss: nothing generates them; the feed comes from sourcegraph.com and src/proxy.ts redirects the old paths

Change

Five commits, one per group above. 15 files deleted, 15 dependencies removed, +1 −1585 (880 of that lockfile).

Based on #1977 so GitHub shows only this PR's diff; retarget to main once #1977 lands.

Verification

  • pnpm install --frozen-lockfile, npx tsc --noEmit clean, pnpm run lint at the 8-warning baseline, pnpm run build passes and no longer produces public/search.json
  • rg -i 'kbar|search\.json' finds nothing; rg finds no imports of any deleted file, export, or dependency
  • Rendered <video> markup on /docs/code-monitoring is byte-identical before and after (it never had the class)
  • Nobody fetches search.json: the new Algolia indexer (Revamp docs search: product-keyed Algolia index, ranking fixes, denser modal #2009) reads .contentlayer/generated/Post, the old DocSearch crawler scraped HTML, and Cloudflare analytics for sourcegraph.com show ~150 sampled requests to /docs/search.json in the last 30 days, all with an empty referer, random geos and browser UAs, and no daily cadence: scanner noise, not a consumer

@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sourcegraph-docs Ready Ready Preview Sep 18, 2026 5:11am UTC

Request Review

@github-actions

github-actions Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

⚠️ Spell check found 5 issue(s) in this PR

Only findings on lines added by this PR, and in its title and description, are shown.

Pull request title

  • column 17
    • kbarknar

Pull request description

  • line 3, column 3
    • kbarknar
  • line 21, column 53
    • retargetretarded
  • line 26, column 11
    • kbarknar
  • line 28, column 279
    • refererreferee

Please correct the spelling, or add words which are correct to cspell-allow-list.txt.

Run npx cspell@10 --no-progress --dot '**/*' locally to check the full repository.

@marcleblanc2
marcleblanc2 force-pushed the marc/chore/drop-kbar-search-index branch from 759b5e0 to e5be987 Compare September 18, 2026 04:27
@marcleblanc2 marcleblanc2 changed the title Drop the kbar search index and the dead MDX video mapping Drop the kbar search index, dead MDX video mapping, and other dead code Sep 18, 2026
@marcleblanc2 marcleblanc2 changed the title Drop the kbar search index, dead MDX video mapping, and other dead code Clean out dead code Sep 18, 2026
@marcleblanc2 marcleblanc2 changed the title Clean out dead code Remove dead code Sep 18, 2026
marcleblanc2 and others added 9 commits September 17, 2026 23:02
Production serves under /docs. next/link adds the prefix, <img> and
next/image do not, so /sourcegraph-mark.svg in the mobile nav and the
LinkCards/ProductCards icons, plus a couple of root-relative markdown
images, 404 on sourcegraph.com.
Previews and local dev served at / while production served at /docs, so
a root-relative <img src> only 404d after deploy. Use basePath /docs
everywhere; the / -> /docs redirect from #1955 now applies to every
deployment. Update the tooling that assumed previews had no basePath.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
basePath is declared once, in docs.config.js. next.config.js reads it for
routing; everything that builds a URL Next does not prefix (img src, a href,
fetch, metadata, proxy redirects) goes through withBasePath or reads the
constant, instead of nine copies of process.env.NEXT_PUBLIC_DOCS_BASE_PATH
or a hardcoded '/docs'.

proxy.ts: request.nextUrl.pathname already excludes the basePath, so the
path.replace('/docs', '') was a no-op that would have mangled any real
path containing '/docs'. Removed.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
/v/<latest>/x and /@<latest>/x redirected to https://sourcegraph.com/docs/x
even from a preview or local dev, so a reviewer testing those paths on a
preview silently landed on production. The current deployment serves the
latest version, so redirect to its own origin + DOCS_BASE_PATH instead.
Also merges the identical /v/ and /@ branches.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
The basePath has moved three times. Next time, change DOCS_BASE_PATH (and
DOCS_PROD_ORIGIN if the host moves) in docs.config.js and nothing else:

- versions.ts, api/versions, VersionSelector, sitemap, robots, Search and
  the layout canonical/metadataBase read DOCS_BASE_PATH / DOCS_PROD_URL
  instead of spelling out /docs or https://sourcegraph.com/docs
- check-redirects, check-links (self-link regex) and verify-links-live
  import docs.config.js
- preview-links.yml checks out the PR's docs.config.js to build page URLs
- search.ts searchDocumentsPath is root-relative like every public/ path;
  it is only a flag for writing public/search.json

.amp/services.yaml is YAML and keeps its literal path, with a note.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
kbar was removed in #110; the contentlayer onSuccess hook kept writing a
725 KB public/search.json that nothing fetched. src/utils/contentlayer.ts
only existed to build that index.

MDX compiles an explicit <video> to a literal element, so components.video
never ran; the rounded-xl class it set was never applied.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
…exports

knip flagged these and rg confirms nothing imports them:

- docsearch/icons/index.ts barrel, and the AlgoliaLogo, NoResultsIcon,
  ControlKeyIcon, GoToExternalIcon icons only it re-exported. The two
  commented-out usages in Footer.tsx and NoResultsScreen.tsx go with
  them, along with the searchByText translation that only fed AlgoliaLogo
- docsearch/types/useDocSearchKeyboardEvents.ts, a drifted copy of the
  sibling hook DocSearch.tsx actually imports
- src/images/logos/aws/index.ts, generator output from before
  dev/generate-mermaid-icons.mjs switched to icons.generated.ts
- latestVersion in src/data/versions.ts, exported since #48 with no reader

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
- @iconify-json/logos and @iconify/types: nothing in src/, dev/, or any
  config references them; Mermaid icon packs come from
  src/images/logos/*/icons.generated.ts
- mdx: not MDX at all, a 2013 "generic documentation extractor", most
  likely a typo-install of @mdx-js/mdx. Nothing imports it

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ae6a-1645-702a-a5ed-92f8b9bce33b
Co-authored-by: Amp <amp@ampcode.com>
@marcleblanc2
marcleblanc2 force-pushed the marc/chore/drop-kbar-search-index branch from a781d29 to e7aa180 Compare September 18, 2026 05:05
@marcleblanc2
marcleblanc2 changed the base branch from main to marc/fix/mark-svg-base-path September 18, 2026 05:05
marcleblanc2 and others added 2 commits September 17, 2026 23:09
None of these packages are imported by src/, dev/, or any config file:
@docsearch/react (only its CSS is vendored), @mdx-js/mdx, date-fns,
fast-glob, feed, prism-react-renderer, react-highlight-words and its
@types, react-syntax-highlighter, rehype-toc, simple-functional-loader,
dotenv.

public/changelog.rss and public/technical-changelog.rss are no longer
generated here: the feed is served from sourcegraph.com (see
src/data/constants.ts) and src/proxy.ts redirects to it.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ad56-bd79-73ce-bc8e-a5405d0c11f2
Co-authored-by: Amp <amp@ampcode.com>
PreCode.tsx was empty; ResourceEstimator.tsx was an older copy of
resource-estimator/ResourceEstimator.tsx, which MdxComponents imports;
DemoLayout, TopBanner, Globe and BugIcon have no importers.

allCoreContent filtered on a `draft` frontmatter field that
contentlayer.config.ts does not declare and no page sets, so the
production and development branches did the same thing.

Amp-Thread-ID: https://ampcode.com/threads/T-01a0ad56-bd79-73ce-bc8e-a5405d0c11f2
Co-authored-by: Amp <amp@ampcode.com>
@marcleblanc2 marcleblanc2 changed the title Remove dead code Drop dead code: kbar search index, MDX video mapping, unused components and dependencies Sep 18, 2026

@enriquegh enriquegh 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.

very nice! so much dead code 💀

So much came from us moving from kbar to algolia then we had to bring in the docsearch component instead of importing it (I think we couldn't customize otherwise) and brought too much with it.

@marcleblanc2
marcleblanc2 force-pushed the marc/fix/mark-svg-base-path branch from 6b9f3cb to dcdddd0 Compare September 18, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants