Problem
apps/loopover-extension (the maintainer-facing browser extension) is being removed as unused cruft (parent epic). Before the package itself is deleted, its live public-facing surface on apps/loopover-ui needs to come down first — landing the package/build removal (the next sub-issue) before this would leave a "Download extension" button on the live site pointing at a zip that's stopped being generated (a real broken download, not just a stale link). apps/loopover-miner-extension has no equivalent UI page — this issue is scoped to the maintainer extension's surface only.
Requirements
- Delete the dedicated route
apps/loopover-ui/src/routes/extension.tsx (route path /extension) and its test apps/loopover-ui/src/routes/extension.test.tsx. This includes the ExtensionTokenButton component and its call to POST /v1/auth/extension/session — do not preserve any part of this page elsewhere.
- Remove the two navigation links to
/extension:
apps/loopover-ui/src/components/site/site-footer.tsx — the { to: "/extension", label: "Browser extension" } entry in the "Product" column.
apps/loopover-ui/src/components/site/command-palette.tsx — the { label: "Browser extension", to: "/extension", group: "Reference" } entry.
- Remove the extension-specific copy from
apps/loopover-ui/src/routes/roadmap.tsx (the "Phase 2: maintainer trust and browser extension" section, its bullet list, and the { to: "/extension", label: "Open extension page" } link) — do not leave a roadmap phase referencing a removed page. If removing the copy leaves an empty/broken phase entry, restructure the surrounding roadmap data so it reads coherently, not just delete the extension-specific lines in place.
- Remove the
/extension entry from apps/loopover-ui/public/sitemap.xml.
- Remove the
## Browser extension states section from apps/loopover-ui/content/docs/maintainer-install-trust.mdx (including its extension-state-map.txt code block) and the cross-link to /extension in that same file's closing paragraph.
- Remove the "repeat the extension block in your override file" reference in
apps/loopover-ui/content/docs/self-hosting-operations.mdx (verify this line still makes sense in context after removal — it may need rewording, not just deletion, depending on what surrounding text assumes).
- Update the
| Browser extension | [Extension page](https://loopover.ai/extension) | row out of the root README.md table.
apps/loopover-ui/src/routeTree.gen.ts is TanStack Router's own generated file — do not hand-edit it; regenerate it as part of the app's normal build/dev process after the route file is deleted, and commit the regenerated result.
- Do not touch
apps/loopover-miner-ui/** — it references the miner-extension only in a README sentence and a code comment (no live page), which is out of scope for this issue (covered structurally by the next sub-issue's package deletion, not a UI-surface removal).
Deliverables
Links & Resources
Parent epic (this issue is blocked-by nothing; it's the first to land). apps/loopover-ui/public/downloads/loopover-extension.zip (the artifact this page's button downloads — gitignored, still generated by the build until the next sub-issue lands; do not touch the build script here).
Boundaries
UI-only. No changes to apps/loopover-extension/** itself, scripts/build-extension.ts, turbo.json, ci.yml, or any backend (src/**) code — those are the next two sub-issues. The backend endpoint POST /v1/auth/extension/session stays live and functional after this issue (only its UI caller is removed); it is decommissioned in the third sub-issue, after the client package itself is gone.
maintainer-only — public-site content and navigation authority.
Problem
apps/loopover-extension(the maintainer-facing browser extension) is being removed as unused cruft (parent epic). Before the package itself is deleted, its live public-facing surface onapps/loopover-uineeds to come down first — landing the package/build removal (the next sub-issue) before this would leave a "Download extension" button on the live site pointing at a zip that's stopped being generated (a real broken download, not just a stale link).apps/loopover-miner-extensionhas no equivalent UI page — this issue is scoped to the maintainer extension's surface only.Requirements
apps/loopover-ui/src/routes/extension.tsx(route path/extension) and its testapps/loopover-ui/src/routes/extension.test.tsx. This includes theExtensionTokenButtoncomponent and its call toPOST /v1/auth/extension/session— do not preserve any part of this page elsewhere./extension:apps/loopover-ui/src/components/site/site-footer.tsx— the{ to: "/extension", label: "Browser extension" }entry in the "Product" column.apps/loopover-ui/src/components/site/command-palette.tsx— the{ label: "Browser extension", to: "/extension", group: "Reference" }entry.apps/loopover-ui/src/routes/roadmap.tsx(the "Phase 2: maintainer trust and browser extension" section, its bullet list, and the{ to: "/extension", label: "Open extension page" }link) — do not leave a roadmap phase referencing a removed page. If removing the copy leaves an empty/broken phase entry, restructure the surrounding roadmap data so it reads coherently, not just delete the extension-specific lines in place./extensionentry fromapps/loopover-ui/public/sitemap.xml.## Browser extension statessection fromapps/loopover-ui/content/docs/maintainer-install-trust.mdx(including itsextension-state-map.txtcode block) and the cross-link to/extensionin that same file's closing paragraph.apps/loopover-ui/content/docs/self-hosting-operations.mdx(verify this line still makes sense in context after removal — it may need rewording, not just deletion, depending on what surrounding text assumes).| Browser extension | [Extension page](https://loopover.ai/extension) |row out of the rootREADME.mdtable.apps/loopover-ui/src/routeTree.gen.tsis TanStack Router's own generated file — do not hand-edit it; regenerate it as part of the app's normal build/dev process after the route file is deleted, and commit the regenerated result.apps/loopover-miner-ui/**— it references the miner-extension only in a README sentence and a code comment (no live page), which is out of scope for this issue (covered structurally by the next sub-issue's package deletion, not a UI-surface removal).Deliverables
/extensionroute, its test, and both nav links removedrouteTree.gen.tsregenerated and committedapps/loopover-uibuilds, lints, and typechecks clean with the route gonenpm run ui:testpasses with no leftover reference to the deleted route/componentsLinks & Resources
Parent epic (this issue is blocked-by nothing; it's the first to land).
apps/loopover-ui/public/downloads/loopover-extension.zip(the artifact this page's button downloads — gitignored, still generated by the build until the next sub-issue lands; do not touch the build script here).Boundaries
UI-only. No changes to
apps/loopover-extension/**itself,scripts/build-extension.ts,turbo.json,ci.yml, or any backend (src/**) code — those are the next two sub-issues. The backend endpointPOST /v1/auth/extension/sessionstays live and functional after this issue (only its UI caller is removed); it is decommissioned in the third sub-issue, after the client package itself is gone.maintainer-only — public-site content and navigation authority.