Skip to content

chore(providers): remove the GPL holehe provider - #137

Merged
velixio merged 1 commit into
mainfrom
chore/remove-holehe
Nov 8, 2026
Merged

velixio merged 1 commit into
mainfrom
chore/remove-holehe

Conversation

@velixio

@velixio velixio commented Nov 8, 2026

Copy link
Copy Markdown
Collaborator

What / why

Removes the holehe email provider entirely. holehe is GPL-3.0, and the owner wants the browser service to be closable later (part of the closed-source audit in PR #135). The other email verifiers (mailscout, abstract_api, debounce, reacher) stay.

Removed

  • Browser service: scrapers/holehe_check.py, the /v1/holehe route and import, the Holehe* models, the holehe entry in scripts/record_contract_fixtures.py, the holehe tests, and the holehe dependency. uv lock also dropped the packages only it pulled in (attrs, bs4, outcome, sniffio, sortedcontainers, termcolor, tqdm, trio). config.py had no holehe settings.
  • Go backend: the holehe provider (library.go, register.go, vectors_test.go, unit_test.go), the Browser interface method, the browserclient Holehe method and types and their tests, the recorded holehe.json fixture and the holehe op in stats.json, and the holehe path/schemas in openapi.json (regenerated from the service).
  • Defaults and data: email_confidence / email_verify defaults, provenance.go, native_costs.go, wbregistry/registry.json (provider and the mailscout, holehe recipe waterfall), contract providers*.json, and the scrape, vendorcatalog, workbook and provider-inventory vectors.
  • Live docs: apps/docs (waterfalls, providers) and docs/go-port/runbooks/browser-service.md. Historical docs (plans, inventory, internal, research) are untouched.

Stored configs that still name holehe

  • Settings and migrations: nothing seeds holehe (no hits in migrations or settings). The only seeds were the in-code defaults above. No DB migration is needed or included.
  • Behaviour before this PR's guard: for an explicit workbook waterfall naming holehe, the run plan records a cost of 0, then the runner returns ErrUnavailable, which failed the whole run (the job is handed back). The plan builder, when native providers are off, refuses the run outright.
  • Now: in workbook/cell.go, a free provider that is neither Go-native, nor in the payload manifests, nor served by the runner is skipped as unknown_provider and the waterfall continues with the next provider. A priced provider with no runner keeps its existing path (spend released, cell fails). Test: TestStoredChainNamingRemovedProviderIsSkipped (integration).

Verification

  • apps/browser-service: uv lock --check, uv sync --frozen, ruff check, ruff format --check: clean. pytest -q: 238 passed (including the openapi drift test).
  • apps/backend-go: go vet ./... and go build ./... clean. go test -count=1 ./... all packages ok. go test -count=1 -tags integration for workbook, providerrun, runplan, api, browserclient, providers/..., vendorcatalog, wbregistry: all ok, run against a freshly migrated scratch database. No -race.
  • git grep -in holehe: only the historical docs, plus one explanatory comment in workbook/cell.go.

holehe is GPL-3.0 and the browser service is to become closed source.
Remove the /v1/holehe route, models, scraper, dependency (and the
packages only it pulled in), the Go provider, browserclient method and
types, defaults, provenance, catalog, registry and contract fixtures,
and the live docs.

A stored workbook chain that still names holehe is now skipped as
unknown_provider instead of failing the run or stopping the waterfall.

Signed-off-by: Shimul Debnath <270455167+velixio@users.noreply.github.com>
@velixio
velixio requested a review from debpalash as a code owner November 8, 2026 17:06
@github-actions

github-actions Bot commented Nov 8, 2026

Copy link
Copy Markdown

All contributors on this pull request have signed the OpenGTM CLA. Thank you!

Agreement: OpenGTM CLA 1.0

@github-actions github-actions Bot added the cla-signed All contributors signed the CLA label Nov 8, 2026
@velixio
velixio merged commit 8fe9de1 into main Nov 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed All contributors signed the CLA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant