Skip to content

Epic: remove the two unused browser-extension products and their orphaned backend surface #8596

Description

@JSONbored

Problem

Two browser-extension products live in this repo and are confirmed unused: @loopover/extension (apps/loopover-extension, a maintainer-facing Chrome MV3 overlay for GitHub PRs) and @loopover/miner-extension (apps/loopover-miner-extension, a contributor-facing Chrome MV3 overlay for GitHub issues). Neither is published anywhere external — no VS Code Marketplace, no Chrome Web Store, no vsce/ovsx step anywhere in the repo (confirmed by a full grep sweep) — so removal is pure in-repo deletion with zero external deprecation to file.

They are not a two-file deletion, though. A full-repo audit (2026-07-25) found:

  • Both packages share build tooling (scripts/build-extension.ts, scripts/build-miner-extension.ts, scripts/extension-zip-core.ts) and are wired together in the SAME ci.yml steps (Extension lint/Extension typecheck run both via one turbo run ... --filter=@loopover/extension --filter=@loopover/miner-extension invocation each) and the same ui-deploy.yml "Validate frontend" step — they cannot be removed independently without an intermediate broken-CI state.
  • apps/loopover-extension alone has a dedicated, live marketing/download page on the public site (apps/loopover-ui/src/routes/extension.tsx, route /extension) with a working "Download extension" button and an ExtensionTokenButton component that calls a real backend endpoint (POST /v1/auth/extension/session) to mint and copy a session token — this is a functioning feature, not dead markup.
  • The root Cloudflare Worker (src/) has a real, substantial backend surface built specifically to serve these two clients: 3+ REST endpoints (/v1/auth/extension/session, /v1/extension/pull-context, /v1/extension/contributors/:login/{issue-fit,issue-badges,pr-status}), an entire dedicated signals module (src/signals/extension-contributor-context.ts), auth-scope constants, OpenAPI registrations, and a "browser_extension" member of the shared ProductUsageSurface type. This backend surface has no other consumer — once both extension clients are deleted, it becomes unreachable dead code unless removed too.
  • 12 root-level test/unit/*.test.ts files (outside both app directories) readFileSync/import the app directories' raw source files directly (e.g. test/unit/extension-background.test.ts, test/unit/miner-extension-icons.test.ts, test/unit/ci-extension-packages.test.ts) and will fail with ENOENT the moment the directories are deleted, unless removed in the same change.

Sequencing (sub-issues; the dependency graph is the schedule — this order specifically avoids a live broken-download-link window)

  1. Remove the maintainer-extension's UI surface from apps/loopover-ui first — the public download page, nav links, and docs section. Landing this before the package/build removal means the download link disappears before the zip it points to stops being generated, never the other way around.
  2. Delete both browser-extension packages and their shared build/CI/npm-script wiring — blocked-by feat(docs): add install site and mcp diagnostics #1. The two packages, their build scripts, turbo.json/ci.yml/package.json wiring, and the 12 root-level tests that read their source, all in one change (they cannot be split — the CI steps invoke both packages together).
  3. Remove the orphaned backend extension-serving API surface from src/ — blocked-by chore(release): prepare public gittensory launch #2. Only safe once no client code (in this repo) still references these endpoints.

Deliverables

None at the epic level — every deliverable lives in a sub-issue. The epic closes when every sub-issue does.

Links & Resources

Full audit findings (exact file/line references) are inlined into each sub-issue's own body — this epic is the sequencing shell, not a duplicate of that detail.

Boundaries

No packages/* workspace references either extension (confirmed) — this is fully contained to apps/loopover-extension/**, apps/loopover-miner-extension/**, apps/loopover-ui/**, src/**, root config (turbo.json, package.json, .gitignore), CI (.github/workflows/**), and docs. No external store/publish cleanup needed (confirmed none exists). No codecov.yml edit needed (neither package's coverage is uploaded to Codecov today).

maintainer-only — epic; work the sub-issues, not this shell.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.roadmapOn the Wave-2 agent-layer roadmap board (project 9)

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions